From 187a7e639fc48ff7c6b74b3fae7d0594f4b57723 Mon Sep 17 00:00:00 2001 From: ymber Date: Sun, 19 May 2019 15:52:52 +0100 Subject: [PATCH 01/76] update epower values --- data/json/vehicle_parts.json | 20 ++++++++++++-------- data/json/vehicleparts/lights.json | 17 ++++++++++------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/data/json/vehicle_parts.json b/data/json/vehicle_parts.json index 88f299767aa2e..540e99db9eae2 100644 --- a/data/json/vehicle_parts.json +++ b/data/json/vehicle_parts.json @@ -141,7 +141,8 @@ "durability": 20, "description": "A small transmitter that lets you locate the vehicle on the map.", "item": "veh_tracker", - "epower": -63, + "//": "10W GPS transponder like an XPC-TR", + "epower": -10, "folded_volume": 2, "requirements": { "install": { "time": 20000, "skills": [ [ "mechanics", 2 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ] }, @@ -769,7 +770,7 @@ "damage_modifier": 80, "durability": 100, "description": "A small washing machine. With detergent or soap, water, and some electrical power, you could clean a lot of clothes. 'e'xamine the tile with the washing machine to use it.", - "epower": -249, + "epower": -400, "size": 160, "item": "washing_machine", "difficulty": 3, @@ -1084,7 +1085,8 @@ "color": "red", "difficulty": 1, "durability": 400, - "epower": -90, + "//": "700W average assuming relatively small target-actual difference", + "epower": -700, "bonus": 10, "flags": [ "CTRL_ELECTRONIC", "ENABLED_DRAINS_EPOWER", "SPACE_HEATER" ], "requirements": { @@ -1205,7 +1207,7 @@ "damage_modifier": 10, "durability": 35, "description": "A bunch of electronics that make it difficult to start the vehicle without the proper key, and that will sound an alarm if you try. The alarm can be disabled.", - "epower": -30, + "epower": -10, "bonus": 120, "folded_volume": 1, "item": "processor", @@ -2007,7 +2009,8 @@ "damage_modifier": 10, "durability": 20, "description": "A device for recharging batteries. When turned on, it charges any rechargeable batteries (battery cells, lead-acid batteries, etc) placed directly in the attached storage space.", - "epower": -25, + "//": "Only keeping a controller board running while not actively charging", + "epower": -10, "bonus": 600, "item": "recharge_station", "difficulty": 3, @@ -2075,7 +2078,7 @@ "damage_modifier": 0, "durability": 60, "description": "A stereo system. When turned on, it plays music, improving your mood.", - "epower": -200, + "epower": -50, "bonus": 80, "item": "stereo", "difficulty": 2, @@ -2093,7 +2096,7 @@ "damage_modifier": 0, "durability": 40, "description": "A collection of electronic bells. Use the vehicle's controls to turn it on or off. When turned on, it makes noise, attracting neighborhood children.", - "epower": -200, + "epower": -50, "item": "chimes", "difficulty": 2, "flags": [ "CHIMES", "TOOL_SCREWDRIVER", "ENABLED_DRAINS_EPOWER" ], @@ -2355,7 +2358,8 @@ "folded_volume": 8, "bonus": 24, "item": "omnicamera", - "epower": -75, + "//": "Cameras without a DVR can run on under 10W", + "epower": -10, "difficulty": 4, "location": "on_roof", "flags": [ "VISION", "CAMERA", "TOOL_SCREWDRIVER", "ENABLED_DRAINS_EPOWER" ], diff --git a/data/json/vehicleparts/lights.json b/data/json/vehicleparts/lights.json index 1ca2734c7b62a..42afea839f3b0 100644 --- a/data/json/vehicleparts/lights.json +++ b/data/json/vehicleparts/lights.json @@ -9,7 +9,8 @@ "broken_symbol": "*", "color": "white", "durability": 20, - "epower": -75, + "//": "essentially an 800lm 10W LED flashlight", + "epower": -10, "bonus": 30, "folded_volume": 2, "breaks_into": [ { "item": "scrap", "count": [ 0, 2 ] } ], @@ -63,7 +64,7 @@ "broken_color": "blue", "durability": 20, "description": "A very bright, circular light that illuminates the area outside the vehicle when turned on.", - "epower": -1500, + "epower": -200, "bonus": 8000, "damage_modifier": 10, "folded_volume": 8, @@ -87,7 +88,8 @@ "copy-from": "floodlight", "looks_like": "floodlight", "description": "A very bright, directed light that illuminates a half-circular area outside the vehicle when turned on. During installation, you can choose what direction to point the light.", - "epower": -750, + "//": "8000lm 100W LED floodlight", + "epower": -100, "flags": [ "HALF_CIRCLE_LIGHT", "FOLDABLE", "ENABLED_DRAINS_EPOWER" ] }, { @@ -101,7 +103,7 @@ "broken_color": "white", "durability": 20, "description": "A bright light that illuminates a narrow cone outside the vehicle when turned on. During installation, you can choose what direction to point the light, so multiple headlights can illuminate the sides or rear, as well as the front.", - "epower": -187, + "epower": -100, "bonus": 8000, "damage_modifier": 10, "folded_volume": 1, @@ -121,7 +123,7 @@ "copy-from": "headlight", "looks_like": "headlight", "description": "A bright light that illuminates a wide cone outside the vehicle when turned on. During installation, you can choose what direction to point the light, so multiple headlights can illuminate the sides or rear, as well as the front.", - "epower": -375, + "epower": -150, "flags": [ "WIDE_CONE_LIGHT", "FOLDABLE", "ENABLED_DRAINS_EPOWER" ] }, { @@ -150,7 +152,8 @@ "broken_symbol": "-", "durability": 20, "description": "Emergency lights, like a police car's or ambulance's, mounted on the vehicle's roof. Flashes between red and blue when turned on, attracting attention without illuminating the area.", - "epower": -125, + "//": "essentially a pair of overpowered RGB LED flashlights", + "epower": -10, "bonus": 500, "damage_modifier": 10, "folded_volume": 2, @@ -199,7 +202,7 @@ "color": "white", "difficulty": 1, "durability": 400, - "epower": -75, + "epower": -10, "bonus": 30, "breaks_into": [ { "item": "steel_lump", "count": [ 4, 6 ] }, From ffba7a0b86460449e8aa0cad78a0a8dddce4a955 Mon Sep 17 00:00:00 2001 From: ymber Date: Sun, 19 May 2019 17:28:51 +0100 Subject: [PATCH 02/76] make recharger 85% efficient --- src/map.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/map.cpp b/src/map.cpp index 3bbc1f2dd327e..9720adecab530 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -4549,13 +4549,12 @@ static void process_vehicle_items( vehicle &cur_veh, int part ) if( cur_veh.part_with_feature( part, VPFLAG_RECHARGE, true ) >= 0 && cur_veh.has_part( "RECHARGE", true ) ) { for( auto &n : cur_veh.get_items( part ) ) { - static const std::string recharge_s( "RECHARGE" ); - static const std::string ups_s( "USE_UPS" ); - if( !n.has_flag( recharge_s ) && !n.has_flag( ups_s ) ) { + if( !n.has_flag( "RECHARGE" ) && !n.has_flag( "USE_UPS" ) ) { continue; } if( n.ammo_capacity() > n.ammo_remaining() ) { - constexpr int per_charge = 10; + // Around 85% efficient, so double discharge every once every 7 seconds + const int per_charge = one_in( 7 ) ? 2 : 1; const int missing = cur_veh.discharge_battery( per_charge, false ); if( missing < per_charge && ( missing == 0 || x_in_y( per_charge - missing, per_charge ) ) ) { From 4afbc199a522511b35a7c4eafe7c44417d6e431f Mon Sep 17 00:00:00 2001 From: ymber Date: Sun, 19 May 2019 17:40:28 +0100 Subject: [PATCH 03/76] update lighting tools for realistic wattage --- data/json/items/tool/lighting.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/json/items/tool/lighting.json b/data/json/items/tool/lighting.json index e7d0617e5fe15..5c756b4209ede 100644 --- a/data/json/items/tool/lighting.json +++ b/data/json/items/tool/lighting.json @@ -38,7 +38,7 @@ "type": "TOOL", "name": "electric lantern (on)", "name_plural": "electric lanterns (on)", - "turns_per_charge": 42, + "turns_per_charge": 200, "revert_to": "electric_lantern", "use_action": { "menu_text": "Turn off", "type": "transform", "target": "electric_lantern", "msg": "You turn the lamp off." }, "flags": [ "RADIO_MODABLE", "LIGHT_15", "TRADER_AVOID", "ALLOWS_REMOTE_USE" ] @@ -87,7 +87,7 @@ "type": "TOOL", "name": "flashlight (on)", "name_plural": "flashlights (on)", - "turns_per_charge": 24, + "turns_per_charge": 100, "revert_to": "flashlight", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn the flashlight off.", "target": "flashlight" }, "flags": [ "LIGHT_300", "CHARGEDIM", "TRADER_AVOID" ] @@ -172,7 +172,7 @@ "type": "TOOL", "name": "heavy duty flashlight (on)", "name_plural": "heavy duty flashlights (on)", - "turns_per_charge": 9, + "turns_per_charge": 67, "revert_to": "heavy_flashlight", "use_action": { "menu_text": "Turn off", From f7579bbc95878a4c4014776f9a18587cd8eb7f1f Mon Sep 17 00:00:00 2001 From: ymber Date: Sun, 19 May 2019 18:58:23 +0100 Subject: [PATCH 04/76] change power values in tool_armor.json --- data/json/items/tool_armor.json | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index 6cab07ae5e246..bbbaf39dee86a 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -53,7 +53,7 @@ "name_plural": "mining helmets (on)", "description": "This is a mining helmet with a heavy duty LED flashlight. The flashlight is turned on, and continually draining its batteries. Use it to turn it off.", "flags": [ "LIGHT_450", "CHARGEDIM", "WATERPROOF", "TRADER_AVOID" ], - "turns_per_charge": 15, + "turns_per_charge": 67, "revert_to": "miner_hat", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "The %s flicks off.", "target": "miner_hat" }, "covers": [ "HEAD" ], @@ -179,7 +179,7 @@ "name_plural": "pairs of thermal electric socks (on)", "description": "This is a pair of socks with internal battery-powered heating elements. They are currently on, and continually draining batteries. Use it to turn them off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 50, + "turns_per_charge": 133, "revert_to": "thermal_socks", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_socks" }, "warmth": 60, @@ -236,7 +236,7 @@ "name_plural": "thermal electric suits (on)", "description": "This is a full-body suit of thin thermal underwear equipped with internal battery-powered heating elements. It is currently on, and continually draining batteries. Use it to turn it off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 25, + "turns_per_charge": 15, "revert_to": "thermal_suit", "warmth": 60, "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_suit" }, @@ -294,7 +294,7 @@ "name_plural": "pairs of thermal electric gloves (on)", "description": "This is a pair of gloves with internal battery-powered heating elements. They are currently on, and continually draining batteries. Use it to turn them off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 50, + "turns_per_charge": 133, "revert_to": "thermal_gloves", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_gloves" }, "warmth": 60, @@ -351,7 +351,7 @@ "name_plural": "thermal electric balaclavas (on)", "description": "This is a snug cloth mask with internal battery-powered heating elements. It is are currently on, and continually draining batteries. Use it to turn it off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 50, + "turns_per_charge": 133, "revert_to": "thermal_mask", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "thermal_mask" }, "warmth": 60, @@ -430,7 +430,7 @@ "name_plural": "headlamps (on)", "description": "This is an LED headlamp with an adjustable strap so as to be comfortably worn on your head or attached to your helmet. It is turned on, and continually draining batteries. Use it to turn it off.", "flags": [ "LIGHT_300", "CHARGEDIM", "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS", "TRADER_AVOID" ], - "turns_per_charge": 20, + "turns_per_charge": 100, "revert_to": "wearable_light", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "wearable_light" }, "covers": [ "HEAD" ], @@ -487,7 +487,7 @@ "name_plural": "survivor headlamps (on)", "description": "This is a custom made LED headlamp reinforced to be more durable, brighter, and with a larger and more efficient battery pack. The adjustable strap allows it to be comfortably worn on your head or attached to your helmet. It is turned on, and continually draining batteries. Use it to turn it off.", "flags": [ "LIGHT_350", "CHARGEDIM", "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS" ], - "turns_per_charge": 18, + "turns_per_charge": 100, "revert_to": "survivor_light", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "survivor_light" }, "covers": [ "HEAD" ], @@ -1015,9 +1015,10 @@ "type": "TOOL_ARMOR", "name": "pair of light amp goggles (on)", "name_plural": "pairs of light amp goggles (on)", - "description": "A pair of battery-powered goggles that amplify ambient light, allowing you to see in the dark. It is turned on, and continually draining batteries. Use it to turn them off.", + "description": "A pair of battery-powered light amplifying goggles with an infrared illuminator, allowing you to see in the dark. It is turned on, and continually draining batteries. Use it to turn them off.", "flags": [ "GNV_EFFECT", "FRAGILE", "TRADER_AVOID" ], - "turns_per_charge": 9, + "//": "2019 commercial models can operate at under 0.375W with the IR illuminator on" + "turns_per_charge": 2666, "revert_to": "goggles_nv", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "goggles_nv" }, "warmth": 25, @@ -1881,7 +1882,7 @@ "name_plural": "thermal electric outfits (on)", "description": "This suit of thin thermal underwear covers you from head to toe and is equipped with internal battery-powered heating elements. It is currently on, and continually draining batteries. Use it to turn it off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 10, + "turns_per_charge": 13, "revert_to": "thermal_outfit", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "thermal_outfit" }, "covers": [ "HEAD", "MOUTH", "TORSO", "ARMS", "LEGS", "HANDS", "FEET" ], @@ -2208,7 +2209,8 @@ "material": [ "plastic" ], "weight": 179, "volume": 4, - "turns_per_charge": 60, + "//": "3M Peltors claim to go 100 hours on 2 AAs", + "turns_per_charge": 12820, "ammo": "battery", "revert_to": "powered_earmuffs", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "powered_earmuffs" }, @@ -2523,7 +2525,7 @@ "description": "A heated blanket made of polyster. It's turned on, making it nice and toasty while it lasts.", "copy-from": "electric_blanket", "warmth": 90, - "turns_per_charge": 3, + "turns_per_charge": 13, "use_action": { "type": "transform", "msg": "You turn the blanket's heating elements off.", "target": "electric_blanket" }, "magazine_well": 2 } From 75884ed259254208f550aef9fc3ec1d63b271423 Mon Sep 17 00:00:00 2001 From: ymber Date: Sun, 19 May 2019 19:29:42 +0100 Subject: [PATCH 05/76] change power numbers in tools --- data/json/items/tool/radio_tools.json | 2 +- data/json/items/tools.json | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/data/json/items/tool/radio_tools.json b/data/json/items/tool/radio_tools.json index 415c7e93a677e..ecdeb00f5537c 100644 --- a/data/json/items/tool/radio_tools.json +++ b/data/json/items/tool/radio_tools.json @@ -122,7 +122,7 @@ "name": "radio (on)", "name_plural": "radios (on)", "description": "This portable radio is turned on, and continually draining its batteries. It is playing the broadcast being sent from any nearby radio towers.", - "turns_per_charge": 8, + "turns_per_charge": 4000, "revert_to": "radio", "use_action": "RADIO_ON", "flags": [ "TRADER_AVOID" ], diff --git a/data/json/items/tools.json b/data/json/items/tools.json index 4d86a6a16acc3..7006de2b460d2 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -144,7 +144,7 @@ "color": "white", "ammo": "battery", "charges_per_use": 1, - "turns_per_charge": 1, + "turns_per_charge": 125, "use_action": "ECIG", "magazines": [ [ @@ -1740,7 +1740,7 @@ "name_plural": "electric carvers (on)", "description": "This carver is on and the blades are buzzing. Use it to turn it off.", "cutting": 30, - "turns_per_charge": 1, + "turns_per_charge": 7, "revert_to": "carver_off", "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 25 ] ], "use_action": "CARVER_ON", @@ -1869,7 +1869,7 @@ "type": "TOOL", "name": "smartphone - Flashlight", "name_plural": "smartphones - Flashlight", - "turns_per_charge": 50, + "turns_per_charge": 333, "revert_to": "smart_phone", "use_action": { "target": "smart_phone", @@ -4777,7 +4777,7 @@ "description": "This is a light-emitting circuit that has been wired directly to a battery. It provides some weak light and can't be turned off until the battery dies.", "symbol": ";", "color": "green", - "turns_per_charge": 1080, + "turns_per_charge": 1000, "revert_to": "lightstrip_inactive", "revert_msg": "The lightstrip dies.", "flags": [ "LIGHT_4", "NO_UNLOAD", "NO_RELOAD" ] @@ -5377,7 +5377,7 @@ "name": "mp3 player (on)", "name_plural": "mp3 players (on)", "description": "This mp3 player is turned on and playing some great tunes, raising your morale steadily while on your person. It runs through batteries quickly; you can turn it off by using it. It also obscures your hearing.", - "turns_per_charge": 150, + "turns_per_charge": 10000, "revert_to": "mp3", "use_action": "MP3_ON", "flags": [ "TRADER_AVOID" ], @@ -5396,7 +5396,7 @@ "symbol": ";", "color": "red", "ammo": "battery", - "turns_per_charge": 10, + "turns_per_charge": 1, "revert_to": "multi_cooker", "qualities": [ [ "CONTAIN", 1 ] ], "use_action": "MULTICOOKER", @@ -5566,7 +5566,7 @@ "name": "noise emitter (on)", "name_plural": "noise emitters (on)", "description": "This device has been turned on and is emitting horrible crackles, pops and other static sounds. Quick, get away from it before it draws zombies to you!", - "turns_per_charge": 1, + "turns_per_charge": 5, "revert_to": "noise_emitter", "use_action": "NOISE_EMITTER_ON", "flags": [ "RADIO_MODABLE", "TRADER_AVOID" ] @@ -6302,7 +6302,7 @@ "name": "reading light (active)", "name_plural": "reading lights (active)", "description": "A little clip-on LED light, meant for reading books in the dark. This one is turned on.", - "turns_per_charge": 120, + "turns_per_charge": 4000, "revert_to": "reading_light", "use_action": { "target": "reading_light", "msg": "You switch off the reading light.", "menu_text": "Turn off", "type": "transform" }, "flags": [ "LIGHT_8", "CHARGEDIM" ] @@ -6818,7 +6818,7 @@ "name": "tactical tonfa (on)", "name_plural": "tactical tonfas (on)", "description": "This is a reinforced plastic tonfa; the core is hollowed out and is filled with capacitors and a high-yield rechargeable storage battery. When a switch on the handle is pressed, a high-voltage current is transmitted to the two electrodes mounted in the end of the weapon, and by extension to anyone unfortunate enough to be in contact with them. The integral flashlight is turned on, continually draining power and lighting the surrounding area.", - "turns_per_charge": 15, + "turns_per_charge": 67, "revert_to": "shocktonfa_off", "use_action": "SHOCKTONFA_ON", "flags": [ "LIGHT_450", "CHARGEDIM", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE", "BELT_CLIP" ], @@ -6985,7 +6985,7 @@ "name": "smart lamp (on)", "name_plural": "smart lamps (on)", "description": "This is a smart lamp, this smart lamp is turned on. It can be deactivated remotely.", - "turns_per_charge": 25, + "turns_per_charge": 100, "revert_to": "smart_lamp", "use_action": { "target": "smart_lamp", "msg": "Your smart lamp turned off", "menu_text": "Turn off", "type": "transform" }, "flags": [ "RADIO_ACTIVATION", "RADIOSIGNAL_2", "LIGHT_240", "CHARGEDIM", "TRADER_AVOID" ], @@ -7670,7 +7670,7 @@ "name": "small space heater (on)", "name_plural": "small space heaters (on)", "description": "A portable electric heater that steadily emits warm air. Raises temperature about 10 degrees C.", - "turns_per_charge": 30, + "turns_per_charge": 2, "emits": [ "emit_hot_air2_stream" ], "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ], "revert_to": "small_space_heater", @@ -7713,7 +7713,7 @@ "name": "large space heater (on)", "name_plural": "large space heaters (on)", "description": "A portable electric heater that steadily emits warm air. Raises temperature about 10 degrees C and fills a larger volume of air than the smaller version.", - "turns_per_charge": 20, + "turns_per_charge": 1, "emits": [ "emit_hot_air2_blast" ], "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ], "revert_to": "large_space_heater", From d5a8531250a9ad6c5c2524e19bd9fbe967c63ec1 Mon Sep 17 00:00:00 2001 From: ymber Date: Sat, 25 May 2019 10:23:31 +0100 Subject: [PATCH 06/76] define power draw in mW --- src/item.cpp | 52 ++++++++++++++++++++++++++------------------ src/item_factory.cpp | 1 + src/itype.h | 1 + 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/src/item.cpp b/src/item.cpp index dcebd62efdc16..baf521fdbdfd9 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -7921,33 +7921,43 @@ bool item::process_wet( player * /*carrier*/, const tripoint & /*pos*/ ) bool item::process_tool( player *carrier, const tripoint &pos ) { + int energy = 0; if( type->tool->turns_per_charge > 0 && static_cast( calendar::turn ) % type->tool->turns_per_charge == 0 ) { - auto qty = std::max( ammo_required(), 1 ); - qty -= ammo_consume( qty, pos ); + energy = std::max( ammo_required(), 1 ); - // for items in player possession if insufficient charges within tool try UPS - if( carrier && has_flag( "USE_UPS" ) ) { - if( carrier->use_charges_if_avail( "UPS", qty ) ) { - qty = 0; - } + } else if( type->tool->power_draw > 0 ) { + // power_draw in mW / 1000 to give J per second + int energy_j = type->tool->power_draw / 1000; + // J / 1000 for kJ battery units + int energy_bat = energy_j / 1000; + // energy_bat remainder results in chance at additional charge/discharge + energy_bat += x_in_y( energy_j % 1000, 1000 ) ? 1 : 0; + energy = energy_bat; + } + energy -= ammo_consume( energy, pos ); + + // for items in player possession if insufficient charges within tool try UPS + if( carrier && has_flag( "USE_UPS" ) ) { + if( carrier->use_charges_if_avail( "UPS", energy ) ) { + energy = 0; } + } - // if insufficient available charges shutdown the tool - if( qty > 0 ) { - if( carrier && has_flag( "USE_UPS" ) ) { - carrier->add_msg_if_player( m_info, _( "You need an UPS to run the %s!" ), tname() ); - } + // if insufficient available charges shutdown the tool + if( energy > 0 ) { + if( carrier && has_flag( "USE_UPS" ) ) { + carrier->add_msg_if_player( m_info, _( "You need an UPS to run the %s!" ), tname() ); + } - // invoking the object can convert the item to another type - const bool had_revert_to = type->tool->revert_to.has_value(); - type->invoke( carrier != nullptr ? *carrier : g->u, *this, pos ); - if( had_revert_to ) { - deactivate( carrier ); - return false; - } else { - return true; - } + // invoking the object can convert the item to another type + const bool had_revert_to = type->tool->revert_to.has_value(); + type->invoke( carrier != nullptr ? *carrier : g->u, *this, pos ); + if( had_revert_to ) { + deactivate( carrier ); + return false; + } else { + return true; } } diff --git a/src/item_factory.cpp b/src/item_factory.cpp index e383dd78eab2a..37ec2f3ecd6c5 100644 --- a/src/item_factory.cpp +++ b/src/item_factory.cpp @@ -1489,6 +1489,7 @@ void Item_factory::load( islot_tool &slot, JsonObject &jo, const std::string &sr assign( jo, "charges_per_use", slot.charges_per_use, strict, 0 ); assign( jo, "charge_factor", slot.charge_factor, strict, 1 ); assign( jo, "turns_per_charge", slot.turns_per_charge, strict, 0 ); + assign( jo, "power_draw", slot.power_draw, strict, 0 ); assign( jo, "revert_to", slot.revert_to, strict ); assign( jo, "revert_msg", slot.revert_msg, strict ); assign( jo, "sub", slot.subtype, strict ); diff --git a/src/itype.h b/src/itype.h index 854d469083f48..3d3473328cad4 100644 --- a/src/itype.h +++ b/src/itype.h @@ -101,6 +101,7 @@ struct islot_tool { int charge_factor = 1; int charges_per_use = 0; int turns_per_charge = 0; + int power_draw = 0; std::vector rand_charges; }; From fe543c53e910a35899edd3c38dc160b1b900016c Mon Sep 17 00:00:00 2001 From: ymber Date: Sat, 25 May 2019 10:51:11 +0100 Subject: [PATCH 07/76] use watts for item power --- data/json/items/tool/lighting.json | 6 ++--- data/json/items/tool/radio_tools.json | 2 +- data/json/items/tool_armor.json | 24 ++++++++++---------- data/json/items/tools.json | 32 +++++++++++++-------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/data/json/items/tool/lighting.json b/data/json/items/tool/lighting.json index 5c756b4209ede..9dfd45fcef3f3 100644 --- a/data/json/items/tool/lighting.json +++ b/data/json/items/tool/lighting.json @@ -38,7 +38,7 @@ "type": "TOOL", "name": "electric lantern (on)", "name_plural": "electric lanterns (on)", - "turns_per_charge": 200, + "power_draw": 5000, "revert_to": "electric_lantern", "use_action": { "menu_text": "Turn off", "type": "transform", "target": "electric_lantern", "msg": "You turn the lamp off." }, "flags": [ "RADIO_MODABLE", "LIGHT_15", "TRADER_AVOID", "ALLOWS_REMOTE_USE" ] @@ -87,7 +87,7 @@ "type": "TOOL", "name": "flashlight (on)", "name_plural": "flashlights (on)", - "turns_per_charge": 100, + "power_draw": 10000, "revert_to": "flashlight", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "You turn the flashlight off.", "target": "flashlight" }, "flags": [ "LIGHT_300", "CHARGEDIM", "TRADER_AVOID" ] @@ -172,7 +172,7 @@ "type": "TOOL", "name": "heavy duty flashlight (on)", "name_plural": "heavy duty flashlights (on)", - "turns_per_charge": 67, + "power_draw": 15000, "revert_to": "heavy_flashlight", "use_action": { "menu_text": "Turn off", diff --git a/data/json/items/tool/radio_tools.json b/data/json/items/tool/radio_tools.json index ecdeb00f5537c..d45595c7bd67e 100644 --- a/data/json/items/tool/radio_tools.json +++ b/data/json/items/tool/radio_tools.json @@ -122,7 +122,7 @@ "name": "radio (on)", "name_plural": "radios (on)", "description": "This portable radio is turned on, and continually draining its batteries. It is playing the broadcast being sent from any nearby radio towers.", - "turns_per_charge": 4000, + "power_draw": 500, "revert_to": "radio", "use_action": "RADIO_ON", "flags": [ "TRADER_AVOID" ], diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index bbbaf39dee86a..b03ec9d420963 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -53,7 +53,7 @@ "name_plural": "mining helmets (on)", "description": "This is a mining helmet with a heavy duty LED flashlight. The flashlight is turned on, and continually draining its batteries. Use it to turn it off.", "flags": [ "LIGHT_450", "CHARGEDIM", "WATERPROOF", "TRADER_AVOID" ], - "turns_per_charge": 67, + "power_draw": 15000, "revert_to": "miner_hat", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "The %s flicks off.", "target": "miner_hat" }, "covers": [ "HEAD" ], @@ -179,7 +179,7 @@ "name_plural": "pairs of thermal electric socks (on)", "description": "This is a pair of socks with internal battery-powered heating elements. They are currently on, and continually draining batteries. Use it to turn them off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 133, + "power_draw": 7500, "revert_to": "thermal_socks", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_socks" }, "warmth": 60, @@ -236,7 +236,7 @@ "name_plural": "thermal electric suits (on)", "description": "This is a full-body suit of thin thermal underwear equipped with internal battery-powered heating elements. It is currently on, and continually draining batteries. Use it to turn it off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 15, + "power_draw": 120000, "revert_to": "thermal_suit", "warmth": 60, "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_suit" }, @@ -294,7 +294,7 @@ "name_plural": "pairs of thermal electric gloves (on)", "description": "This is a pair of gloves with internal battery-powered heating elements. They are currently on, and continually draining batteries. Use it to turn them off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 133, + "power_draw": 7500, "revert_to": "thermal_gloves", "use_action": { "menu_text": "Turn off", "type": "transform", "msg": "Your %s deactivates.", "target": "thermal_gloves" }, "warmth": 60, @@ -351,7 +351,7 @@ "name_plural": "thermal electric balaclavas (on)", "description": "This is a snug cloth mask with internal battery-powered heating elements. It is are currently on, and continually draining batteries. Use it to turn it off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 133, + "power_draw": 7500, "revert_to": "thermal_mask", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "thermal_mask" }, "warmth": 60, @@ -430,7 +430,7 @@ "name_plural": "headlamps (on)", "description": "This is an LED headlamp with an adjustable strap so as to be comfortably worn on your head or attached to your helmet. It is turned on, and continually draining batteries. Use it to turn it off.", "flags": [ "LIGHT_300", "CHARGEDIM", "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS", "TRADER_AVOID" ], - "turns_per_charge": 100, + "power_draw": 10000, "revert_to": "wearable_light", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "wearable_light" }, "covers": [ "HEAD" ], @@ -487,7 +487,7 @@ "name_plural": "survivor headlamps (on)", "description": "This is a custom made LED headlamp reinforced to be more durable, brighter, and with a larger and more efficient battery pack. The adjustable strap allows it to be comfortably worn on your head or attached to your helmet. It is turned on, and continually draining batteries. Use it to turn it off.", "flags": [ "LIGHT_350", "CHARGEDIM", "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS" ], - "turns_per_charge": 100, + "power_draw": 10000, "revert_to": "survivor_light", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "survivor_light" }, "covers": [ "HEAD" ], @@ -1017,8 +1017,8 @@ "name_plural": "pairs of light amp goggles (on)", "description": "A pair of battery-powered light amplifying goggles with an infrared illuminator, allowing you to see in the dark. It is turned on, and continually draining batteries. Use it to turn them off.", "flags": [ "GNV_EFFECT", "FRAGILE", "TRADER_AVOID" ], - "//": "2019 commercial models can operate at under 0.375W with the IR illuminator on" - "turns_per_charge": 2666, + "//": "2019 commercial models can operate at under 0.375W with the IR illuminator on", + "power_draw": 375, "revert_to": "goggles_nv", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "goggles_nv" }, "warmth": 25, @@ -1882,7 +1882,7 @@ "name_plural": "thermal electric outfits (on)", "description": "This suit of thin thermal underwear covers you from head to toe and is equipped with internal battery-powered heating elements. It is currently on, and continually draining batteries. Use it to turn it off.", "flags": [ "VARSIZE", "SKINTIGHT", "TRADER_AVOID" ], - "turns_per_charge": 13, + "power_draw": 130000, "revert_to": "thermal_outfit", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "thermal_outfit" }, "covers": [ "HEAD", "MOUTH", "TORSO", "ARMS", "LEGS", "HANDS", "FEET" ], @@ -2210,7 +2210,7 @@ "weight": 179, "volume": 4, "//": "3M Peltors claim to go 100 hours on 2 AAs", - "turns_per_charge": 12820, + "power_draw": 60, "ammo": "battery", "revert_to": "powered_earmuffs", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "The %s flicks off.", "target": "powered_earmuffs" }, @@ -2525,7 +2525,7 @@ "description": "A heated blanket made of polyster. It's turned on, making it nice and toasty while it lasts.", "copy-from": "electric_blanket", "warmth": 90, - "turns_per_charge": 13, + "power_draw": 100000, "use_action": { "type": "transform", "msg": "You turn the blanket's heating elements off.", "target": "electric_blanket" }, "magazine_well": 2 } diff --git a/data/json/items/tools.json b/data/json/items/tools.json index 7006de2b460d2..813dbb044fe93 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -144,7 +144,7 @@ "color": "white", "ammo": "battery", "charges_per_use": 1, - "turns_per_charge": 125, + "power_draw": 7500, "use_action": "ECIG", "magazines": [ [ @@ -1740,7 +1740,7 @@ "name_plural": "electric carvers (on)", "description": "This carver is on and the blades are buzzing. Use it to turn it off.", "cutting": 30, - "turns_per_charge": 7, + "power_draw": 150000, "revert_to": "carver_off", "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 25 ] ], "use_action": "CARVER_ON", @@ -1869,7 +1869,7 @@ "type": "TOOL", "name": "smartphone - Flashlight", "name_plural": "smartphones - Flashlight", - "turns_per_charge": 333, + "power_draw": 3000, "revert_to": "smart_phone", "use_action": { "target": "smart_phone", @@ -2074,7 +2074,7 @@ "//": "Circular saw would be very fast but imprecise butchering tool - alas the qualities are not separate and so speed is sacrificed.", "description": "A lightweight handheld cordless circular saw. It is currently on and the blade is spinning; use this item to turn it off.", "cutting": 50, - "turns_per_charge": 1, + "power_draw": 1200000, "revert_to": "circsaw_off", "qualities": [ [ "CUT", 1 ], [ "SAW_W", 2 ], [ "BUTCHER", -40 ] ], "use_action": "CIRCSAW_ON", @@ -2255,7 +2255,7 @@ "description": "This electric combat chainsaw is on, and is continuously draining power. Use it to turn it off.", "to_hit": -4, "cutting": 82, - "turns_per_charge": 1, + "power_draw": 2000000, "revert_to": "e_combatsaw_off", "qualities": [ [ "AXE", 3 ] ], "use_action": "E_COMBATSAW_ON", @@ -2617,7 +2617,7 @@ "symbol": "/", "color": "red", "ammo": "battery", - "turns_per_charge": 1, + "power_draw": 4000000, "revert_to": "elec_chainsaw_off", "techniques": [ "WBLOCK_1", "SPIN", "SWEEP" ], "use_action": "ECS_LAJATANG_OFF", @@ -2959,7 +2959,7 @@ "to_hit": -5, "bashing": 4, "cutting": 70, - "turns_per_charge": 1, + "power_draw": 2000000, "revert_to": "elec_chainsaw_off", "qualities": [ [ "AXE", 4 ], [ "BUTCHER", -100 ] ], "use_action": "ELEC_CHAINSAW_ON", @@ -4777,7 +4777,7 @@ "description": "This is a light-emitting circuit that has been wired directly to a battery. It provides some weak light and can't be turned off until the battery dies.", "symbol": ";", "color": "green", - "turns_per_charge": 1000, + "power_draw": 1000, "revert_to": "lightstrip_inactive", "revert_msg": "The lightstrip dies.", "flags": [ "LIGHT_4", "NO_UNLOAD", "NO_RELOAD" ] @@ -5377,7 +5377,7 @@ "name": "mp3 player (on)", "name_plural": "mp3 players (on)", "description": "This mp3 player is turned on and playing some great tunes, raising your morale steadily while on your person. It runs through batteries quickly; you can turn it off by using it. It also obscures your hearing.", - "turns_per_charge": 10000, + "power_draw": 1000, "revert_to": "mp3", "use_action": "MP3_ON", "flags": [ "TRADER_AVOID" ], @@ -5396,7 +5396,7 @@ "symbol": ";", "color": "red", "ammo": "battery", - "turns_per_charge": 1, + "power_draw": 1500000, "revert_to": "multi_cooker", "qualities": [ [ "CONTAIN", 1 ] ], "use_action": "MULTICOOKER", @@ -6302,7 +6302,7 @@ "name": "reading light (active)", "name_plural": "reading lights (active)", "description": "A little clip-on LED light, meant for reading books in the dark. This one is turned on.", - "turns_per_charge": 4000, + "power_draw": 6000, "revert_to": "reading_light", "use_action": { "target": "reading_light", "msg": "You switch off the reading light.", "menu_text": "Turn off", "type": "transform" }, "flags": [ "LIGHT_8", "CHARGEDIM" ] @@ -6818,7 +6818,7 @@ "name": "tactical tonfa (on)", "name_plural": "tactical tonfas (on)", "description": "This is a reinforced plastic tonfa; the core is hollowed out and is filled with capacitors and a high-yield rechargeable storage battery. When a switch on the handle is pressed, a high-voltage current is transmitted to the two electrodes mounted in the end of the weapon, and by extension to anyone unfortunate enough to be in contact with them. The integral flashlight is turned on, continually draining power and lighting the surrounding area.", - "turns_per_charge": 67, + "power_draw": 15000, "revert_to": "shocktonfa_off", "use_action": "SHOCKTONFA_ON", "flags": [ "LIGHT_450", "CHARGEDIM", "DURABLE_MELEE", "TRADER_AVOID", "NONCONDUCTIVE", "BELT_CLIP" ], @@ -6985,7 +6985,7 @@ "name": "smart lamp (on)", "name_plural": "smart lamps (on)", "description": "This is a smart lamp, this smart lamp is turned on. It can be deactivated remotely.", - "turns_per_charge": 100, + "power_draw": 10000, "revert_to": "smart_lamp", "use_action": { "target": "smart_lamp", "msg": "Your smart lamp turned off", "menu_text": "Turn off", "type": "transform" }, "flags": [ "RADIO_ACTIVATION", "RADIOSIGNAL_2", "LIGHT_240", "CHARGEDIM", "TRADER_AVOID" ], @@ -7670,7 +7670,7 @@ "name": "small space heater (on)", "name_plural": "small space heaters (on)", "description": "A portable electric heater that steadily emits warm air. Raises temperature about 10 degrees C.", - "turns_per_charge": 2, + "power_draw": 500000, "emits": [ "emit_hot_air2_stream" ], "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ], "revert_to": "small_space_heater", @@ -7713,7 +7713,7 @@ "name": "large space heater (on)", "name_plural": "large space heaters (on)", "description": "A portable electric heater that steadily emits warm air. Raises temperature about 10 degrees C and fills a larger volume of air than the smaller version.", - "turns_per_charge": 1, + "power_draw": 1000000, "emits": [ "emit_hot_air2_blast" ], "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ], "revert_to": "large_space_heater", @@ -8227,7 +8227,7 @@ "name_plural": "hedge trimmers (on)", "description": "A cordless, double-sided, gasoline-powered hedge trimmer. It is currently on, ready to do some zombie topiary; use this item to turn it off.", "cutting": 40, - "turns_per_charge": 1, + "power_draw": 500000, "revert_to": "trimmer_off", "use_action": "TRIMMER_ON", "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -60 ] ], From e2b0233cc29e3c16dc64408cf8841cb7a59352a6 Mon Sep 17 00:00:00 2001 From: RarkGrames Date: Thu, 30 May 2019 23:57:44 +0200 Subject: [PATCH 08/76] Added XL heavy SA + XL SA fix --- data/json/items/armor.json | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/data/json/items/armor.json b/data/json/items/armor.json index ad2b431bb24af..3d5d5665a24d5 100644 --- a/data/json/items/armor.json +++ b/data/json/items/armor.json @@ -10022,7 +10022,7 @@ "type": "ARMOR", "category": "armor", "name": "XL survivor suit", - "description": "A massive home-built combination armor made from a bulletproof vest and a reinforced leather jumpsuit. Protects from the elements as well as from harm.", + "description": "A massive hand-built combination armor made from a bulletproof vest and a reinforced leather jumpsuit. Protects from the elements as well as from harm.", "weight": 12400, "volume": 72, "price": 150000, @@ -10036,7 +10036,30 @@ "encumbrance": 35, "storage": 34, "warmth": 15, - "material_thickness": 3, + "material_thickness": 4, + "environmental_protection": 3, + "flags": [ "OVERSIZE", "VARSIZE", "WATERPROOF", "POCKETS", "HOOD", "RAINPROOF", "STURDY" ] + }, + { + "id": "xlhsurvivor_suit", + "type": "ARMOR", + "category": "armor", + "name": "XL heavy survivor suit", + "description": "A massive, heavy, hand-built combination armor made from a reinforced bulletproof vest and a metal-plated leather jumpsuit. Protects from the elements as well as from harm.", + "weight": 16500, + "volume": 75, + "price": 200000, + "to_hit": -3, + "bashing": 6, + "material": [ "kevlar", "steel", "leather" ], + "symbol": "[", + "color": "dark_gray", + "covers": [ "LEGS", "TORSO", "ARMS" ], + "coverage": 100, + "encumbrance": 45, + "storage": 30, + "warmth": 15, + "material_thickness": 6, "environmental_protection": 3, "flags": [ "OVERSIZE", "VARSIZE", "WATERPROOF", "POCKETS", "HOOD", "RAINPROOF", "STURDY" ] }, From dcc80f1efad4fca2c4a0efb5b02414601fd7b785 Mon Sep 17 00:00:00 2001 From: RarkGrames Date: Fri, 31 May 2019 00:09:22 +0200 Subject: [PATCH 09/76] Added XL kevlar vest --- data/json/items/armor/ammo_pouch.json | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/data/json/items/armor/ammo_pouch.json b/data/json/items/armor/ammo_pouch.json index 53548aa4872d4..ca8a99fdc0c5f 100644 --- a/data/json/items/armor/ammo_pouch.json +++ b/data/json/items/armor/ammo_pouch.json @@ -356,5 +356,37 @@ "flags": [ "MAG_COMPACT" ] }, "flags": [ "STURDY", "OUTER" ] + }, + { + "id": "xlkevlar", + "type": "ARMOR", + "category": "armor", + "name": "XL kevlar vest", + "description": "A massive, hand-built kevlar vest based on the design of existing bullet resistant vests. It has four pouches capable of carrying magazines.", + "weight": 5148, + "volume": 43, + "price": 200000, + "to_hit": -3, + "bashing": 6, + "material": [ "kevlar" ], + "symbol": "[", + "color": "light_gray", + "covers": [ "TORSO" ], + "coverage": 85, + "encumbrance": 17, + "storage": 10, + "warmth": 15, + "material_thickness": 4, + "use_action": { + "type": "holster", + "holster_prompt": "Stash ammo", + "holster_msg": "You stash your %s.", + "multi": 4, + "min_volume": 1, + "max_volume": 4, + "draw_cost": 60, + "flags": [ "MAG_COMPACT" ] + }, + "flags": [ "OVERSIZE", "STURDY", "OUTER" ] } ] From 3ec16b25a118440820d6bebdef6acbb234a7acbb Mon Sep 17 00:00:00 2001 From: RarkGrames Date: Fri, 31 May 2019 00:14:27 +0200 Subject: [PATCH 10/76] Added xl kevlar vest recipe --- data/json/recipes/armor/torso.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/data/json/recipes/armor/torso.json b/data/json/recipes/armor/torso.json index 44f373de23b8b..04d04a06d9afe 100644 --- a/data/json/recipes/armor/torso.json +++ b/data/json/recipes/armor/torso.json @@ -1067,6 +1067,20 @@ "using": [ [ "sewing_standard", 15 ] ], "components": [ [ [ "rag", 4 ] ] ] }, + { + "result": "xlkevlar", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "tailor", + "difficulty": 6, + "time": "50 m", + "reversible": true, + "decomp_learn": 6, + "autolearn": true, + "using": [ [ "sewing_standard", 54 ] ], + "components": [ [ [ "kevlar_plate", 43 ] ] ] + }, { "result": "vest_leather", "type": "recipe", From c1c87549579c942795fe747e906df27191fb6878 Mon Sep 17 00:00:00 2001 From: RarkGrames Date: Fri, 31 May 2019 00:26:23 +0200 Subject: [PATCH 11/76] Added recipe for XL HSA --- data/json/recipes/armor/suit.json | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/data/json/recipes/armor/suit.json b/data/json/recipes/armor/suit.json index de32b2adc7eb2..167030547d2e8 100644 --- a/data/json/recipes/armor/suit.json +++ b/data/json/recipes/armor/suit.json @@ -766,6 +766,38 @@ [ [ "kevlar", 1 ], [ "modularvest", 1 ], [ "swat_armor", 1 ], [ "kevlar_plate", 24 ] ] ] }, + { + "result": "xlhsurvivor_suit", + "type": "recipe", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "tailor", + "difficulty": 8, + "skills_required": [ "fabrication", 8 ], + "time": "540 m", + "autolearn": true, + "using": [ [ "sewing_standard", 200 ] ], + "tools": [ [ [ "welder", 112 ], [ "welder_crude", 168 ], [ "soldering_iron", 168 ], [ "toolset", 168 ] ] ], + "components": [ + [ [ "rag", 30 ] ], + [ [ "leather", 40 ], [ "tanned_hide", 7 ] ], + [ [ "steel_chunk", 8 ], [ "scrap", 24 ] ], + [ [ "coat_rain", 2 ], [ "jacket_windbreaker", 2 ], [ "jacket_evac", 2 ], [ "coat_gut", 2 ] ], + [ + [ "chestrig", 1 ], + [ "legrig", 1 ], + [ "vest", 1 ], + [ "tool_belt", 1 ], + [ "ragpouch", 6 ], + [ "leather_pouch", 4 ], + [ "dump_pouch", 1 ], + [ "purse", 2 ], + [ "fanny", 2 ] + ], + [ [ "duct_tape", 400 ] ], + [ [ "kevlar", 2 ], [ "modularvest", 2 ], [ "swat_armor", 2 ], [ "kevlar_plate", 48 ] ] + ] + }, { "result": "xlsurvivor_suit", "type": "recipe", From ac838d3bfda031103c9ba099371c53bc91f49b6d Mon Sep 17 00:00:00 2001 From: RarkGrames Date: Fri, 31 May 2019 00:31:52 +0200 Subject: [PATCH 12/76] Added XL HSA to No Survivor Armor mod --- data/mods/No_Survivor_Armor/survivor.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mods/No_Survivor_Armor/survivor.json b/data/mods/No_Survivor_Armor/survivor.json index 1be4a7f9f22f6..c191a18d422d5 100644 --- a/data/mods/No_Survivor_Armor/survivor.json +++ b/data/mods/No_Survivor_Armor/survivor.json @@ -43,6 +43,7 @@ "helmet_survivor", "helmet_hsurvivor", "xlsurvivor_suit", + "xlhsurvivor_suit", "gloves_xlsurvivor", "boots_xlsurvivor", "hood_xlsurvivor", From d1d299e16ca9f774c2e7b27a98413108395d733d Mon Sep 17 00:00:00 2001 From: RarkGrames Date: Fri, 31 May 2019 00:36:00 +0200 Subject: [PATCH 13/76] Added "looks_like" to items --- data/json/items/armor.json | 1 + data/json/items/armor/ammo_pouch.json | 1 + 2 files changed, 2 insertions(+) diff --git a/data/json/items/armor.json b/data/json/items/armor.json index 3d5d5665a24d5..b3d9e3deff28e 100644 --- a/data/json/items/armor.json +++ b/data/json/items/armor.json @@ -10046,6 +10046,7 @@ "category": "armor", "name": "XL heavy survivor suit", "description": "A massive, heavy, hand-built combination armor made from a reinforced bulletproof vest and a metal-plated leather jumpsuit. Protects from the elements as well as from harm.", + "looks_like": "hsurvivor_suit", "weight": 16500, "volume": 75, "price": 200000, diff --git a/data/json/items/armor/ammo_pouch.json b/data/json/items/armor/ammo_pouch.json index ca8a99fdc0c5f..7e1cd421e4bb5 100644 --- a/data/json/items/armor/ammo_pouch.json +++ b/data/json/items/armor/ammo_pouch.json @@ -363,6 +363,7 @@ "category": "armor", "name": "XL kevlar vest", "description": "A massive, hand-built kevlar vest based on the design of existing bullet resistant vests. It has four pouches capable of carrying magazines.", + "looks_like": "modularvest", "weight": 5148, "volume": 43, "price": 200000, From 97e6f04e09c0740a68c4be55e5fd77562e6b3545 Mon Sep 17 00:00:00 2001 From: RarkGrames Date: Fri, 31 May 2019 20:47:39 +0200 Subject: [PATCH 14/76] Added disassembly recipes to hsurvivor suits --- data/json/uncraft/armor/suit.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 data/json/uncraft/armor/suit.json diff --git a/data/json/uncraft/armor/suit.json b/data/json/uncraft/armor/suit.json new file mode 100644 index 0000000000000..3c103fa7af3bb --- /dev/null +++ b/data/json/uncraft/armor/suit.json @@ -0,0 +1,20 @@ +[ + { + "result": "xlhsurvivor_suit", + "type": "uncraft", + "skill_used": "tailor", + "difficulty": 3, + "time": 30000, + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "rag", 33 ] ], [ [ "leather", 35 ] ], [ [ "scrap", 24 ] ], [ [ "kevlar", 48 ] ] ] + }, + { + "result": "xlsurvivor_suit", + "type": "uncraft", + "skill_used": "tailor", + "difficulty": 3, + "time": 15000, + "qualities": [ { "id": "CUT", "level": 1 } ], + "components": [ [ [ "rag", 23 ] ], [ [ "leather", 25 ] ], [ [ "scrap", 12 ] ], [ [ "kevlar", 24 ] ] ] + } +] From f9c77c0ec689e201900371703f3ffa5e61a9439a Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Tue, 11 Jun 2019 13:06:14 +0300 Subject: [PATCH 15/76] Fixed typo `irridation` - > `irradiation` --- src/item.cpp | 4 ++-- src/item.h | 2 +- src/iteminfo_query.cpp | 4 ++-- src/iteminfo_query.h | 2 +- src/player.cpp | 6 +++--- src/savegame_json.cpp | 7 ++++--- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/item.cpp b/src/item.cpp index a2e71604dd11e..c4db5889f66a4 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -2464,10 +2464,10 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } } } - if( typeId() == "rad_badge" && parts->test( iteminfo_parts::DESCRIPTION_IRRIDATION ) ) { + if( typeId() == "rad_badge" && parts->test( iteminfo_parts::DESCRIPTION_IRRADIATION ) ) { info.push_back( iteminfo( "DESCRIPTION", string_format( _( "* The film strip on the badge is %s." ), - rad_badge_color( irridation ) ) ) ); + rad_badge_color( irradiation ) ) ) ); } } diff --git a/src/item.h b/src/item.h index 99615cd79a724..931fdafe3017c 100644 --- a/src/item.h +++ b/src/item.h @@ -1990,7 +1990,7 @@ class item : public visitable int poison = 0; // How badly poisoned is it? int frequency = 0; // Radio frequency int note = 0; // Associated dynamic text snippet. - int irridation = 0; // Tracks radiation dosage. + int irradiation = 0; // Tracks radiation dosage. int item_counter = 0; // generic counter to be used with item flags int specific_energy = -10; // Specific energy (0.00001 J/g). Negative value for unprocessed. int temperature = 0; // Temperature of the item (in 0.00001 K). diff --git a/src/iteminfo_query.cpp b/src/iteminfo_query.cpp index 8e0da56fc28d9..8fcaaed8e9c20 100644 --- a/src/iteminfo_query.cpp +++ b/src/iteminfo_query.cpp @@ -51,7 +51,7 @@ std::vector { iteminfo_parts::DESCRIPTION_FLAGS_SIDED, iteminfo_parts::DESCRIPTION_FLAGS_POWERARMOR, iteminfo_parts::DESCRIPTION_FLAGS_POWERARMOR_RADIATIONHINT, - iteminfo_parts::DESCRIPTION_IRRIDATION, + iteminfo_parts::DESCRIPTION_IRRADIATION, iteminfo_parts::DESCRIPTION_RECHARGE_UPSMODDED, iteminfo_parts::DESCRIPTION_RECHARGE_NORELOAD, iteminfo_parts::DESCRIPTION_RECHARGE_UPSCAPABLE, @@ -84,5 +84,5 @@ std::vector { iteminfo_parts::DESCRIPTION_FLAGS_SIDED, iteminfo_parts::DESCRIPTION_FLAGS_POWERARMOR, iteminfo_parts::DESCRIPTION_FLAGS_POWERARMOR_RADIATIONHINT, - iteminfo_parts::DESCRIPTION_IRRIDATION + iteminfo_parts::DESCRIPTION_IRRADIATION } ); diff --git a/src/iteminfo_query.h b/src/iteminfo_query.h index 376eb1b410237..d161dff2b627e 100644 --- a/src/iteminfo_query.h +++ b/src/iteminfo_query.h @@ -165,7 +165,7 @@ enum class iteminfo_parts : size_t { DESCRIPTION_FLAGS_SIDED, DESCRIPTION_FLAGS_POWERARMOR, DESCRIPTION_FLAGS_POWERARMOR_RADIATIONHINT, - DESCRIPTION_IRRIDATION, + DESCRIPTION_IRRADIATION, DESCRIPTION_RECHARGE_UPSMODDED, DESCRIPTION_RECHARGE_NORELOAD, diff --git a/src/player.cpp b/src/player.cpp index e38dbf700c977..aef2758d623df 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -6359,14 +6359,14 @@ bool player::irradiate( float rads, bool bypass ) // Actual irradiation levels of badges and the player aren't precisely matched. // This is intentional. - const int before = it->irridation; + const int before = it->irradiation; const int delta = rng( 0, rads_max ); if( delta == 0 ) { continue; } - it->irridation += delta; + it->irradiation += delta; // If in inventory (not worn), don't print anything. if( inv.has_item( *it ) ) { @@ -6375,7 +6375,7 @@ bool player::irradiate( float rads, bool bypass ) // If the color hasn't changed, don't print anything. const std::string &col_before = rad_badge_color( before ); - const std::string &col_after = rad_badge_color( it->irridation ); + const std::string &col_after = rad_badge_color( it->irradiation ); if( col_before == col_after ) { continue; } diff --git a/src/savegame_json.cpp b/src/savegame_json.cpp index bc209ecfbd1ab..f4fe19116d745 100644 --- a/src/savegame_json.cpp +++ b/src/savegame_json.cpp @@ -1963,7 +1963,8 @@ void item::io( Archive &archive ) archive.io( "poison", poison, 0 ); archive.io( "frequency", frequency, 0 ); archive.io( "note", note, 0 ); - archive.io( "irridation", irridation, 0 ); + // NB! field is named `irridation` in legacy files + archive.io( "irridation", irradiation, 0 ); archive.io( "bday", bday, calendar::time_of_cataclysm ); archive.io( "mission_id", mission_id, -1 ); archive.io( "player_id", player_id, -1 ); @@ -2030,8 +2031,8 @@ void item::io( Archive &archive ) if( poison != 0 && frequency == 0 && ( typeId() == "radio_on" || typeId() == "radio" ) ) { std::swap( frequency, poison ); } - if( poison != 0 && irridation == 0 && typeId() == "rad_badge" ) { - std::swap( irridation, poison ); + if( poison != 0 && irradiation == 0 && typeId() == "rad_badge" ) { + std::swap( irradiation, poison ); } // Compatibility for item type changes: for example soap changed from being a generic item From 4541f9ef48ede88df135a8cd87010f9ece0e5179 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Tue, 11 Jun 2019 13:37:28 +0300 Subject: [PATCH 16/76] Item info flag for plantable seeds --- data/json/flags.json | 6 ++ data/json/items/comestibles/other.json | 6 +- data/json/items/comestibles/seed.json | 96 +++++++++++++------------- 3 files changed, 58 insertions(+), 50 deletions(-) diff --git a/data/json/flags.json b/data/json/flags.json index e31682e259231..dcb3fa481f340 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -257,6 +257,12 @@ "context": [ "COMESTIBLE" ], "description": "forces calories and vitamins to be the ones defined in the json, instead of inheriting from ingredients" }, + { + "id": "PLANTABLE_SEED", + "type": "json_flag", + "context": [ "COMESTIBLE" ], + "info": "You could probably plant these." + }, { "id": "MELTS", "type": "json_flag", diff --git a/data/json/items/comestibles/other.json b/data/json/items/comestibles/other.json index 2663fc4f2bcea..deaa49e80e2d7 100644 --- a/data/json/items/comestibles/other.json +++ b/data/json/items/comestibles/other.json @@ -378,7 +378,8 @@ "description": "Light brown beans, they have many uses, mildly toxic and not recommended, but you could eat them raw.", "price": 90, "fun": -5, - "vitamins": [ [ "iron", 25 ], [ "vitC", 1 ], [ "calcium", 3 ] ] + "vitamins": [ [ "iron", 25 ], [ "vitC", 1 ], [ "calcium", 3 ] ], + "flags": "NUTRIENT_OVERRIDE" }, { "type": "COMESTIBLE", @@ -394,7 +395,8 @@ "description": "Light green raw edamame still in its pod, you should boil or freeze these, or you could eat them while they are still toxic.", "price": 150, "fun": 1, - "vitamins": [ [ "iron", 26 ], [ "vitC", 16 ], [ "calcium", 6 ] ] + "vitamins": [ [ "iron", 26 ], [ "vitC", 16 ], [ "calcium", 6 ] ], + "flags": "NUTRIENT_OVERRIDE" }, { "type": "COMESTIBLE", diff --git a/data/json/items/comestibles/seed.json b/data/json/items/comestibles/seed.json index 24295860c1f31..ab082d3eb7561 100644 --- a/data/json/items/comestibles/seed.json +++ b/data/json/items/comestibles/seed.json @@ -15,7 +15,7 @@ "primary_material": "dried_vegetable", "symbol": ".", "color": "brown", - "flags": "NUTRIENT_OVERRIDE" + "flags": [ "NUTRIENT_OVERRIDE", "PLANTABLE_SEED" ] }, { "abstract": "seed_fruit", @@ -31,7 +31,7 @@ "copy-from": "seed", "name": "mushroom spores", "name_plural": "mushroom spores", - "description": "Some mushroom spores. You could probably plant these.", + "description": "Some mushroom spores.", "charges": 2, "color": "green" }, @@ -54,7 +54,7 @@ "type": "COMESTIBLE", "name": "blackberry seeds", "name_plural": "blackberry seeds", - "description": "Some blackberry seeds. You could probably plant these.", + "description": "Some blackberry seeds.", "seed_data": { "plant_name": "blackberry", "fruit": "blackberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -63,7 +63,7 @@ "type": "COMESTIBLE", "name": "blueberry seeds", "name_plural": "blueberry seeds", - "description": "Some blueberry seeds. You could probably plant these.", + "description": "Some blueberry seeds.", "seed_data": { "plant_name": "blueberry", "fruit": "blueberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -72,7 +72,7 @@ "type": "COMESTIBLE", "name": "cranberry seeds", "name_plural": "cranberry seeds", - "description": "Some cranberry seeds. You could probably plant these.", + "description": "Some cranberry seeds.", "seed_data": { "plant_name": "cranberry", "fruit": "cranberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -81,7 +81,7 @@ "type": "COMESTIBLE", "name": "huckleberry seeds", "name_plural": "huckleberry seeds", - "description": "Some huckleberry seeds. You could probably plant these.", + "description": "Some huckleberry seeds.", "seed_data": { "plant_name": "huckleberry", "fruit": "huckleberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -90,7 +90,7 @@ "type": "COMESTIBLE", "name": "mulberry seeds", "name_plural": "mulberry seeds", - "description": "Some mulberry seeds. You could probably plant these.", + "description": "Some mulberry seeds.", "seed_data": { "plant_name": "mulberry", "fruit": "mulberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -99,7 +99,7 @@ "type": "COMESTIBLE", "name": "elderberry seeds", "name_plural": "elderberry seeds", - "description": "Some elderberry seeds. You could probably plant these.", + "description": "Some elderberry seeds.", "seed_data": { "plant_name": "elderberry", "fruit": "elderberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -108,7 +108,7 @@ "type": "COMESTIBLE", "name": "raspberry seeds", "name_plural": "raspberry seeds", - "description": "Some raspberry seeds. You could probably plant these.", + "description": "Some raspberry seeds.", "seed_data": { "plant_name": "raspberry", "fruit": "raspberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -117,7 +117,7 @@ "type": "COMESTIBLE", "name": "strawberry seeds", "name_plural": "strawberry seeds", - "description": "Some strawberry seeds. You could probably plant these.", + "description": "Some strawberry seeds.", "seed_data": { "plant_name": "strawberry", "fruit": "strawberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -126,7 +126,7 @@ "type": "COMESTIBLE", "name": "grape seeds", "name_plural": "grape seeds", - "description": "Some grape seeds. You could probably plant these.", + "description": "Some grape seeds.", "seed_data": { "plant_name": "grape", "fruit": "grapes", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -135,7 +135,7 @@ "type": "COMESTIBLE", "name": "rose seeds", "name_plural": "rose seeds", - "description": "Some rose seeds. You could probably plant these.", + "description": "Some rose seeds.", "seed_data": { "plant_name": "rose", "fruit": "rose_hips", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -144,7 +144,7 @@ "copy-from": "seed", "name": "tobacco seeds", "name_plural": "tobacco seeds", - "description": "Some tobacco seeds. You could probably plant these.", + "description": "Some tobacco seeds.", "seed_data": { "plant_name": "tobacco", "fruit": "tobacco_raw", "grow": "91 days" } }, { @@ -154,7 +154,7 @@ "price": 160, "name": "barley seeds", "name_plural": "barley seeds", - "description": "Some barley seeds. You could probably plant these.", + "description": "Some barley seeds.", "weight": 5, "charges": 2, "stack_size": 40, @@ -167,7 +167,7 @@ "price": 120, "name": "sugar beet seeds", "name_plural": "sugar beet seeds", - "description": "Some sugar beet seeds. You could probably plant these.", + "description": "Some sugar beet seeds.", "volume": 0, "weight": 5, "stack_size": 40, @@ -180,7 +180,7 @@ "price": 50, "name": "lettuce seeds", "name_plural": "lettuce seeds", - "description": "Some lettuce seeds. You could probably plant these.", + "description": "Some lettuce seeds.", "seed_data": { "plant_name": "lettuce", "fruit": "lettuce", "byproducts": [ "withered" ], "grow": "85 days" } }, { @@ -191,7 +191,7 @@ "name": "cabbage seeds", "name_plural": "cabbage seeds", "color": "light_gray", - "description": "Some white cabbage seeds. You could probably plant these.", + "description": "Some white cabbage seeds.", "seed_data": { "plant_name": "cabbage", "fruit": "cabbage", "byproducts": [ "withered" ], "grow": "85 days" } }, { @@ -201,7 +201,7 @@ "price": 50, "name": "tomato seeds", "name_plural": "tomato seeds", - "description": "Some tomato seeds. You could probably plant these.", + "description": "Some tomato seeds.", "seed_data": { "plant_name": "tomato", "fruit": "tomato", "byproducts": [ "withered" ], "grow": "65 days" } }, { @@ -224,7 +224,7 @@ "price": 50, "name": "broccoli seeds", "name_plural": "broccoli seeds", - "description": "Some broccoli seeds. You could probably plant these.", + "description": "Some broccoli seeds.", "seed_data": { "plant_name": "broccoli", "fruit": "broccoli", "byproducts": [ "withered" ], "grow": "75 days" } }, { @@ -234,7 +234,7 @@ "price": 50, "name": "zucchini seeds", "name_plural": "zucchini seeds", - "description": "Some zucchini seeds. You could probably plant these.", + "description": "Some zucchini seeds.", "seed_data": { "plant_name": "zucchini", "fruit": "zucchini", "byproducts": [ "withered" ], "grow": "47 days" } }, { @@ -244,7 +244,7 @@ "price": 50, "name": "onion seeds", "name_plural": "onion seeds", - "description": "Some onion seeds. You could probably plant these.", + "description": "Some onion seeds.", "seed_data": { "plant_name": "onion", "fruit": "onion", "byproducts": [ "withered" ], "grow": "65 days" } }, { @@ -254,7 +254,7 @@ "price": 50, "name": "garlic seeds", "name_plural": "garlic seeds", - "description": "Some garlic seeds. You could probably plant these.", + "description": "Some garlic seeds.", "seed_data": { "plant_name": "garlic", "fruit": "garlic", "byproducts": [ "withered" ], "grow": "65 days" } }, { @@ -264,7 +264,7 @@ "name": "cattail seeds", "name_plural": "cattail seeds", "color": "green", - "description": "Some cattail seeds. You could probably plant these.", + "description": "Some cattail seeds.", "seed_data": { "plant_name": "cattail", "fruit": "cattail_stalk", "byproducts": [ "cattail_rhizome" ], "grow": "91 days" } }, { @@ -274,7 +274,7 @@ "name": "dahlia seeds", "name_plural": "dahlia seeds", "color": "green", - "description": "Some dahlia seeds. You could probably plant these.", + "description": "Some dahlia seeds.", "seed_data": { "plant_name": "dahlia", "fruit": "dahlia_root", "byproducts": [ "withered" ], "grow": "91 days" } }, { @@ -284,7 +284,7 @@ "name": "decorative plant seeds", "name_plural": "decorative plant seeds", "color": "green", - "description": "Some small decorative plant seeds, likely grass or flower. You could probably plant these, but don't expect them to be useful for anything other than dry plant material.", + "description": "Some small decorative plant seeds, likely grass or flower. Don't expect them to be useful for anything other than dry plant material.", "seed_data": { "plant_name": "decorative plant", "fruit": "withered", "grow": "91 days" } }, { @@ -294,7 +294,7 @@ "name": "cactus seeds", "name_plural": "cactus seeds", "color": "green", - "description": "Some cactus seeds. You could probably plant these.", + "description": "Some cactus seeds.", "seed_data": { "plant_name": "cactus", "fruit": "cactus_pad", "grow": "91 days" } }, { @@ -326,7 +326,7 @@ "price": 50, "name": "carrot seeds", "name_plural": "carrot seeds", - "description": "Some carrot seeds. You could probably plant these.", + "description": "Some carrot seeds.", "seed_data": { "plant_name": "carrot", "fruit": "carrot", "byproducts": [ "withered" ], "grow": "65 days" } }, { @@ -336,7 +336,7 @@ "price": 50, "name": "corn seeds", "name_plural": "corn seeds", - "description": "Some corn seeds. You could probably plant these.", + "description": "Some corn seeds.", "seed_data": { "plant_name": "corn", "fruit": "corn", "byproducts": [ "withered" ], "grow": "80 days" } }, { @@ -347,7 +347,7 @@ "name": "chili pepper seeds", "name_plural": "chili pepper seeds", "color": "white", - "description": "Some chili pepper seeds. You could probably plant these.", + "description": "Some chili pepper seeds.", "seed_data": { "plant_name": "chili pepper", "fruit": "chili_pepper", "byproducts": [ "withered" ], "grow": "65 days" } }, { @@ -357,7 +357,7 @@ "price": 50, "name": "cucumber seeds", "name_plural": "cucumber seeds", - "description": "Some cucumber seeds. You could probably plant these.", + "description": "Some cucumber seeds.", "seed_data": { "plant_name": "cucumber", "fruit": "cucumber", "byproducts": [ "withered" ], "grow": "60 days" } }, { @@ -397,7 +397,7 @@ "name": "fungal seeds", "name_plural": "fungal seeds", "color": "dark_gray", - "description": "Some fungal seeds. You could probably plant these.", + "description": "Some fungal seeds.", "ammo_type": "NULL", "stack_size": 8, "seed_data": { "fruit": "null", "//": "dummy entry, results are hardcoded", "plant_name": "fungal flower", "grow": "91 days" } @@ -449,7 +449,7 @@ "weight": 160, "symbol": ".", "color": "yellow", - "description": "Some soybean seeds. You could probably plant these.", + "description": "Some soybean seeds.", "price": 90, "seed_data": { "plant_name": "soybean", "fruit": "soybean", "byproducts": [ "withered", "raw_edamame" ], "grow": "91 days" } }, @@ -474,7 +474,7 @@ "name": "thyme seeds", "name_plural": "thyme seeds", "color": "green", - "description": "Some thyme seeds. You could probably plant these.", + "description": "Some thyme seeds.", "charges": 2, "seed_data": { "plant_name": "thyme", "fruit": "thyme", "grow": "91 days" } }, @@ -485,7 +485,7 @@ "name": "canola seeds", "name_plural": "canola seeds", "color": "green", - "description": "Some canola seeds. You could probably plant these, or press them into oil.", + "description": "Some canola seeds. You could press them into oil.", "charges": 2, "seed_data": { "plant_name": "canola", "fruit": "seed_canola", "byproducts": [ "withered" ], "grow": "91 days" } }, @@ -526,7 +526,7 @@ "name": "dogbane seeds", "name_plural": "dogbane seeds", "color": "green", - "description": "Some dogbane seeds. You could probably plant these.", + "description": "Some dogbane seeds.", "charges": 2, "seed_data": { "plant_name": "dogbane", "fruit": "dogbane", "byproducts": [ "withered" ], "grow": "91 days" } }, @@ -537,7 +537,7 @@ "name": "bee balm seeds", "name_plural": "bee balm seeds", "color": "green", - "description": "Some bee balm seeds. You could probably plant these.", + "description": "Some bee balm seeds.", "charges": 2, "seed_data": { "plant_name": "bee balm", "fruit": "bee_balm", "byproducts": [ "withered" ], "grow": "91 days" } }, @@ -548,7 +548,7 @@ "name": "mugwort seeds", "name_plural": "mugwort seeds", "color": "green", - "description": "Some mugwort seeds. You could probably plant these.", + "description": "Some mugwort seeds.", "charges": 2, "seed_data": { "plant_name": "mugwort", "fruit": "mugwort", "grow": "91 days" } }, @@ -559,7 +559,7 @@ "name": "buckwheat seeds", "name_plural": "buckwheat seeds", "color": "green", - "description": "Some buckwheat seeds. You could probably plant these.", + "description": "Some buckwheat seeds.", "charges": 2, "seed_data": { "plant_name": "buckwheat", "fruit": "buckwheat", "byproducts": [ "withered" ], "grow": "91 days" } }, @@ -570,7 +570,7 @@ "name": "wild herb seeds", "name_plural": "wild herb seeds", "color": "green", - "description": "Some seeds harvested from wild herbs. You could probably plant these.", + "description": "Some seeds harvested from wild herbs.", "charges": 2, "seed_data": { "plant_name": "wild herb", "fruit": "wild_herbs", "grow": "91 days" } }, @@ -581,7 +581,7 @@ "name": "wild vegetable stems", "name_plural": "wild vegetable stems", "color": "green", - "description": "Some wild vegetable stems. You could probably plant these.", + "description": "Some wild vegetable stems.", "charges": 2, "seed_data": { "plant_name": "wild vegetable", "fruit": "veggy_wild", "byproducts": [ "withered" ], "grow": "91 days" } }, @@ -592,7 +592,7 @@ "name": "dandelion seeds", "name_plural": "dandelion seeds", "color": "green", - "description": "Some dandelion seeds. You could probably plant these.", + "description": "Some dandelion seeds.", "charges": 2, "seed_data": { "plant_name": "dandelion", "fruit": "raw_dandelion", "grow": "91 days" } }, @@ -603,7 +603,7 @@ "name": "rhubarb stems", "name_plural": "rhubarb stems", "color": "green", - "description": "Some rhubarb stems. You could probably plant these.", + "description": "Some rhubarb stems.", "charges": 2, "seed_data": { "plant_name": "rhubarb", "fruit": "rhubarb", "byproducts": [ "withered" ], "grow": "91 days" } }, @@ -621,7 +621,7 @@ "copy-from": "seed_mushroom_base", "name": "morel mushroom spores", "name_plural": "morel mushroom spores", - "description": "Some morel mushroom spores. You could probably plant these.", + "description": "Some morel mushroom spores.", "seed_data": { "plant_name": "morel mushroom", "fruit": "mushroom_morel", "grow": "91 days" } }, { @@ -631,7 +631,7 @@ "comestible_type": "MED", "name": "datura seeds", "name_plural": "datura seeds", - "description": "Small, dark seeds from the spiny pods of a datura plant. Full of powerful psychoactive chemicals, these tiny seeds are a potent analgesic and deliriant, and can be deadly in cases of overdose. You could probably plant these.", + "description": "Small, dark seeds from the spiny pods of a datura plant. Full of powerful psychoactive chemicals, these tiny seeds are a potent analgesic and deliriant, and can be deadly in cases of overdose.", "weight": 2, "price": 0, "stim": 6, @@ -647,7 +647,7 @@ "price": 50, "name": "celery seeds", "name_plural": "celery seeds", - "description": "Some celery seeds. You could probably plant these.", + "description": "Some celery seeds.", "seed_data": { "plant_name": "celery", "fruit": "celery", "byproducts": [ "withered" ], "grow": "130 days" } }, { @@ -657,7 +657,7 @@ "price": 50, "name": "oat seeds", "name_plural": "oat seeds", - "description": "Some oat seeds. You could probably plant these.", + "description": "Some oat seeds.", "material": "wheat", "primary_material": "dried_vegetable", "weight": 5, @@ -670,7 +670,7 @@ "type": "COMESTIBLE", "name": "wheat seeds", "name_plural": "wheat seeds", - "description": "Some wheat seeds. You could probably plant these.", + "description": "Some wheat seeds.", "weight": 5, "price": 50, "stack_size": 40, @@ -765,7 +765,7 @@ "looks_like": "seed_raw_dandelion", "name": "chamomile seeds", "name_plural": "chamomile seeds", - "description": "Some chamomile seeds. You could probably plant these.", + "description": "Some chamomile seeds.", "seed_data": { "plant_name": "chamomile", "fruit": "chamomile", "byproducts": [ "withered" ], "grow": "91 days" } } ] From 2a81d022608a0730db69b766c3a4190f672c2cdd Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Tue, 11 Jun 2019 14:41:20 +0300 Subject: [PATCH 17/76] Updated more seeds descriptions --- data/json/items/comestibles/seed.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/json/items/comestibles/seed.json b/data/json/items/comestibles/seed.json index ab082d3eb7561..4547dfad092de 100644 --- a/data/json/items/comestibles/seed.json +++ b/data/json/items/comestibles/seed.json @@ -211,7 +211,7 @@ "price": 50, "name": "cotton seeds", "name_plural": "cotton seeds", - "description": "Some cotton seeds. Can be processed to produce an edible oil, or can be planted.", + "description": "Some cotton seeds. Can be processed to produce an edible oil.", "weight": 5, "charges": 8, "stack_size": 40, @@ -383,7 +383,7 @@ "quench": -1, "healthy": 1, "calories": 17, - "description": "Seeds of the cannabis plant. Filled with vitamins, they can be roasted or eaten raw, or can be planted.", + "description": "Seeds of the cannabis plant. Filled with vitamins, they can be roasted or eaten raw.", "price": 100, "weight": 2, "charges": 2, @@ -499,7 +499,7 @@ "color": "green", "use_action": "SEED", "calories": 17, - "description": "Some raw pumpkin seeds. Could be fried and eaten or planted.", + "description": "Some raw pumpkin seeds. Could be fried and eaten.", "price": 100, "charges": 2, "seed_data": { "plant_name": "pumpkin", "fruit": "pumpkin", "fruit_div": 3, "byproducts": [ "withered" ], "grow": "91 days" } @@ -514,7 +514,7 @@ "color": "green", "use_action": "SEED", "calories": 17, - "description": "Some raw sunflower seeds. Could be pressed into oil or planted.", + "description": "Some raw sunflower seeds. Could be pressed into oil.", "price": 100, "charges": 2, "seed_data": { "plant_name": "sunflower", "fruit": "seed_sunflower", "byproducts": [ "withered" ], "grow": "91 days" } From ad6a670d41c31d8b0d179e55986f73fb4d38092a Mon Sep 17 00:00:00 2001 From: Matthew Taylor Date: Wed, 12 Jun 2019 07:52:23 +0100 Subject: [PATCH 18/76] Fix recharger comment Co-Authored-By: anothersimulacrum --- src/map.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/map.cpp b/src/map.cpp index 3af84eb9a6abe..187a925a0adca 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -4563,7 +4563,7 @@ static void process_vehicle_items( vehicle &cur_veh, int part ) continue; } if( n.ammo_capacity() > n.ammo_remaining() ) { - // Around 85% efficient, so double discharge every once every 7 seconds + // Around 85% efficient, so double discharge once every 7 seconds const int per_charge = one_in( 7 ) ? 2 : 1; const int missing = cur_veh.discharge_battery( per_charge, false ); if( missing < per_charge && From 71f3510ab883b2ff5afae53db473740286e91e01 Mon Sep 17 00:00:00 2001 From: curstwist <39442864+curstwist@users.noreply.github.com> Date: Wed, 12 Jun 2019 20:05:56 -0400 Subject: [PATCH 19/76] add roof & bar to golfcourse clubhouse --- data/json/mapgen/golfcourse.json | 160 ++++++++++++++++---- data/json/overmap/specials.json | 2 + data/json/overmap_terrain_recreational.json | 16 ++ 3 files changed, 148 insertions(+), 30 deletions(-) diff --git a/data/json/mapgen/golfcourse.json b/data/json/mapgen/golfcourse.json index 99b73c50fc6e4..228278660c356 100644 --- a/data/json/mapgen/golfcourse.json +++ b/data/json/mapgen/golfcourse.json @@ -844,23 +844,16 @@ { "item": "golf_ball", "chance": 65, "repeat": 5, "x": 19, "y": 12 } ], "furniture": { - "#": "f_null", - "+": "f_null", "&": "f_toilet", - ".": "f_null", "C": "f_counter", "S": "f_sink", - "_": "f_null", "a": "f_chair", - "c": "f_null", - "d": "f_null", - "g": "f_null", - "s": "f_null", "t": "f_table", "v": "f_vending_c", - "w": "f_null", "{": "f_rack", - "|": "f_null" + "y": [ "f_indoor_plant_y", "f_indoor_plant" ], + "r": "f_trashcan", + "U": [ "f_dumpster", "f_recycle_bin" ] }, "place_items": [ { "chance": 20, "item": "office_mess", "x": [ 4, 5 ], "y": 10 }, @@ -872,33 +865,32 @@ { "chance": 20, "fuel": 10, "rotation": 0, "status": -1, "vehicle": "golf_carts", "x": 7, "y": 15 }, { "chance": 20, "fuel": 5, "rotation": 0, "status": -1, "vehicle": "golf_carts", "x": 11, "y": 15 }, { "chance": 40, "fuel": 20, "rotation": 270, "status": -1, "vehicle": "golf_carts", "x": 17, "y": 17 }, - { "chance": 40, "fuel": 5, "rotation": 270, "status": -1, "vehicle": "golf_carts", "x": 20, "y": 17 }, { "chance": 40, "fuel": 0, "rotation": 270, "status": -1, "vehicle": "golf_carts", "x": 17, "y": 21 }, - { "chance": 40, "fuel": 10, "rotation": 270, "status": -1, "vehicle": "golf_carts", "x": 20, "y": 21 }, { "chance": 20, "fuel": 15, "rotation": 180, "status": -1, "vehicle": "golf_carts", "x": 3, "y": 22 }, { "chance": 20, "fuel": 20, "rotation": 180, "status": -1, "vehicle": "golf_carts", "x": 7, "y": 22 }, { "chance": 20, "fuel": 0, "rotation": 180, "status": -1, "vehicle": "golf_carts", "x": 11, "y": 22 } ], "toilets": { "&": { } }, + "fill_ter": "t_carpet_purple", "rows": [ "gsssssssssssssssgggggggg", "sssggggggggggggsgggggggg", "ssg||ww|ww|ww||+||ww||gg", - "ss#|__________ccc____|gg", - "ss#|_{{_{{_{{_ccc_{{_|gg", - "ssg|_{{_{{_{{_ccc_{{_|gg", - "ss#|__________ccc____|gg", - "ss#|__CC______ccc___v|gg", - "ssg|___C______ccc____|gg", - "ss#|_a_C______ccc___v|gg", - "ss#|tttC______ccc____|gg", - "ssg|||||______ccc_{{_|gg", - "ss#|___+______ccc_{{_|gg", - "ss#|&_S|______ccc____|gg", + "ss#|y_________ccc____|gg", + "ss#|_{{c{{c{{ccccc{{_|gg", + "ssg|_{{c{{c{{ccccc{{_|gg", + "ss#|_ccccccccccccccc_|gg", + "ss#|_cCCccccccccccccv|gg", + "ssg|_ccCccccccccccccr|gg", + "ss#|_acCccccccccccccv|gg", + "ss#|ttty_ccccccccccc_|gg", + "ssg|||||_ccccccccc{{_|gg", + "ss#|___+_ccccccccc{{_|gg", + "ss#|&_S|y_____ccc____|gg", "ssg||||||||ww||+||ww||gg", - "ss....................gg", - "ss....................gg", - "ss....................gg", + "ss.................<|Ugg", + "ss.................<|Ugg", + "ss.................|||gg", "ss....................gg", "ss....................gg", "ss....................gg", @@ -911,25 +903,133 @@ "+": "t_door_c", "&": "t_floor", ".": "t_pavement", - "C": "t_floor", + "U": "t_pavement", "S": "t_floor", "_": "t_floor", - "a": "t_floor", "c": "t_carpet_purple", "d": "t_dirt", "g": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ], "s": "t_sidewalk", "t": "t_floor", "v": "t_floor", + "r": "t_floor", + "y": "t_floor", "w": "t_window", - "{": "t_floor", - "|": "t_wall" + "|": "t_wall_g", + "<": "t_stairs_up" } }, "om_terrain": "golfcourse_31", "type": "mapgen", "weight": 100 }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "golfcourse_31_2ndfloor", + "object": { + "fill_ter": "t_floor", + "rows": [ + " ", + " ", + " ################### ", + " #**hth*hth*hth*hth# ", + " #c****************# ", + " #ca**|||00||00|||*# ", + " #ca**|T......C.f|*# ", + " #ca**0..HTH..C.f0*# ", + " #ca**+..HTH..CAC|*# ", + " #ca**0..HTH..C.C0*# ", + " #ca**|T.........|4# ", + " #ca**||0||++||0||*# ", + " #ca***************# ", + " #*****************# ", + " ################**# ", + " >*# ", + " >*# ", + " ### ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { + ".": "t_floor", + " ": "t_open_air", + "#": "t_metal_railing", + "|": "t_wall_g", + "*": "t_tile_flat_roof", + "c": "t_tile_flat_roof", + "a": "t_tile_flat_roof", + "h": "t_tile_flat_roof", + "t": "t_tile_flat_roof", + "+": "t_door_c", + "0": "t_window_domestic", + ">": "t_stairs_down", + "4": "t_gutter_downspout" + }, + "furniture": { + "a": "f_stool", + "A": "f_stool", + "c": "f_counter", + "C": "f_counter", + "f": "f_glass_fridge", + "h": "f_chair", + "H": "f_chair", + "t": "f_table", + "T": "f_table" + }, + "place_loot": [ + { "item": "television", "x": 9, "y": 6, "chance": 100 }, + { "item": "television", "x": 9, "y": 10, "chance": 100 }, + { "item": "stepladder", "x": 20, "y": 6, "chance": 20 } + ], + "items": { + "T": { "item": "alcohol_bottled_canned", "chance": 20 }, + "t": { "item": "alcohol_bottled_canned", "chance": 20 }, + "f": { "item": "alcohol_bottled_canned", "chance": 30, "repeat": [ 2, 4 ] }, + "C": { "item": "snacks", "chance": 30, "repeat": [ 1, 2 ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "golfcourse_31_roof", + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " |22222222223 ", + " |.......A..3 ", + " |..........3 ", + " |.X........3 ", + " |..........3 ", + " |.......:..5 ", + " |----------3 ", + " ", + " ", + " ", + " K ", + " K ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { "K": "t_open_air_rooved" } + } + }, { "method": "json", "object": { diff --git a/data/json/overmap/specials.json b/data/json/overmap/specials.json index 2770c160e0f1a..c4260a01de767 100644 --- a/data/json/overmap/specials.json +++ b/data/json/overmap/specials.json @@ -2091,6 +2091,8 @@ { "point": [ 2, 2, 0 ], "overmap": "golfcourse_22_north" }, { "point": [ 3, 0, 0 ], "overmap": "golfcourse_30_north" }, { "point": [ 3, 1, 0 ], "overmap": "golfcourse_31_north" }, + { "point": [ 3, 1, 1 ], "overmap": "golfcourse_31_2ndfloor_north" }, + { "point": [ 3, 1, 2 ], "overmap": "golfcourse_31_roof_north" }, { "point": [ 3, 2, 0 ], "overmap": "golfcourse_32_north" } ], "connections": [ { "point": [ 3, -1, 0 ], "terrain": "road" } ], diff --git a/data/json/overmap_terrain_recreational.json b/data/json/overmap_terrain_recreational.json index f8c6b204b4444..8404020e093ed 100644 --- a/data/json/overmap_terrain_recreational.json +++ b/data/json/overmap_terrain_recreational.json @@ -565,6 +565,22 @@ "sym": "G", "color": "light_gray" }, + { + "type": "overmap_terrain", + "id": "golfcourse_31_2ndfloor", + "copy-from": "generic_city_building_no_sidewalk", + "name": "golf course bar", + "sym": "G", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": "golfcourse_31_roof", + "copy-from": "generic_city_building_no_sidewalk", + "name": "golf course service building roof", + "sym": "G", + "color": "light_gray" + }, { "type": "overmap_terrain", "id": "golfcourse_32", From c5e5e1b42f1c3bf9ea94dab73264275f53aeb36e Mon Sep 17 00:00:00 2001 From: AJ Date: Thu, 13 Jun 2019 02:06:03 -0400 Subject: [PATCH 20/76] Updates Morale Menu for clarity (#31164) --- src/morale.cpp | 117 ++++++++++++++++++++++++++++++++++++++++++++++--- src/morale.h | 18 +++++++- 2 files changed, 127 insertions(+), 8 deletions(-) diff --git a/src/morale.cpp b/src/morale.cpp index bb980bdb4bc83..8b75c5f05ae24 100644 --- a/src/morale.cpp +++ b/src/morale.cpp @@ -185,6 +185,16 @@ time_duration player_morale::morale_point::pick_time( const time_duration curren return ( remaining_time <= new_time && same_sign ) ? new_time : remaining_time; } +void player_morale::morale_point::set_percent_contribution( double contribution ) +{ + percent_contribution = contribution; +} + + +double player_morale::morale_point::get_percent_contribution() +{ + return percent_contribution; +} void player_morale::morale_point::decay( const time_duration ticks ) { if( ticks < 0_turns ) { @@ -348,6 +358,61 @@ morale_mult player_morale::get_temper_mult() const return mult; } +void player_morale::calculate_percentage() +{ + const morale_mult mult = get_temper_mult(); + + int sum_of_positive_squares = 0; + int sum_of_negative_squares = 0; + + for( auto &m : points ) { + const int bonus = m.get_net_bonus( mult ); + if( bonus > 0 ) { + sum_of_positive_squares += pow( bonus, 2 ); + } else { + sum_of_negative_squares += pow( bonus, 2 ); + } + } + + for( auto &m : points ) { + const int bonus = m.get_net_bonus( mult ); + if( bonus > 0 ) { + m.set_percent_contribution( ( pow( bonus, 2 ) / sum_of_positive_squares ) * 100 ); + } else { + m.set_percent_contribution( ( pow( bonus, 2 ) / sum_of_negative_squares ) * 100 ); + } + } +} + +int player_morale::get_total_negative_value() const +{ + const morale_mult mult = get_temper_mult(); + int sum = 0; + for( auto &m : points ) { + const int bonus = m.get_net_bonus( mult ); + if( bonus < 0 ) { + sum += pow( bonus, 2 ); + } + } + return sqrt( sum ); +} + +int player_morale::get_total_positive_value() const +{ + const morale_mult mult = get_temper_mult(); + int sum = 0; + for( auto &m : points ) { + const int bonus = m.get_net_bonus( mult ); + if( bonus > 0 ) { + sum += pow( bonus, 2 ); + } + + } + return sqrt( sum ); +} + + + int player_morale::get_level() const { if( !level_is_valid ) { @@ -394,11 +459,16 @@ void player_morale::decay( const time_duration ticks ) void player_morale::display( double focus_gain ) { - const char *morale_gain_caption = _( "Total morale gain" ); + /*calculates the percent contributions of the morale points, + * must be done before anything else in this method + */ + calculate_percentage(); + + const char *morale_gain_caption = _( "Total morale change" ); const char *focus_gain_caption = _( "Focus gain per minute" ); const char *points_is_empty = _( "Nothing affects your morale" ); - int w_extra = 8; + int w_extra = 16; // Figure out how wide the source column needs to be. int source_column_width = std::max( utf8_width( morale_gain_caption ), @@ -417,14 +487,24 @@ void player_morale::display( double focus_gain ) const int win_y = ( TERMY - win_h ) / 2; catacurses::window w = catacurses::newwin( win_h, win_w, win_y, win_x ); - - const auto print_line = [ w ]( int y, const char *label, double value ) -> int { + //lambda function used to print almost everything to the window + const auto print_line = [ w ]( int y, const char *label, double value, bool isPercentage = false, + nc_color color_override = c_unset ) -> int { nc_color color; if( value != 0.0 ) { const int decimals = ( value - static_cast( value ) != 0.0 ) ? 2 : 0; - color = ( value > 0.0 ) ? c_green : c_red; - mvwprintz( w, y, getmaxx( w ) - 8, color, "%+6.*f", decimals, value ); + if( color_override == c_unset ) { + color = ( value > 0.0 ) ? c_green : c_light_red; + } else { + color = color_override; + } + if( isPercentage ) { + mvwprintz( w, y, getmaxx( w ) - 8, color, "%6.*f%%", decimals, value ); + } else { + mvwprintz( w, y, getmaxx( w ) - 8, color, "%+6.*f", decimals, value ); + } + } else { color = c_dark_gray; @@ -439,6 +519,7 @@ void player_morale::display( double focus_gain ) for( ;; ) { + //creates the window werase( w ); draw_border( w ); @@ -456,6 +537,8 @@ void player_morale::display( double focus_gain ) if( !points.empty() ) { const char *source_column = _( "Source" ); const char *value_column = _( "Value" ); + const char *total_positve_label = _( "Total positive morale" ); + const char *total_negitive_label = _( "Total negative morale" ); mvwprintz( w, 3, 2, c_light_gray, source_column ); mvwprintz( w, 3, win_w - utf8_width( value_column ) - 2, c_light_gray, value_column ); @@ -463,11 +546,31 @@ void player_morale::display( double focus_gain ) const morale_mult mult = get_temper_mult(); int line = 0; + line += print_line( 4 + line, total_positve_label, get_total_positive_value(), false, + c_light_green ); + //prints out all the positive morale effects for( size_t i = offset; i < static_cast( rows_total ); ++i ) { const std::string name = points[i].get_name(); const int bonus = points[i].get_net_bonus( mult ); + if( bonus > 0 ) { + line += print_line( 4 + line, name.c_str(), points[i].get_percent_contribution(), true ); + } - line += print_line( 4 + line, name.c_str(), bonus ); + if( line >= rows_visible ) { + break; // This prevents overflowing (unlikely, but just in case) + } + } + line++; //adds a space in the GUI + //prints out all the negitve morale effects + line += print_line( 4 + line, total_negitive_label, -1 * get_total_negative_value(), false, c_red ); + + for( size_t i = offset; i < static_cast( rows_total ); ++i ) { + const std::string name = points[i].get_name(); + const int bonus = points[i].get_net_bonus( mult ); + if( bonus < 0 ) { + line += print_line( 4 + line, name.c_str(), points[i].get_percent_contribution(), true, + c_light_red ); + } if( line >= rows_visible ) { break; // This prevents overflowing (unlikely, but just in case) } diff --git a/src/morale.h b/src/morale.h index b3dcef27f337e..a7f9b8a780410 100644 --- a/src/morale.h +++ b/src/morale.h @@ -53,6 +53,13 @@ class player_morale * Only permanent morale is checked */ bool consistent_with( const player_morale &morale ) const; + /**calculates the percentage contribution for each morale point*/ + void calculate_percentage(); + + int get_total_positive_value() const; + int get_total_negative_value() const; + + void on_mutation_gain( const trait_id &mid ); void on_mutation_loss( const trait_id &mid ); void on_stat_change( const std::string &stat, int value ); @@ -66,6 +73,7 @@ class player_morale void load( JsonObject &jsin ); private: + class morale_point { public: @@ -99,7 +107,11 @@ class player_morale void add( int new_bonus, int new_max_bonus, time_duration new_duration, time_duration new_decay_start, bool new_cap ); void decay( time_duration ticks = 1_turns ); - + /* + *contribution should be bettween [0,100] (inclusive) + */ + void set_percent_contribution( double contribution ); + double get_percent_contribution(); private: morale_type type; const itype *item_type; @@ -108,6 +120,10 @@ class player_morale time_duration duration; // Zero duration == infinity time_duration decay_start; time_duration age; + /** + *this point's percent contribution to the total positive or total negative morale effect + */ + double percent_contribution; /** * Returns either new_time or remaining time (which one is greater). From 97489f18d0dfb63ed5c2248d81105a1aad76c3f9 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Thu, 13 Jun 2019 01:37:01 +0200 Subject: [PATCH 21/76] Correct values in item processing for 1 sec turns - Food and corpses were processed every 100 seconds instead of every 10 minutes. This is fairly important for performance. - Smokers and Mills were operating 6 times too quickly. - Towels were drying 6 times too quickly. - Joints/cigarettes/cigars burnt out 6 times too quickly --- src/iexamine.cpp | 4 ++-- src/item.cpp | 2 +- src/iuse.cpp | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/iexamine.cpp b/src/iexamine.cpp index aebf648a6d239..d984b7c593688 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -4318,7 +4318,7 @@ static void mill_activate( player &p, const tripoint &examp ) } g->m.furn_set( examp, next_mill_type ); item result( "fake_milling_item", calendar::turn ); - result.item_counter = 3600; // = 6 hours + result.item_counter = to_turns( 6_hours ); result.activate(); g->m.add_item( examp, result ); add_msg( _( "You remove the brake on the millstone and it slowly starts to turn." ) ); @@ -4424,7 +4424,7 @@ static void smoker_activate( player &p, const tripoint &examp ) charcoal->charges -= char_charges; } item result( "fake_smoke_plume", calendar::turn ); - result.item_counter = 3600; // = 6 hours + result.item_counter = to_turns( 6_hours ); result.activate(); g->m.add_item( examp, result ); add_msg( _( "You light a small fire under the rack and it starts to smoke." ) ); diff --git a/src/item.cpp b/src/item.cpp index 18643515a7595..af3dfe464964d 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -7335,7 +7335,7 @@ bool item::needs_processing() const int item::processing_speed() const { if( is_corpse() || is_food() || is_food_container() ) { - return 100; + return to_turns( 10_minutes ); } // Unless otherwise indicated, update every turn. return 1; diff --git a/src/iuse.cpp b/src/iuse.cpp index 359044978a986..2a9e3d3e621d6 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -376,24 +376,24 @@ int iuse::smoking( player *p, item *it, bool, const tripoint & ) item cig; if( it->typeId() == "cig" ) { cig = item( "cig_lit", calendar::turn ); - cig.item_counter = 40; + cig.item_counter = to_turns( 4_minutes ); p->mod_hunger( -3 ); p->mod_thirst( 2 ); } else if( it->typeId() == "handrolled_cig" ) { // This transforms the hand-rolled into a normal cig, which isn't exactly // what I want, but leaving it for now. cig = item( "cig_lit", calendar::turn ); - cig.item_counter = 40; + cig.item_counter = to_turns( 4_minutes ); p->mod_thirst( 2 ); p->mod_hunger( -3 ); } else if( it->typeId() == "cigar" ) { cig = item( "cigar_lit", calendar::turn ); - cig.item_counter = 120; + cig.item_counter = to_turns( 12_minutes ); p->mod_thirst( 3 ); p->mod_hunger( -4 ); } else if( it->typeId() == "joint" ) { cig = item( "joint_lit", calendar::turn ); - cig.item_counter = 40; + cig.item_counter = to_turns( 4_minutes ); p->mod_hunger( 4 ); p->mod_thirst( 6 ); if( p->get_painkiller() < 5 ) { @@ -5336,7 +5336,7 @@ int iuse::towel( player *p, item *it, bool t, const tripoint & ) it->tname() ); towelUsed = true; - it->item_counter = 300; + it->item_counter = to_turns( 30_minutes ); // default message } else { From e9f99b90cc33751d61da560c05c343aa4e937e2f Mon Sep 17 00:00:00 2001 From: Sergey Alirzaev Date: Wed, 12 Jun 2019 00:21:03 +0300 Subject: [PATCH 22/76] tell the player one's attempting too hard crafting fixes https://github.com/CleverRaven/Cataclysm-DDA/issues/31344 --- src/crafting.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crafting.cpp b/src/crafting.cpp index 56cf7613b1ca9..603327b90d46c 100644 --- a/src/crafting.cpp +++ b/src/crafting.cpp @@ -74,7 +74,7 @@ static const trait_id trait_BURROW( "BURROW" ); static bool crafting_allowed( const player &p, const recipe &rec ) { if( p.morale_crafting_speed_multiplier( rec ) <= 0.0f ) { - add_msg( m_info, _( "Your morale is too low to craft..." ) ); + add_msg( m_info, _( "Your morale is too low to craft such a difficult thing..." ) ); return false; } From 8238d5ac7c9107705de076e6a01764d52832f7a0 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Thu, 13 Jun 2019 13:39:14 +0300 Subject: [PATCH 23/76] Fix OSX and MXE Windows builds (#31385) --- src/mingw.thread.h | 5 +++-- src/translations.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mingw.thread.h b/src/mingw.thread.h index c49ce2a981010..8f4df5642f3ce 100644 --- a/src/mingw.thread.h +++ b/src/mingw.thread.h @@ -64,13 +64,14 @@ class thread using Call = decltype( std::bind( f, args... ) ); Call *call = new Call( std::bind( f, args... ) ); mHandle = ( HANDLE )_beginthreadex( NULL, 0, threadfunc, - ( LPVOID )call, 0, ( unsigned * ) & ( mThreadId.mId ) ); + static_cast( call ), + 0, reinterpret_cast( & ( mThreadId.mId ) ) ); } template static unsigned int __stdcall threadfunc( void *arg ) { std::unique_ptr upCall( static_cast( arg ) ); ( *upCall )(); - return ( unsigned long )0; + return static_cast( 0 ); } bool joinable() const { return mHandle != _STD_THREAD_INVALID_HANDLE; diff --git a/src/translations.cpp b/src/translations.cpp index 372758596e6ac..c4655e30929c7 100644 --- a/src/translations.cpp +++ b/src/translations.cpp @@ -235,7 +235,7 @@ std::string getOSXSystemLang() } const char *lang_code_raw = CFStringGetCStringPtr( - ( CFStringRef )CFArrayGetValueAtIndex( langs, 0 ), + reinterpret_cast( CFArrayGetValueAtIndex( langs, 0 ) ), kCFStringEncodingUTF8 ); if( !lang_code_raw ) { return "en_US"; From 1cebffaf0bf64de2631f5887b8ae36588e68f290 Mon Sep 17 00:00:00 2001 From: Bence <44979050+LovamKicsiGazsii@users.noreply.github.com> Date: Thu, 13 Jun 2019 12:40:41 +0200 Subject: [PATCH 24/76] Rural Content: 3 New Rural Houses, more variations (#31367) * Expand the palette * 6 new fence nested chunks * Balancing, 3 new rural houses * Renamed farm house, dirt_road_3way_forest * 3 new types of rural houses --- data/json/mapgen/farm_tiles.json | 757 ++++++++++++++------ data/json/mapgen/nested/farm_nested.json | 216 ++++++ data/json/mapgen_palettes/farm_lots.json | 29 +- data/json/overmap/specials.json | 51 +- data/json/overmap_terrain_agricultural.json | 24 +- 5 files changed, 840 insertions(+), 237 deletions(-) diff --git a/data/json/mapgen/farm_tiles.json b/data/json/mapgen/farm_tiles.json index 66f47eb8968ef..bb62eb83e2f4a 100644 --- a/data/json/mapgen/farm_tiles.json +++ b/data/json/mapgen/farm_tiles.json @@ -477,7 +477,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ "dirt_road" ], - "weight": 75, + "weight": 50, "object": { "fill_ter": "t_dirt", "predecessor_mapgen": "field", @@ -516,7 +516,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ "dirt_road_3way" ], - "weight": 25, + "weight": 20, "object": { "fill_ter": "t_dirt", "predecessor_mapgen": "field", @@ -556,7 +556,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ "dirt_road_3way" ], - "weight": 33, + "weight": 20, "object": { "fill_ter": "t_dirt", "predecessor_mapgen": "field", @@ -568,7 +568,7 @@ "........////////V.......", "........////////V.......", "........////////V.......", - "........////////VVV.....", + "........////////VV......", "......./////////........", "......./////////////////", "......./////////////////", @@ -579,7 +579,7 @@ "......./////////////////", "......./////////////////", "......./////////........", - "......./////////VVV.....", + "......./////////VV......", "........////////V.......", "........////////V.......", "........////////V.......", @@ -596,7 +596,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ "dirt_road_3way" ], - "weight": 33, + "weight": 100, "object": { "fill_ter": "t_dirt", "predecessor_mapgen": "field", @@ -857,41 +857,39 @@ { "type": "mapgen", "method": "json", - "om_terrain": [ "2silos" ], + "om_terrain": [ "dirt_road_3way_forest" ], "weight": 100, "object": { "fill_ter": "t_dirt", + "predecessor_mapgen": "forest", + "rotation": [ 1, 1 ], "rows": [ - "iiiiii////////////iiiiii", - "iiii////////////////iiii", - "ii////////////////////ii", - "ii////////////////////ii", - "i///222//////////222///i", - "i/222:222//////222:222/i", - "//2:::::2//////2:::::2//", - "/22:::::22////22:::::22/", - "/2:::::::2////2:::::::2/", - "/22:::::22**************", "************************", "************************", - "************************", - "****222**********222****", - "**222O222******222O222**", - "**2OOOOO2******2OOOOO2**", - "*22OOOOO22<**<22OOOOO22*", - "*2OOOOOOO2-**-2OOOOOOO2*", - "*22OOOOO22>**>22OOOOO22*", - "**2OOOOO2******2OOOOO2**", - "**222O222******222O222**", - "****222**********222****", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", + "*******<->**************", + "*******222**************", + "*****222O222************", + "*****2OOOOO2************", + "****22OOOOO22***********", + "****2OOOOOOO2***********", + "****22OOOOO22***********", + "*****2OOOOO2************", + "*****222O222************", + "*******222**************", "************************" ], "palettes": [ "farm_lots" ] @@ -1016,31 +1027,32 @@ "om_terrain": [ "2silos_2" ], "weight": 100, "object": { + "rotation": [ 1, 1 ], "fill_ter": "t_dirt", "rows": [ "************************", - "************************", - "************************", - "************************", - "****222**********222****", - "**222O222******222O222**", - "**2OOOOO2******2OOOOO2**", - "*22OOOOO22>**>22OOOOO22*", - "*2OOOOOOO2----2OOOOOOO2*", - "*22OOOOO22<**<22OOOOO22*", - "**2OOOOO2******2OOOOO2**", - "**222O222******222O222**", - "****222**********222****", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", + "*******222**************", + "*****222O222************", + "*****2OOOOO2************", + "****22OOOOO22***********", + "****2OOOOOOO2***********", + "****22OOOOO22***********", + "*****2OOOOO2************", + "*****222O222************", + "*******222**************", + "*******>-<**************", + "********-***************", + "********-***************", + "*******>-<**************", + "*******222**************", + "*****222O222************", + "*****2OOOOO2************", + "****22OOOOO22***********", + "****2OOOOOOO2***********", + "****22OOOOO22***********", + "*****2OOOOO2************", + "*****222O222************", + "*******222**************", "************************" ], "palettes": [ "farm_lots" ] @@ -1052,31 +1064,32 @@ "om_terrain": [ "2silos_roof" ], "weight": 100, "object": { + "rotation": [ 1, 1 ], "fill_ter": "t_dirt", "rows": [ "************************", + "*******zzz**************", + "*****zzzzzzz************", + "*****zzzzzzz************", + "****zzzzzzzzz***********", + "****zzzzzzzzz***********", + "****zzzzzzzzz***********", + "*****zzzzzzz************", + "*****zzzzzzz************", + "*******zzz**************", + "*******-->**************", "************************", "************************", - "************************", - "****zzz**********zzz****", - "**zzzzzzz******zzzzzzz**", - "**zzzzzzz******zzzzzzz**", - "*zzzzzzzzz-**-zzzzzzzzz*", - "*zzzzzzzzz-**-zzzzzzzzz*", - "*zzzzzzzzz>**>zzzzzzzzz*", - "**zzzzzzz******zzzzzzz**", - "**zzzzzzz******zzzzzzz**", - "****zzz**********zzz****", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", + "*******-->**************", + "*******zzz**************", + "*****zzzzzzz************", + "*****zzzzzzz************", + "****zzzzzzzzz***********", + "****zzzzzzzzz***********", + "****zzzzzzzzz***********", + "*****zzzzzzz************", + "*****zzzzzzz************", + "*******zzz**************", "************************" ], "palettes": [ "farm_lots" ] @@ -1088,36 +1101,159 @@ "om_terrain": [ "coop_chicken" ], "weight": 100, "object": { - "fill_ter": "t_dirt", "predecessor_mapgen": "field", "rows": [ - "ccccccccccccccccccc.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "C.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "c.................c.....", - "ccccccccccccccccccc....." + "........................", + "cccccccccccccccc........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "C________ccccccc........", + "C________c_____c........", + "c________C_____c........", + "c________c_____c........", + "C________|||CC|||.......", + "C________|,,,,,,|.......", + "c________|||,,|||.......", + "c________|,,,,,,|.......", + "c________|||,,|||.......", + "c________|,,,,,,|.......", + "c________|||,,|||.......", + "c________|,,,,,,|.......", + "c________|||,,|||.......", + "ccccccccc|,,,,,,|.......", + ".........||||||||......." + ], + "palettes": [ "farm_lots" ], + "place_monster": [ { "monster": "mon_chicken", "x": [ 1, 17 ], "y": [ 1, 22 ], "repeat": [ 4, 10 ] } ], + "terrain": { "_": [ [ "t_dirt", 15 ], [ "t_grass_long", 5 ], [ "t_underbrush", 1 ], [ "t_grass", 10 ] ] }, + "item": { "_": { "item": "birdfood", "chance": 1, "repeat": [ 1, 3 ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "yard" ], + "weight": 100, + "object": { + "//": "same as coop_chicken", + "predecessor_mapgen": "field", + "rows": [ + "........................", + "cccccccccccccccc........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "c______________c........", + "C________ccccccc........", + "C________c_____c........", + "c________C_____c........", + "c________c_____c........", + "C________|||CC|||.......", + "C________|,,,,,,|.......", + "c________|||,,|||.......", + "c________|,,,,,,|.......", + "c________|||,,|||.......", + "c________|,,,,,,|.......", + "c________|||,,|||.......", + "c________|,,,,,,|.......", + "c________|||,,|||.......", + "ccccccccc|,,,,,,|.......", + ".........||||||||......." + ], + "palettes": [ "farm_lots" ], + "place_monster": [ { "monster": "mon_chicken", "x": [ 1, 17 ], "y": [ 1, 22 ], "repeat": [ 4, 10 ] } ], + "terrain": { "_": [ [ "t_dirt", 15 ], [ "t_grass_long", 5 ], [ "t_underbrush", 1 ], [ "t_grass", 10 ] ] }, + "item": { "_": { "item": "birdfood", "chance": 1, "repeat": [ 1, 3 ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "yard" ], + "weight": 100, + "object": { + "//": "hobby farm", + "predecessor_mapgen": "field", + "rows": [ + "........................", + "%%%%%%%%%%%%%%%%%%......", + "%________________%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "//OO_OO_OO_OO_OO_%......", + "//OO_OO_OO_OO_OO_%......", + "//OO_OO_OO_OO_OO_%......", + "//OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%_OO_OO_OO_OO_OO_%......", + "%________________%......", + "%%%%%%%%%%%%%%%%%%......", + "........................" + ], + "palettes": [ "farm_lots" ], + "terrain": { "_": [ [ "t_dirt", 15 ], [ "t_grass_long", 5 ], [ "t_grass", 5 ] ], "O": "t_dirtmound" }, + "items": { "O": { "item": "hydro", "chance": 5 } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "yard" ], + "weight": 150, + "object": { + "//": "regular yard", + "rotation": [ 2, 2 ], + "predecessor_mapgen": "forest", + "rows": [ + "........................", + "........................", + "..........//...__/_.....", + "..........._/__//_......", + "............_//__.......", + "...../___..__/___.......", + "......////___//____.....", + "....//____//////______..", + "......._____////////____", + "OO....._________////////", + "OOO.....__BBBB_____/////", + "OOO.....__tttt.______///", + "OOOO....._tttt____//////", + "OOOO....._BBBB..////////", + "OOOO......_____////___//", + "OOO........__///........", + "OOO......._///..........", + "OO........_/__..........", + ".........///_...........", + ".......//___/...........", + "............./..........", + "........................", + "........................", + "........................" ], "palettes": [ "farm_lots" ], - "place_monster": [ { "monster": "mon_chicken", "x": [ 3, 23 ], "y": [ 3, 23 ], "repeat": [ 4, 6 ] } ] + "place_nested": [ + { "chunks": [ [ "null", 25 ], [ "24x24_fence3", 20 ], [ "24x24_fence4", 20 ], [ "24x24_fence5", 15 ] ], "x": 0, "y": 0 } + ], + "terrain": { "O": "t_dirtmound", "_": [ [ "t_dirt", 5 ], [ "t_grass_long", 5 ], [ "t_grass", 16 ] ] }, + "items": { "O": { "item": "hydro", "chance": 5 } } } }, { @@ -1129,32 +1265,46 @@ "fill_ter": "t_floor", "rotation": [ 3, 3 ], "rows": [ - "..%%%%%%%%%%%%%%........", - "..%.............b.......", - "..%.....................", - "..%..|---|vvv|---+-v-|..", - "..%..|uufc 8888 y|..", - "..%..|o |..", - "..%..vS c hnnh v..", - "..%..vu c hnnh v..", - "..%..|u c D v..", - "..%..|-+-|-+-|n Y|..", - "..%..|r r|t B|n Y|..", - "..%..|r r| B|n Y|,,", - "..%..|rrr|S D|n +,,", - "..%..|-----+-- a|,,", - "..%..vn y|--+-||.", - "..%..|---+------|@@ kv.", - "..%..|888 @@|dd|@@ hkv.", - "..%..vn @@| | kv.", - "..%..|1 h + + g||.", - "..%..|--kkk-------vv--..", - "..%....-vvv-............", - "..%.....................", - "..%%%%%%%%%%%%%%........", + "........................", + "................b.......", + "........................", + ".....|||||vvv||||+|v||..", + ".....|uufc 8888 y|..", + ".....|o |..", + ".....vS c hnnh v..", + ".....vu c hnnh v..", + ".....|u c D v..", + ".....||+|||+||n Y|..", + ".....|r r|t B|n Y|..", + ".....|r r| B|n Y|,,", + ".....|rrr|S D|n +,,", + ".....||||||+|| a|,,", + ".....vn y|||+|||.", + ".....||||+|||||||@@ kv.", + ".....|888 @@|dd|@@ hkv.", + ".....vn @@| | kv.", + ".....|1 h + + g||.", + ".....|||kkk|||||||vv||..", + ".......|vvv|............", + "........................", + "........................", "........................" ], "palettes": [ "farm_house" ], + "place_nested": [ + { + "chunks": [ + [ "null", 25 ], + [ "24x24_fence1", 20 ], + [ "24x24_fence2", 20 ], + [ "24x24_fence3", 20 ], + [ "24x24_fence4", 20 ], + [ "24x24_fence5", 15 ] + ], + "x": 0, + "y": 0 + } + ], "place_loot": [ { "item": "television", "x": 14, "y": [ 9, 12 ], "chance": 100 } ] } }, @@ -1167,35 +1317,208 @@ "fill_ter": "t_floor", "rotation": [ 3, 3 ], "rows": [ - "%%%%%%%%%%%%%%%%%%%%%%..", - "%...............b....%..", - "%....................H..", - "%....|--------| |####|..", - "%....|rrr|fouu| #..", - "%....vr + S| #..", - "%....|rrr|cc u|+||| #..", - "%....||||||| 1n|7 #..", - "%....|k d@@|n v7 #..", - "%....|kh @@|n hnhv7 #..", - "%....vk |n hnh| #..", - "%....|y g|n hnhv |,,", - "%....|---+-|n v ,,", - "%....+ | ,,", - "%....|---+-|D y ||+||.", - "%....|@@ 8||+|| 7v.", - "%....v@@ 8|t D|8 7v.", - "%....|d 8| |8 7v.", - "%....|D 1 |BBS|8YYYa||.", - "%....|-|kkk|----------..", - "%......|vvv|.........%..", - "%....................%..", - "%%%%%%%%%%%%%%%%%%%%%%..", + "........................", + "................b.......", + "........................", + ".....|||||||||| |####|..", + ".....|rrr|fouu| #..", + ".....vr + S| #..", + ".....|rrr|cc u|+||| #..", + ".....||||||| 1n|7 #..", + ".....|k d@@|n v7 #..", + ".....|kh @@|n hnhv7 #..", + ".....vk |n hnh| #..", + ".....|y g|n hnhv |,,", + ".....||||+||n v ,,", + ".....+ | ,,", + ".....||||+||D y ||+||.", + ".....|@@ 8||+|| 7v.", + ".....v@@ 8|t D|8 7v.", + ".....|d 8| |8 7v.", + ".....|D 1 |BBS|8YYYa||.", + ".....|||kkk|||||||v|||..", + ".......|vvv|............", + "........................", + "........................", "........................" ], "palettes": [ "farm_house" ], + "place_nested": [ + { + "chunks": [ + [ "null", 25 ], + [ "24x24_fence1", 20 ], + [ "24x24_fence2", 20 ], + [ "24x24_fence3", 20 ], + [ "24x24_fence4", 20 ], + [ "24x24_fence5", 15 ] + ], + "x": 0, + "y": 0 + } + ], "place_loot": [ { "item": "television", "x": 12, "y": [ 9, 12 ], "chance": 100 } ] } }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_farm" ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rotation": [ 3, 3 ], + "rows": [ + "........................", + "........................", + "........................", + ".....|#####||vv|||||||..", + ".....#7nn7 |fouu|rrrr|..", + ".....#7nn7 | + v..", + ".....|7nn7 |Scc ||||||..", + "..... + + 8kk|..", + ".....||vv|||D | h v..", + "..b..|d kk|||| | v..", + ".....v@@ h|BB| |@@ d|..", + ".....v@@ + + ||||||,,", + ".....|d |St| 77 +,,", + ".....| ||||| +,,", + ".....||||+|8888 a||.", + ".....v1n hnnh yv.", + ".....v 1 hnnh v.", + ".....v YYY hnnh yv.", + ".....|y g ||.", + ".....|||nnn||||||vv|||..", + ".......|vvv|............", + "........................", + "........................", + "........................" + ], + "palettes": [ "farm_house" ], + "place_nested": [ + { + "chunks": [ + [ "null", 25 ], + [ "24x24_fence1", 20 ], + [ "24x24_fence2", 20 ], + [ "24x24_fence3", 20 ], + [ "24x24_fence4", 20 ], + [ "24x24_fence5", 15 ] + ], + "x": 0, + "y": 0 + } + ], + "place_loot": [ { "item": "television", "x": [ 8, 10 ], "y": 19, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_farm" ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rotation": [ 3, 3 ], + "rows": [ + "........................", + "........................", + "........................", + ".b...|##|||||||v||||||..", + ".....# 7|BBS|@@ 1n|dd|..", + ".....# 7|t |@@ + |..", + ".....| ||+|| ||||+|..", + "..... + + h |@@ |..", + ".....| |8 |kkk|d v..", + ".333.# 7|8 ||||| 1v..", + ".....# 7|8 ynnn|g n|..", + ".....||||| ||+|||,,", + ".333.|rrr|Y +,,", + ".....|r r|Y +,,", + ".....||+||Y hnnh a||.", + ".....vf S hnnh kv.", + ".....vo c hnnh 1kv.", + ".....vu c kv.", + ".....|u g 888 y||.", + ".....||| D||vv|||vv||..", + ".......|vvv|............", + "........................", + "........................", + "........................" + ], + "palettes": [ "farm_house" ], + "place_nested": [ + { + "chunks": [ + [ "null", 25 ], + [ "24x24_fence1", 20 ], + [ "24x24_fence2", 20 ], + [ "24x24_fence3", 20 ], + [ "24x24_fence4", 20 ], + [ "24x24_fence5", 15 ] + ], + "x": 0, + "y": 0 + } + ], + "place_loot": [ { "item": "television", "x": [ 13, 15 ], "y": 10, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "house_farm" ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rotation": [ 3, 3 ], + "rows": [ + "........................", + "........................", + "........................", + ".....||vv||||v||||vv||..", + ".....|8 k|rrrr|Scu|..", + ".....v1 hk|r + uv..", + ".....v g||||||| ov..", + ".....|@@ +d|nnn f|..", + ".....|@@d D||| |||..", + ".....||||+||y | #..", + ".....|BB| hhh vh#.b", + ".....| + nnn a| |,,", + ".....| S| hhh + ,,", + ".....|t||+||D + ,,", + ".....|||y |||8 ||||.", + ".....|g 88|8 1 Yv.", + ".....v@ 1 @|8 n Yv.", + ".....v@ 1 @|8 1 Yv.", + ".....|d d|8 g y||.", + ".....|||nnn|||||vvv|||..", + ".......|vvv|............", + "........................", + "........................", + "........................" + ], + "palettes": [ "farm_house" ], + "place_nested": [ + { + "chunks": [ + [ "null", 25 ], + [ "24x24_fence1", 20 ], + [ "24x24_fence2", 20 ], + [ "24x24_fence3", 20 ], + [ "24x24_fence4", 20 ], + [ "24x24_fence5", 15 ] + ], + "x": 0, + "y": 0 + } + ], + "place_loot": [ + { "item": "television", "x": [ 8, 10 ], "y": 19, "chance": 100 }, + { "item": "television", "x": [ 14, 16 ], "y": 7, "chance": 100 } + ] + } + }, { "type": "mapgen", "method": "json", diff --git a/data/json/mapgen/nested/farm_nested.json b/data/json/mapgen/nested/farm_nested.json index 94b7d9aabd033..44341c5d0c98d 100644 --- a/data/json/mapgen/nested/farm_nested.json +++ b/data/json/mapgen/nested/farm_nested.json @@ -12,5 +12,221 @@ ], "palettes": [ "farm_lots" ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_fence1", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 3, 3 ], + "rows": [ + "%%%%%%%%%%%%%%%%////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%%%%%%%%%%%%%%%%////////", + "////////////////////////" + ], + "palettes": [ "farm_house" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_fence2", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 3, 3 ], + "rows": [ + "%%%%%%%%%%%%%%%%%%%%%%//", + "%////////////////////%//", + "%////////////////////H//", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%////////////////////%//", + "%////////////////////%//", + "%%%%%%%%%%%%%%%%%%%%%%//", + "////////////////////////" + ], + "palettes": [ "farm_house" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_fence3", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 3, 3 ], + "rows": [ + "PPPPPP%%%%%%%%%%%%%%%%%%", + "P//////////////////////%", + "P//////////////////////%", + "P//////////////////////%", + "P//////////////////////%", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P//////////////////////%", + "P//////////////////////%", + "P//////////////////////%", + "P//////////////////////%", + "PPPPP%%%%%%%%%%%%%%%%%%%" + ], + "palettes": [ "farm_house" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_fence4", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 3, 3 ], + "rows": [ + "PPPPPPP/////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "PPPPPPP/////////////////" + ], + "palettes": [ "farm_house" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_fence5", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 3, 3 ], + "rows": [ + "PPPPPPPPPPPPPPPPPPPPPPPP", + "P//////////////////////P", + "P//////////////////////P", + "P//////////////////////P", + "P//////////////////////P", + "P//////////////////////P", + "P//////////////////////%", + "P//////////////////////%", + "P//////////////////////%", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P///////////////////////", + "P//////////////////////%", + "P//////////////////////%", + "P//////////////////////%", + "P//////////////////////P", + "P//////////////////////P", + "P//////////////////////P", + "P//////////////////////P", + "P//////////////////////P", + "PPPPPPPPPPPPPPPPPPPPPPPP" + ], + "palettes": [ "farm_house" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_fence6", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 3, 3 ], + "rows": [ + "%%%%%%%%////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "////////////////////////", + "////////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%///////////////////////", + "%%%%%%%%////////////////" + ], + "palettes": [ "farm_house" ] + } } ] diff --git a/data/json/mapgen_palettes/farm_lots.json b/data/json/mapgen_palettes/farm_lots.json index e5f302c8399b9..34a2b29479e7f 100644 --- a/data/json/mapgen_palettes/farm_lots.json +++ b/data/json/mapgen_palettes/farm_lots.json @@ -8,7 +8,7 @@ "#": [ [ "t_dirtmound", 98 ], [ "t_dirt", 2 ] ], "%": "t_fence_wire", "+": "t_door_c", - "|": "t_wall_r", + "|": [ [ "t_wall_wood", 500 ], [ "t_wall_wood_chipped", 4 ], [ "t_wall_wood_broken", 1 ] ], " ": [ [ "t_dirt", 280 ], [ "t_grass_long", 100 ], [ "t_underbrush", 2 ], [ "t_grass", 280 ], [ "t_dirtmound", 2 ] ], "i": [ [ "t_dirt", 5 ], [ "t_grass_long", 5 ], [ "t_grass", 16 ] ], ".": "t_null", @@ -27,7 +27,7 @@ "V": "t_splitrail_fence", "c": "t_chickenwire_fence", "C": "t_chickenwire_gate_c", - "W": "t_wall_log", + "W": [ [ "t_wall_wood", 500 ], [ "t_wall_wood_chipped", 4 ], [ "t_wall_wood_broken", 1 ] ], "=": "t_door_metal_locked", "A": "t_door_bar_locked", "G": "t_palisade_gate", @@ -43,10 +43,13 @@ "O": "t_open_air_rooved", "z": "t_metal_flat_roof", "f": "t_chainfence", - "g": "t_chaingate_l" + "g": "t_chaingate_l", + "t": "t_dirt", + "B": "t_dirt" }, "furniture": { "r": "f_rack", + "t": "f_table", "B": "f_bench", "x": "f_crate_c", "@": "f_hay", @@ -62,16 +65,19 @@ " ": "t_floor", "#": "t_railing", "%": "t_splitrail_fence", + "P": "t_privacy_fence", "H": "t_splitrail_fencegate_c", "+": "t_door_c", ",": [ [ "t_railroad_rubble", 20 ], [ "t_grass", 2 ], [ "t_dirt", 5 ] ], - "-": "t_wall_log", - ".": [ [ "t_grass", 16 ], [ "t_grass_long", 5 ], [ "t_dirt", 5 ] ], - "/": "t_dirt", - "W": "t_wall_wood", + ".": [ [ "t_grass", 16 ], [ "t_grass_long", 7 ], [ "t_dirt", 5 ] ], + "/": "t_null", + "W": [ [ "t_wall_wood", 500 ], [ "t_wall_wood_chipped", 4 ], [ "t_wall_wood_broken", 1 ] ], "b": "t_dirt", + "3": "t_dirt", + "T": "t_dirt", + "q": "t_dirt", "v": [ "t_window_domestic", "t_curtains" ], - "|": "t_wall_log", + "|": [ [ "t_wall_log", 500 ], [ "t_wall_log_chipped", 4 ], [ "t_wall_log_broken", 1 ] ], "4": "t_gutter_downspout", "<": "t_stairs_up", ">": "t_stairs_down" @@ -91,21 +97,24 @@ "h": "f_chair", "k": "f_desk", "n": "f_table", + "T": "f_table", "r": "f_rack", "t": "f_toilet", "1": "f_armchair", "8": "f_bookcase", "7": "f_bench", + "3": "f_bench", "a": "f_rack_coat", "g": "f_floor_lamp", "y": [ "f_indoor_plant_y", "f_indoor_plant" ], - "b": "f_rotary_clothesline" + "b": "f_rotary_clothesline", + "q": "f_birdbath" }, "items": { "k": { "item": "office", "chance": 25 }, "f": { "item": "fridge", "chance": 45, "repeat": [ 1, 4 ] }, "o": { "item": "oven", "chance": 40 }, - "8": { "item": "homebooks", "chance": 35, "repeat": [ 1, 3 ] }, + "8": { "item": "homebooks", "chance": 45, "repeat": [ 1, 3 ] }, "r": { "item": "restaur_kitchen", "chance": 45, "repeat": [ 1, 3 ] }, "c": { "item": "kitchen_counters", "chance": 30 }, "u": [ { "item": "kitchen_counters", "chance": 30 }, { "item": "restaur_kitchen", "chance": 50, "repeat": [ 2, 4 ] } ], diff --git a/data/json/overmap/specials.json b/data/json/overmap/specials.json index c4260a01de767..ff00dd3a68dc6 100644 --- a/data/json/overmap/specials.json +++ b/data/json/overmap/specials.json @@ -2169,17 +2169,52 @@ }, { "type": "overmap_special", - "id": "Rural House", + "id": "rural_house", "overmaps": [ - { "point": [ 0, 0, 0 ], "overmap": "dirtroad_north" }, - { "point": [ 0, 1, 0 ], "overmap": "dirtroad_north" }, - { "point": [ 0, 2, 0 ], "overmap": "rural_house_north" } + { "point": [ 0, 1, 0 ], "overmap": "dirt_road_forest_north" }, + { "point": [ 0, 2, 0 ], "overmap": "dirt_road_forest_north" }, + { "point": [ 0, 3, 0 ], "overmap": "house_farm_north" }, + { "point": [ 0, 3, 1 ], "overmap": "house_farm_roof_north" } ], - "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road", "existing": true } ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], "locations": [ "forest" ], - "city_distance": [ 5, 25 ], - "city_sizes": [ 2, 10 ], - "occurrences": [ 0, 15 ], + "city_distance": [ 5, 65 ], + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 10 ], + "flags": [ "CLASSIC" ] + }, + { + "type": "overmap_special", + "id": "rural_house_turn", + "overmaps": [ + { "point": [ 0, 1, 0 ], "overmap": "dirt_road_forest_north" }, + { "point": [ 0, 2, 0 ], "overmap": "dirt_road_turn1_forest_west" }, + { "point": [ 1, 2, 0 ], "overmap": "house_farm_west" }, + { "point": [ 1, 2, 1 ], "overmap": "house_farm_roof_west" } + ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], + "locations": [ "forest" ], + "city_distance": [ 5, 65 ], + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 10 ], + "flags": [ "CLASSIC" ] + }, + { + "type": "overmap_special", + "id": "rural_house_yard", + "overmaps": [ + { "point": [ 0, 1, 0 ], "overmap": "dirt_road_forest_north" }, + { "point": [ 0, 2, 0 ], "overmap": "dirt_road_3way_forest_east" }, + { "point": [ -1, 2, 0 ], "overmap": "yard_south" }, + { "point": [ 0, 3, 0 ], "overmap": "dirt_road_turn1_forest_west" }, + { "point": [ 1, 3, 0 ], "overmap": "house_farm_west" }, + { "point": [ 1, 3, 1 ], "overmap": "house_farm_roof_west" } + ], + "connections": [ { "point": [ 0, 0, 0 ], "terrain": "road", "existing": true } ], + "locations": [ "forest" ], + "city_distance": [ 5, 65 ], + "city_sizes": [ 1, 20 ], + "occurrences": [ 0, 10 ], "flags": [ "CLASSIC" ] }, { diff --git a/data/json/overmap_terrain_agricultural.json b/data/json/overmap_terrain_agricultural.json index a703a1626604b..cc117542d377c 100644 --- a/data/json/overmap_terrain_agricultural.json +++ b/data/json/overmap_terrain_agricultural.json @@ -890,6 +890,16 @@ "extras": "field", "mondensity": 2 }, + { + "type": "overmap_terrain", + "id": "dirt_road_3way_forest", + "name": "dirt road", + "sym": "┬", + "color": "brown", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, { "type": "overmap_terrain", "id": "2silos", @@ -940,10 +950,20 @@ "extras": "field", "mondensity": 2 }, + { + "type": "overmap_terrain", + "id": "yard", + "name": "yard", + "sym": "#", + "color": "brown", + "see_cost": 5, + "extras": "field", + "mondensity": 2 + }, { "type": "overmap_terrain", "id": "house_farm", - "name": "farm house", + "name": "rural house", "sym": "^", "color": "i_brown", "see_cost": 5, @@ -953,7 +973,7 @@ { "type": "overmap_terrain", "id": "house_farm_roof", - "name": "farm house roof", + "name": "rural house roof", "sym": "^", "color": "i_brown", "see_cost": 5, From aac76cb75afd856d1131577f0efa98a178759dbb Mon Sep 17 00:00:00 2001 From: Curtis Merrill Date: Thu, 13 Jun 2019 06:41:21 -0400 Subject: [PATCH 25/76] Magiclysm: More Mutation Types (#31375) --- data/mods/Magiclysm/traits/mutation.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/data/mods/Magiclysm/traits/mutation.json b/data/mods/Magiclysm/traits/mutation.json index b9275dea227cd..2f62514535d2a 100644 --- a/data/mods/Magiclysm/traits/mutation.json +++ b/data/mods/Magiclysm/traits/mutation.json @@ -3,6 +3,14 @@ "type": "mutation_type", "id": "MANA_ADD" }, + { + "type": "mutation_type", + "id": "MANA_MULT" + }, + { + "type": "mutation_type", + "id": "MANA_REGEN" + }, { "type": "mutation", "id": "MANA_ADD1", @@ -77,6 +85,7 @@ "points": 1, "description": "Your natural mana regeneration is slightly faster than normal.", "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], + "types": [ "MANA_REGEN" ], "category": [ "FISH", "ELFA", "ALPHA", "PLANT", "CEPHALOPOD" ], "starting_trait": true, "mana_regen_multiplier": 1.1 @@ -89,6 +98,7 @@ "description": "Your natural mana regeneration is faster than normal.", "prereqs": [ "MANA_REGEN1" ], "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], + "types": [ "MANA_REGEN" ], "category": [ "FISH", "ELFA", "PLANT" ], "mana_regen_multiplier": 1.25 }, @@ -100,6 +110,7 @@ "description": "Your natural mana regeneration is much faster than normal.", "prereqs": [ "MANA_REGEN2" ], "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], + "types": [ "MANA_REGEN" ], "threshreq": [ "THRESH_PLANT" ], "category": [ "PLANT" ], "mana_regen_multiplier": 1.5 @@ -111,6 +122,7 @@ "points": -1, "description": "Your natural mana regeneration is slightly slower than normal.", "cancels": [ "MANA_REGEN1", "MANA_REGEN2", "MANA_REGEN3" ], + "types": [ "MANA_REGEN" ], "category": [ "LIZARD", "BEAST", "LUPINE", "URSINE", "CATTLE", "SLIME", "MEDICAL", "CHIMERA" ], "starting_trait": true, "mana_regen_multiplier": 0.9 @@ -123,6 +135,7 @@ "description": "Your natural mana regeneration is slower than normal.", "prereqs": [ "BAD_MANA_REGEN1" ], "cancels": [ "MANA_REGEN1", "MANA_REGEN2", "MANA_REGEN3" ], + "types": [ "MANA_REGEN" ], "category": [ "BEAST", "CATTLE", "SLIME", "MEDICAL", "CHIMERA" ], "mana_regen_multiplier": 0.75 }, @@ -134,6 +147,7 @@ "description": "Your natural mana regeneration is much slower than normal.", "prereqs": [ "BAD_MANA_REGEN2" ], "cancels": [ "MANA_REGEN1", "MANA_REGEN2", "MANA_REGEN3" ], + "types": [ "MANA_REGEN" ], "category": [ "BEAST", "MEDICAL" ], "mana_regen_multiplier": 0.5 }, @@ -144,6 +158,7 @@ "points": 1, "description": "You can sense the mana in your body slightly better than normal, allowing you to tap into more of your reserves.", "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], + "types": [ "MANA_MULT" ], "category": [ "BIRD", "LIZARD", "SLIME", "FELINE", "CATTLE", "URSINE", "PLANT", "CEPHALOPOD", "ALPHA", "ELFA" ], "starting_trait": true, "mana_multiplier": 1.25 @@ -155,6 +170,7 @@ "points": 3, "description": "You can sense the mana in your body better than normal, allowing you to tap into more of your reserves.", "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], + "types": [ "MANA_MULT" ], "category": [ "BIRD", "SLIME", "CATTLE", "PLANT", "CEPHALOPOD", "ELFA" ], "prereqs": [ "MANA_MULT1" ], "mana_multiplier": 1.9 @@ -166,6 +182,7 @@ "points": 8, "description": "You can sense the mana in your body much better than normal, allowing you to tap into more of your reserves.", "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], + "types": [ "MANA_MULT" ], "category": [ "SLIME", "CATTLE", "CEPHALOPOD" ], "prereqs": [ "MANA_MULT2" ], "mana_multiplier": 2.5 @@ -177,6 +194,7 @@ "points": -1, "description": "You have a hard time sensing the mana in your body, making less of your reserves available for use.", "cancels": [ "MANA_MULT1", "MANA_MULT2", "MANA_MULT3" ], + "types": [ "MANA_MULT" ], "category": [ "BEAST", "FISH", "LUPINE", "INSECT", "TROGLOBITE", "SPIDER", "RAT", "MOUSE", "MEDICAL", "CHIMERA", "RAPTOR" ], "starting_trait": true, "mana_multiplier": 0.85 @@ -188,6 +206,7 @@ "points": -3, "description": "You have a hard time sensing the mana in your body, making less of your reserves available for use.", "cancels": [ "MANA_MULT1", "MANA_MULT2", "MANA_MULT3" ], + "types": [ "MANA_MULT" ], "category": [ "BEAST", "INSECT", "TROGLOBITE", "MOUSE", "MEDICAL", "CHIMERA", "RAPTOR" ], "prereqs": [ "BAD_MANA_MULT1" ], "mana_multiplier": 0.65 @@ -199,6 +218,7 @@ "points": -6, "description": "You have a hard time sensing the mana in your body, making less of your reserves available for use.", "cancels": [ "MANA_MULT1", "MANA_MULT2", "MANA_MULT3" ], + "types": [ "MANA_MULT" ], "category": [ "INSECT", "MEDICAL", "CHIMERA" ], "prereqs": [ "BAD_MANA_MULT2" ], "mana_multiplier": 0.35 From 94874bc78570213781155082cecd282b0723a4b0 Mon Sep 17 00:00:00 2001 From: mark7 Date: Thu, 13 Jun 2019 03:43:56 -0700 Subject: [PATCH 26/76] Make toggling of music work correctly. (#31332) Avoid clobbering playlist volume when audio settings are applied. --- src/sdlsound.cpp | 25 +++++++++++++++++++++++-- src/sdlsound.h | 1 + 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/sdlsound.cpp b/src/sdlsound.cpp index c57408340420a..e1acd460c436b 100644 --- a/src/sdlsound.cpp +++ b/src/sdlsound.cpp @@ -67,6 +67,7 @@ struct music_playlist { }; /** The music we're currently playing. */ static Mix_Music *current_music = nullptr; +static int current_music_track_volume = 0; static std::string current_playlist; static size_t current_playlist_at = 0; static size_t absolute_playlist_at = 0; @@ -208,18 +209,38 @@ void play_music( const std::string &playlist ) current_playlist_at = playlist_indexes.at( absolute_playlist_at ); const auto &next = list.entries[current_playlist_at]; + current_music_track_volume = next.volume; play_music_file( next.file, next.volume ); } +void stop_music() +{ + Mix_FreeMusic( current_music ); + Mix_HaltMusic(); + current_music = nullptr; + + current_playlist = ""; + current_playlist_at = 0; + absolute_playlist_at = 0; +} + void update_music_volume() { sounds::sound_enabled = ::get_option( "SOUND_ENABLED" ); - if( !check_sound() ) { + if( !sounds::sound_enabled ) { + stop_music(); return; } - Mix_VolumeMusic( get_option( "MUSIC_VOLUME" ) ); + Mix_VolumeMusic( current_music_track_volume * get_option( "MUSIC_VOLUME" ) / 100 ); + // Start playing music, if we aren't already doing so (if + // SOUND_ENABLED was toggled.) + + // needs to be changed to something other than a static string when + // #28018 is resolved, as this function may be called from places + // other than the main menu. + play_music( "title" ); } // Allocate new Mix_Chunk as a null-chunk. Results in a valid, but empty chunk diff --git a/src/sdlsound.h b/src/sdlsound.h index d79204d2727b7..0885b815bb3e3 100644 --- a/src/sdlsound.h +++ b/src/sdlsound.h @@ -11,6 +11,7 @@ bool init_sound(); void shutdown_sound(); void play_music( const std::string &playlist ); +void stop_music(); void update_music_volume(); void load_soundset(); From 8575f767a8d4915709261cb1aa68c1e86c6633c4 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Thu, 13 Jun 2019 14:33:29 +0300 Subject: [PATCH 27/76] Added another missing cast --- src/mingw.thread.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mingw.thread.h b/src/mingw.thread.h index 8f4df5642f3ce..2f368e16a8001 100644 --- a/src/mingw.thread.h +++ b/src/mingw.thread.h @@ -63,9 +63,9 @@ class thread explicit thread( Function &&f, Args &&... args ) { using Call = decltype( std::bind( f, args... ) ); Call *call = new Call( std::bind( f, args... ) ); - mHandle = ( HANDLE )_beginthreadex( NULL, 0, threadfunc, - static_cast( call ), - 0, reinterpret_cast( & ( mThreadId.mId ) ) ); + mHandle = reinterpret_cast( _beginthreadex( NULL, 0, threadfunc, + static_cast( call ), 0, + reinterpret_cast( & ( mThreadId.mId ) ) ) ); } template static unsigned int __stdcall threadfunc( void *arg ) { From 31202b82bbfc48227a378fd0db5a5a9b1eb8af8f Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Tue, 11 Jun 2019 13:57:46 +0200 Subject: [PATCH 28/76] Add and astyle plf_colony.h as colony.h --- src/colony.h | 4048 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4048 insertions(+) create mode 100644 src/colony.h diff --git a/src/colony.h b/src/colony.h new file mode 100644 index 0000000000000..53d7bb48fc163 --- /dev/null +++ b/src/colony.h @@ -0,0 +1,4048 @@ +// Copyright (c) 2019, Matthew Bentley (mattreecebentley@gmail.com) www.plflib.org + +// zLib license (https://www.zlib.net/zlib_license.html): +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgement in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + + +#ifndef PLF_COLONY_H +#define PLF_COLONY_H + + +// Compiler-specific defines used by colony: + +#if defined(_MSC_VER) +#define PLF_COLONY_FORCE_INLINE __forceinline + +#if _MSC_VER < 1600 +#define PLF_COLONY_NOEXCEPT throw() +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#elif _MSC_VER == 1600 +#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#define PLF_COLONY_NOEXCEPT throw() +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#elif _MSC_VER == 1700 +#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#define PLF_COLONY_NOEXCEPT throw() +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#elif _MSC_VER == 1800 +#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define PLF_COLONY_VARIADICS_SUPPORT // Variadics, in this context, means both variadic templates and variadic macros are supported +#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#define PLF_COLONY_NOEXCEPT throw() +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#elif _MSC_VER >= 1900 +#define PLF_COLONY_ALIGNMENT_SUPPORT +#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define PLF_COLONY_VARIADICS_SUPPORT +#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#define PLF_COLONY_NOEXCEPT noexcept +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#endif + +#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L) +#define PLF_COLONY_CONSTEXPR constexpr +#else +#define PLF_COLONY_CONSTEXPR +#endif + +#elif defined(__cplusplus) && __cplusplus >= 201103L // C++11 support, at least +#define PLF_COLONY_FORCE_INLINE // note: GCC creates faster code without forcing inline + +#if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__clang__) // If compiler is GCC/G++ +#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 // 4.2 and below do not support variadic templates +#define PLF_COLONY_VARIADICS_SUPPORT +#endif +#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __GNUC__ > 4 // 4.3 and below do not support initializer lists +#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#endif +#if (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || __GNUC__ < 4 +#define PLF_COLONY_NOEXCEPT throw() +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#elif __GNUC__ < 6 +#define PLF_COLONY_NOEXCEPT noexcept +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept +#else // C++17 support +#define PLF_COLONY_NOEXCEPT noexcept +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) +#endif +#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) || __GNUC__ > 4 +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#endif +#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) || __GNUC__ > 4 +#define PLF_COLONY_ALIGNMENT_SUPPORT +#endif +#if __GNUC__ >= 5 // GCC v4.9 and below do not support std::is_trivially_copyable +#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#endif +#elif defined(__GLIBCXX__) // Using another compiler type with libstdc++ - we are assuming full c++11 compliance for compiler - which may not be true +#if __GLIBCXX__ >= 20080606 // libstdc++ 4.2 and below do not support variadic templates +#define PLF_COLONY_VARIADICS_SUPPORT +#endif +#if __GLIBCXX__ >= 20090421 // libstdc++ 4.3 and below do not support initializer lists +#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#endif +#if __GLIBCXX__ >= 20160111 +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define PLF_COLONY_NOEXCEPT noexcept +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) +#elif __GLIBCXX__ >= 20120322 +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define PLF_COLONY_NOEXCEPT noexcept +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept +#else +#define PLF_COLONY_NOEXCEPT throw() +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#endif +#if __GLIBCXX__ >= 20130322 +#define PLF_COLONY_ALIGNMENT_SUPPORT +#endif +#if __GLIBCXX__ >= 20150422 // libstdc++ v4.9 and below do not support std::is_trivially_copyable +#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#endif +#elif defined(_LIBCPP_VERSION) +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define PLF_COLONY_VARIADICS_SUPPORT +#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#define PLF_COLONY_ALIGNMENT_SUPPORT +#define PLF_COLONY_NOEXCEPT noexcept +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept + +#if !(defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)) +#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#endif +#else // Assume type traits and initializer support for other compilers and standard libraries +#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define PLF_COLONY_ALIGNMENT_SUPPORT +#define PLF_COLONY_VARIADICS_SUPPORT +#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#define PLF_COLONY_NOEXCEPT noexcept +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept +#endif + +#if __cplusplus >= 201703L +#if defined(__clang__) && ((__clang_major__ == 3 && __clang_minor__ == 9) || __clang_major__ > 3) +#define PLF_COLONY_CONSTEXPR constexpr +#elif defined(__GNUC__) && __GNUC__ >= 7 +#define PLF_COLONY_CONSTEXPR constexpr +#elif !defined(__clang__) && !defined(__GNUC__) +#define PLF_COLONY_CONSTEXPR constexpr // assume correct C++17 implementation for other compilers +#else +#define PLF_COLONY_CONSTEXPR +#endif +#else +#define PLF_COLONY_CONSTEXPR +#endif + +#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#else +#define PLF_COLONY_FORCE_INLINE +#define PLF_COLONY_NOEXCEPT throw() +#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) +#define PLF_COLONY_CONSTEXPR +#endif + + + + + +#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#ifdef PLF_COLONY_VARIADICS_SUPPORT +#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) std::allocator_traits::construct(allocator_instance, location, __VA_ARGS__) +#else +#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) std::allocator_traits::construct(allocator_instance, location, data) +#endif + +#define PLF_COLONY_DESTROY(the_allocator, allocator_instance, location) std::allocator_traits::destroy(allocator_instance, location) +#define PLF_COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) std::allocator_traits::allocate(allocator_instance, size, hint) +#define PLF_COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) std::allocator_traits::allocate(*this, size, hint) +#define PLF_COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) std::allocator_traits::deallocate(allocator_instance, location, size) +#else +#ifdef PLF_COLONY_VARIADICS_SUPPORT +#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) allocator_instance.construct(location, __VA_ARGS__) +#else +#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) allocator_instance.construct(location, data) +#endif + +#define PLF_COLONY_DESTROY(the_allocator, allocator_instance, location) allocator_instance.destroy(location) +#define PLF_COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) allocator_instance.allocate(size, hint) +#define PLF_COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) the_allocator::allocate(size, hint) +#define PLF_COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) allocator_instance.deallocate(location, size) +#endif + + + +#include // std::sort and std::fill_n + +#include // memset, memcpy +#include // assert +#include // std::numeric_limits +#include // std::allocator +#include // std::bidirectional_iterator_tag + + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT +#include // offsetof, used in blank() +#include // std::is_trivially_destructible, etc +#endif + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#include // std::move +#endif + +#ifdef PLF_COLONY_INITIALIZER_LIST_SUPPORT +#include +#endif + + + +namespace plf +{ + + +template , typename element_skipfield_type = unsigned short > +class colony : private + element_allocator_type // Empty base class optimisation - inheriting allocator functions +// Note: unsigned short is equivalent to uint_least16_t ie. Using 16-bit unsigned integer in best-case scenario, greater-than-16-bit unsigned integer where platform doesn't support 16-bit types +{ + public: + // Standard container typedefs: + typedef element_type + value_type; + typedef element_allocator_type + allocator_type; + typedef element_skipfield_type + skipfield_type; + +#ifdef PLF_COLONY_ALIGNMENT_SUPPORT + typedef typename std::aligned_storage < sizeof( element_type ), + ( alignof( element_type ) > ( sizeof( element_skipfield_type ) * 2 ) ) ? alignof( element_type ) : + ( sizeof( element_skipfield_type ) * 2 ) >::type aligned_element_type; +#else + typedef element_type + aligned_element_type; +#endif + +#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT + typedef typename std::allocator_traits::size_type + size_type; + typedef typename std::allocator_traits::difference_type + difference_type; + typedef element_type + &reference; + typedef const element_type + &const_reference; + typedef typename std::allocator_traits::pointer + pointer; + typedef typename std::allocator_traits::const_pointer + const_pointer; +#else + typedef typename element_allocator_type::size_type size_type; + typedef typename element_allocator_type::difference_type difference_type; + typedef typename element_allocator_type::reference reference; + typedef typename element_allocator_type::const_reference const_reference; + typedef typename element_allocator_type::pointer pointer; + typedef typename element_allocator_type::const_pointer const_pointer; +#endif + + + // Iterator declarations: + template class colony_iterator; + typedef colony_iterator iterator; + typedef colony_iterator const_iterator; + friend class colony_iterator; // Using above typedef name here is illegal under C++03 + friend class colony_iterator; + + template class colony_reverse_iterator; + typedef colony_reverse_iterator reverse_iterator; + typedef colony_reverse_iterator const_reverse_iterator; + friend class colony_reverse_iterator; + friend class colony_reverse_iterator; + + + private: + + + struct group; // forward declaration for typedefs below + +#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT + typedef typename std::allocator_traits::template + rebind_alloc aligned_element_allocator_type; + typedef typename std::allocator_traits::template rebind_alloc + group_allocator_type; + typedef typename std::allocator_traits::template + rebind_alloc skipfield_allocator_type; + typedef typename std::allocator_traits::template rebind_alloc + uchar_allocator_type; // Using uchar as the generic allocator type, as sizeof is always guaranteed to be 1 byte regardless of the number of bits in a byte on given computer, whereas for example, uint8_t would fail on machines where there are more than 8 bits in a byte eg. Texas Instruments C54x DSPs. + + typedef typename std::allocator_traits::pointer + aligned_pointer_type; // Different typedef to 'pointer' - this is a pointer to the overaligned element type, not the original element type + typedef typename std::allocator_traits::pointer + group_pointer_type; + typedef typename std::allocator_traits::pointer + skipfield_pointer_type; + typedef typename std::allocator_traits::pointer + uchar_pointer_type; + + typedef typename std::allocator_traits::template rebind_alloc + pointer_allocator_type; +#else + typedef typename element_allocator_type::template rebind::other + aligned_element_allocator_type; // In case compiler supports alignment but not allocator_traits + typedef typename element_allocator_type::template rebind::other + group_allocator_type; + typedef typename element_allocator_type::template rebind::other + skipfield_allocator_type; + typedef typename element_allocator_type::template rebind::other + uchar_allocator_type; + + typedef typename aligned_element_allocator_type::pointer aligned_pointer_type; + typedef typename group_allocator_type::pointer group_pointer_type; + typedef typename skipfield_allocator_type::pointer skipfield_pointer_type; + typedef typename uchar_allocator_type::pointer uchar_pointer_type; + + typedef typename element_allocator_type::template rebind::other pointer_allocator_type; +#endif + + + + // Colony groups: + struct group : private + uchar_allocator_type { // Empty base class optimisation (EBCO) - inheriting allocator functions + aligned_pointer_type + last_endpoint; // The address that is one past the highest cell number that's been used so far in this group - does not change with erase command but may change with insert (if no previously-erased locations are available) - is necessary because an iterator cannot access the colony's end_iterator. Most-used variable in colony use (operator ++, --) so first in struct + group_pointer_type + next_group; // Next group in the intrusive list of all groups. NULL if no next group + const aligned_pointer_type elements; // Element storage + const skipfield_pointer_type + skipfield; // Skipfield storage. The element and skipfield arrays are allocated contiguously, hence the skipfield pointer also functions as a 'one-past-end' pointer for the elements array. There will always be one additional skipfield node allocated compared to the number of elements. This is to ensure a faster ++ iterator operation (fewer checks are required when this is present). The extra node is unused and always zero, but checked, and not having it will result in out-of-bounds memory errors. + group_pointer_type + previous_group; // previous group in the intrusive list of all groups. NULL if no preceding group + skipfield_type + free_list_head; // The index of the last erased element in the group. The last erased element will, in turn, contain the number of the index of the next erased element, and so on. If this is == maximum skipfield_type value then free_list is empty ie. no erasures have occurred in the group (or if they have, the erased locations have then been reused via insert()). + const skipfield_type + capacity; // The element capacity of this particular group + skipfield_type + number_of_elements; // indicates total number of active elements in group - changes with insert and erase commands - used to check for empty group in erase function, as an indication to remove the group + group_pointer_type + erasures_list_next_group; // The next group in the intrusive singly-linked list of groups with erasures ie. with active erased-element free lists + size_type + group_number; // Used for comparison (> < >= <=) iterator operators (used by distance function and user) + + +#ifdef PLF_COLONY_VARIADICS_SUPPORT + group( const skipfield_type elements_per_group, group_pointer_type const previous = NULL ): + last_endpoint( reinterpret_cast( PLF_COLONY_ALLOCATE_INITIALIZATION( + uchar_allocator_type, ( ( elements_per_group * ( sizeof( aligned_element_type ) ) ) + ( ( + elements_per_group + 1u ) * sizeof( skipfield_type ) ) ), + ( previous == NULL ) ? 0 : + previous->elements ) ) ), /* allocating to here purely because it is first in the struct sequence - actual pointer is elements, last_endpoint is only initialised to element's base value initially, then incremented by one below */ + next_group( NULL ), + elements( last_endpoint++ ), + skipfield( reinterpret_cast( elements + elements_per_group ) ), + previous_group( previous ), + free_list_head( std::numeric_limits::max() ), + capacity( elements_per_group ), + number_of_elements( 1 ), + erasures_list_next_group( NULL ), + group_number( ( previous == NULL ) ? 0 : previous->group_number + 1u ) { + // Static casts to unsigned int from short not necessary as C++ automatically promotes lesser types for arithmetic purposes. + std::memset( &*skipfield, 0, sizeof( skipfield_type ) * ( elements_per_group + + 1u ) ); // &* to avoid problems with non-trivial pointers + } + +#else + // This is a hack around the fact that element_allocator_type::construct only supports copy construction in C++03 and copy elision does not occur on the vast majority of compilers in this circumstance. And to avoid running out of memory (and losing performance) from allocating the same block twice, we're allocating in this constructor and moving data in the copy constructor. + group( const skipfield_type elements_per_group, group_pointer_type const previous = NULL ): + last_endpoint( reinterpret_cast( PLF_COLONY_ALLOCATE_INITIALIZATION( + uchar_allocator_type, ( ( elements_per_group * ( sizeof( aligned_element_type ) ) ) + ( ( + elements_per_group + 1 ) * sizeof( skipfield_type ) ) ), + ( previous == NULL ) ? 0 : previous->elements ) ) ), + elements( NULL ), + skipfield( reinterpret_cast( last_endpoint + elements_per_group ) ), + previous_group( previous ), + capacity( elements_per_group ) { + std::memset( &*skipfield, 0, sizeof( skipfield_type ) * ( elements_per_group + 1u ) ); + } + + + + // Not a real copy constructor ie. actually a move constructor. Only used for allocator.construct in C++03 for reasons stated above: +group( const group &source ) PLF_COLONY_NOEXCEPT: + uchar_allocator_type( source ), + last_endpoint( source.last_endpoint + 1 ), + next_group( NULL ), + elements( source.last_endpoint ), + skipfield( source.skipfield ), + previous_group( source.previous_group ), + free_list_head( std::numeric_limits::max() ), + capacity( source.capacity ), + number_of_elements( 1 ), + erasures_list_next_group( NULL ), + group_number( ( source.previous_group == NULL ) ? 0 : source.previous_group->group_number + 1u ) + {} +#endif + + + + ~group() PLF_COLONY_NOEXCEPT { + // Null check not necessary (for copied group as above) as delete will also perform a null check. + PLF_COLONY_DEALLOCATE( uchar_allocator_type, ( *this ), reinterpret_cast( elements ), ( capacity * sizeof( aligned_element_type ) ) + ( ( capacity + 1u ) * sizeof( skipfield_type ) ) ); + } + }; + + + + + // Implement const/non-const iterator switching pattern: + template struct choose; + + template struct choose { + typedef is_true type; + }; + + template struct choose { + typedef is_false type; + }; + + + public: + + + // Iterators: + template class colony_iterator + { + private: + group_pointer_type group_pointer; + aligned_pointer_type element_pointer; + skipfield_pointer_type skipfield_pointer; + + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef typename colony::value_type value_type; + typedef typename colony::difference_type difference_type; + typedef typename choose::type + pointer; + typedef typename + choose::type reference; + + friend class colony; + friend class colony_reverse_iterator; + friend class colony_reverse_iterator; + + + + inline colony_iterator &operator = ( const colony_iterator &source ) PLF_COLONY_NOEXCEPT { + group_pointer = source.group_pointer; + element_pointer = source.element_pointer; + skipfield_pointer = source.skipfield_pointer; + return *this; + } + + + + inline colony_iterator &operator = ( const colony_iterator < !is_const > &source ) + PLF_COLONY_NOEXCEPT { + group_pointer = source.group_pointer; + element_pointer = source.element_pointer; + skipfield_pointer = source.skipfield_pointer; + return *this; + } + + + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + // Move assignment - only really necessary if the allocator uses non-standard ie. smart pointers + inline colony_iterator &operator = ( colony_iterator &&source ) + PLF_COLONY_NOEXCEPT { // Move is a copy in this scenario + assert( &source != this ); + group_pointer = std::move( source.group_pointer ); + element_pointer = std::move( source.element_pointer ); + skipfield_pointer = std::move( source.skipfield_pointer ); + return *this; + } + + + + inline colony_iterator &operator = ( colony_iterator < !is_const > &&source ) PLF_COLONY_NOEXCEPT { + assert( &source != this ); + group_pointer = std::move( source.group_pointer ); + element_pointer = std::move( source.element_pointer ); + skipfield_pointer = std::move( source.skipfield_pointer ); + return *this; + } +#endif + + + + inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_iterator &rh ) const + PLF_COLONY_NOEXCEPT { + return ( element_pointer == rh.element_pointer ); + } + + + + inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_iterator < !is_const > &rh ) const + PLF_COLONY_NOEXCEPT { + return ( element_pointer == rh.element_pointer ); + } + + + + inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_iterator &rh ) const + PLF_COLONY_NOEXCEPT { + return ( element_pointer != rh.element_pointer ); + } + + + + inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_iterator < !is_const > &rh ) const + PLF_COLONY_NOEXCEPT { + return ( element_pointer != rh.element_pointer ); + } + + + + inline PLF_COLONY_FORCE_INLINE reference operator * () + const { // may cause exception with uninitialized iterator + return *( reinterpret_cast( element_pointer ) ); + } + + + + inline PLF_COLONY_FORCE_INLINE pointer operator -> () const PLF_COLONY_NOEXCEPT { + return reinterpret_cast( element_pointer ); + } + + + +#if defined(_MSC_VER) && _MSC_VER <= 1600 // MSVC 2010 needs a bit of a helping hand when it comes to optimizing + inline PLF_COLONY_FORCE_INLINE colony_iterator &operator ++ () +#else + colony_iterator &operator ++ () +#endif + { + assert( group_pointer != NULL ); // covers uninitialised colony_iterator + assert( !( element_pointer == group_pointer->last_endpoint && + group_pointer->next_group != NULL ) ); // Assert that iterator is not already at end() + + skipfield_type skip = *( ++skipfield_pointer ); + + if( ( element_pointer += skip + 1 ) == group_pointer->last_endpoint && + group_pointer->next_group != NULL ) { // ie. beyond end of available data + group_pointer = group_pointer->next_group; + skip = *( group_pointer->skipfield ); + element_pointer = group_pointer->elements + skip; + skipfield_pointer = group_pointer->skipfield; + } + + skipfield_pointer += skip; + return *this; + } + + + + inline colony_iterator operator ++( int ) { + const colony_iterator copy( *this ); + ++*this; + return copy; + } + + + + private: + inline PLF_COLONY_FORCE_INLINE void check_for_end_of_group_and_progress() { // used by erase + if( element_pointer == group_pointer->last_endpoint && group_pointer->next_group != NULL ) { + group_pointer = group_pointer->next_group; + skipfield_pointer = group_pointer->skipfield; + element_pointer = group_pointer->elements + *skipfield_pointer; + skipfield_pointer += *skipfield_pointer; + } + } + + + + public: + + colony_iterator &operator -- () { + assert( group_pointer != NULL ); + assert( !( element_pointer == group_pointer->elements && + group_pointer->previous_group == + NULL ) ); // Assert that we are not already at begin() - this is not required to be tested in the code below as we don't need a special condition to progress to begin(), like we do with end() in operator ++ + + if( element_pointer != group_pointer->elements ) { // ie. not already at beginning of group + const skipfield_type skip = *( --skipfield_pointer ); + skipfield_pointer -= skip; + + if( ( element_pointer -= skip + 1 ) != group_pointer->elements - + 1 ) { // ie. iterator was not already at beginning of colony (with some previous consecutive deleted elements), and skipfield does not takes us into the previous group) + return *this; + } + } + + group_pointer = group_pointer->previous_group; + skipfield_pointer = group_pointer->skipfield + group_pointer->capacity - 1; + element_pointer = ( reinterpret_cast( group_pointer->skipfield ) - 1 ) + - *skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + + return *this; + } + + + + inline colony_iterator operator -- ( int ) { + const colony_iterator copy( *this ); + --*this; + return copy; + } + + + + inline bool operator > ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return ( ( group_pointer == rh.group_pointer ) & ( element_pointer > rh.element_pointer ) ) || + ( group_pointer != rh.group_pointer && + group_pointer->group_number > rh.group_pointer->group_number ); + } + + + + inline bool operator < ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return rh > *this; + } + + + + inline bool operator >= ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return !( rh > *this ); + } + + + + inline bool operator <= ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return !( *this > rh ); + } + + + + inline bool operator > ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + return ( ( group_pointer == rh.group_pointer ) & ( element_pointer > rh.element_pointer ) ) || + ( group_pointer != rh.group_pointer && + group_pointer->group_number > rh.group_pointer->group_number ); + } + + + + inline bool operator < ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + return rh > *this; + } + + + + inline bool operator >= ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + return !( rh > *this ); + } + + + + inline bool operator <= ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + return !( *this > rh ); + } + + + colony_iterator() PLF_COLONY_NOEXCEPT: + group_pointer( NULL ), element_pointer( NULL ), skipfield_pointer( NULL ) {} + + + + private: + // Used by cend(), erase() etc: + colony_iterator( const group_pointer_type group_p, const aligned_pointer_type element_p, + const skipfield_pointer_type skipfield_p ) PLF_COLONY_NOEXCEPT: + group_pointer( group_p ), element_pointer( element_p ), skipfield_pointer( skipfield_p ) {} + + + + public: + + inline colony_iterator( const colony_iterator &source ) PLF_COLONY_NOEXCEPT: + group_pointer( source.group_pointer ), + element_pointer( source.element_pointer ), + skipfield_pointer( source.skipfield_pointer ) + {} + + + inline colony_iterator( const colony_iterator < !is_const > &source ) PLF_COLONY_NOEXCEPT: + group_pointer( source.group_pointer ), + element_pointer( source.element_pointer ), + skipfield_pointer( source.skipfield_pointer ) + {} + + + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + // move constructor + inline colony_iterator( colony_iterator &&source ) PLF_COLONY_NOEXCEPT: + group_pointer( std::move( source.group_pointer ) ), + element_pointer( std::move( source.element_pointer ) ), + skipfield_pointer( std::move( source.skipfield_pointer ) ) + {} + + + inline colony_iterator( colony_iterator < !is_const > &&source ) PLF_COLONY_NOEXCEPT: + group_pointer( std::move( source.group_pointer ) ), + element_pointer( std::move( source.element_pointer ) ), + skipfield_pointer( std::move( source.skipfield_pointer ) ) + {} +#endif + + + }; // colony_iterator + + + + + + // Reverse iterators: + + template class colony_reverse_iterator + { + private: + iterator it; + + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef typename colony::value_type value_type; + typedef typename colony::difference_type difference_type; + typedef typename choose::type + pointer; + typedef typename + choose::type reference; + + friend class colony; + + + inline colony_reverse_iterator &operator = ( const colony_reverse_iterator &source ) + PLF_COLONY_NOEXCEPT { + it = source.it; + return *this; + } + + + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + // move assignment + inline colony_reverse_iterator &operator = ( colony_reverse_iterator &&source ) + PLF_COLONY_NOEXCEPT { + it = std::move( source.it ); + return *this; + } +#endif + + + + inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_reverse_iterator &rh ) const + PLF_COLONY_NOEXCEPT { + return ( it == rh.it ); + } + + + + inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_reverse_iterator &rh ) const + PLF_COLONY_NOEXCEPT { + return ( it != rh.it ); + } + + + + inline PLF_COLONY_FORCE_INLINE reference operator * () const PLF_COLONY_NOEXCEPT { + return *( reinterpret_cast( it.element_pointer ) ); + } + + + + inline PLF_COLONY_FORCE_INLINE pointer *operator -> () const PLF_COLONY_NOEXCEPT { + return reinterpret_cast( it.element_pointer ); + } + + + + // In this case we have to redefine the algorithm, rather than using the internal iterator's -- operator, in order for the reverse_iterator to be allowed to reach rend() ie. begin_iterator - 1 + colony_reverse_iterator &operator ++ () { + colony::group_pointer_type &group_pointer = it.group_pointer; + colony::aligned_pointer_type &element_pointer = it.element_pointer; + colony::skipfield_pointer_type &skipfield_pointer = it.skipfield_pointer; + + assert( group_pointer != NULL ); + assert( !( element_pointer == group_pointer->elements - 1 && + group_pointer->previous_group == NULL ) ); // Assert that we are not already at rend() + + if( element_pointer != group_pointer->elements ) { // ie. not already at beginning of group + element_pointer -= *( --skipfield_pointer ) + 1; + skipfield_pointer -= *skipfield_pointer; + + if( !( element_pointer == group_pointer->elements - 1 && + group_pointer->previous_group == NULL ) ) { // ie. iterator is not == rend() + return *this; + } + } + + if( group_pointer->previous_group != NULL ) { // ie. not first group in colony + group_pointer = group_pointer->previous_group; + skipfield_pointer = group_pointer->skipfield + group_pointer->capacity - 1; + element_pointer = ( reinterpret_cast( group_pointer->skipfield ) - 1 ) + - *skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + } else { // necessary so that reverse_iterator can end up == rend(), if we were already at first element in colony + --element_pointer; + --skipfield_pointer; + } + + return *this; + } + + + + inline colony_reverse_iterator operator ++ ( int ) { + const colony_reverse_iterator copy( *this ); + ++*this; + return copy; + } + + + + inline PLF_COLONY_FORCE_INLINE colony_reverse_iterator &operator -- () { + assert( !( it.element_pointer == it.group_pointer->last_endpoint - 1 && + it.group_pointer->next_group == NULL ) ); // ie. Check that we are not already at rbegin() + ++it; + return *this; + } + + + + inline colony_reverse_iterator operator -- ( int ) { + const colony_reverse_iterator copy( *this ); + --*this; + return copy; + } + + + + inline typename colony::iterator base() const { + return ++( typename colony::iterator( it ) ); + } + + + + inline bool operator > ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return ( rh.it > it ); + } + + + + inline bool operator < ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return ( it > rh.it ); + } + + + + inline bool operator >= ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return !( it > rh.it ); + } + + + + inline bool operator <= ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + return !( rh.it > it ); + } + + + + inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_reverse_iterator < !r_is_const > + &rh ) const PLF_COLONY_NOEXCEPT { + return ( it == rh.it ); + } + + + + inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_reverse_iterator < !r_is_const > + &rh ) const PLF_COLONY_NOEXCEPT { + return ( it != rh.it ); + } + + + + inline bool operator > ( const colony_reverse_iterator < !r_is_const > &rh ) const + PLF_COLONY_NOEXCEPT { + return ( rh.it > it ); + } + + + + inline bool operator < ( const colony_reverse_iterator < !r_is_const > &rh ) const + PLF_COLONY_NOEXCEPT { + return ( it > rh.it ); + } + + + + inline bool operator >= ( const colony_reverse_iterator < !r_is_const > &rh ) const + PLF_COLONY_NOEXCEPT { + return !( it > rh.it ); + } + + + + inline bool operator <= ( const colony_reverse_iterator < !r_is_const > &rh ) const + PLF_COLONY_NOEXCEPT { + return !( rh.it > it ); + } + + + + colony_reverse_iterator() PLF_COLONY_NOEXCEPT + {} + + + + colony_reverse_iterator( const colony_reverse_iterator &source ) PLF_COLONY_NOEXCEPT: + it( source.it ) + {} + + + + colony_reverse_iterator( const typename colony::iterator &source ) PLF_COLONY_NOEXCEPT: + it( source ) + {} + + + + private: + // Used by rend(), etc: + colony_reverse_iterator( const group_pointer_type group_p, const aligned_pointer_type element_p, + const skipfield_pointer_type skipfield_p ) PLF_COLONY_NOEXCEPT: + it( group_p, element_p, skipfield_p ) {} + + + + public: + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + // move constructors + colony_reverse_iterator( colony_reverse_iterator &&source ) PLF_COLONY_NOEXCEPT: + it( std::move( source.it ) ) + {} + + colony_reverse_iterator( typename colony::iterator &&source ) PLF_COLONY_NOEXCEPT: + it( std::move( source ) ) + {} +#endif + + }; // colony_reverse_iterator + + + + + private: + + // Used to prevent fill-insert/constructor calls being mistakenly resolved to range-insert/constructor calls + template + struct plf_enable_if_c { + typedef T type; + }; + + template + struct plf_enable_if_c { + }; + + + iterator end_iterator, begin_iterator; + group_pointer_type + groups_with_erasures_list_head; // Head of a singly-linked intrusive list of groups which have erased-element memory locations available for reuse + size_type total_number_of_elements, total_capacity; + + struct ebco_pair2 : + pointer_allocator_type { // Packaging the element pointer allocator with a lesser-used member variable, for empty-base-class optimisation + skipfield_type min_elements_per_group; +explicit ebco_pair2( const skipfield_type min_elements ) PLF_COLONY_NOEXCEPT: + min_elements_per_group( min_elements ) {} + } pointer_allocator_pair; + + struct ebco_pair : group_allocator_type { + skipfield_type max_elements_per_group; +explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: + max_elements_per_group( max_elements ) {} + } group_allocator_pair; + + + public: + + // Default constuctor: + + colony() PLF_COLONY_NOEXCEPT: + element_allocator_type( element_allocator_type() ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( ( sizeof( aligned_element_type ) * 8 > ( sizeof( *this ) + sizeof( + group ) ) * 2 ) ? 8 : ( ( ( sizeof( *this ) + sizeof( group ) ) * 2 ) / sizeof( + aligned_element_type ) ) ), + group_allocator_pair( std::numeric_limits::max() ) { + assert( std::numeric_limits::is_integer & + !std::numeric_limits::is_signed ); // skipfield type must be of unsigned integer type (uchar, ushort, uint etc) + +#ifndef PLF_COLONY_ALIGNMENT_SUPPORT + assert( sizeof( element_type ) >= sizeof( skipfield_type ) * + 2 ); // eg. under C++03, aligned_storage is not available, so sizeof(skipfield type) * 2 must be larger or equal to sizeof(element_type), otherwise the doubly-linked free lists of erased element indexes will not work correctly. So if you're storing chars, for example, and using the default skipfield type (unsigned short), the compiler will flag you with this assert. You cannot store char or unsigned char in colony under C++03, and if storing short or unsigned short you must change your skipfield type to unsigned char. Or just use C++11 and above. +#endif + } + + + + // Default constuctor (allocator-extended): + + explicit colony( const element_allocator_type &alloc ): + element_allocator_type( alloc ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( ( sizeof( aligned_element_type ) * 8 > ( sizeof( *this ) + sizeof( + group ) ) * 2 ) ? 8 : ( ( ( sizeof( *this ) + sizeof( group ) ) * 2 ) / sizeof( + aligned_element_type ) ) ), + group_allocator_pair( std::numeric_limits::max() ) { + assert( std::numeric_limits::is_integer & + !std::numeric_limits::is_signed ); + +#ifndef PLF_COLONY_ALIGNMENT_SUPPORT + assert( sizeof( element_type ) >= sizeof( skipfield_type ) * + 2 ); // see default constructor explanation +#endif + } + + + + // Copy constructor: + + colony( const colony &source ): + element_allocator_type( source ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( static_cast( ( + source.pointer_allocator_pair.min_elements_per_group > source.total_number_of_elements ) ? + source.pointer_allocator_pair.min_elements_per_group : ( ( source.total_number_of_elements > + source.group_allocator_pair.max_elements_per_group ) ? + source.group_allocator_pair.max_elements_per_group : + source.total_number_of_elements ) ) ), // Make the first colony group capacity the greater of min_elements_per_group or total_number_of_elements, so long as total_number_of_elements isn't larger than max_elements_per_group + group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { + insert( source.begin_iterator, source.end_iterator ); + pointer_allocator_pair.min_elements_per_group = + source.pointer_allocator_pair.min_elements_per_group; // reset to correct value for future clear() or erasures + } + + + + // Copy constructor (allocator-extended): + + colony( const colony &source, const allocator_type &alloc ): + element_allocator_type( alloc ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( static_cast( ( + source.pointer_allocator_pair.min_elements_per_group > source.total_number_of_elements ) ? + source.pointer_allocator_pair.min_elements_per_group : ( ( source.total_number_of_elements > + source.group_allocator_pair.max_elements_per_group ) ? + source.group_allocator_pair.max_elements_per_group : source.total_number_of_elements ) ) ), + group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { + insert( source.begin_iterator, source.end_iterator ); + pointer_allocator_pair.min_elements_per_group = + source.pointer_allocator_pair.min_elements_per_group; + } + + + + + private: + + inline void blank() PLF_COLONY_NOEXCEPT { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_trivial::value && std::is_trivial::value && std::is_trivial::value ) { // if all pointer types are trivial, we can just nuke it from orbit with memset (NULL is always 0 in C++): + std::memset( static_cast( this ), 0, offsetof( colony, pointer_allocator_pair ) ); + } else +#endif + { + end_iterator.group_pointer = NULL; + end_iterator.element_pointer = NULL; + end_iterator.skipfield_pointer = NULL; + begin_iterator.group_pointer = NULL; + begin_iterator.element_pointer = NULL; + begin_iterator.skipfield_pointer = NULL; + groups_with_erasures_list_head = NULL; + total_number_of_elements = 0; + total_capacity = 0; + } + } + + + + public: + + + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + // Move constructor: + + colony( colony &&source ) PLF_COLONY_NOEXCEPT: + element_allocator_type( source ), + end_iterator( std::move( source.end_iterator ) ), + begin_iterator( std::move( source.begin_iterator ) ), + groups_with_erasures_list_head( std::move( source.groups_with_erasures_list_head ) ), + total_number_of_elements( source.total_number_of_elements ), + total_capacity( source.total_capacity ), + pointer_allocator_pair( source.pointer_allocator_pair.min_elements_per_group ), + group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { + source.blank(); + } + + + // Move constructor (allocator-extended): + + colony( colony &&source, const allocator_type &alloc ): + element_allocator_type( alloc ), + end_iterator( std::move( source.end_iterator ) ), + begin_iterator( std::move( source.begin_iterator ) ), + groups_with_erasures_list_head( std::move( source.groups_with_erasures_list_head ) ), + total_number_of_elements( source.total_number_of_elements ), + total_capacity( source.total_capacity ), + pointer_allocator_pair( source.pointer_allocator_pair.min_elements_per_group ), + group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { + source.blank(); + } +#endif + + + + // Fill constructor: + + colony( const size_type fill_number, const element_type &element, + const skipfield_type min_allocation_amount = 0, + const skipfield_type max_allocation_amount = std::numeric_limits::max(), + const element_allocator_type &alloc = element_allocator_type() ): + element_allocator_type( alloc ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( ( min_allocation_amount != 0 ) ? min_allocation_amount : + ( fill_number > max_allocation_amount ) ? max_allocation_amount : + ( fill_number > 8 ) ? static_cast( fill_number ) : 8 ), + group_allocator_pair( max_allocation_amount ) { + assert( std::numeric_limits::is_integer & + !std::numeric_limits::is_signed ); + assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & + ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); + +#ifndef PLF_COLONY_ALIGNMENT_SUPPORT + assert( sizeof( element_type ) >= sizeof( skipfield_type ) * + 2 ); // see default constructor explanation +#endif + + insert( fill_number, element ); + } + + + + // Range constructor: + + template + colony( const typename plf_enable_if_c < !std::numeric_limits::is_integer, + iterator_type >::type &first, const iterator_type &last, + const skipfield_type min_allocation_amount = 8, + const skipfield_type max_allocation_amount = std::numeric_limits::max(), + const element_allocator_type &alloc = element_allocator_type() ): + element_allocator_type( alloc ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( min_allocation_amount ), + group_allocator_pair( max_allocation_amount ) { + assert( std::numeric_limits::is_integer & + !std::numeric_limits::is_signed ); + assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & + ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); + +#ifndef PLF_COLONY_ALIGNMENT_SUPPORT + assert( sizeof( element_type ) >= sizeof( skipfield_type ) * + 2 ); // see default constructor explanation +#endif + + insert( first, last ); + } + + + + // Initializer-list constructor: + +#ifdef PLF_COLONY_INITIALIZER_LIST_SUPPORT + colony( const std::initializer_list &element_list, + const skipfield_type min_allocation_amount = 0, + const skipfield_type max_allocation_amount = std::numeric_limits::max(), + const element_allocator_type &alloc = element_allocator_type() ): + element_allocator_type( alloc ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( ( min_allocation_amount != 0 ) ? min_allocation_amount : + ( element_list.size() > max_allocation_amount ) ? max_allocation_amount : + ( element_list.size() > 8 ) ? static_cast( element_list.size() ) : 8 ), + group_allocator_pair( max_allocation_amount ) { + assert( std::numeric_limits::is_integer & + !std::numeric_limits::is_signed ); + assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & + ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); + +#ifndef PLF_COLONY_ALIGNMENT_SUPPORT + assert( sizeof( element_type ) >= sizeof( skipfield_type ) * + 2 ); // see default constructor explanation +#endif + + insert( element_list ); + } + +#endif + + + + inline PLF_COLONY_FORCE_INLINE iterator begin() PLF_COLONY_NOEXCEPT { + return begin_iterator; + } + + + + inline PLF_COLONY_FORCE_INLINE const iterator &begin() const + PLF_COLONY_NOEXCEPT { // To allow for functions which only take const colony & as a source eg. copy constructor + return begin_iterator; + } + + + + inline PLF_COLONY_FORCE_INLINE iterator end() PLF_COLONY_NOEXCEPT { + return end_iterator; + } + + + + inline PLF_COLONY_FORCE_INLINE const iterator &end() const PLF_COLONY_NOEXCEPT { + return end_iterator; + } + + + + inline const_iterator cbegin() const PLF_COLONY_NOEXCEPT { + return const_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer, + begin_iterator.skipfield_pointer ); + } + + + + inline const_iterator cend() const PLF_COLONY_NOEXCEPT { + return const_iterator( end_iterator.group_pointer, end_iterator.element_pointer, + end_iterator.skipfield_pointer ); + } + + + + inline reverse_iterator rbegin() + const { // May throw exception if colony is empty so end_iterator is uninitialized + return ++reverse_iterator( end_iterator ); + } + + + + inline reverse_iterator rend() const PLF_COLONY_NOEXCEPT { + return reverse_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer - 1, + begin_iterator.skipfield_pointer - 1 ); + } + + + + inline const_reverse_iterator crbegin() const { + return ++const_reverse_iterator( end_iterator ); + } + + + + inline const_reverse_iterator crend() const PLF_COLONY_NOEXCEPT { + return const_reverse_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer - 1, + begin_iterator.skipfield_pointer - 1 ); + } + + + + ~colony() PLF_COLONY_NOEXCEPT { + destroy_all_data(); + } + + + + private: + + void destroy_all_data() PLF_COLONY_NOEXCEPT { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if( ( total_number_of_elements != 0 ) & !( std::is_trivially_destructible::value ) ) // Amusingly enough, these changes from && to logical & actually do make a significant difference in debug mode +#else // If compiler doesn't support traits, iterate regardless - trivial destructors will not be called, hopefully compiler will optimise the 'destruct' loop out for POD types + if( total_number_of_elements != 0 ) +#endif + { + total_number_of_elements = 0; // to avoid double-destruction + + while( true ) { + const aligned_pointer_type end_pointer = begin_iterator.group_pointer->last_endpoint; + + do { + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( begin_iterator.element_pointer ) ); + ++begin_iterator.skipfield_pointer; + begin_iterator.element_pointer += *begin_iterator.skipfield_pointer + 1; + begin_iterator.skipfield_pointer += *begin_iterator.skipfield_pointer; + } while( begin_iterator.element_pointer != end_pointer ); // ie. beyond end of available data + + const group_pointer_type next_group = begin_iterator.group_pointer->next_group; + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + 1 ); + begin_iterator.group_pointer = + next_group; // required to be before if statement in order for first_group to be NULL and avoid potential double-destruction in future + + if( next_group == NULL ) { + return; + } + + begin_iterator.element_pointer = next_group->elements + *( next_group->skipfield ); + begin_iterator.skipfield_pointer = next_group->skipfield + *( next_group->skipfield ); + } + } else { // Avoid iteration for both empty groups and trivially-destructible types eg. POD, structs, classes with empty destructors + // Technically under a type-traits-supporting compiler total_number_of_elements could be non-zero at this point, but since begin_iterator.group_pointer would already be NULL in the case of double-destruction, it's unnecessary to zero total_number_of_elements + while( begin_iterator.group_pointer != NULL ) { + const group_pointer_type next_group = begin_iterator.group_pointer->next_group; + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + 1 ); + begin_iterator.group_pointer = next_group; + } + } + } + + + + void initialize( const skipfield_type first_group_size ) { + begin_iterator.group_pointer = PLF_COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, + 0 ); + + try { +#ifdef PLF_COLONY_VARIADICS_SUPPORT + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + first_group_size ); +#else + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + group( first_group_size ) ); +#endif + } catch( ... ) { + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + 1 ); + begin_iterator.group_pointer = NULL; + throw; + } + + end_iterator.group_pointer = begin_iterator.group_pointer; + end_iterator.element_pointer = begin_iterator.element_pointer = + begin_iterator.group_pointer->elements; + end_iterator.skipfield_pointer = begin_iterator.skipfield_pointer = + begin_iterator.group_pointer->skipfield; + total_capacity = first_group_size; + } + + + + public: + + + iterator insert( const element_type &element ) { + if( end_iterator.element_pointer != NULL ) { + switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == + reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { + case 0: { // ie. there are no erased elements and end_iterator is not at end of current final group + const iterator return_iterator = + end_iterator; /* Make copy for return before modifying end_iterator */ + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { + // For no good reason this compiles to faster code under GCC: + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); + end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; + } else +#endif + { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer ), element ); + end_iterator.group_pointer->last_endpoint = + ++end_iterator.element_pointer; // Shift the addition to the second operation, avoiding problems if an exception is thrown during construction + } + + ++( end_iterator.group_pointer->number_of_elements ); + ++end_iterator.skipfield_pointer; + ++total_number_of_elements; + + return return_iterator; // return value before incrementation + } + case 1: { // ie. there are no erased elements and end_iterator is at end of current final group - ie. colony is full - create new group + end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( group_allocator_type, + group_allocator_pair, 1, end_iterator.group_pointer ); + group &next_group = *( end_iterator.group_pointer->next_group ); + const skipfield_type new_group_size = ( total_number_of_elements < static_cast + ( group_allocator_pair.max_elements_per_group ) ) ? static_cast + ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; + + try { +#ifdef PLF_COLONY_VARIADICS_SUPPORT + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, + end_iterator.group_pointer ); +#else + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, + group( new_group_size, end_iterator.group_pointer ) ); +#endif + } catch( ... ) { + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + end_iterator.group_pointer->next_group = NULL; + throw; + } + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), element ); + } else +#endif + { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), element ); + } catch( ... ) { + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + end_iterator.group_pointer->next_group = NULL; + throw; + } + } + + end_iterator.group_pointer = &next_group; + end_iterator.element_pointer = next_group.last_endpoint; + end_iterator.skipfield_pointer = next_group.skipfield + 1; + ++total_number_of_elements; + total_capacity += new_group_size; + + return iterator( end_iterator.group_pointer, next_group.elements, + next_group.skipfield ); /* returns value before incrementation */ + } + default: { // ie. there are erased elements, reuse previous-erased element locations + iterator new_location; + new_location.group_pointer = groups_with_erasures_list_head; + new_location.element_pointer = groups_with_erasures_list_head->elements + + groups_with_erasures_list_head->free_list_head; + new_location.skipfield_pointer = groups_with_erasures_list_head->skipfield + + groups_with_erasures_list_head->free_list_head; + + // always at start of skipblock, update skipblock: + const skipfield_type prev_free_list_index = *( reinterpret_cast + ( new_location.element_pointer ) ); + + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( new_location.element_pointer ), element ); + + // Update skipblock: + const skipfield_type new_value = *( new_location.skipfield_pointer ) - 1; + + if( new_value != + 0 ) { // ie. skipfield was not 1, ie. a single-node skipblock, with no additional nodes to update + // set (new) start and (original) end of skipblock to new value: + *( new_location.skipfield_pointer + new_value ) = *( new_location.skipfield_pointer + 1 ) = + new_value; + + // transfer free list node to new start node: + ++( groups_with_erasures_list_head->free_list_head ); + + if( prev_free_list_index != + std::numeric_limits::max() ) { // ie. not the tail free list node + *( reinterpret_cast( new_location.group_pointer->elements + + prev_free_list_index ) + 1 ) = groups_with_erasures_list_head->free_list_head; + } + + *( reinterpret_cast( new_location.element_pointer + 1 ) ) = + prev_free_list_index; + *( reinterpret_cast( new_location.element_pointer + 1 ) + 1 ) = + std::numeric_limits::max(); + } else { + groups_with_erasures_list_head->free_list_head = prev_free_list_index; + + if( prev_free_list_index != + std::numeric_limits::max() ) { // ie. not the last free list node + *( reinterpret_cast( new_location.group_pointer->elements + + prev_free_list_index ) + 1 ) = std::numeric_limits::max(); + } else { + groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; + } + } + + *( new_location.skipfield_pointer ) = 0; + ++( new_location.group_pointer->number_of_elements ); + + if( new_location.group_pointer == begin_iterator.group_pointer && + new_location.element_pointer < begin_iterator.element_pointer ) { + /* ie. begin_iterator was moved forwards as the result of an erasure at some point, this erased element is before the current begin, hence, set current begin iterator to this element */ + begin_iterator = new_location; + } + + ++total_number_of_elements; + return new_location; + } + } + } else { // ie. newly-constructed colony, no insertions yet and no groups + initialize( pointer_allocator_pair.min_elements_per_group ); + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); + } else +#endif + { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); + } catch( ... ) { + clear(); + throw; + } + } + + ++end_iterator.skipfield_pointer; + total_number_of_elements = 1; + return begin_iterator; + } + } + + + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + iterator insert( element_type + &&element ) { // The move-insert function is near-identical to the regular insert function, with the exception of the element construction method and is_nothrow tests. + if( end_iterator.element_pointer != NULL ) { + switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == + reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { + case 0: { + const iterator return_iterator = end_iterator; + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); + end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; + } else +#endif + { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer ), std::move( element ) ); + end_iterator.group_pointer->last_endpoint = ++end_iterator.element_pointer; + } + + ++( end_iterator.group_pointer->number_of_elements ); + ++end_iterator.skipfield_pointer; + ++total_number_of_elements; + + return return_iterator; + } + case 1: { + end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( group_allocator_type, + group_allocator_pair, 1, end_iterator.group_pointer ); + group &next_group = *( end_iterator.group_pointer->next_group ); + const skipfield_type new_group_size = ( total_number_of_elements < static_cast + ( group_allocator_pair.max_elements_per_group ) ) ? static_cast + ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; + + try { +#ifdef PLF_COLONY_VARIADICS_SUPPORT + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, + end_iterator.group_pointer ); +#else + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, + group( new_group_size, end_iterator.group_pointer ) ); +#endif + } catch( ... ) { + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + end_iterator.group_pointer->next_group = NULL; + throw; + } + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::move( element ) ); + } else +#endif + { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::move( element ) ); + } catch( ... ) { + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + end_iterator.group_pointer->next_group = NULL; + throw; + } + } + + end_iterator.group_pointer = &next_group; + end_iterator.element_pointer = next_group.last_endpoint; + end_iterator.skipfield_pointer = next_group.skipfield + 1; + ++total_number_of_elements; + total_capacity += new_group_size; + + return iterator( end_iterator.group_pointer, next_group.elements, next_group.skipfield ); + } + default: { + iterator new_location; + new_location.group_pointer = groups_with_erasures_list_head; + new_location.element_pointer = groups_with_erasures_list_head->elements + + groups_with_erasures_list_head->free_list_head; + new_location.skipfield_pointer = groups_with_erasures_list_head->skipfield + + groups_with_erasures_list_head->free_list_head; + + const skipfield_type prev_free_list_index = *( reinterpret_cast + ( new_location.element_pointer ) ); + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( new_location.element_pointer ), std::move( element ) ); + + const skipfield_type new_value = *( new_location.skipfield_pointer ) - 1; + + if( new_value != 0 ) { + *( new_location.skipfield_pointer + new_value ) = *( new_location.skipfield_pointer + 1 ) = + new_value; + ++( groups_with_erasures_list_head->free_list_head ); + + if( prev_free_list_index != std::numeric_limits::max() ) { + *( reinterpret_cast( new_location.group_pointer->elements + + prev_free_list_index ) + 1 ) = groups_with_erasures_list_head->free_list_head; + } + + *( reinterpret_cast( new_location.element_pointer + 1 ) ) = + prev_free_list_index; + *( reinterpret_cast( new_location.element_pointer + 1 ) + 1 ) = + std::numeric_limits::max(); + } else { + groups_with_erasures_list_head->free_list_head = prev_free_list_index; + + if( prev_free_list_index != std::numeric_limits::max() ) { + *( reinterpret_cast( new_location.group_pointer->elements + + prev_free_list_index ) + 1 ) = std::numeric_limits::max(); + } else { + groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; + } + } + + *( new_location.skipfield_pointer ) = 0; + ++( new_location.group_pointer->number_of_elements ); + + if( new_location.group_pointer == begin_iterator.group_pointer && + new_location.element_pointer < begin_iterator.element_pointer ) { + begin_iterator = new_location; + } + + ++total_number_of_elements; + + return new_location; + } + } + } else { + initialize( pointer_allocator_pair.min_elements_per_group ); + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); + } else +#endif + { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); + } catch( ... ) { + clear(); + throw; + } + } + + ++end_iterator.skipfield_pointer; + total_number_of_elements = 1; + return begin_iterator; + } + } +#endif + + + + +#ifdef PLF_COLONY_VARIADICS_SUPPORT + template + iterator emplace( arguments &&... + parameters ) { // The emplace function is near-identical to the regular insert function, with the exception of the element construction method, removal of internal VARIADICS support checks, and change to is_nothrow tests. + if( end_iterator.element_pointer != NULL ) { + switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == + reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { + case 0: { + const iterator return_iterator = end_iterator; + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), + std::forward( parameters )... ); + end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; + } else +#endif + { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer ), + std::forward( parameters )... ); + end_iterator.group_pointer->last_endpoint = ++end_iterator.element_pointer; + } + + ++( end_iterator.group_pointer->number_of_elements ); + ++end_iterator.skipfield_pointer; + ++total_number_of_elements; + + return return_iterator; + } + case 1: { + end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( group_allocator_type, + group_allocator_pair, 1, end_iterator.group_pointer ); + group &next_group = *( end_iterator.group_pointer->next_group ); + const skipfield_type new_group_size = ( total_number_of_elements < static_cast + ( group_allocator_pair.max_elements_per_group ) ) ? static_cast + ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; + + try { + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, + end_iterator.group_pointer ); + } catch( ... ) { + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + end_iterator.group_pointer->next_group = NULL; + throw; + } + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::forward( parameters )... ); + } else +#endif + { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::forward( parameters )... ); + } catch( ... ) { + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + end_iterator.group_pointer->next_group = NULL; + throw; + } + } + + end_iterator.group_pointer = &next_group; + end_iterator.element_pointer = next_group.last_endpoint; + end_iterator.skipfield_pointer = next_group.skipfield + 1; + total_capacity += new_group_size; + ++total_number_of_elements; + + return iterator( end_iterator.group_pointer, next_group.elements, next_group.skipfield ); + } + default: { + iterator new_location; + new_location.group_pointer = groups_with_erasures_list_head; + new_location.element_pointer = groups_with_erasures_list_head->elements + + groups_with_erasures_list_head->free_list_head; + new_location.skipfield_pointer = groups_with_erasures_list_head->skipfield + + groups_with_erasures_list_head->free_list_head; + + const skipfield_type prev_free_list_index = *( reinterpret_cast + ( new_location.element_pointer ) ); + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( new_location.element_pointer ), + std::forward( parameters ) ... ); + const skipfield_type new_value = *( new_location.skipfield_pointer ) - 1; + + if( new_value != 0 ) { + *( new_location.skipfield_pointer + new_value ) = *( new_location.skipfield_pointer + 1 ) = + new_value; + ++( groups_with_erasures_list_head->free_list_head ); + + if( prev_free_list_index != std::numeric_limits::max() ) { + *( reinterpret_cast( new_location.group_pointer->elements + + prev_free_list_index ) + 1 ) = groups_with_erasures_list_head->free_list_head; + } + + *( reinterpret_cast( new_location.element_pointer + 1 ) ) = + prev_free_list_index; + *( reinterpret_cast( new_location.element_pointer + 1 ) + 1 ) = + std::numeric_limits::max(); + } else { + groups_with_erasures_list_head->free_list_head = prev_free_list_index; + + if( prev_free_list_index != std::numeric_limits::max() ) { + *( reinterpret_cast( new_location.group_pointer->elements + + prev_free_list_index ) + 1 ) = std::numeric_limits::max(); + } else { + groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; + } + } + + *( new_location.skipfield_pointer ) = 0; + ++( new_location.group_pointer->number_of_elements ); + + if( new_location.group_pointer == begin_iterator.group_pointer && + new_location.element_pointer < begin_iterator.element_pointer ) { + begin_iterator = new_location; + } + + ++total_number_of_elements; + + return new_location; + } + } + } else { + initialize( pointer_allocator_pair.min_elements_per_group ); + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), + std::forward( parameters ) ... ); + } else +#endif + { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), + std::forward( parameters ) ... ); + } catch( ... ) { + clear(); + throw; + } + } + + ++end_iterator.skipfield_pointer; + total_number_of_elements = 1; + return begin_iterator; + } + } +#endif + + + + + private: + + // Internal functions for fill insert: + + void group_create( const skipfield_type number_of_elements ) { + const group_pointer_type next_group = end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( + group_allocator_type, group_allocator_pair, 1, end_iterator.group_pointer ); + + try { +#ifdef PLF_COLONY_VARIADICS_SUPPORT + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, number_of_elements, + end_iterator.group_pointer ); +#else + PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, + group( number_of_elements, end_iterator.group_pointer ) ); +#endif + } catch( ... ) { + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, next_group ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, next_group, 1 ); + end_iterator.group_pointer->next_group = NULL; + throw; + } + + end_iterator.group_pointer = next_group; + end_iterator.element_pointer = next_group->elements; + next_group->number_of_elements = + 0; // group constructor sets this to 1 by default to allow for faster insertion during insertion/emplace in other cases + total_capacity += number_of_elements; + } + + + + void group_fill( const element_type &element, const skipfield_type number_of_elements ) { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_trivially_copyable::value && + std::is_trivially_copy_constructible::value && + std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: +#ifdef PLF_COLONY_ALIGNMENT_SUPPORT + if PLF_COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { + std::fill_n( reinterpret_cast( end_iterator.element_pointer ), number_of_elements, + element ); + } else { + alignas( sizeof( aligned_element_type ) ) element_type aligned_copy = + element; // to avoid potentially violating memory boundaries in line below, create an initial copy object of same (but aligned) type + std::fill_n( end_iterator.element_pointer, number_of_elements, + *( reinterpret_cast( &aligned_copy ) ) ); + } +#else // type is not aligned to anything so is safe to use fill_n anyway: + std::fill_n( reinterpret_cast( end_iterator.element_pointer ), number_of_elements, + element ); +#endif + + end_iterator.element_pointer += number_of_elements; + } else +#endif + { + const aligned_pointer_type fill_end = end_iterator.element_pointer + number_of_elements; + + do { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); + } catch( ... ) { + end_iterator.group_pointer->last_endpoint = --end_iterator.element_pointer; + const skipfield_type elements_constructed_before_exception = static_cast + ( end_iterator.element_pointer - end_iterator.group_pointer->elements ); + end_iterator.group_pointer->number_of_elements = elements_constructed_before_exception; + end_iterator.skipfield_pointer = end_iterator.group_pointer->skipfield + + elements_constructed_before_exception; + throw; + } + } while( end_iterator.element_pointer != fill_end ); + } + + end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; + end_iterator.group_pointer->number_of_elements += number_of_elements; + } + + + + void fill_skipblock( const element_type &element, aligned_pointer_type const location, + skipfield_pointer_type const skipfield_pointer, const skipfield_type number_of_elements ) { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_trivially_copyable::value && + std::is_trivially_copy_constructible::value && + std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: +#ifdef PLF_COLONY_ALIGNMENT_SUPPORT + if PLF_COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { + std::fill_n( reinterpret_cast( location ), number_of_elements, element ); + } else { + alignas( sizeof( aligned_element_type ) ) element_type aligned_copy = + element; // to avoid potentially violating memory boundaries in line below, create an initial copy object of same (but aligned) type + std::fill_n( location, number_of_elements, + *( reinterpret_cast( &aligned_copy ) ) ); + } +#else // type is not aligned to anything so is safe to use fill_n anyway: + std::fill_n( reinterpret_cast( location ), number_of_elements, element ); +#endif + } else +#endif + { + const skipfield_type prev_free_list_node = *( reinterpret_cast + ( location ) ); // in case of exception, grabbing indexes before free_list node is reused + const aligned_pointer_type fill_end = location + number_of_elements; + + for( aligned_pointer_type current_location = location; current_location != fill_end; + ++current_location ) { + try { + PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( current_location ), element ); + } catch( ... ) { + // Reconstruct existing skipblock and free-list indexes to reflect partially-reused skipblock: + const skipfield_type elements_constructed_before_exception = static_cast( ( + current_location - 1 ) - location ); + groups_with_erasures_list_head->number_of_elements += elements_constructed_before_exception; + total_number_of_elements += elements_constructed_before_exception; + + std::memset( skipfield_pointer, 0, + elements_constructed_before_exception * sizeof( skipfield_type ) ); + + *( reinterpret_cast( location + elements_constructed_before_exception ) ) = + prev_free_list_node; + *( reinterpret_cast( location + elements_constructed_before_exception ) + + 1 ) = std::numeric_limits::max(); + + const skipfield_type new_skipblock_head_index = static_cast + ( location - groups_with_erasures_list_head->elements ) + elements_constructed_before_exception; + groups_with_erasures_list_head->free_list_head = new_skipblock_head_index; + + if( prev_free_list_node != std::numeric_limits::max() ) { + *( reinterpret_cast( groups_with_erasures_list_head->elements + + prev_free_list_node ) + 1 ) = new_skipblock_head_index; + } + + throw; + } + } + } + + std::memset( skipfield_pointer, 0, + number_of_elements * sizeof( skipfield_type ) ); // reset skipfield nodes within skipblock to 0 + groups_with_erasures_list_head->number_of_elements += number_of_elements; + total_number_of_elements += number_of_elements; + } + + + + public: + + // Fill insert + + void insert( size_type number_of_elements, const element_type &element ) { + if( number_of_elements == 0 ) { + return; + } else if( number_of_elements == 1 ) { + insert( element ); + return; + } + + if( begin_iterator.group_pointer == NULL ) { // Empty colony, no groups created yet + initialize( ( number_of_elements > group_allocator_pair.max_elements_per_group ) ? + group_allocator_pair.max_elements_per_group : ( number_of_elements < + pointer_allocator_pair.min_elements_per_group ) ? pointer_allocator_pair.min_elements_per_group : + static_cast( number_of_elements ) ); // Construct first group + begin_iterator.group_pointer->number_of_elements = 0; + } + + if( total_number_of_elements != + 0 ) { // ie. not an uninitialized colony or a situation where reserve has been called + // Use up erased locations if available: + if( groups_with_erasures_list_head != NULL ) { + do { // skipblock loop: breaks when group is exhausted of reusable skipblocks, or returns if number_of_elements == 0 + aligned_pointer_type const element_pointer = groups_with_erasures_list_head->elements + + groups_with_erasures_list_head->free_list_head; + skipfield_pointer_type const skipfield_pointer = groups_with_erasures_list_head->skipfield + + groups_with_erasures_list_head->free_list_head; + const skipfield_type skipblock_size = *skipfield_pointer; + + if( groups_with_erasures_list_head == begin_iterator.group_pointer && + element_pointer < begin_iterator.element_pointer ) { + begin_iterator.element_pointer = element_pointer; + begin_iterator.skipfield_pointer = skipfield_pointer; + } + + if( skipblock_size <= number_of_elements ) { + groups_with_erasures_list_head->free_list_head = *( reinterpret_cast + ( element_pointer ) ); // set free list head to previous free list node + fill_skipblock( element, element_pointer, skipfield_pointer, skipblock_size ); + number_of_elements -= skipblock_size; + + if( groups_with_erasures_list_head->free_list_head != std::numeric_limits::max() ) { + *( reinterpret_cast( groups_with_erasures_list_head->elements + + groups_with_erasures_list_head->free_list_head ) + 1 ) = + std::numeric_limits::max(); // set 'next' index of new free list head to 'end' (numeric max) + } else { + groups_with_erasures_list_head = + groups_with_erasures_list_head->erasures_list_next_group; // change groups + + if( groups_with_erasures_list_head == NULL ) { + break; + } + } + } else { // skipblock is larger than remaining number of elements + const skipfield_type prev_index = *( reinterpret_cast + ( element_pointer ) ); // save before element location is overwritten + fill_skipblock( element, element_pointer, skipfield_pointer, + static_cast( number_of_elements ) ); + const skipfield_type new_skipblock_size = static_cast( skipblock_size - + number_of_elements ); + + // Update skipfield (earlier nodes already memset'd in fill_skipblock function): + *( skipfield_pointer + number_of_elements ) = new_skipblock_size; + *( skipfield_pointer + skipblock_size - 1 ) = new_skipblock_size; + groups_with_erasures_list_head->free_list_head += static_cast + ( number_of_elements ); // set free list head to new start node + + // Update free list with new head: + *( reinterpret_cast( element_pointer + number_of_elements ) ) = prev_index; + *( reinterpret_cast( element_pointer + number_of_elements ) + 1 ) = + std::numeric_limits::max(); + + if( prev_index != std::numeric_limits::max() ) { + *( reinterpret_cast( groups_with_erasures_list_head->elements + prev_index ) + + 1 ) = groups_with_erasures_list_head->free_list_head; // set 'next' index of previous skipblock to new start of skipblock + } + + return; + } + } while( number_of_elements != 0 ); + } + + + // Use up remaining available element locations in end group: + const skipfield_type group_remainder = ( static_cast + ( reinterpret_cast( end_iterator.group_pointer->skipfield ) - + end_iterator.element_pointer ) > number_of_elements ) ? static_cast + ( number_of_elements ) : static_cast( reinterpret_cast + ( end_iterator.group_pointer->skipfield ) - end_iterator.element_pointer ); + + if( group_remainder != 0 ) { + group_fill( element, group_remainder ); + total_number_of_elements += group_remainder; + number_of_elements -= group_remainder; + } + } else if( end_iterator.group_pointer->capacity >= number_of_elements ) { + group_fill( element, static_cast( number_of_elements ) ); + end_iterator.skipfield_pointer = end_iterator.group_pointer->skipfield + number_of_elements; + total_number_of_elements = number_of_elements; + return; + } else { + group_fill( element, end_iterator.group_pointer->capacity ); + total_number_of_elements = end_iterator.group_pointer->capacity; + number_of_elements -= end_iterator.group_pointer->capacity; + } + + + // If there's some elements left that need to be created, create new groups and fill: + if( number_of_elements > group_allocator_pair.max_elements_per_group ) { + size_type multiples = ( number_of_elements / static_cast + ( group_allocator_pair.max_elements_per_group ) ); + const skipfield_type element_remainder = static_cast( number_of_elements - + ( multiples * static_cast( group_allocator_pair.max_elements_per_group ) ) ); + + while( multiples-- != 0 ) { + group_create( group_allocator_pair.max_elements_per_group ); + group_fill( element, group_allocator_pair.max_elements_per_group ); + } + + if( element_remainder != 0 ) { + group_create( group_allocator_pair.max_elements_per_group ); + group_fill( element, element_remainder ); + } + } else if( number_of_elements != 0 ) { + group_create( static_cast( ( number_of_elements > total_number_of_elements ) ? + number_of_elements : total_number_of_elements ) ); + group_fill( element, static_cast( number_of_elements ) ); + } + + total_number_of_elements += + number_of_elements; // Adds the remainder from the last if-block - the insert functions in the first if/else block will already have incremented total_number_of_elements + end_iterator.skipfield_pointer = end_iterator.group_pointer->skipfield + + ( end_iterator.element_pointer - end_iterator.group_pointer->elements ); + } + + + + // Range insert + + template + inline void insert( typename plf_enable_if_c < !std::numeric_limits::is_integer, + iterator_type >::type first, const iterator_type last ) { + while( first != last ) { + insert( *first++ ); + } + } + + + + // Initializer-list insert + +#ifdef PLF_COLONY_INITIALIZER_LIST_SUPPORT + inline void insert( const std::initializer_list &element_list ) + { + // use range insert: + insert( element_list.begin(), element_list.end() ); + } +#endif + + + + private: + + inline PLF_COLONY_FORCE_INLINE void update_subsequent_group_numbers( group_pointer_type + current_group ) PLF_COLONY_NOEXCEPT { + do { + --( current_group->group_number ); + current_group = current_group->next_group; + } while( current_group != NULL ); + } + + + + inline PLF_COLONY_FORCE_INLINE void + consolidate() { // get all elements contiguous in memory and shrink to fit, remove erasures and erasure free lists +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + colony temp; + temp.change_group_sizes( static_cast( ( + pointer_allocator_pair.min_elements_per_group > total_number_of_elements ) ? + pointer_allocator_pair.min_elements_per_group : ( ( total_number_of_elements > + group_allocator_pair.max_elements_per_group ) ? group_allocator_pair.max_elements_per_group : + total_number_of_elements ) ), + group_allocator_pair.max_elements_per_group ); // Make first allocated group as large total number of elements, where possible + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_move_assignable::value && + std::is_move_constructible::value ) { + temp.insert( std::make_move_iterator( begin_iterator ), std::make_move_iterator( end_iterator ) ); + } else +#endif + { + temp.insert( begin_iterator, end_iterator ); + } + + temp.pointer_allocator_pair.min_elements_per_group = + pointer_allocator_pair.min_elements_per_group; // reset to correct value for future clear() or erasures + *this = std::move( temp ); // Avoid generating 2nd temporary +#else + colony temp( *this ); + swap( temp ); +#endif + } + + + + void remove_from_groups_with_erasures_list( const group_pointer_type group_to_remove ) + PLF_COLONY_NOEXCEPT { + if( group_to_remove == groups_with_erasures_list_head ) { + groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; + return; + } + + group_pointer_type previous_group = groups_with_erasures_list_head, current_group = groups_with_erasures_list_head->erasures_list_next_group; + + while( group_to_remove != current_group ) { + previous_group = current_group; + current_group = current_group->erasures_list_next_group; + } + + previous_group->erasures_list_next_group = current_group->erasures_list_next_group; + } + + + + public: + + // must return iterator to subsequent non-erased element (or end()), in case the group containing the element which the iterator points to becomes empty after the erasure, and is thereafter removed from the colony chain, making the current iterator invalid and unusable in a ++ operation: + iterator erase( const const_iterator + &it ) { // if uninitialized/invalid iterator supplied, function could generate an exception + assert( !empty() ); + const group_pointer_type group_pointer = it.group_pointer; + assert( group_pointer != NULL ); // ie. not uninitialized iterator + assert( it.element_pointer != group_pointer->last_endpoint ); // ie. != end() + assert( *( it.skipfield_pointer ) == + 0 ); // ie. element pointed to by iterator has not been erased previously + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( ! + ( std::is_trivially_destructible::value ) ) // This if-statement should be removed by the compiler on resolution of element_type. For some optimizing compilers this step won't be necessary (for MSVC 2013 it makes a difference) +#endif + { + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( it.element_pointer ) ); // Destruct element + } + + --total_number_of_elements; + + if( group_pointer->number_of_elements-- != + 1 ) { // ie. non-empty group at this point in time, don't consolidate - optimization note: GCC optimizes postfix + 1 comparison better than prefix + 1 comparison in many cases. + // Code logic for following section: + // --------------------------------- + // If current skipfield node has no skipped node on either side, continue as usual + // If node only has skipped node on left, set current node and start node of the skipblock to left node value + 1. + // If node only has skipped node on right, make this node the start node of the skipblock and update end node + // If node has skipped nodes on left and right, set start node of left skipblock and end node of right skipblock to the values of the left + right nodes + 1 + + // Optimization explanation: + // The contextual logic below is the same as that in the insert() functions but in this case the value of the current skipfield node will always be + // zero (since it is not yet erased), meaning no additional manipulations are necessary for the previous skipfield node comparison - we only have to check against zero + const char prev_skipfield = *( it.skipfield_pointer - ( it.skipfield_pointer != + group_pointer->skipfield ) ) != 0; + const char after_skipfield = *( it.skipfield_pointer + 1 ) != + 0; // NOTE: boundary test (checking against end-of-elements) is able to be skipped due to the extra skipfield node (compared to element field) - which is present to enable faster iterator operator ++ operations + skipfield_type update_value = 1; + + switch( ( after_skipfield << 1 ) | prev_skipfield ) { + case 0: { // no consecutive erased elements + *it.skipfield_pointer = 1; // solo skipped node + const skipfield_type index = static_cast( it.element_pointer - + group_pointer->elements ); + + if( group_pointer->free_list_head != + std::numeric_limits::max() ) { // ie. if this group already has some erased elements + *( reinterpret_cast( group_pointer->elements + + group_pointer->free_list_head ) + 1 ) = + index; // set prev free list head's 'next index' number to the index of the current element + } else { + group_pointer->erasures_list_next_group = + groups_with_erasures_list_head; // add it to the groups-with-erasures free list + groups_with_erasures_list_head = group_pointer; + } + + *( reinterpret_cast( it.element_pointer ) ) = group_pointer->free_list_head; + *( reinterpret_cast( it.element_pointer ) + 1 ) = + std::numeric_limits::max(); + group_pointer->free_list_head = index; + break; + } + case 1: { // previous erased consecutive elements, none following + *( it.skipfield_pointer - * ( it.skipfield_pointer - 1 ) ) = *it.skipfield_pointer = * + ( it.skipfield_pointer - 1 ) + 1; + break; + } + case 2: { // following erased consecutive elements, none preceding + const skipfield_type following_value = *( it.skipfield_pointer + 1 ) + 1; + *( it.skipfield_pointer + following_value - 1 ) = *( it.skipfield_pointer ) = following_value; + + const skipfield_type following_previous = *( reinterpret_cast + ( it.element_pointer + 1 ) ); + const skipfield_type following_next = *( reinterpret_cast + ( it.element_pointer + 1 ) + 1 ); + *( reinterpret_cast( it.element_pointer ) ) = following_previous; + *( reinterpret_cast( it.element_pointer ) + 1 ) = following_next; + + const skipfield_type index = static_cast( it.element_pointer - + group_pointer->elements ); + + if( following_previous != std::numeric_limits::max() ) { + *( reinterpret_cast( group_pointer->elements + following_previous ) + 1 ) = + index; // Set next index of previous free list node to this node's 'next' index + } + + if( following_next != std::numeric_limits::max() ) { + *( reinterpret_cast( group_pointer->elements + following_next ) ) = + index; // Set previous index of next free list node to this node's 'previous' index + } else { + group_pointer->free_list_head = index; + } + + update_value = following_value; + break; + } + case 3: { // both preceding and following consecutive erased elements + const skipfield_type preceding_value = *( it.skipfield_pointer - 1 ); + const skipfield_type following_value = *( it.skipfield_pointer + 1 ) + 1; + + // Join the skipblocks + *( it.skipfield_pointer - preceding_value ) = *( it.skipfield_pointer + following_value - 1 ) = + preceding_value + following_value; + + // Remove the following skipblock's entry from the free list + const skipfield_type following_previous = *( reinterpret_cast + ( it.element_pointer + 1 ) ); + const skipfield_type following_next = *( reinterpret_cast + ( it.element_pointer + 1 ) + 1 ); + + if( following_previous != std::numeric_limits::max() ) { + *( reinterpret_cast( group_pointer->elements + following_previous ) + 1 ) = + following_next; // Set next index of previous free list node to this node's 'next' index + } + + if( following_next != std::numeric_limits::max() ) { + *( reinterpret_cast( group_pointer->elements + following_next ) ) = + following_previous; // Set previous index of next free list node to this node's 'previous' index + } else { + group_pointer->free_list_head = following_previous; + } + + update_value = following_value; + break; + } + } + + iterator return_iterator( it.group_pointer, it.element_pointer + update_value, + it.skipfield_pointer + update_value ); + return_iterator.check_for_end_of_group_and_progress(); + + if( it.element_pointer == + begin_iterator.element_pointer ) { // If original iterator was first element in colony, update it's value with the next non-erased element: + begin_iterator = return_iterator; + } + + return return_iterator; + } + + // else: group is empty, consolidate groups + switch( ( group_pointer->next_group != NULL ) | ( ( group_pointer != begin_iterator.group_pointer ) + << 1 ) ) { + case 0: { // ie. group_pointer == begin_iterator.group_pointer && group_pointer->next_group == NULL; only group in colony + // Reset skipfield and free list rather than clearing - leads to fewer allocations/deallocations: + std::memset( &*( group_pointer->skipfield ), 0, + sizeof( skipfield_type ) * + group_pointer->capacity ); // &* to avoid problems with non-trivial pointers. Although there is one more skipfield than group_pointer->capacity, capacity + 1 is not necessary here as the end skipfield is never written to after initialization + group_pointer->free_list_head = std::numeric_limits::max(); + groups_with_erasures_list_head = NULL; + + // Reset begin and end iterators: + end_iterator.element_pointer = begin_iterator.element_pointer = group_pointer->last_endpoint = + group_pointer->elements; + end_iterator.skipfield_pointer = begin_iterator.skipfield_pointer = group_pointer->skipfield; + + return end_iterator; + } + case 1: { // ie. group_pointer == begin_iterator.group_pointer && group_pointer->next_group != NULL. Remove first group, change first group to next group + group_pointer->next_group->previous_group = NULL; // Cut off this group from the chain + begin_iterator.group_pointer = group_pointer->next_group; // Make the next group the first group + + update_subsequent_group_numbers( begin_iterator.group_pointer ); + + if( group_pointer->free_list_head != + std::numeric_limits::max() ) { // Erasures present within the group, ie. was part of the intrusive list of groups with erasures. + remove_from_groups_with_erasures_list( group_pointer ); + } + + total_capacity -= group_pointer->capacity; + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); + + // note: end iterator only needs to be changed if the deleted group was the final group in the chain ie. not in this case + begin_iterator.element_pointer = begin_iterator.group_pointer->elements + * + ( begin_iterator.group_pointer->skipfield ); // If the beginning index has been erased (ie. skipfield != 0), skip to next non-erased element + begin_iterator.skipfield_pointer = begin_iterator.group_pointer->skipfield + * + ( begin_iterator.group_pointer->skipfield ); + + return begin_iterator; + } + case 3: { // this is a non-first group but not final group in chain: delete the group, then link previous group to the next group in the chain: + group_pointer->next_group->previous_group = group_pointer->previous_group; + const group_pointer_type return_group = group_pointer->previous_group->next_group = + group_pointer->next_group; // close the chain, removing this group from it + + update_subsequent_group_numbers( return_group ); + + if( group_pointer->free_list_head != std::numeric_limits::max() ) { + remove_from_groups_with_erasures_list( group_pointer ); + } + + total_capacity -= group_pointer->capacity; + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); + + // Return next group's first non-erased element: + return iterator( return_group, return_group->elements + * ( return_group->skipfield ), + return_group->skipfield + * ( return_group->skipfield ) ); + } + default: { // this is a non-first group and the final group in the chain + if( group_pointer->free_list_head != std::numeric_limits::max() ) { + remove_from_groups_with_erasures_list( group_pointer ); + } + + group_pointer->previous_group->next_group = NULL; + end_iterator.group_pointer = + group_pointer->previous_group; // end iterator needs to be changed as element supplied was the back element of the colony + end_iterator.element_pointer = reinterpret_cast + ( end_iterator.group_pointer->skipfield ); + end_iterator.skipfield_pointer = end_iterator.group_pointer->skipfield + + end_iterator.group_pointer->capacity; + + total_capacity -= group_pointer->capacity; + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); + + return end_iterator; + } + } + } + + + + // Range erase: + + void erase( const const_iterator &iterator1, + const const_iterator + &iterator2 ) { // if uninitialized/invalid iterators supplied, function could generate an exception. If iterator1 > iterator2, behaviour is undefined. + assert( iterator1 <= iterator2 ); + + iterator current = iterator1; + + if( current.group_pointer != iterator2.group_pointer ) { + if( current.element_pointer != current.group_pointer->elements + * + ( current.group_pointer->skipfield ) ) { // if iterator1 is not the first non-erased element in it's group - most common case + size_type number_of_group_erasures = 0; + + // Now update skipfield: + const aligned_pointer_type end = iterator1.group_pointer->last_endpoint; + + // Schema: first erase all non-erased elements until end of group & remove all skipblocks post-iterator1 from the free_list. Then, either update preceding skipblock or create new one: + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location + if( ( std::is_trivially_destructible::value ) & + ( current.group_pointer->free_list_head == std::numeric_limits::max() ) ) { + number_of_group_erasures += static_cast( end - current.element_pointer ); + } else +#endif + { + while( current.element_pointer != end ) { + if( *current.skipfield_pointer == 0 ) { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#endif + { + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); // Destruct element + } + + ++number_of_group_erasures; + ++current.element_pointer; + ++current.skipfield_pointer; + } else { // remove skipblock from group: + const skipfield_type prev_free_list_index = *( reinterpret_cast + ( current.element_pointer ) ); + const skipfield_type next_free_list_index = *( reinterpret_cast + ( current.element_pointer ) + 1 ); + + current.element_pointer += *( current.skipfield_pointer ); + current.skipfield_pointer += *( current.skipfield_pointer ); + + if( next_free_list_index == std::numeric_limits::max() && + prev_free_list_index == + std::numeric_limits::max() ) { // if this is the last skipblock in the free list + remove_from_groups_with_erasures_list( + iterator1.group_pointer ); // remove group from list of free-list groups - will be added back in down below, but not worth optimizing for + iterator1.group_pointer->free_list_head = std::numeric_limits::max(); + number_of_group_erasures += static_cast( end - current.element_pointer ); + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#endif + { + while( current.element_pointer != + end ) { // miniloop - avoid checking skipfield for rest of elements in group, as there are no more skipped elements now + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer++ ) ); // Destruct element + } + } + + break; // end overall while loop + } else if( next_free_list_index == + std::numeric_limits::max() ) { // if this is the head of the free list + current.group_pointer->free_list_head = + prev_free_list_index; // make free list head equal to next free list node + *( reinterpret_cast( current.group_pointer->elements + + prev_free_list_index ) + 1 ) = std::numeric_limits::max(); + } else { // either a tail or middle free list node + *( reinterpret_cast( current.group_pointer->elements + + next_free_list_index ) ) = prev_free_list_index; + + if( prev_free_list_index != + std::numeric_limits::max() ) { // ie. not the tail free list node + *( reinterpret_cast( current.group_pointer->elements + + prev_free_list_index ) + 1 ) = next_free_list_index; + } + } + } + } + } + + + const skipfield_type previous_node_value = *( iterator1.skipfield_pointer - 1 ); + const skipfield_type distance_to_end = static_cast( end - + iterator1.element_pointer ); + + if( previous_node_value == 0 ) { // no previous skipblock + *iterator1.skipfield_pointer = distance_to_end; + *( iterator1.skipfield_pointer + distance_to_end - 1 ) = distance_to_end; + + const skipfield_type index = static_cast( iterator1.element_pointer - + iterator1.group_pointer->elements ); + + if( iterator1.group_pointer->free_list_head != + std::numeric_limits::max() ) { // ie. if this group already has some erased elements + *( reinterpret_cast( iterator1.group_pointer->elements + + iterator1.group_pointer->free_list_head ) + 1 ) = + index; // set prev free list head's 'next index' number to the index of the iterator1 element + } else { + iterator1.group_pointer->erasures_list_next_group = + groups_with_erasures_list_head; // add it to the groups-with-erasures free list + groups_with_erasures_list_head = iterator1.group_pointer; + } + + *( reinterpret_cast( iterator1.element_pointer ) ) = + iterator1.group_pointer->free_list_head; + *( reinterpret_cast( iterator1.element_pointer ) + 1 ) = + std::numeric_limits::max(); + iterator1.group_pointer->free_list_head = index; + } else { + // update previous skipblock, no need to update free list: + *( iterator1.skipfield_pointer - previous_node_value ) = *( iterator1.skipfield_pointer + + distance_to_end - 1 ) = previous_node_value + distance_to_end; + } + + iterator1.group_pointer->number_of_elements -= static_cast + ( number_of_group_erasures ); + total_number_of_elements -= number_of_group_erasures; + + current.group_pointer = current.group_pointer->next_group; + } + + + // Intermediate groups: + const group_pointer_type previous_group = current.group_pointer->previous_group; + + while( current.group_pointer != iterator2.group_pointer ) { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#endif + { + current.element_pointer = current.group_pointer->elements + *( current.group_pointer->skipfield ); + current.skipfield_pointer = current.group_pointer->skipfield + * + ( current.group_pointer->skipfield ); + const aligned_pointer_type end = current.group_pointer->last_endpoint; + + do { + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); // Destruct element + ++current.skipfield_pointer; + current.element_pointer += *current.skipfield_pointer + 1; + current.skipfield_pointer += *current.skipfield_pointer; + } while( current.element_pointer != end ); + } + + if( current.group_pointer->free_list_head != std::numeric_limits::max() ) { + remove_from_groups_with_erasures_list( current.group_pointer ); + } + + total_number_of_elements -= current.group_pointer->number_of_elements; + const group_pointer_type current_group = current.group_pointer; + current.group_pointer = current.group_pointer->next_group; + + total_capacity -= current_group->capacity; + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, current_group ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, current_group, 1 ); + } + + current.element_pointer = current.group_pointer->elements + *( current.group_pointer->skipfield ); + current.skipfield_pointer = current.group_pointer->skipfield + * + ( current.group_pointer->skipfield ); + current.group_pointer->previous_group = previous_group; + + if( previous_group != NULL ) { + previous_group->next_group = current.group_pointer; + } else { + begin_iterator = + iterator2; // This line is included here primarily to avoid a secondary if statement within the if block below - it will not be needed in any other situation + } + } + + if( current.element_pointer == + iterator2.element_pointer ) { // in case iterator2 was at beginning of it's group - also covers empty range case (first == last) + return; + } + + // Final group: + // Code explanation: + // If not erasing entire final group, 1. Destruct elements (if non-trivial destructor) and add locations to group free list. 2. process skipfield. + // If erasing entire group, 1. Destruct elements (if non-trivial destructor), 2. if no elements left in colony, clear() 3. otherwise reset end_iterator and remove group from groups-with-erasures list (if free list of erasures present) + + if( iterator2.element_pointer != end_iterator.element_pointer || + current.element_pointer != current.group_pointer->elements + * + ( current.group_pointer->skipfield ) ) { // ie. not erasing entire group + size_type number_of_group_erasures = 0; + // Schema: first erased all non-erased elements until end of group & remove all skipblocks post-iterator2 from the free_list. Then, either update preceding skipblock or create new one: + + const iterator current_saved = current; + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location + if( ( std::is_trivially_destructible::value ) & + ( current.group_pointer->free_list_head == std::numeric_limits::max() ) ) { + number_of_group_erasures += static_cast( iterator2.element_pointer - + current.element_pointer ); + } else +#endif + { + while( current.element_pointer != iterator2.element_pointer ) { + if( *current.skipfield_pointer == 0 ) { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#endif + { + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); // Destruct element + } + + ++number_of_group_erasures; + ++current.element_pointer; + ++current.skipfield_pointer; + } else { // remove skipblock from group: + const skipfield_type prev_free_list_index = *( reinterpret_cast + ( current.element_pointer ) ); + const skipfield_type next_free_list_index = *( reinterpret_cast + ( current.element_pointer ) + 1 ); + + current.element_pointer += *( current.skipfield_pointer ); + current.skipfield_pointer += *( current.skipfield_pointer ); + + if( next_free_list_index == std::numeric_limits::max() && + prev_free_list_index == + std::numeric_limits::max() ) { // if this is the last skipblock in the free list + remove_from_groups_with_erasures_list( + iterator2.group_pointer ); // remove group from list of free-list groups - will be added back in down below, but not worth optimizing for + iterator2.group_pointer->free_list_head = std::numeric_limits::max(); + number_of_group_erasures += static_cast( iterator2.element_pointer - + current.element_pointer ); + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#endif + { + while( current.element_pointer != iterator2.element_pointer ) { + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer++ ) ); // Destruct element + } + } + + break; // end overall while loop + } else if( next_free_list_index == + std::numeric_limits::max() ) { // if this is the head of the free list + current.group_pointer->free_list_head = prev_free_list_index; + *( reinterpret_cast( current.group_pointer->elements + + prev_free_list_index ) + 1 ) = std::numeric_limits::max(); + } else { + *( reinterpret_cast( current.group_pointer->elements + + next_free_list_index ) ) = prev_free_list_index; + + if( prev_free_list_index != + std::numeric_limits::max() ) { // ie. not the tail free list node + *( reinterpret_cast( current.group_pointer->elements + + prev_free_list_index ) + 1 ) = next_free_list_index; + } + } + } + } + } + + + const skipfield_type distance_to_iterator2 = static_cast + ( iterator2.element_pointer - current_saved.element_pointer ); + const skipfield_type index = static_cast( current_saved.element_pointer - + iterator2.group_pointer->elements ); + + if( index == 0 || + *( current_saved.skipfield_pointer - 1 ) == + 0 ) { // element is either at start of group or previous skipfield node is 0 + *( current_saved.skipfield_pointer ) = distance_to_iterator2; + *( iterator2.skipfield_pointer - 1 ) = distance_to_iterator2; + + if( iterator2.group_pointer->free_list_head != + std::numeric_limits::max() ) { // ie. if this group already has some erased elements + *( reinterpret_cast( iterator2.group_pointer->elements + + iterator2.group_pointer->free_list_head ) + 1 ) = index; + } else { + iterator2.group_pointer->erasures_list_next_group = + groups_with_erasures_list_head; // add it to the groups-with-erasures free list + groups_with_erasures_list_head = iterator2.group_pointer; + } + + *( reinterpret_cast( current_saved.element_pointer ) ) = + iterator2.group_pointer->free_list_head; + *( reinterpret_cast( current_saved.element_pointer ) + 1 ) = + std::numeric_limits::max(); + iterator2.group_pointer->free_list_head = index; + } else { // If iterator 1 & 2 are in same group, but iterator 1 was not at start of group, and previous skipfield node is an end node in a skipblock: + // Just update existing skipblock, no need to create new free list node: + const skipfield_type prev_node_value = *( current_saved.skipfield_pointer - 1 ); + *( current_saved.skipfield_pointer - prev_node_value ) = prev_node_value + distance_to_iterator2; + *( iterator2.skipfield_pointer - 1 ) = prev_node_value + distance_to_iterator2; + } + + + if( iterator1.element_pointer == begin_iterator.element_pointer ) { + begin_iterator = iterator2; + } + + iterator2.group_pointer->number_of_elements -= static_cast + ( number_of_group_erasures ); + total_number_of_elements -= number_of_group_erasures; + } else { // ie. full group erasure +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#endif + { + while( current.element_pointer != iterator2.element_pointer ) { + PLF_COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); + ++current.skipfield_pointer; + current.element_pointer += 1 + *current.skipfield_pointer; + current.skipfield_pointer += *current.skipfield_pointer; + } + } + + + if( ( total_number_of_elements -= current.group_pointer->number_of_elements ) != + 0 ) { // ie. previous_group != NULL + current.group_pointer->previous_group->next_group = current.group_pointer->next_group; + end_iterator.group_pointer = current.group_pointer->previous_group; + end_iterator.element_pointer = current.group_pointer->previous_group->last_endpoint; + end_iterator.skipfield_pointer = current.group_pointer->previous_group->skipfield + + current.group_pointer->previous_group->capacity; + total_capacity -= current.group_pointer->capacity; + + if( current.group_pointer->free_list_head != std::numeric_limits::max() ) { + remove_from_groups_with_erasures_list( current.group_pointer ); + } + } else { // ie. colony is now empty + blank(); + } + + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, current.group_pointer ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, current.group_pointer, 1 ); + } + } + + + + inline PLF_COLONY_FORCE_INLINE bool empty() const PLF_COLONY_NOEXCEPT { + return total_number_of_elements == 0; + } + + + + inline size_type size() const PLF_COLONY_NOEXCEPT { + return total_number_of_elements; + } + + + +#ifdef PLF_COLONY_TEST_DEBUG // used for debugging during internal testing only: + inline size_type group_size_sum() const { + group_pointer_type current = begin_iterator.group_pointer; + size_type temp = 0; + + while( current != NULL ) { + temp += current->number_of_elements; + current = current->next_group; + } + + return temp; + } +#endif + + + inline size_type max_size() const PLF_COLONY_NOEXCEPT { +#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT + return std::allocator_traits::max_size( *this ); +#else + return element_allocator_type::max_size(); +#endif + } + + + + inline size_type capacity() const PLF_COLONY_NOEXCEPT { + return total_capacity; + } + + + + inline size_type approximate_memory_use() const PLF_COLONY_NOEXCEPT { + return + sizeof( *this ) + // sizeof colony basic structure + ( total_capacity * ( sizeof( aligned_element_type ) + sizeof( skipfield_type ) ) ) + + // sizeof current colony data capacity + skipfields + ( ( end_iterator.group_pointer == NULL ) ? 0 : ( ( end_iterator.group_pointer->group_number + 1 ) + * ( sizeof( group ) + sizeof( + skipfield_type ) ) ) ); // if colony not empty, add the memory usage of the group structures themselves, adding the extra skipfield node + } + + + + void change_group_sizes( const skipfield_type min_allocation_amount, + const skipfield_type max_allocation_amount ) { + assert( ( min_allocation_amount > 2 ) & ( min_allocation_amount <= max_allocation_amount ) ); + + pointer_allocator_pair.min_elements_per_group = min_allocation_amount; + group_allocator_pair.max_elements_per_group = max_allocation_amount; + + if( begin_iterator.group_pointer != NULL && + ( begin_iterator.group_pointer->capacity < min_allocation_amount || + end_iterator.group_pointer->capacity > max_allocation_amount ) ) { + consolidate(); + } + } + + + + inline void change_minimum_group_size( const skipfield_type min_allocation_amount ) { + change_group_sizes( min_allocation_amount, group_allocator_pair.max_elements_per_group ); + } + + + + inline void change_maximum_group_size( const skipfield_type max_allocation_amount ) { + change_group_sizes( pointer_allocator_pair.min_elements_per_group, max_allocation_amount ); + } + + + + inline void get_group_sizes( skipfield_type &minimum_group_size, + skipfield_type &maximum_group_size ) const PLF_COLONY_NOEXCEPT { + minimum_group_size = pointer_allocator_pair.min_elements_per_group; + maximum_group_size = group_allocator_pair.max_elements_per_group; + } + + + + inline void reinitialize( const skipfield_type min_allocation_amount, + const skipfield_type max_allocation_amount ) PLF_COLONY_NOEXCEPT { + assert( ( min_allocation_amount > 2 ) & ( min_allocation_amount <= max_allocation_amount ) ); + clear(); + pointer_allocator_pair.min_elements_per_group = min_allocation_amount; + group_allocator_pair.max_elements_per_group = max_allocation_amount; + } + + + + inline PLF_COLONY_FORCE_INLINE void clear() PLF_COLONY_NOEXCEPT { + destroy_all_data(); + blank(); + } + + + + inline colony &operator = ( const colony &source ) { + assert( &source != this ); + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + destroy_all_data(); + colony temp( source ); + *this = std::move( temp ); // Avoid generating 2nd temporary +#else + clear(); + colony temp( source ); + swap( temp ); +#endif + + return *this; + } + + + +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + // Move assignment + colony &operator = ( colony &&source ) PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT( allocator_type ) { + assert( &source != this ); + destroy_all_data(); + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_trivial::value && + std::is_trivial::value && std::is_trivial::value ) { + std::memcpy( static_cast( this ), &source, sizeof( colony ) ); + } else +#endif + { + end_iterator = std::move( source.end_iterator ); + begin_iterator = std::move( source.begin_iterator ); + groups_with_erasures_list_head = source.groups_with_erasures_list_head; + total_number_of_elements = source.total_number_of_elements; + total_capacity = source.total_capacity; + pointer_allocator_pair.min_elements_per_group = + source.pointer_allocator_pair.min_elements_per_group; + group_allocator_pair.max_elements_per_group = source.group_allocator_pair.max_elements_per_group; + } + + source.blank(); + return *this; + } +#endif + + + + bool operator == ( const colony &rh ) const PLF_COLONY_NOEXCEPT { + assert( this != &rh ); + + if( total_number_of_elements != rh.total_number_of_elements ) { + return false; + } + + for( iterator lh_iterator = begin_iterator, rh_iterator = rh.begin_iterator; + lh_iterator != end_iterator; ) { + if( *rh_iterator++ != *lh_iterator++ ) { + return false; + } + } + + return true; + } + + + + inline bool operator != ( const colony &rh ) const PLF_COLONY_NOEXCEPT { + return !( *this == rh ); + } + + + + void shrink_to_fit() { + if( total_number_of_elements == total_capacity ) { + return; + } else if( total_number_of_elements == 0 ) { // Edge case + clear(); + return; + } + + consolidate(); + } + + + + void reserve( const size_type original_reserve_amount ) { + assert( original_reserve_amount > 2 ); + + skipfield_type reserve_amount = static_cast( original_reserve_amount ); + + if( original_reserve_amount > static_cast + ( group_allocator_pair.max_elements_per_group ) ) { + reserve_amount = group_allocator_pair.max_elements_per_group; + } else if( original_reserve_amount < static_cast + ( pointer_allocator_pair.min_elements_per_group ) ) { + reserve_amount = pointer_allocator_pair.min_elements_per_group; + } else if( original_reserve_amount > max_size() ) { + reserve_amount = static_cast( max_size() ); + } + + if( total_number_of_elements == 0 ) { // Most common scenario - empty colony + if( begin_iterator.group_pointer != + NULL ) { // Edge case - empty colony but first group is initialized ie. had some insertions but all elements got subsequently erased + PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); + PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + 1 ); + } // else: Empty colony, no insertions yet, time to allocate + + initialize( reserve_amount ); + begin_iterator.group_pointer->last_endpoint = + begin_iterator.group_pointer->elements; // last_endpoint initially == elements + 1 via default constructor + begin_iterator.group_pointer->number_of_elements = 0; // 1 by default + } else if( reserve_amount <= total_capacity ) { // Already have enough space allocated + return; + } else { // Non-empty colony, don't have enough space allocated + const skipfield_type original_min_elements = pointer_allocator_pair.min_elements_per_group; + pointer_allocator_pair.min_elements_per_group = static_cast + ( reserve_amount ); // Make sure all groups are at maximum appropriate capacity (this amount already rounded down to a skipfield type earlier in function) + consolidate(); + pointer_allocator_pair.min_elements_per_group = original_min_elements; + } + } + + + + // Advance implementation for iterator and const_iterator: + template + void advance( colony_iterator &it, + difference_type distance ) + const { // Cannot be noexcept due to the possibility of an uninitialized iterator + // For code simplicity - should hopefully be optimized out by compiler: + group_pointer_type &group_pointer = it.group_pointer; + aligned_pointer_type &element_pointer = it.element_pointer; + skipfield_pointer_type &skipfield_pointer = it.skipfield_pointer; + + assert( group_pointer != NULL ); // covers uninitialized colony_iterator && empty group + + // Now, run code based on the nature of the distance type - negative, positive or zero: + if( distance > 0 ) { // ie. += + // Code explanation: + // For the initial state of the iterator, we don't know how what elements have been erased before that element in that group. + // So for the first group, we follow the following logic: + // 1. If no elements have been erased in the group, we do simple addition to progress either to within the group (if the distance is small enough) or the end of the group and subtract from distance accordingly. + // 2. If any of the first group elements have been erased, we manually iterate, as we don't know whether the erased elements occur before or after the initial iterator position, and we subtract 1 from the distance amount each time. Iteration continues until either distance becomes zero, or we reach the end of the group. + + // 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 + // 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 + + assert( !( element_pointer == group_pointer->last_endpoint && + group_pointer->next_group == NULL ) ); // Check that we're not already at end() + + // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) + if( element_pointer != group_pointer->elements + * + ( group_pointer->skipfield ) ) { // ie. != first non-erased element in group + const difference_type distance_from_end = static_cast + ( group_pointer->last_endpoint - element_pointer ); + + if( group_pointer->number_of_elements == static_cast + ( distance_from_end ) ) { // ie. if there are no erasures in the group (using endpoint - elements_start to determine number of elements in group just in case this is the last group of the colony, in which case group->last_endpoint != group->elements + group->capacity) + if( distance < distance_from_end ) { + element_pointer += distance; + skipfield_pointer += distance; + return; + } else if( group_pointer->next_group == + NULL ) { // either we've reached end() or gone beyond it, so bound to end() + element_pointer = group_pointer->last_endpoint; + skipfield_pointer += distance_from_end; + return; + } else { + distance -= distance_from_end; + } + } else { + const skipfield_pointer_type endpoint = skipfield_pointer + distance_from_end; + + while( true ) { + ++skipfield_pointer; + skipfield_pointer += *skipfield_pointer; + --distance; + + if( skipfield_pointer == endpoint ) { + break; + } else if( distance == 0 ) { + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + } + + if( group_pointer->next_group == + NULL ) { // either we've reached end() or gone beyond it, so bound to end() + element_pointer = group_pointer->last_endpoint; + return; + } + } + + group_pointer = group_pointer->next_group; + + if( distance == 0 ) { + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } + } + + + // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the current group: + while( static_cast( group_pointer->number_of_elements ) <= distance ) { + if( group_pointer->next_group == + NULL ) { // either we've reached end() or gone beyond it, so bound to end() + element_pointer = group_pointer->last_endpoint; + skipfield_pointer = group_pointer->skipfield + ( group_pointer->last_endpoint - + group_pointer->elements ); + return; + } else if( ( distance -= group_pointer->number_of_elements ) == 0 ) { + group_pointer = group_pointer->next_group; + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } else { + group_pointer = group_pointer->next_group; + } + } + + + // Final group (if not already reached): + if( group_pointer->free_list_head == + std::numeric_limits::max() ) { // No erasures in this group, use straight pointer addition + element_pointer = group_pointer->elements + distance; + skipfield_pointer = group_pointer->skipfield + distance; + return; + } else { // ie. number_of_elements > distance - safe to ignore endpoint check condition while incrementing: + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + + do { + ++skipfield_pointer; + skipfield_pointer += *skipfield_pointer; + } while( --distance != 0 ); + + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + + return; + } else if( distance < 0 ) { // for negative change + // Code logic is very similar to += above + assert( !( ( element_pointer == group_pointer->elements + * ( group_pointer->skipfield ) ) && + group_pointer->previous_group == NULL ) ); // check that we're not already at begin() + distance = -distance; + + // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) + if( element_pointer != group_pointer->last_endpoint ) { // ie. != end() + if( group_pointer->free_list_head == + std::numeric_limits::max() ) { // ie. no prior erasures have occurred in this group + const difference_type distance_from_beginning = static_cast + ( element_pointer - group_pointer->elements ); + + if( distance <= distance_from_beginning ) { + element_pointer -= distance; + skipfield_pointer -= distance; + return; + } else if( group_pointer->previous_group == + NULL ) { // ie. we've gone before begin(), so bound to begin() + element_pointer = group_pointer->elements; + skipfield_pointer = group_pointer->skipfield; + return; + } else { + distance -= distance_from_beginning; + } + } else { + const skipfield_pointer_type beginning_point = group_pointer->skipfield + * + ( group_pointer->skipfield ); + + while( skipfield_pointer != beginning_point ) { + --skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + + if( --distance == 0 ) { + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + } + + if( group_pointer->previous_group == NULL ) { + element_pointer = group_pointer->elements + * + ( group_pointer->skipfield ); // This is first group, so bound to begin() (just in case final decrement took us before begin()) + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } + } + + group_pointer = group_pointer->previous_group; + } + + + // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be either the first non-erased element in the next group over, or end(): + while( static_cast( group_pointer->number_of_elements ) < distance ) { + if( group_pointer->previous_group == NULL ) { // we've gone beyond begin(), so bound to it + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } + + distance -= group_pointer->number_of_elements; + group_pointer = group_pointer->previous_group; + } + + + // Final group (if not already reached): + if( static_cast( group_pointer->number_of_elements ) == distance ) { + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } else if( group_pointer->free_list_head == + std::numeric_limits::max() ) { // ie. no erased elements in this group + element_pointer = reinterpret_cast( group_pointer->skipfield ) - distance; + skipfield_pointer = ( group_pointer->skipfield + group_pointer->capacity ) - distance; + return; + } else { // ie. no more groups to traverse but there are erased elements in this group + skipfield_pointer = group_pointer->skipfield + group_pointer->capacity; + + do { + --skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + } while( --distance != 0 ); + + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + } + + // Only distance == 0 reaches here + } + + + + + // Advance for reverse_iterator and const_reverse_iterator - this needs to be implemented slightly differently to forward-iterator's advance, as it needs to be able to reach rend() (ie. begin() - 1) and to be bounded by rbegin(): + template + void advance( colony_reverse_iterator &reverse_it, + difference_type distance ) const { // could cause exception if iterator is uninitialized + group_pointer_type &group_pointer = reverse_it.it.group_pointer; + aligned_pointer_type &element_pointer = reverse_it.it.element_pointer; + skipfield_pointer_type &skipfield_pointer = reverse_it.it.skipfield_pointer; + + assert( element_pointer != NULL ); + + if( distance > 0 ) { + assert( !( element_pointer == group_pointer->elements - 1 && + group_pointer->previous_group == NULL ) ); // Check that we're not already at rend() + // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) + // Since a reverse_iterator cannot == last_endpoint (ie. before rbegin()) we don't need to check for that like with iterator + if( group_pointer->free_list_head == std::numeric_limits::max() ) { + difference_type distance_from_beginning = static_cast + ( element_pointer - group_pointer->elements ); + + if( distance <= distance_from_beginning ) { + element_pointer -= distance; + skipfield_pointer -= distance; + return; + } else if( group_pointer->previous_group == + NULL ) { // Either we've reached rend() or gone beyond it, so bound to rend() + element_pointer = group_pointer->elements - 1; + skipfield_pointer = group_pointer->skipfield - 1; + return; + } else { + distance -= distance_from_beginning; + } + } else { + const skipfield_pointer_type beginning_point = group_pointer->skipfield + * + ( group_pointer->skipfield ); + + while( skipfield_pointer != beginning_point ) { + --skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + + if( --distance == 0 ) { + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + } + + if( group_pointer->previous_group == NULL ) { + element_pointer = group_pointer->elements - 1; // If we've reached rend(), bound to that + skipfield_pointer = group_pointer->skipfield - 1; + return; + } + } + + group_pointer = group_pointer->previous_group; + + + // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the next group: + while( static_cast( group_pointer->number_of_elements ) < distance ) { + if( group_pointer->previous_group == NULL ) { // bound to rend() + element_pointer = group_pointer->elements - 1; + skipfield_pointer = group_pointer->skipfield - 1; + return; + } + + distance -= static_cast( group_pointer->number_of_elements ); + group_pointer = group_pointer->previous_group; + } + + + // Final group (if not already reached) + if( static_cast( group_pointer->number_of_elements ) == distance ) { + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } else if( group_pointer->free_list_head == std::numeric_limits::max() ) { + element_pointer = reinterpret_cast( group_pointer->skipfield ) - distance; + skipfield_pointer = ( group_pointer->skipfield + group_pointer->capacity ) - distance; + return; + } else { + skipfield_pointer = group_pointer->skipfield + group_pointer->capacity; + + do { + --skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + } while( --distance != 0 ); + + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + } else if( distance < 0 ) { + assert( !( ( element_pointer == ( group_pointer->last_endpoint - 1 ) - * + ( group_pointer->skipfield + ( group_pointer->last_endpoint - group_pointer->elements ) - 1 ) ) && + group_pointer->next_group == NULL ) ); // Check that we're not already at rbegin() + + if( element_pointer != group_pointer->elements + * + ( group_pointer->skipfield ) ) { // ie. != first non-erased element in group + if( group_pointer->free_list_head == + std::numeric_limits::max() ) { // ie. if there are no erasures in the group + const difference_type distance_from_end = static_cast + ( group_pointer->last_endpoint - element_pointer ); + + if( distance < distance_from_end ) { + element_pointer += distance; + skipfield_pointer += distance; + return; + } else if( group_pointer->next_group == NULL ) { // bound to rbegin() + element_pointer = group_pointer->last_endpoint - + 1; // no erasures so we don't have to subtract skipfield value as we do below + skipfield_pointer += distance_from_end - 1; + return; + } else { + distance -= distance_from_end; + } + } else { + const skipfield_pointer_type endpoint = skipfield_pointer + ( group_pointer->last_endpoint - + element_pointer ); + + while( true ) { + ++skipfield_pointer; + skipfield_pointer += *skipfield_pointer; + --distance; + + if( skipfield_pointer == endpoint ) { + break; + } else if( distance == 0 ) { + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + } + + if( group_pointer->next_group == NULL ) { // bound to rbegin() + --skipfield_pointer; + element_pointer = ( group_pointer->last_endpoint - 1 ) - *skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + return; + } + } + + group_pointer = group_pointer->next_group; + + if( distance == 0 ) { + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } + } + + + // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the current group, as a result of the previous code blocks: + while( static_cast( group_pointer->number_of_elements ) <= distance ) { + if( group_pointer->next_group == NULL ) { // bound to rbegin() + skipfield_pointer = group_pointer->skipfield + ( group_pointer->last_endpoint - + group_pointer->elements ) - 1; + --skipfield_pointer; + element_pointer = ( group_pointer->last_endpoint - 1 ) - *skipfield_pointer; + skipfield_pointer -= *skipfield_pointer; + return; + } else if( ( distance -= group_pointer->number_of_elements ) == 0 ) { + group_pointer = group_pointer->next_group; + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + return; + } else { + group_pointer = group_pointer->next_group; + } + } + + + // Final group (if not already reached): + if( group_pointer->free_list_head == + std::numeric_limits::max() ) { // No erasures in this group, use straight pointer addition + element_pointer = group_pointer->elements + distance; + skipfield_pointer = group_pointer->skipfield + distance; + return; + } else { // ie. number_of_elements > distance - safe to ignore endpoint check condition while incrementing: + skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + + do { + ++skipfield_pointer; + skipfield_pointer += *skipfield_pointer; + } while( --distance != 0 ); + + element_pointer = group_pointer->elements + ( skipfield_pointer - group_pointer->skipfield ); + return; + } + + return; + } + } + + + + + // Next implementations: + template + inline colony_iterator next( const colony_iterator &it, + const typename colony_iterator::difference_type distance = 1 ) const { + colony_iterator return_iterator( it ); + advance( return_iterator, distance ); + return return_iterator; + } + + + + template + inline colony_reverse_iterator next( const colony_reverse_iterator &it, + const typename colony_reverse_iterator::difference_type distance = 1 ) const { + colony_reverse_iterator return_iterator( it ); + advance( return_iterator, distance ); + return return_iterator; + } + + + + // Prev implementations: + template + inline colony_iterator prev( const colony_iterator &it, + const typename colony_iterator::difference_type distance = 1 ) const { + colony_iterator return_iterator( it ); + advance( return_iterator, -distance ); + return return_iterator; + } + + + + template + inline colony_reverse_iterator prev( const colony_reverse_iterator &it, + const typename colony_reverse_iterator::difference_type distance = 1 ) const { + colony_reverse_iterator return_iterator( it ); + advance( return_iterator, -distance ); + return return_iterator; + } + + + + // distance implementation: + + template + typename colony_iterator::difference_type distance( const colony_iterator + &first, const colony_iterator &last ) const { + // Code logic: + // If iterators are the same, return 0 + // Otherwise, find which iterator is later in colony, copy that to iterator2. Copy the lower to iterator1. + // If they are not pointing to elements in the same group, process the intermediate groups and add distances, + // skipping manual incrementation in all but the initial and final groups. + // In the initial and final groups, manual incrementation must be used to calculate distance, if there have been no prior erasures in those groups. + // If there are no prior erasures in either of those groups, we can use pointer arithmetic to calculate the distances for those groups. + + assert( !( first.group_pointer == NULL ) && + !( last.group_pointer == NULL ) ); // Check that they are initialized + + if( last.element_pointer == first.element_pointer ) { + return 0; + } + + typedef colony_iterator iterator_type; + typedef typename iterator_type::difference_type diff_type; + diff_type distance = 0; + + iterator_type iterator1 = first, iterator2 = last; + const bool swap = first > last; + + if( swap ) { // Less common case + iterator1 = last; + iterator2 = first; + } + + if( iterator1.group_pointer != + iterator2.group_pointer ) { // if not in same group, process intermediate groups + // Process initial group: + if( iterator1.group_pointer->free_list_head == + std::numeric_limits::max() ) { // If no prior erasures have occured in this group we can do simple addition + distance += static_cast( iterator1.group_pointer->last_endpoint - + iterator1.element_pointer ); + } else if( iterator1.element_pointer == + iterator1.group_pointer->elements ) { // ie. element is at start of group - rare case + distance += static_cast( iterator1.group_pointer->number_of_elements ); + } else { + const skipfield_pointer_type endpoint = iterator1.skipfield_pointer + + ( iterator1.group_pointer->last_endpoint - iterator1.element_pointer ); + + while( iterator1.skipfield_pointer != endpoint ) { + iterator1.skipfield_pointer += *( ++iterator1.skipfield_pointer ); + ++distance; + } + } + + // Process all other intermediate groups: + iterator1.group_pointer = iterator1.group_pointer->next_group; + + while( iterator1.group_pointer != iterator2.group_pointer ) { + distance += static_cast( iterator1.group_pointer->number_of_elements ); + iterator1.group_pointer = iterator1.group_pointer->next_group; + } + + iterator1.skipfield_pointer = iterator1.group_pointer->skipfield; + } + + + if( iterator1.group_pointer->free_list_head == + std::numeric_limits::max() ) { // ie. no erasures in this group, direct subtraction is possible + distance += static_cast( iterator2.skipfield_pointer - iterator1.skipfield_pointer ); + } else if( iterator1.group_pointer->last_endpoint - 1 >= + iterator2.element_pointer ) { // ie. if iterator2 is .end() or 1 before + distance += static_cast( iterator1.group_pointer->number_of_elements - + ( iterator1.group_pointer->last_endpoint - iterator2.element_pointer ) ); + } else { + while( iterator1.skipfield_pointer != iterator2.skipfield_pointer ) { + iterator1.skipfield_pointer += *( ++iterator1.skipfield_pointer ); + ++distance; + } + } + + + if( swap ) { + distance = -distance; + } + + return distance; + } + + + + template + inline typename colony_reverse_iterator::difference_type distance( + const colony_reverse_iterator &first, + const colony_reverse_iterator &last ) const { + return distance( last.it, first.it ); + } + + + + + // Type-changing functions: + + iterator get_iterator_from_pointer( const pointer element_pointer ) + const { // Cannot be noexcept as colony could be empty or pointer invalid + assert( !empty() ); + assert( element_pointer != NULL ); + + group_pointer_type current_group = + end_iterator.group_pointer; // Start with last group first, as will be the largest group + + while( current_group != NULL ) { + if( reinterpret_cast( element_pointer ) >= current_group->elements && + reinterpret_cast( element_pointer ) < reinterpret_cast + ( current_group->skipfield ) ) { + const skipfield_pointer_type skipfield_pointer = current_group->skipfield + + ( reinterpret_cast( element_pointer ) - current_group->elements ); + return ( *skipfield_pointer == 0 ) ? iterator( current_group, + reinterpret_cast( element_pointer ), + skipfield_pointer ) : end_iterator; // If element has been erased, return end() + } + + current_group = current_group->previous_group; + } + + return end_iterator; + } + + + + template + size_type get_index_from_iterator( const colony_iterator &it ) + const { // may throw exception if iterator is invalid/uninitialized + assert( !empty() ); + assert( it.group_pointer != NULL ); + + // This is essentially a simplified version of distance() optimized for counting from begin() + size_type index = 0; + group_pointer_type group_pointer = begin_iterator.group_pointer; + + // For all prior groups, add group sizes + while( group_pointer != it.group_pointer ) { + index += static_cast( group_pointer->number_of_elements ); + group_pointer = group_pointer->next_group; + } + + if( group_pointer->free_list_head == std::numeric_limits::max() ) { + index += static_cast( it.element_pointer - + group_pointer->elements ); // If no erased elements in group exist, do straight pointer arithmetic to get distance to start for first element + } else { // Otherwise do manual ++ loop - count from beginning of group until location is reached + skipfield_pointer_type skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); + + while( skipfield_pointer != it.skipfield_pointer ) { + ++skipfield_pointer; + skipfield_pointer += *skipfield_pointer; + ++index; + } + } + + return index; + } + + + + template + inline size_type get_index_from_reverse_iterator( const colony_reverse_iterator + &rev_iterator ) const { + return get_index_from_iterator( rev_iterator.it ); + } + + + + template + iterator get_iterator_from_index( const index_type index ) + const { // Cannot be noexcept as colony could be empty + assert( !empty() ); + assert( std::numeric_limits::is_integer ); + + iterator it( begin_iterator ); + advance( it, static_cast( index ) ); + return it; + } + + + + inline allocator_type get_allocator() const PLF_COLONY_NOEXCEPT { + return element_allocator_type(); + } + + + + + private: + + struct less { + bool operator()( const element_type &a, const element_type &b ) const PLF_COLONY_NOEXCEPT { + return a < b; + } + }; + + + // Function-object, used to redirect the sort function to compare element pointers by the elements they point to, and sort the element pointers instead of the elements: + template + struct sort_dereferencer { + comparison_function stored_instance; + + explicit sort_dereferencer( const comparison_function &function_instance ): + stored_instance( function_instance ) + {} + + sort_dereferencer() PLF_COLONY_NOEXCEPT + {} + + bool operator()( const pointer first, const pointer second ) { + return stored_instance( *first, *second ); + } + }; + + + public: + + + template + void sort( comparison_function compare ) { + if( total_number_of_elements < 2 ) { + return; + } + + pointer *const element_pointers = PLF_COLONY_ALLOCATE( pointer_allocator_type, + pointer_allocator_pair, total_number_of_elements, NULL ); + pointer *element_pointer = element_pointers; + + // Construct pointers to all elements in the colony in sequence: + for( iterator current_element = begin_iterator; current_element != end_iterator; + ++current_element ) { + PLF_COLONY_CONSTRUCT( pointer_allocator_type, pointer_allocator_pair, element_pointer++, + &*current_element ); + } + + // Now, sort the pointers by the values they point to: +#ifdef GFX_TIMSORT_HPP + gfx::timsort( element_pointers, element_pointers + total_number_of_elements, + sort_dereferencer( compare ) ); +#else + std::sort( element_pointers, element_pointers + total_number_of_elements, + sort_dereferencer( compare ) ); +#endif + + + // Create a new colony and copy the elements from the old one to the new one in the order of the sorted pointers: + colony new_location; + new_location.change_group_sizes( pointer_allocator_pair.min_elements_per_group, + group_allocator_pair.max_elements_per_group ); + + + try { + new_location.reserve( static_cast( ( total_number_of_elements > + std::numeric_limits::max() ) ? std::numeric_limits::max() : + total_number_of_elements ) ); + +#if defined(PLF_COLONY_TYPE_TRAITS_SUPPORT) && defined(PLF_COLONY_MOVE_SEMANTICS_SUPPORT) + if PLF_COLONY_CONSTEXPR( std::is_move_constructible::value ) { + for( pointer *current_element_pointer = element_pointers; + current_element_pointer != element_pointer; ++current_element_pointer ) { + new_location.insert( std::move( *reinterpret_cast( *current_element_pointer ) ) ); + } + } else +#endif + { + for( pointer *current_element_pointer = element_pointers; + current_element_pointer != element_pointer; ++current_element_pointer ) { + new_location.insert( *reinterpret_cast( *current_element_pointer ) ); + } + } + } catch( ... ) { +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) +#endif + { + for( pointer *current_element_pointer = element_pointers; + current_element_pointer != element_pointer; ++current_element_pointer ) { + PLF_COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); + } + } + + PLF_COLONY_DEALLOCATE( pointer_allocator_type, pointer_allocator_pair, element_pointers, + total_number_of_elements ); + throw; + } + + + // Make the old colony the new one, destroy the old one's data/sequence: +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + *this = std::move( new_location ); // avoid generating temporary +#else + swap( new_location ); +#endif + + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) +#endif + { + for( pointer *current_element_pointer = element_pointers; + current_element_pointer != element_pointer; ++current_element_pointer ) { + PLF_COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); + } + } + + PLF_COLONY_DEALLOCATE( pointer_allocator_type, pointer_allocator_pair, element_pointers, + total_number_of_elements ); + } + + + + + inline void sort() { + sort( less() ); + } + + + + void splice( colony &source ) PLF_COLONY_NOEXCEPT_SWAP( allocator_type ) { + // Process: if there are unused memory spaces at the end of the current back group of the chain, convert them + // to skipped elements and add the locations to the group's free list. + // Then link the destination's groups to the source's groups and nullify the source. + // If the source has more unused memory spaces in the back group than the destination, swap them before processing to reduce the number of locations added to a free list and also subsequent jumps during iteration. + + assert( &source != this ); + + if( source.total_number_of_elements == 0 ) { + return; + } else if( total_number_of_elements == 0 ) { +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + *this = std::move( source ); +#else + clear(); + swap( source ); +#endif + + return; + } + + // If there's more unused element locations at end of destination than source, swap with source to reduce number of skipped elements and size of free-list: + if( ( reinterpret_cast( end_iterator.group_pointer->skipfield ) - + end_iterator.element_pointer ) > ( reinterpret_cast + ( source.end_iterator.group_pointer->skipfield ) - source.end_iterator.element_pointer ) ) { + swap( source ); + } + + + // Correct group sizes if necessary: + if( source.pointer_allocator_pair.min_elements_per_group < + pointer_allocator_pair.min_elements_per_group ) { + pointer_allocator_pair.min_elements_per_group = + source.pointer_allocator_pair.min_elements_per_group; + } + + if( source.group_allocator_pair.max_elements_per_group > + group_allocator_pair.max_elements_per_group ) { + group_allocator_pair.max_elements_per_group = source.group_allocator_pair.max_elements_per_group; + } + + // Add source list of groups-with-erasures to destination list of groups-with-erasures: + if( source.groups_with_erasures_list_head != NULL ) { + if( groups_with_erasures_list_head != NULL ) { + group_pointer_type tail_group = groups_with_erasures_list_head; + + while( tail_group->erasures_list_next_group != NULL ) { + tail_group = tail_group->erasures_list_next_group; + } + + tail_group->erasures_list_next_group = source.groups_with_erasures_list_head; + } else { + groups_with_erasures_list_head = source.groups_with_erasures_list_head; + } + } + + + const skipfield_type distance_to_end = static_cast + ( reinterpret_cast( end_iterator.group_pointer->skipfield ) - + end_iterator.element_pointer ); + + if( distance_to_end != 0 ) { // 0 == edge case + // Mark unused element memory locations from back group as skipped/erased: + + // Update skipfield: + const skipfield_type previous_node_value = *( end_iterator.skipfield_pointer - 1 ); + end_iterator.group_pointer->last_endpoint = reinterpret_cast + ( end_iterator.group_pointer->skipfield ); + + if( previous_node_value == 0 ) { // no previous skipblock + *end_iterator.skipfield_pointer = distance_to_end; + *( end_iterator.skipfield_pointer + distance_to_end - 1 ) = distance_to_end; + + const skipfield_type index = static_cast( end_iterator.element_pointer - + end_iterator.group_pointer->elements ); + + if( end_iterator.group_pointer->free_list_head != + std::numeric_limits::max() ) { // ie. if this group already has some erased elements + *( reinterpret_cast( end_iterator.group_pointer->elements + + end_iterator.group_pointer->free_list_head ) + 1 ) = + index; // set prev free list head's 'next index' number to the index of the current element + } else { + end_iterator.group_pointer->erasures_list_next_group = + groups_with_erasures_list_head; // add it to the groups-with-erasures free list + groups_with_erasures_list_head = end_iterator.group_pointer; + } + + *( reinterpret_cast( end_iterator.element_pointer ) ) = + end_iterator.group_pointer->free_list_head; + *( reinterpret_cast( end_iterator.element_pointer ) + 1 ) = + std::numeric_limits::max(); + end_iterator.group_pointer->free_list_head = index; + } else { + // update previous skipblock, no need to update free list: + *( end_iterator.skipfield_pointer - previous_node_value ) = *( end_iterator.skipfield_pointer + + distance_to_end - 1 ) = previous_node_value + distance_to_end; + } + } + + + // Update subsequent group numbers: + group_pointer_type current_group = source.begin_iterator.group_pointer; + size_type current_group_number = end_iterator.group_pointer->group_number; + + do { + current_group->group_number = ++current_group_number; + current_group = current_group->next_group; + } while( current_group != NULL ); + + + // Join the destination and source group chains: + end_iterator.group_pointer->next_group = source.begin_iterator.group_pointer; + source.begin_iterator.group_pointer->previous_group = end_iterator.group_pointer; + end_iterator = source.end_iterator; + total_number_of_elements += source.total_number_of_elements; + source.blank(); + } + + + + void swap( colony &source ) PLF_COLONY_NOEXCEPT_SWAP( allocator_type ) { + assert( &source != this ); + +#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT + if PLF_COLONY_CONSTEXPR( std::is_trivial::value && + std::is_trivial::value && + std::is_trivial::value ) { // if all pointer types are trivial we can just copy using memcpy - avoids constructors/destructors etc and is faster + char temp[sizeof( colony )]; + std::memcpy( &temp, static_cast( this ), sizeof( colony ) ); + std::memcpy( static_cast( this ), static_cast( &source ), sizeof( colony ) ); + std::memcpy( static_cast( &source ), &temp, sizeof( colony ) ); + } +#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT // If pointer types are not trivial, moving them is probably going to be more efficient than copying them below + else if PLF_COLONY_CONSTEXPR( std::is_move_assignable::value && + std::is_move_assignable::value && + std::is_move_assignable::value && + std::is_move_constructible::value && + std::is_move_constructible::value && + std::is_move_constructible::value ) { + colony temp( std::move( source ) ); + source = std::move( *this ); + *this = std::move( temp ); + } +#endif + else +#endif + { + const iterator swap_end_iterator = end_iterator, + swap_begin_iterator = begin_iterator; + const group_pointer_type swap_groups_with_erasures_list_head = + groups_with_erasures_list_head; + const size_type swap_total_number_of_elements = total_number_of_elements, + swap_total_capacity = total_capacity; + const skipfield_type swap_min_elements_per_group = + pointer_allocator_pair.min_elements_per_group, + swap_max_elements_per_group = group_allocator_pair.max_elements_per_group; + + end_iterator = source.end_iterator; + begin_iterator = source.begin_iterator; + groups_with_erasures_list_head = source.groups_with_erasures_list_head; + total_number_of_elements = source.total_number_of_elements; + total_capacity = source.total_capacity; + pointer_allocator_pair.min_elements_per_group = + source.pointer_allocator_pair.min_elements_per_group; + group_allocator_pair.max_elements_per_group = source.group_allocator_pair.max_elements_per_group; + + source.end_iterator = swap_end_iterator; + source.begin_iterator = swap_begin_iterator; + source.groups_with_erasures_list_head = swap_groups_with_erasures_list_head; + source.total_number_of_elements = swap_total_number_of_elements; + source.total_capacity = swap_total_capacity; + source.pointer_allocator_pair.min_elements_per_group = swap_min_elements_per_group; + source.group_allocator_pair.max_elements_per_group = swap_max_elements_per_group; + } + } + +}; // colony + + + + +template +inline void swap( colony &a, + colony &b ) PLF_COLONY_NOEXCEPT_SWAP( + element_allocator_type ) +{ + a.swap( b ); +} + + + +} // plf namespace + + + + +#undef PLF_COLONY_FORCE_INLINE + +#undef PLF_COLONY_ALIGNMENT_SUPPORT +#undef PLF_COLONY_INITIALIZER_LIST_SUPPORT +#undef PLF_COLONY_TYPE_TRAITS_SUPPORT +#undef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#undef PLF_COLONY_VARIADICS_SUPPORT +#undef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#undef PLF_COLONY_NOEXCEPT +#undef PLF_COLONY_NOEXCEPT_SWAP +#undef PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT +#undef PLF_COLONY_CONSTEXPR + +#undef PLF_COLONY_CONSTRUCT +#undef PLF_COLONY_DESTROY +#undef PLF_COLONY_ALLOCATE +#undef PLF_COLONY_ALLOCATE_INITIALIZATION +#undef PLF_COLONY_DEALLOCATE + + +#endif // PLF_COLONY_H From 54ec9594650334670f51ad88ccd0b9e330676239 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Tue, 11 Jun 2019 14:50:06 +0200 Subject: [PATCH 29/76] Make colony conform to cdda code style --- src/colony.h | 1563 +++++++++++++++++++------------------------------- 1 file changed, 588 insertions(+), 975 deletions(-) diff --git a/src/colony.h b/src/colony.h index 53d7bb48fc163..19fb7b58c1398 100644 --- a/src/colony.h +++ b/src/colony.h @@ -1,3 +1,6 @@ +// This software is a modified version of the original. +// The original license is as follows: + // Copyright (c) 2019, Matthew Bentley (mattreecebentley@gmail.com) www.plflib.org // zLib license (https://www.zlib.net/zlib_license.html): @@ -17,332 +20,297 @@ // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. - -#ifndef PLF_COLONY_H -#define PLF_COLONY_H - +#pragma once +#ifndef COLONY_H +#define COLONY_H // Compiler-specific defines used by colony: #if defined(_MSC_VER) -#define PLF_COLONY_FORCE_INLINE __forceinline +#define COLONY_FORCE_INLINE __forceinline #if _MSC_VER < 1600 -#define PLF_COLONY_NOEXCEPT throw() -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#define COLONY_NOEXCEPT throw() +#define COLONY_NOEXCEPT_SWAP(the_allocator) +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() #elif _MSC_VER == 1600 -#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT -#define PLF_COLONY_NOEXCEPT throw() -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#define COLONY_MOVE_SEMANTICS_SUPPORT +#define COLONY_NOEXCEPT throw() +#define COLONY_NOEXCEPT_SWAP(the_allocator) +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() #elif _MSC_VER == 1700 -#define PLF_COLONY_TYPE_TRAITS_SUPPORT -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT -#define PLF_COLONY_NOEXCEPT throw() -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#define COLONY_TYPE_TRAITS_SUPPORT +#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_MOVE_SEMANTICS_SUPPORT +#define COLONY_NOEXCEPT throw() +#define COLONY_NOEXCEPT_SWAP(the_allocator) +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() #elif _MSC_VER == 1800 -#define PLF_COLONY_TYPE_TRAITS_SUPPORT -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#define PLF_COLONY_VARIADICS_SUPPORT // Variadics, in this context, means both variadic templates and variadic macros are supported -#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT -#define PLF_COLONY_NOEXCEPT throw() -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() -#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#define COLONY_TYPE_TRAITS_SUPPORT +#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_VARIADICS_SUPPORT // Variadics, in this context, means both variadic templates and variadic macros are supported +#define COLONY_MOVE_SEMANTICS_SUPPORT +#define COLONY_NOEXCEPT throw() +#define COLONY_NOEXCEPT_SWAP(the_allocator) +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() +#define COLONY_INITIALIZER_LIST_SUPPORT #elif _MSC_VER >= 1900 -#define PLF_COLONY_ALIGNMENT_SUPPORT -#define PLF_COLONY_TYPE_TRAITS_SUPPORT -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#define PLF_COLONY_VARIADICS_SUPPORT -#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT -#define PLF_COLONY_NOEXCEPT noexcept -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#define COLONY_ALIGNMENT_SUPPORT +#define COLONY_TYPE_TRAITS_SUPPORT +#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_VARIADICS_SUPPORT +#define COLONY_MOVE_SEMANTICS_SUPPORT +#define COLONY_NOEXCEPT noexcept +#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define COLONY_INITIALIZER_LIST_SUPPORT #endif #if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L) -#define PLF_COLONY_CONSTEXPR constexpr +#define COLONY_CONSTEXPR constexpr #else -#define PLF_COLONY_CONSTEXPR +#define COLONY_CONSTEXPR #endif #elif defined(__cplusplus) && __cplusplus >= 201103L // C++11 support, at least -#define PLF_COLONY_FORCE_INLINE // note: GCC creates faster code without forcing inline +#define COLONY_FORCE_INLINE // note: GCC creates faster code without forcing inline #if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__clang__) // If compiler is GCC/G++ #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 // 4.2 and below do not support variadic templates -#define PLF_COLONY_VARIADICS_SUPPORT +#define COLONY_VARIADICS_SUPPORT #endif #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __GNUC__ > 4 // 4.3 and below do not support initializer lists -#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#define COLONY_INITIALIZER_LIST_SUPPORT #endif #if (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || __GNUC__ < 4 -#define PLF_COLONY_NOEXCEPT throw() -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#define COLONY_NOEXCEPT throw() +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) +#define COLONY_NOEXCEPT_SWAP(the_allocator) #elif __GNUC__ < 6 -#define PLF_COLONY_NOEXCEPT noexcept -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept +#define COLONY_NOEXCEPT noexcept +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept +#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept #else // C++17 support -#define PLF_COLONY_NOEXCEPT noexcept -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) +#define COLONY_NOEXCEPT noexcept +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) #endif #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) || __GNUC__ > 4 -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_ALLOCATOR_TRAITS_SUPPORT #endif #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) || __GNUC__ > 4 -#define PLF_COLONY_ALIGNMENT_SUPPORT +#define COLONY_ALIGNMENT_SUPPORT #endif #if __GNUC__ >= 5 // GCC v4.9 and below do not support std::is_trivially_copyable -#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#define COLONY_TYPE_TRAITS_SUPPORT #endif #elif defined(__GLIBCXX__) // Using another compiler type with libstdc++ - we are assuming full c++11 compliance for compiler - which may not be true #if __GLIBCXX__ >= 20080606 // libstdc++ 4.2 and below do not support variadic templates -#define PLF_COLONY_VARIADICS_SUPPORT +#define COLONY_VARIADICS_SUPPORT #endif #if __GLIBCXX__ >= 20090421 // libstdc++ 4.3 and below do not support initializer lists -#define PLF_COLONY_INITIALIZER_LIST_SUPPORT +#define COLONY_INITIALIZER_LIST_SUPPORT #endif #if __GLIBCXX__ >= 20160111 -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#define PLF_COLONY_NOEXCEPT noexcept -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) +#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_NOEXCEPT noexcept +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) #elif __GLIBCXX__ >= 20120322 -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#define PLF_COLONY_NOEXCEPT noexcept -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept +#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_NOEXCEPT noexcept +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept +#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept #else -#define PLF_COLONY_NOEXCEPT throw() -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) +#define COLONY_NOEXCEPT throw() +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) +#define COLONY_NOEXCEPT_SWAP(the_allocator) #endif #if __GLIBCXX__ >= 20130322 -#define PLF_COLONY_ALIGNMENT_SUPPORT +#define COLONY_ALIGNMENT_SUPPORT #endif #if __GLIBCXX__ >= 20150422 // libstdc++ v4.9 and below do not support std::is_trivially_copyable -#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#define COLONY_TYPE_TRAITS_SUPPORT #endif #elif defined(_LIBCPP_VERSION) -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#define PLF_COLONY_VARIADICS_SUPPORT -#define PLF_COLONY_INITIALIZER_LIST_SUPPORT -#define PLF_COLONY_ALIGNMENT_SUPPORT -#define PLF_COLONY_NOEXCEPT noexcept -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept +#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_VARIADICS_SUPPORT +#define COLONY_INITIALIZER_LIST_SUPPORT +#define COLONY_ALIGNMENT_SUPPORT +#define COLONY_NOEXCEPT noexcept +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept #if !(defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)) -#define PLF_COLONY_TYPE_TRAITS_SUPPORT +#define COLONY_TYPE_TRAITS_SUPPORT #endif #else // Assume type traits and initializer support for other compilers and standard libraries -#define PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#define PLF_COLONY_ALIGNMENT_SUPPORT -#define PLF_COLONY_VARIADICS_SUPPORT -#define PLF_COLONY_INITIALIZER_LIST_SUPPORT -#define PLF_COLONY_TYPE_TRAITS_SUPPORT -#define PLF_COLONY_NOEXCEPT noexcept -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) noexcept +#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#define COLONY_ALIGNMENT_SUPPORT +#define COLONY_VARIADICS_SUPPORT +#define COLONY_INITIALIZER_LIST_SUPPORT +#define COLONY_TYPE_TRAITS_SUPPORT +#define COLONY_NOEXCEPT noexcept +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept #endif #if __cplusplus >= 201703L #if defined(__clang__) && ((__clang_major__ == 3 && __clang_minor__ == 9) || __clang_major__ > 3) -#define PLF_COLONY_CONSTEXPR constexpr +#define COLONY_CONSTEXPR constexpr #elif defined(__GNUC__) && __GNUC__ >= 7 -#define PLF_COLONY_CONSTEXPR constexpr +#define COLONY_CONSTEXPR constexpr #elif !defined(__clang__) && !defined(__GNUC__) -#define PLF_COLONY_CONSTEXPR constexpr // assume correct C++17 implementation for other compilers +#define COLONY_CONSTEXPR constexpr // assume correct C++17 implementation for other compilers #else -#define PLF_COLONY_CONSTEXPR +#define COLONY_CONSTEXPR #endif #else -#define PLF_COLONY_CONSTEXPR +#define COLONY_CONSTEXPR #endif -#define PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#define COLONY_MOVE_SEMANTICS_SUPPORT #else -#define PLF_COLONY_FORCE_INLINE -#define PLF_COLONY_NOEXCEPT throw() -#define PLF_COLONY_NOEXCEPT_SWAP(the_allocator) -#define PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) -#define PLF_COLONY_CONSTEXPR +#define COLONY_FORCE_INLINE +#define COLONY_NOEXCEPT throw() +#define COLONY_NOEXCEPT_SWAP(the_allocator) +#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) +#define COLONY_CONSTEXPR #endif - - - - -#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#ifdef PLF_COLONY_VARIADICS_SUPPORT -#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) std::allocator_traits::construct(allocator_instance, location, __VA_ARGS__) +#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT +#ifdef COLONY_VARIADICS_SUPPORT +#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) std::allocator_traits::construct(allocator_instance, location, __VA_ARGS__) #else -#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) std::allocator_traits::construct(allocator_instance, location, data) +#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) std::allocator_traits::construct(allocator_instance, location, data) #endif -#define PLF_COLONY_DESTROY(the_allocator, allocator_instance, location) std::allocator_traits::destroy(allocator_instance, location) -#define PLF_COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) std::allocator_traits::allocate(allocator_instance, size, hint) -#define PLF_COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) std::allocator_traits::allocate(*this, size, hint) -#define PLF_COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) std::allocator_traits::deallocate(allocator_instance, location, size) +#define COLONY_DESTROY(the_allocator, allocator_instance, location) std::allocator_traits::destroy(allocator_instance, location) +#define COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) std::allocator_traits::allocate(allocator_instance, size, hint) +#define COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) std::allocator_traits::allocate(*this, size, hint) +#define COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) std::allocator_traits::deallocate(allocator_instance, location, size) #else -#ifdef PLF_COLONY_VARIADICS_SUPPORT -#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) allocator_instance.construct(location, __VA_ARGS__) +#ifdef COLONY_VARIADICS_SUPPORT +#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) allocator_instance.construct(location, __VA_ARGS__) #else -#define PLF_COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) allocator_instance.construct(location, data) +#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) allocator_instance.construct(location, data) #endif -#define PLF_COLONY_DESTROY(the_allocator, allocator_instance, location) allocator_instance.destroy(location) -#define PLF_COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) allocator_instance.allocate(size, hint) -#define PLF_COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) the_allocator::allocate(size, hint) -#define PLF_COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) allocator_instance.deallocate(location, size) +#define COLONY_DESTROY(the_allocator, allocator_instance, location) allocator_instance.destroy(location) +#define COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) allocator_instance.allocate(size, hint) +#define COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) the_allocator::allocate(size, hint) +#define COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) allocator_instance.deallocate(location, size) #endif - - #include // std::sort and std::fill_n - #include // memset, memcpy #include // assert #include // std::numeric_limits #include // std::allocator #include // std::bidirectional_iterator_tag - -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT +#ifdef COLONY_TYPE_TRAITS_SUPPORT #include // offsetof, used in blank() #include // std::is_trivially_destructible, etc #endif -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT #include // std::move #endif -#ifdef PLF_COLONY_INITIALIZER_LIST_SUPPORT +#ifdef COLONY_INITIALIZER_LIST_SUPPORT #include #endif - - -namespace plf -{ - - template , typename element_skipfield_type = unsigned short > class colony : private - element_allocator_type // Empty base class optimisation - inheriting allocator functions + element_allocator_type // Empty base class optimization - inheriting allocator functions // Note: unsigned short is equivalent to uint_least16_t ie. Using 16-bit unsigned integer in best-case scenario, greater-than-16-bit unsigned integer where platform doesn't support 16-bit types { public: // Standard container typedefs: - typedef element_type - value_type; - typedef element_allocator_type - allocator_type; - typedef element_skipfield_type - skipfield_type; - -#ifdef PLF_COLONY_ALIGNMENT_SUPPORT - typedef typename std::aligned_storage < sizeof( element_type ), - ( alignof( element_type ) > ( sizeof( element_skipfield_type ) * 2 ) ) ? alignof( element_type ) : - ( sizeof( element_skipfield_type ) * 2 ) >::type aligned_element_type; + using value_type = element_type; + using allocator_type = element_allocator_type; + using skipfield_type = element_skipfield_type; + +#ifdef COLONY_ALIGNMENT_SUPPORT + using aligned_element_type = typename std::aligned_storage < sizeof( element_type ), + ( alignof( element_type ) > ( sizeof( element_skipfield_type ) * 2 ) ) ? alignof( element_type ) : + ( sizeof( element_skipfield_type ) * 2 ) >::type; #else - typedef element_type - aligned_element_type; -#endif - -#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT - typedef typename std::allocator_traits::size_type - size_type; - typedef typename std::allocator_traits::difference_type - difference_type; - typedef element_type - &reference; - typedef const element_type - &const_reference; - typedef typename std::allocator_traits::pointer - pointer; - typedef typename std::allocator_traits::const_pointer - const_pointer; -#else - typedef typename element_allocator_type::size_type size_type; - typedef typename element_allocator_type::difference_type difference_type; - typedef typename element_allocator_type::reference reference; - typedef typename element_allocator_type::const_reference const_reference; - typedef typename element_allocator_type::pointer pointer; - typedef typename element_allocator_type::const_pointer const_pointer; + using aligned_element_type = element_type; #endif +#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT + using size_type = typename std::allocator_traits::size_type; + using difference_type = typename std::allocator_traits::difference_type; + using reference = element_type&; + using const_reference = const element_type&; + using pointer = typename std::allocator_traits::pointer; + using const_pointer = typename std::allocator_traits::const_pointer; +#else + using size_type = typename element_allocator_type::size_type; + using difference_type = typename element_allocator_type::difference_type; + using reference = typename element_allocator_type::reference; + using const_reference = typename element_allocator_type::const_reference; + using pointer = typename element_allocator_type::pointer; + using const_pointer = typename element_allocator_type::const_pointer; +#endif // Iterator declarations: template class colony_iterator; - typedef colony_iterator iterator; - typedef colony_iterator const_iterator; + using iterator = colony_iterator; + using const_iterator = colony_iterator; friend class colony_iterator; // Using above typedef name here is illegal under C++03 friend class colony_iterator; template class colony_reverse_iterator; - typedef colony_reverse_iterator reverse_iterator; - typedef colony_reverse_iterator const_reverse_iterator; + using reverse_iterator = colony_reverse_iterator; + using const_reverse_iterator = colony_reverse_iterator; friend class colony_reverse_iterator; friend class colony_reverse_iterator; - private: - struct group; // forward declaration for typedefs below -#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT - typedef typename std::allocator_traits::template - rebind_alloc aligned_element_allocator_type; - typedef typename std::allocator_traits::template rebind_alloc - group_allocator_type; - typedef typename std::allocator_traits::template - rebind_alloc skipfield_allocator_type; - typedef typename std::allocator_traits::template rebind_alloc - uchar_allocator_type; // Using uchar as the generic allocator type, as sizeof is always guaranteed to be 1 byte regardless of the number of bits in a byte on given computer, whereas for example, uint8_t would fail on machines where there are more than 8 bits in a byte eg. Texas Instruments C54x DSPs. - - typedef typename std::allocator_traits::pointer - aligned_pointer_type; // Different typedef to 'pointer' - this is a pointer to the overaligned element type, not the original element type - typedef typename std::allocator_traits::pointer - group_pointer_type; - typedef typename std::allocator_traits::pointer - skipfield_pointer_type; - typedef typename std::allocator_traits::pointer - uchar_pointer_type; - - typedef typename std::allocator_traits::template rebind_alloc - pointer_allocator_type; +#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT + using aligned_element_allocator_type = typename + std::allocator_traits::template rebind_alloc; + using group_allocator_type = typename std::allocator_traits::template + rebind_alloc; + using skipfield_allocator_type = typename std::allocator_traits::template + rebind_alloc; + using uchar_allocator_type = typename std::allocator_traits::template + rebind_alloc; // Using uchar as the generic allocator type, as sizeof is always guaranteed to be 1 byte regardless of the number of bits in a byte on given computer, whereas for example, uint8_t would fail on machines where there are more than 8 bits in a byte eg. Texas Instruments C54x DSPs. + + using aligned_pointer_type = typename + std::allocator_traits::pointer; // Different typedef to 'pointer' - this is a pointer to the over aligned element type, not the original element type + using group_pointer_type = typename std::allocator_traits::pointer; + using skipfield_pointer_type = typename std::allocator_traits::pointer; + using uchar_pointer_type = typename std::allocator_traits::pointer; + + using pointer_allocator_type = typename std::allocator_traits::template + rebind_alloc; #else - typedef typename element_allocator_type::template rebind::other - aligned_element_allocator_type; // In case compiler supports alignment but not allocator_traits - typedef typename element_allocator_type::template rebind::other - group_allocator_type; - typedef typename element_allocator_type::template rebind::other - skipfield_allocator_type; - typedef typename element_allocator_type::template rebind::other - uchar_allocator_type; + using aligned_element_allocator_type = typename element_allocator_type::template + rebind::other; // In case compiler supports alignment but not allocator_traits + using group_allocator_type = typename element_allocator_type::template rebind::other; + using skipfield_allocator_type = typename element_allocator_type::template + rebind::other; + using uchar_allocator_type = typename element_allocator_type::template rebind::other; - typedef typename aligned_element_allocator_type::pointer aligned_pointer_type; - typedef typename group_allocator_type::pointer group_pointer_type; - typedef typename skipfield_allocator_type::pointer skipfield_pointer_type; - typedef typename uchar_allocator_type::pointer uchar_pointer_type; + using aligned_pointer_type = typename aligned_element_allocator_type::pointer; + using group_pointer_type = typename group_allocator_type::pointer; + using skipfield_pointer_type = typename skipfield_allocator_type::pointer; + using uchar_pointer_type = typename uchar_allocator_type::pointer; - typedef typename element_allocator_type::template rebind::other pointer_allocator_type; + using pointer_allocator_type = typename element_allocator_type::template rebind::other; #endif - - // Colony groups: struct group : private - uchar_allocator_type { // Empty base class optimisation (EBCO) - inheriting allocator functions + uchar_allocator_type { // Empty base class optimization (EBCO) - inheriting allocator functions aligned_pointer_type last_endpoint; // The address that is one past the highest cell number that's been used so far in this group - does not change with erase command but may change with insert (if no previously-erased locations are available) - is necessary because an iterator cannot access the colony's end_iterator. Most-used variable in colony use (operator ++, --) so first in struct group_pointer_type @@ -363,10 +331,9 @@ class colony : private size_type group_number; // Used for comparison (> < >= <=) iterator operators (used by distance function and user) - -#ifdef PLF_COLONY_VARIADICS_SUPPORT +#ifdef COLONY_VARIADICS_SUPPORT group( const skipfield_type elements_per_group, group_pointer_type const previous = NULL ): - last_endpoint( reinterpret_cast( PLF_COLONY_ALLOCATE_INITIALIZATION( + last_endpoint( reinterpret_cast( COLONY_ALLOCATE_INITIALIZATION( uchar_allocator_type, ( ( elements_per_group * ( sizeof( aligned_element_type ) ) ) + ( ( elements_per_group + 1u ) * sizeof( skipfield_type ) ) ), ( previous == NULL ) ? 0 : @@ -384,11 +351,10 @@ class colony : private std::memset( &*skipfield, 0, sizeof( skipfield_type ) * ( elements_per_group + 1u ) ); // &* to avoid problems with non-trivial pointers } - #else // This is a hack around the fact that element_allocator_type::construct only supports copy construction in C++03 and copy elision does not occur on the vast majority of compilers in this circumstance. And to avoid running out of memory (and losing performance) from allocating the same block twice, we're allocating in this constructor and moving data in the copy constructor. group( const skipfield_type elements_per_group, group_pointer_type const previous = NULL ): - last_endpoint( reinterpret_cast( PLF_COLONY_ALLOCATE_INITIALIZATION( + last_endpoint( reinterpret_cast( COLONY_ALLOCATE_INITIALIZATION( uchar_allocator_type, ( ( elements_per_group * ( sizeof( aligned_element_type ) ) ) + ( ( elements_per_group + 1 ) * sizeof( skipfield_type ) ) ), ( previous == NULL ) ? 0 : previous->elements ) ) ), @@ -399,10 +365,8 @@ class colony : private std::memset( &*skipfield, 0, sizeof( skipfield_type ) * ( elements_per_group + 1u ) ); } - - // Not a real copy constructor ie. actually a move constructor. Only used for allocator.construct in C++03 for reasons stated above: -group( const group &source ) PLF_COLONY_NOEXCEPT: +group( const group &source ) COLONY_NOEXCEPT: uchar_allocator_type( source ), last_endpoint( source.last_endpoint + 1 ), next_group( NULL ), @@ -416,33 +380,25 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: group_number( ( source.previous_group == NULL ) ? 0 : source.previous_group->group_number + 1u ) {} #endif - - - - ~group() PLF_COLONY_NOEXCEPT { + ~group() COLONY_NOEXCEPT { // Null check not necessary (for copied group as above) as delete will also perform a null check. - PLF_COLONY_DEALLOCATE( uchar_allocator_type, ( *this ), reinterpret_cast( elements ), ( capacity * sizeof( aligned_element_type ) ) + ( ( capacity + 1u ) * sizeof( skipfield_type ) ) ); + COLONY_DEALLOCATE( uchar_allocator_type, ( *this ), reinterpret_cast( elements ), ( capacity * sizeof( aligned_element_type ) ) + ( ( capacity + 1u ) * sizeof( skipfield_type ) ) ); } }; - - - // Implement const/non-const iterator switching pattern: template struct choose; template struct choose { - typedef is_true type; + using type = is_true; }; template struct choose { - typedef is_false type; + using type = is_false; }; - public: - // Iterators: template class colony_iterator { @@ -452,43 +408,36 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: skipfield_pointer_type skipfield_pointer; public: - typedef std::bidirectional_iterator_tag iterator_category; - typedef typename colony::value_type value_type; - typedef typename colony::difference_type difference_type; - typedef typename choose::type - pointer; - typedef typename - choose::type reference; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = typename colony::value_type; + using difference_type = typename colony::difference_type; + using pointer = typename + choose::type; + using reference = typename + choose::type; friend class colony; friend class colony_reverse_iterator; friend class colony_reverse_iterator; - - - inline colony_iterator &operator = ( const colony_iterator &source ) PLF_COLONY_NOEXCEPT { + inline colony_iterator &operator=( const colony_iterator &source ) COLONY_NOEXCEPT { group_pointer = source.group_pointer; element_pointer = source.element_pointer; skipfield_pointer = source.skipfield_pointer; return *this; } - - - inline colony_iterator &operator = ( const colony_iterator < !is_const > &source ) - PLF_COLONY_NOEXCEPT { + inline colony_iterator &operator=( const colony_iterator < !is_const > &source ) COLONY_NOEXCEPT { group_pointer = source.group_pointer; element_pointer = source.element_pointer; skipfield_pointer = source.skipfield_pointer; return *this; } - - -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // Move assignment - only really necessary if the allocator uses non-standard ie. smart pointers - inline colony_iterator &operator = ( colony_iterator &&source ) - PLF_COLONY_NOEXCEPT { // Move is a copy in this scenario + inline colony_iterator &operator=( colony_iterator &&source ) + COLONY_NOEXCEPT { // Move is a copy in this scenario assert( &source != this ); group_pointer = std::move( source.group_pointer ); element_pointer = std::move( source.element_pointer ); @@ -496,9 +445,7 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: return *this; } - - - inline colony_iterator &operator = ( colony_iterator < !is_const > &&source ) PLF_COLONY_NOEXCEPT { + inline colony_iterator &operator=( colony_iterator < !is_const > &&source ) COLONY_NOEXCEPT { assert( &source != this ); group_pointer = std::move( source.group_pointer ); element_pointer = std::move( source.element_pointer ); @@ -507,53 +454,37 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: } #endif - - - inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_iterator &rh ) const - PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator==( const colony_iterator &rh ) const COLONY_NOEXCEPT { return ( element_pointer == rh.element_pointer ); } - - - inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_iterator < !is_const > &rh ) const - PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator==( const colony_iterator < !is_const > &rh ) const + COLONY_NOEXCEPT { return ( element_pointer == rh.element_pointer ); } - - - inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_iterator &rh ) const - PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator!=( const colony_iterator &rh ) const COLONY_NOEXCEPT { return ( element_pointer != rh.element_pointer ); } - - - inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_iterator < !is_const > &rh ) const - PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator!=( const colony_iterator < !is_const > &rh ) const + COLONY_NOEXCEPT { return ( element_pointer != rh.element_pointer ); } - - - inline PLF_COLONY_FORCE_INLINE reference operator * () + inline COLONY_FORCE_INLINE reference operator*() const { // may cause exception with uninitialized iterator return *( reinterpret_cast( element_pointer ) ); } - - - inline PLF_COLONY_FORCE_INLINE pointer operator -> () const PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE pointer operator->() const COLONY_NOEXCEPT { return reinterpret_cast( element_pointer ); } - - #if defined(_MSC_VER) && _MSC_VER <= 1600 // MSVC 2010 needs a bit of a helping hand when it comes to optimizing - inline PLF_COLONY_FORCE_INLINE colony_iterator &operator ++ () + inline COLONY_FORCE_INLINE colony_iterator &operator++() #else - colony_iterator &operator ++ () + colony_iterator &operator++() #endif { assert( group_pointer != NULL ); // covers uninitialised colony_iterator @@ -574,18 +505,14 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: return *this; } - - - inline colony_iterator operator ++( int ) { + inline colony_iterator operator++( int ) { const colony_iterator copy( *this ); ++*this; return copy; } - - private: - inline PLF_COLONY_FORCE_INLINE void check_for_end_of_group_and_progress() { // used by erase + inline COLONY_FORCE_INLINE void check_for_end_of_group_and_progress() { // used by erase if( element_pointer == group_pointer->last_endpoint && group_pointer->next_group != NULL ) { group_pointer = group_pointer->next_group; skipfield_pointer = group_pointer->skipfield; @@ -594,11 +521,9 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: } } - - public: - colony_iterator &operator -- () { + colony_iterator &operator--() { assert( group_pointer != NULL ); assert( !( element_pointer == group_pointer->elements && group_pointer->previous_group == @@ -623,186 +548,134 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: return *this; } - - - inline colony_iterator operator -- ( int ) { + inline colony_iterator operator--( int ) { const colony_iterator copy( *this ); --*this; return copy; } - - - inline bool operator > ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator>( const colony_iterator &rh ) const COLONY_NOEXCEPT { return ( ( group_pointer == rh.group_pointer ) & ( element_pointer > rh.element_pointer ) ) || ( group_pointer != rh.group_pointer && group_pointer->group_number > rh.group_pointer->group_number ); } - - - inline bool operator < ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator<( const colony_iterator &rh ) const COLONY_NOEXCEPT { return rh > *this; } - - - inline bool operator >= ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator>=( const colony_iterator &rh ) const COLONY_NOEXCEPT { return !( rh > *this ); } - - - inline bool operator <= ( const colony_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator<=( const colony_iterator &rh ) const COLONY_NOEXCEPT { return !( *this > rh ); } - - - inline bool operator > ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator>( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { return ( ( group_pointer == rh.group_pointer ) & ( element_pointer > rh.element_pointer ) ) || ( group_pointer != rh.group_pointer && group_pointer->group_number > rh.group_pointer->group_number ); } - - - inline bool operator < ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator<( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { return rh > *this; } - - - inline bool operator >= ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator>=( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { return !( rh > *this ); } - - - inline bool operator <= ( const colony_iterator < !is_const > &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator<=( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { return !( *this > rh ); } - - colony_iterator() PLF_COLONY_NOEXCEPT: + colony_iterator() COLONY_NOEXCEPT: group_pointer( NULL ), element_pointer( NULL ), skipfield_pointer( NULL ) {} - - private: // Used by cend(), erase() etc: colony_iterator( const group_pointer_type group_p, const aligned_pointer_type element_p, - const skipfield_pointer_type skipfield_p ) PLF_COLONY_NOEXCEPT: + const skipfield_pointer_type skipfield_p ) COLONY_NOEXCEPT: group_pointer( group_p ), element_pointer( element_p ), skipfield_pointer( skipfield_p ) {} - - public: - inline colony_iterator( const colony_iterator &source ) PLF_COLONY_NOEXCEPT: + inline colony_iterator( const colony_iterator &source ) COLONY_NOEXCEPT: group_pointer( source.group_pointer ), element_pointer( source.element_pointer ), - skipfield_pointer( source.skipfield_pointer ) - {} - + skipfield_pointer( source.skipfield_pointer ) {} - inline colony_iterator( const colony_iterator < !is_const > &source ) PLF_COLONY_NOEXCEPT: + inline colony_iterator( const colony_iterator < !is_const > &source ) COLONY_NOEXCEPT: group_pointer( source.group_pointer ), element_pointer( source.element_pointer ), - skipfield_pointer( source.skipfield_pointer ) - {} + skipfield_pointer( source.skipfield_pointer ) {} - - -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // move constructor - inline colony_iterator( colony_iterator &&source ) PLF_COLONY_NOEXCEPT: + inline colony_iterator( colony_iterator &&source ) COLONY_NOEXCEPT: group_pointer( std::move( source.group_pointer ) ), element_pointer( std::move( source.element_pointer ) ), - skipfield_pointer( std::move( source.skipfield_pointer ) ) - {} - + skipfield_pointer( std::move( source.skipfield_pointer ) ) {} - inline colony_iterator( colony_iterator < !is_const > &&source ) PLF_COLONY_NOEXCEPT: + inline colony_iterator( colony_iterator < !is_const > &&source ) COLONY_NOEXCEPT: group_pointer( std::move( source.group_pointer ) ), element_pointer( std::move( source.element_pointer ) ), - skipfield_pointer( std::move( source.skipfield_pointer ) ) - {} + skipfield_pointer( std::move( source.skipfield_pointer ) ) {} #endif - - }; // colony_iterator - - - - // Reverse iterators: - template class colony_reverse_iterator { private: iterator it; public: - typedef std::bidirectional_iterator_tag iterator_category; - typedef typename colony::value_type value_type; - typedef typename colony::difference_type difference_type; - typedef typename choose::type - pointer; - typedef typename - choose::type reference; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = typename colony::value_type; + using difference_type = typename colony::difference_type; + using pointer = typename + choose::type; + using reference = typename + choose::type; friend class colony; - - inline colony_reverse_iterator &operator = ( const colony_reverse_iterator &source ) - PLF_COLONY_NOEXCEPT { + inline colony_reverse_iterator &operator=( const colony_reverse_iterator &source ) + COLONY_NOEXCEPT { it = source.it; return *this; } - - -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // move assignment - inline colony_reverse_iterator &operator = ( colony_reverse_iterator &&source ) - PLF_COLONY_NOEXCEPT { + inline colony_reverse_iterator &operator=( colony_reverse_iterator &&source ) COLONY_NOEXCEPT { it = std::move( source.it ); return *this; } #endif - - - inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_reverse_iterator &rh ) const - PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator==( const colony_reverse_iterator &rh ) const + COLONY_NOEXCEPT { return ( it == rh.it ); } - - - inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_reverse_iterator &rh ) const - PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator!=( const colony_reverse_iterator &rh ) const + COLONY_NOEXCEPT { return ( it != rh.it ); } - - - inline PLF_COLONY_FORCE_INLINE reference operator * () const PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE reference operator*() const COLONY_NOEXCEPT { return *( reinterpret_cast( it.element_pointer ) ); } - - - inline PLF_COLONY_FORCE_INLINE pointer *operator -> () const PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE pointer *operator->() const COLONY_NOEXCEPT { return reinterpret_cast( it.element_pointer ); } - - // In this case we have to redefine the algorithm, rather than using the internal iterator's -- operator, in order for the reverse_iterator to be allowed to reach rend() ie. begin_iterator - 1 - colony_reverse_iterator &operator ++ () { + colony_reverse_iterator &operator++() { colony::group_pointer_type &group_pointer = it.group_pointer; colony::aligned_pointer_type &element_pointer = it.element_pointer; colony::skipfield_pointer_type &skipfield_pointer = it.skipfield_pointer; @@ -835,185 +708,135 @@ group( const group &source ) PLF_COLONY_NOEXCEPT: return *this; } - - - inline colony_reverse_iterator operator ++ ( int ) { + inline colony_reverse_iterator operator++( int ) { const colony_reverse_iterator copy( *this ); ++*this; return copy; } - - - inline PLF_COLONY_FORCE_INLINE colony_reverse_iterator &operator -- () { + inline COLONY_FORCE_INLINE colony_reverse_iterator &operator--() { assert( !( it.element_pointer == it.group_pointer->last_endpoint - 1 && it.group_pointer->next_group == NULL ) ); // ie. Check that we are not already at rbegin() ++it; return *this; } - - - inline colony_reverse_iterator operator -- ( int ) { + inline colony_reverse_iterator operator--( int ) { const colony_reverse_iterator copy( *this ); --*this; return copy; } - - inline typename colony::iterator base() const { return ++( typename colony::iterator( it ) ); } - - - inline bool operator > ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator>( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { return ( rh.it > it ); } - - - inline bool operator < ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator<( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { return ( it > rh.it ); } - - - inline bool operator >= ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator>=( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { return !( it > rh.it ); } - - - inline bool operator <= ( const colony_reverse_iterator &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator<=( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { return !( rh.it > it ); } - - - inline PLF_COLONY_FORCE_INLINE bool operator == ( const colony_reverse_iterator < !r_is_const > - &rh ) const PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator==( const colony_reverse_iterator < !r_is_const > &rh ) + const COLONY_NOEXCEPT { return ( it == rh.it ); } - - - inline PLF_COLONY_FORCE_INLINE bool operator != ( const colony_reverse_iterator < !r_is_const > - &rh ) const PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator!=( const colony_reverse_iterator < !r_is_const > &rh ) + const COLONY_NOEXCEPT { return ( it != rh.it ); } - - - inline bool operator > ( const colony_reverse_iterator < !r_is_const > &rh ) const - PLF_COLONY_NOEXCEPT { + inline bool operator>( const colony_reverse_iterator < !r_is_const > &rh ) const COLONY_NOEXCEPT { return ( rh.it > it ); } - - - inline bool operator < ( const colony_reverse_iterator < !r_is_const > &rh ) const - PLF_COLONY_NOEXCEPT { + inline bool operator<( const colony_reverse_iterator < !r_is_const > &rh ) const COLONY_NOEXCEPT { return ( it > rh.it ); } - - - inline bool operator >= ( const colony_reverse_iterator < !r_is_const > &rh ) const - PLF_COLONY_NOEXCEPT { + inline bool operator>=( const colony_reverse_iterator < !r_is_const > &rh ) const + COLONY_NOEXCEPT { return !( it > rh.it ); } - - - inline bool operator <= ( const colony_reverse_iterator < !r_is_const > &rh ) const - PLF_COLONY_NOEXCEPT { + inline bool operator<=( const colony_reverse_iterator < !r_is_const > &rh ) const + COLONY_NOEXCEPT { return !( rh.it > it ); } + colony_reverse_iterator() COLONY_NOEXCEPT {} + colony_reverse_iterator( const colony_reverse_iterator &source ) COLONY_NOEXCEPT: + it( source.it ) {} - colony_reverse_iterator() PLF_COLONY_NOEXCEPT - {} - - - - colony_reverse_iterator( const colony_reverse_iterator &source ) PLF_COLONY_NOEXCEPT: - it( source.it ) - {} - - - - colony_reverse_iterator( const typename colony::iterator &source ) PLF_COLONY_NOEXCEPT: - it( source ) - {} - - + colony_reverse_iterator( const typename colony::iterator &source ) COLONY_NOEXCEPT: + it( source ) {} private: // Used by rend(), etc: colony_reverse_iterator( const group_pointer_type group_p, const aligned_pointer_type element_p, - const skipfield_pointer_type skipfield_p ) PLF_COLONY_NOEXCEPT: + const skipfield_pointer_type skipfield_p ) COLONY_NOEXCEPT: it( group_p, element_p, skipfield_p ) {} - - public: -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // move constructors - colony_reverse_iterator( colony_reverse_iterator &&source ) PLF_COLONY_NOEXCEPT: - it( std::move( source.it ) ) - {} + colony_reverse_iterator( colony_reverse_iterator &&source ) COLONY_NOEXCEPT: + it( std::move( source.it ) ) {} - colony_reverse_iterator( typename colony::iterator &&source ) PLF_COLONY_NOEXCEPT: - it( std::move( source ) ) - {} + colony_reverse_iterator( typename colony::iterator &&source ) COLONY_NOEXCEPT: + it( std::move( source ) ) {} #endif }; // colony_reverse_iterator - - - private: // Used to prevent fill-insert/constructor calls being mistakenly resolved to range-insert/constructor calls template - struct plf_enable_if_c { - typedef T type; + struct enable_if_c { + using type = T; }; template - struct plf_enable_if_c { + struct enable_if_c { }; + iterator end_iterator, begin_iterator; - iterator end_iterator, begin_iterator; - group_pointer_type - groups_with_erasures_list_head; // Head of a singly-linked intrusive list of groups which have erased-element memory locations available for reuse - size_type total_number_of_elements, total_capacity; + // Head of a singly-linked intrusive list of groups which have erased-element memory locations available for reuse + group_pointer_type groups_with_erasures_list_head; + size_type total_number_of_elements, total_capacity; - struct ebco_pair2 : - pointer_allocator_type { // Packaging the element pointer allocator with a lesser-used member variable, for empty-base-class optimisation + // Packaging the element pointer allocator with a lesser-used member variable, for empty-base-class optimisation + struct ebco_pair2 : pointer_allocator_type { skipfield_type min_elements_per_group; -explicit ebco_pair2( const skipfield_type min_elements ) PLF_COLONY_NOEXCEPT: +explicit ebco_pair2( const skipfield_type min_elements ) COLONY_NOEXCEPT: min_elements_per_group( min_elements ) {} - } pointer_allocator_pair; + } pointer_allocator_pair; struct ebco_pair : group_allocator_type { skipfield_type max_elements_per_group; -explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: +explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: max_elements_per_group( max_elements ) {} - } group_allocator_pair; - + } group_allocator_pair; public: // Default constuctor: - - colony() PLF_COLONY_NOEXCEPT: + colony() COLONY_NOEXCEPT: element_allocator_type( element_allocator_type() ), groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), @@ -1022,19 +845,18 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: group ) ) * 2 ) ? 8 : ( ( ( sizeof( *this ) + sizeof( group ) ) * 2 ) / sizeof( aligned_element_type ) ) ), group_allocator_pair( std::numeric_limits::max() ) { + // skipfield type must be of unsigned integer type (uchar, ushort, uint etc) assert( std::numeric_limits::is_integer & - !std::numeric_limits::is_signed ); // skipfield type must be of unsigned integer type (uchar, ushort, uint etc) + !std::numeric_limits::is_signed ); -#ifndef PLF_COLONY_ALIGNMENT_SUPPORT +#ifndef COLONY_ALIGNMENT_SUPPORT + // eg. under C++03, aligned_storage is not available, so sizeof(skipfield type) * 2 must be larger or equal to sizeof(element_type), otherwise the doubly-linked free lists of erased element indexes will not work correctly. So if you're storing chars, for example, and using the default skipfield type (unsigned short), the compiler will flag you with this assert. You cannot store char or unsigned char in colony under C++03, and if storing short or unsigned short you must change your skipfield type to unsigned char. Or just use C++11 and above. assert( sizeof( element_type ) >= sizeof( skipfield_type ) * - 2 ); // eg. under C++03, aligned_storage is not available, so sizeof(skipfield type) * 2 must be larger or equal to sizeof(element_type), otherwise the doubly-linked free lists of erased element indexes will not work correctly. So if you're storing chars, for example, and using the default skipfield type (unsigned short), the compiler will flag you with this assert. You cannot store char or unsigned char in colony under C++03, and if storing short or unsigned short you must change your skipfield type to unsigned char. Or just use C++11 and above. + 2 ); #endif } - - // Default constuctor (allocator-extended): - explicit colony( const element_allocator_type &alloc ): element_allocator_type( alloc ), groups_with_erasures_list_head( NULL ), @@ -1047,16 +869,13 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: assert( std::numeric_limits::is_integer & !std::numeric_limits::is_signed ); -#ifndef PLF_COLONY_ALIGNMENT_SUPPORT - assert( sizeof( element_type ) >= sizeof( skipfield_type ) * - 2 ); // see default constructor explanation +#ifndef COLONY_ALIGNMENT_SUPPORT + // see default constructor explanation + assert( sizeof( element_type ) >= sizeof( skipfield_type ) * 2 ); #endif } - - // Copy constructor: - colony( const colony &source ): element_allocator_type( source ), groups_with_erasures_list_head( NULL ), @@ -1074,10 +893,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: source.pointer_allocator_pair.min_elements_per_group; // reset to correct value for future clear() or erasures } - - // Copy constructor (allocator-extended): - colony( const colony &source, const allocator_type &alloc ): element_allocator_type( alloc ), groups_with_erasures_list_head( NULL ), @@ -1094,14 +910,11 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: source.pointer_allocator_pair.min_elements_per_group; } - - - private: - inline void blank() PLF_COLONY_NOEXCEPT { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_trivial::value && std::is_trivial::value && std::is_trivial::value ) { // if all pointer types are trivial, we can just nuke it from orbit with memset (NULL is always 0 in C++): + inline void blank() COLONY_NOEXCEPT { +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_trivial::value && std::is_trivial::value && std::is_trivial::value ) { // if all pointer types are trivial, we can just nuke it from orbit with memset (NULL is always 0 in C++): std::memset( static_cast( this ), 0, offsetof( colony, pointer_allocator_pair ) ); } else #endif @@ -1118,16 +931,12 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - - public: +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT - -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT // Move constructor: - - colony( colony &&source ) PLF_COLONY_NOEXCEPT: + colony( colony &&source ) COLONY_NOEXCEPT: element_allocator_type( source ), end_iterator( std::move( source.end_iterator ) ), begin_iterator( std::move( source.begin_iterator ) ), @@ -1141,7 +950,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: // Move constructor (allocator-extended): - colony( colony &&source, const allocator_type &alloc ): element_allocator_type( alloc ), end_iterator( std::move( source.end_iterator ) ), @@ -1155,10 +963,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } #endif - - // Fill constructor: - colony( const size_type fill_number, const element_type &element, const skipfield_type min_allocation_amount = 0, const skipfield_type max_allocation_amount = std::numeric_limits::max(), @@ -1176,7 +981,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); -#ifndef PLF_COLONY_ALIGNMENT_SUPPORT +#ifndef COLONY_ALIGNMENT_SUPPORT assert( sizeof( element_type ) >= sizeof( skipfield_type ) * 2 ); // see default constructor explanation #endif @@ -1184,12 +989,9 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: insert( fill_number, element ); } - - // Range constructor: - template - colony( const typename plf_enable_if_c < !std::numeric_limits::is_integer, + colony( const typename enable_if_c < !std::numeric_limits::is_integer, iterator_type >::type &first, const iterator_type &last, const skipfield_type min_allocation_amount = 8, const skipfield_type max_allocation_amount = std::numeric_limits::max(), @@ -1205,7 +1007,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); -#ifndef PLF_COLONY_ALIGNMENT_SUPPORT +#ifndef COLONY_ALIGNMENT_SUPPORT assert( sizeof( element_type ) >= sizeof( skipfield_type ) * 2 ); // see default constructor explanation #endif @@ -1217,7 +1019,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: // Initializer-list constructor: -#ifdef PLF_COLONY_INITIALIZER_LIST_SUPPORT +#ifdef COLONY_INITIALIZER_LIST_SUPPORT colony( const std::initializer_list &element_list, const skipfield_type min_allocation_amount = 0, const skipfield_type max_allocation_amount = std::numeric_limits::max(), @@ -1235,95 +1037,70 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); -#ifndef PLF_COLONY_ALIGNMENT_SUPPORT +#ifndef COLONY_ALIGNMENT_SUPPORT assert( sizeof( element_type ) >= sizeof( skipfield_type ) * 2 ); // see default constructor explanation #endif - insert( element_list ); } - #endif - - - inline PLF_COLONY_FORCE_INLINE iterator begin() PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE iterator begin() COLONY_NOEXCEPT { return begin_iterator; } - - - inline PLF_COLONY_FORCE_INLINE const iterator &begin() const - PLF_COLONY_NOEXCEPT { // To allow for functions which only take const colony & as a source eg. copy constructor + inline COLONY_FORCE_INLINE const iterator &begin() const + COLONY_NOEXCEPT { // To allow for functions which only take const colony & as a source eg. copy constructor return begin_iterator; } - - - inline PLF_COLONY_FORCE_INLINE iterator end() PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE iterator end() COLONY_NOEXCEPT { return end_iterator; } - - - inline PLF_COLONY_FORCE_INLINE const iterator &end() const PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE const iterator &end() const COLONY_NOEXCEPT { return end_iterator; } - - - inline const_iterator cbegin() const PLF_COLONY_NOEXCEPT { + inline const_iterator cbegin() const COLONY_NOEXCEPT { return const_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer, begin_iterator.skipfield_pointer ); } - - - inline const_iterator cend() const PLF_COLONY_NOEXCEPT { + inline const_iterator cend() const COLONY_NOEXCEPT { return const_iterator( end_iterator.group_pointer, end_iterator.element_pointer, end_iterator.skipfield_pointer ); } - - inline reverse_iterator rbegin() const { // May throw exception if colony is empty so end_iterator is uninitialized return ++reverse_iterator( end_iterator ); } - - - inline reverse_iterator rend() const PLF_COLONY_NOEXCEPT { + inline reverse_iterator rend() const COLONY_NOEXCEPT { return reverse_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer - 1, begin_iterator.skipfield_pointer - 1 ); } - - inline const_reverse_iterator crbegin() const { return ++const_reverse_iterator( end_iterator ); } - - - inline const_reverse_iterator crend() const PLF_COLONY_NOEXCEPT { + inline const_reverse_iterator crend() const COLONY_NOEXCEPT { return const_reverse_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer - 1, begin_iterator.skipfield_pointer - 1 ); } - - - ~colony() PLF_COLONY_NOEXCEPT { + ~colony() COLONY_NOEXCEPT { destroy_all_data(); } - - private: - void destroy_all_data() PLF_COLONY_NOEXCEPT { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if( ( total_number_of_elements != 0 ) & !( std::is_trivially_destructible::value ) ) // Amusingly enough, these changes from && to logical & actually do make a significant difference in debug mode + void destroy_all_data() COLONY_NOEXCEPT { +#ifdef COLONY_TYPE_TRAITS_SUPPORT + // Amusingly enough, these changes from && to logical & actually do make a significant difference in debug mode + if( ( total_number_of_elements != 0 ) & !( std::is_trivially_destructible::value ) ) #else // If compiler doesn't support traits, iterate regardless - trivial destructors will not be called, hopefully compiler will optimise the 'destruct' loop out for POD types if( total_number_of_elements != 0 ) #endif @@ -1334,17 +1111,16 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: const aligned_pointer_type end_pointer = begin_iterator.group_pointer->last_endpoint; do { - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( begin_iterator.element_pointer ) ); + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( begin_iterator.element_pointer ) ); ++begin_iterator.skipfield_pointer; begin_iterator.element_pointer += *begin_iterator.skipfield_pointer + 1; begin_iterator.skipfield_pointer += *begin_iterator.skipfield_pointer; } while( begin_iterator.element_pointer != end_pointer ); // ie. beyond end of available data const group_pointer_type next_group = begin_iterator.group_pointer->next_group; - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, - 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); begin_iterator.group_pointer = next_group; // required to be before if statement in order for first_group to be NULL and avoid potential double-destruction in future @@ -1359,31 +1135,26 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: // Technically under a type-traits-supporting compiler total_number_of_elements could be non-zero at this point, but since begin_iterator.group_pointer would already be NULL in the case of double-destruction, it's unnecessary to zero total_number_of_elements while( begin_iterator.group_pointer != NULL ) { const group_pointer_type next_group = begin_iterator.group_pointer->next_group; - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, - 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); begin_iterator.group_pointer = next_group; } } } - - void initialize( const skipfield_type first_group_size ) { - begin_iterator.group_pointer = PLF_COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, - 0 ); + begin_iterator.group_pointer = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, 0 ); try { -#ifdef PLF_COLONY_VARIADICS_SUPPORT - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, - first_group_size ); +#ifdef COLONY_VARIADICS_SUPPORT + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + first_group_size ); #else - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, - group( first_group_size ) ); + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, + group( first_group_size ) ); #endif } catch( ... ) { - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, - 1 ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); begin_iterator.group_pointer = NULL; throw; } @@ -1396,11 +1167,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: total_capacity = first_group_size; } - - public: - iterator insert( const element_type &element ) { if( end_iterator.element_pointer != NULL ) { switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == @@ -1409,17 +1177,17 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: const iterator return_iterator = end_iterator; /* Make copy for return before modifying end_iterator */ -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { // For no good reason this compiles to faster code under GCC: - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), element ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; } else #endif { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer ), element ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer ), element ); end_iterator.group_pointer->last_endpoint = ++end_iterator.element_pointer; // Shift the addition to the second operation, avoiding problems if an exception is thrown during construction } @@ -1431,7 +1199,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return return_iterator; // return value before incrementation } case 1: { // ie. there are no erased elements and end_iterator is at end of current final group - ie. colony is full - create new group - end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( group_allocator_type, + end_iterator.group_pointer->next_group = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, end_iterator.group_pointer ); group &next_group = *( end_iterator.group_pointer->next_group ); const skipfield_type new_group_size = ( total_number_of_elements < static_cast @@ -1439,32 +1207,32 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; try { -#ifdef PLF_COLONY_VARIADICS_SUPPORT - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, - end_iterator.group_pointer ); +#ifdef COLONY_VARIADICS_SUPPORT + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, + end_iterator.group_pointer ); #else - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, - group( new_group_size, end_iterator.group_pointer ) ); + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, group( new_group_size, + end_iterator.group_pointer ) ); #endif } catch( ... ) { - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( next_group.elements ), element ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), element ); } else #endif { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( next_group.elements ), element ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), element ); } catch( ... ) { - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } @@ -1491,8 +1259,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: const skipfield_type prev_free_list_index = *( reinterpret_cast ( new_location.element_pointer ) ); - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( new_location.element_pointer ), element ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( new_location.element_pointer ), element ); // Update skipblock: const skipfield_type new_value = *( new_location.skipfield_pointer ) - 1; @@ -1544,16 +1312,16 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } else { // ie. newly-constructed colony, no insertions yet and no groups initialize( pointer_allocator_pair.min_elements_per_group ); -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), element ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); } else #endif { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), element ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); } catch( ... ) { clear(); throw; @@ -1566,9 +1334,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - - -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT iterator insert( element_type &&element ) { // The move-insert function is near-identical to the regular insert function, with the exception of the element construction method and is_nothrow tests. if( end_iterator.element_pointer != NULL ) { @@ -1577,16 +1343,16 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: case 0: { const iterator return_iterator = end_iterator; -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; } else #endif { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer ), std::move( element ) ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer ), std::move( element ) ); end_iterator.group_pointer->last_endpoint = ++end_iterator.element_pointer; } @@ -1597,7 +1363,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return return_iterator; } case 1: { - end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( group_allocator_type, + end_iterator.group_pointer->next_group = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, end_iterator.group_pointer ); group &next_group = *( end_iterator.group_pointer->next_group ); const skipfield_type new_group_size = ( total_number_of_elements < static_cast @@ -1605,32 +1371,32 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; try { -#ifdef PLF_COLONY_VARIADICS_SUPPORT - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, - end_iterator.group_pointer ); +#ifdef COLONY_VARIADICS_SUPPORT + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, + end_iterator.group_pointer ); #else - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, - group( new_group_size, end_iterator.group_pointer ) ); + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, group( new_group_size, + end_iterator.group_pointer ) ); #endif } catch( ... ) { - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( next_group.elements ), std::move( element ) ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::move( element ) ); } else #endif { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( next_group.elements ), std::move( element ) ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::move( element ) ); } catch( ... ) { - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } @@ -1654,8 +1420,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: const skipfield_type prev_free_list_index = *( reinterpret_cast ( new_location.element_pointer ) ); - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( new_location.element_pointer ), std::move( element ) ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( new_location.element_pointer ), std::move( element ) ); const skipfield_type new_value = *( new_location.skipfield_pointer ) - 1; @@ -1700,16 +1466,16 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } else { initialize( pointer_allocator_pair.min_elements_per_group ); -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); } else #endif { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); } catch( ... ) { clear(); throw; @@ -1723,10 +1489,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } #endif - - - -#ifdef PLF_COLONY_VARIADICS_SUPPORT +#ifdef COLONY_VARIADICS_SUPPORT template iterator emplace( arguments &&... parameters ) { // The emplace function is near-identical to the regular insert function, with the exception of the element construction method, removal of internal VARIADICS support checks, and change to is_nothrow tests. @@ -1736,18 +1499,18 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: case 0: { const iterator return_iterator = end_iterator; -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), - std::forward( parameters )... ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), + std::forward( parameters )... ); end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; } else #endif { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer ), - std::forward( parameters )... ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer ), + std::forward( parameters )... ); end_iterator.group_pointer->last_endpoint = ++end_iterator.element_pointer; } @@ -1758,7 +1521,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return return_iterator; } case 1: { - end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( group_allocator_type, + end_iterator.group_pointer->next_group = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, end_iterator.group_pointer ); group &next_group = *( end_iterator.group_pointer->next_group ); const skipfield_type new_group_size = ( total_number_of_elements < static_cast @@ -1766,27 +1529,27 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; try { - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, - end_iterator.group_pointer ); + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, + end_iterator.group_pointer ); } catch( ... ) { - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( next_group.elements ), std::forward( parameters )... ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::forward( parameters )... ); } else #endif { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( next_group.elements ), std::forward( parameters )... ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( next_group.elements ), std::forward( parameters )... ); } catch( ... ) { - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, &next_group ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } @@ -1810,9 +1573,9 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: const skipfield_type prev_free_list_index = *( reinterpret_cast ( new_location.element_pointer ) ); - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( new_location.element_pointer ), - std::forward( parameters ) ... ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( new_location.element_pointer ), + std::forward( parameters ) ... ); const skipfield_type new_value = *( new_location.skipfield_pointer ) - 1; if( new_value != 0 ) { @@ -1856,18 +1619,18 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } else { initialize( pointer_allocator_pair.min_elements_per_group ); -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), - std::forward( parameters ) ... ); +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), + std::forward( parameters ) ... ); } else #endif { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), - std::forward( parameters ) ... ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), + std::forward( parameters ) ... ); } catch( ... ) { clear(); throw; @@ -1881,28 +1644,24 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } #endif - - - private: // Internal functions for fill insert: - void group_create( const skipfield_type number_of_elements ) { - const group_pointer_type next_group = end_iterator.group_pointer->next_group = PLF_COLONY_ALLOCATE( + const group_pointer_type next_group = end_iterator.group_pointer->next_group = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, end_iterator.group_pointer ); try { -#ifdef PLF_COLONY_VARIADICS_SUPPORT - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, number_of_elements, - end_iterator.group_pointer ); +#ifdef COLONY_VARIADICS_SUPPORT + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, number_of_elements, + end_iterator.group_pointer ); #else - PLF_COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, - group( number_of_elements, end_iterator.group_pointer ) ); + COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, group( number_of_elements, + end_iterator.group_pointer ) ); #endif } catch( ... ) { - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, next_group ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, next_group, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, next_group ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } @@ -1914,15 +1673,13 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: total_capacity += number_of_elements; } - - void group_fill( const element_type &element, const skipfield_type number_of_elements ) { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_trivially_copyable::value && - std::is_trivially_copy_constructible::value && - std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: -#ifdef PLF_COLONY_ALIGNMENT_SUPPORT - if PLF_COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_trivially_copyable::value && + std::is_trivially_copy_constructible::value && + std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: +#ifdef COLONY_ALIGNMENT_SUPPORT + if COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { std::fill_n( reinterpret_cast( end_iterator.element_pointer ), number_of_elements, element ); } else { @@ -1944,8 +1701,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: do { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( end_iterator.element_pointer++ ), element ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), + reinterpret_cast( end_iterator.element_pointer++ ), element ); } catch( ... ) { end_iterator.group_pointer->last_endpoint = --end_iterator.element_pointer; const skipfield_type elements_constructed_before_exception = static_cast @@ -1962,16 +1719,14 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: end_iterator.group_pointer->number_of_elements += number_of_elements; } - - void fill_skipblock( const element_type &element, aligned_pointer_type const location, skipfield_pointer_type const skipfield_pointer, const skipfield_type number_of_elements ) { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_trivially_copyable::value && - std::is_trivially_copy_constructible::value && - std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: -#ifdef PLF_COLONY_ALIGNMENT_SUPPORT - if PLF_COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_trivially_copyable::value && + std::is_trivially_copy_constructible::value && + std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: +#ifdef COLONY_ALIGNMENT_SUPPORT + if COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { std::fill_n( reinterpret_cast( location ), number_of_elements, element ); } else { alignas( sizeof( aligned_element_type ) ) element_type aligned_copy = @@ -1992,8 +1747,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: for( aligned_pointer_type current_location = location; current_location != fill_end; ++current_location ) { try { - PLF_COLONY_CONSTRUCT( element_allocator_type, ( *this ), - reinterpret_cast( current_location ), element ); + COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( current_location ), + element ); } catch( ... ) { // Reconstruct existing skipblock and free-list indexes to reflect partially-reused skipblock: const skipfield_type elements_constructed_before_exception = static_cast( ( @@ -2029,12 +1784,9 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: total_number_of_elements += number_of_elements; } - - public: // Fill insert - void insert( size_type number_of_elements, const element_type &element ) { if( number_of_elements == 0 ) { return; @@ -2168,47 +1920,36 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: ( end_iterator.element_pointer - end_iterator.group_pointer->elements ); } - - // Range insert - template - inline void insert( typename plf_enable_if_c < !std::numeric_limits::is_integer, + inline void insert( typename enable_if_c < !std::numeric_limits::is_integer, iterator_type >::type first, const iterator_type last ) { while( first != last ) { insert( *first++ ); } } - - +#ifdef COLONY_INITIALIZER_LIST_SUPPORT // Initializer-list insert - -#ifdef PLF_COLONY_INITIALIZER_LIST_SUPPORT - inline void insert( const std::initializer_list &element_list ) - { + inline void insert( const std::initializer_list &element_list ) { // use range insert: insert( element_list.begin(), element_list.end() ); } #endif - - private: - inline PLF_COLONY_FORCE_INLINE void update_subsequent_group_numbers( group_pointer_type - current_group ) PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE void update_subsequent_group_numbers( group_pointer_type current_group ) + COLONY_NOEXCEPT { do { --( current_group->group_number ); current_group = current_group->next_group; } while( current_group != NULL ); } - - - inline PLF_COLONY_FORCE_INLINE void - consolidate() { // get all elements contiguous in memory and shrink to fit, remove erasures and erasure free lists -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT + // get all elements contiguous in memory and shrink to fit, remove erasures and erasure free lists + inline COLONY_FORCE_INLINE void consolidate() { +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT colony temp; temp.change_group_sizes( static_cast( ( pointer_allocator_pair.min_elements_per_group > total_number_of_elements ) ? @@ -2217,9 +1958,9 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: total_number_of_elements ) ), group_allocator_pair.max_elements_per_group ); // Make first allocated group as large total number of elements, where possible -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_move_assignable::value && - std::is_move_constructible::value ) { +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_move_assignable::value && + std::is_move_constructible::value ) { temp.insert( std::make_move_iterator( begin_iterator ), std::make_move_iterator( end_iterator ) ); } else #endif @@ -2236,10 +1977,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: #endif } - - void remove_from_groups_with_erasures_list( const group_pointer_type group_to_remove ) - PLF_COLONY_NOEXCEPT { + COLONY_NOEXCEPT { if( group_to_remove == groups_with_erasures_list_head ) { groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; return; @@ -2255,13 +1994,11 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: previous_group->erasures_list_next_group = current_group->erasures_list_next_group; } - - public: // must return iterator to subsequent non-erased element (or end()), in case the group containing the element which the iterator points to becomes empty after the erasure, and is thereafter removed from the colony chain, making the current iterator invalid and unusable in a ++ operation: - iterator erase( const const_iterator - &it ) { // if uninitialized/invalid iterator supplied, function could generate an exception + // if uninitialized/invalid iterator supplied, function could generate an exception + iterator erase( const const_iterator &it ) { assert( !empty() ); const group_pointer_type group_pointer = it.group_pointer; assert( group_pointer != NULL ); // ie. not uninitialized iterator @@ -2269,19 +2006,19 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: assert( *( it.skipfield_pointer ) == 0 ); // ie. element pointed to by iterator has not been erased previously -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( ! - ( std::is_trivially_destructible::value ) ) // This if-statement should be removed by the compiler on resolution of element_type. For some optimizing compilers this step won't be necessary (for MSVC 2013 it makes a difference) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( ! + ( std::is_trivially_destructible::value ) ) // This if-statement should be removed by the compiler on resolution of element_type. For some optimizing compilers this step won't be necessary (for MSVC 2013 it makes a difference) #endif { - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( it.element_pointer ) ); // Destruct element + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( it.element_pointer ) ); // Destruct element } --total_number_of_elements; - if( group_pointer->number_of_elements-- != - 1 ) { // ie. non-empty group at this point in time, don't consolidate - optimization note: GCC optimizes postfix + 1 comparison better than prefix + 1 comparison in many cases. + // ie. non-empty group at this point in time, don't consolidate - optimization note: GCC optimizes postfix + 1 comparison better than prefix + 1 comparison in many cases. + if( group_pointer->number_of_elements-- != 1 ) { // Code logic for following section: // --------------------------------- // If current skipfield node has no skipped node on either side, continue as usual @@ -2428,8 +2165,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } total_capacity -= group_pointer->capacity; - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); // note: end iterator only needs to be changed if the deleted group was the final group in the chain ie. not in this case begin_iterator.element_pointer = begin_iterator.group_pointer->elements + * @@ -2451,8 +2188,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } total_capacity -= group_pointer->capacity; - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); // Return next group's first non-erased element: return iterator( return_group, return_group->elements + * ( return_group->skipfield ), @@ -2472,18 +2209,15 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: end_iterator.group_pointer->capacity; total_capacity -= group_pointer->capacity; - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, group_pointer ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); return end_iterator; } } } - - // Range erase: - void erase( const const_iterator &iterator1, const const_iterator &iterator2 ) { // if uninitialized/invalid iterators supplied, function could generate an exception. If iterator1 > iterator2, behaviour is undefined. @@ -2501,7 +2235,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: // Schema: first erase all non-erased elements until end of group & remove all skipblocks post-iterator1 from the free_list. Then, either update preceding skipblock or create new one: -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location +#ifdef COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location if( ( std::is_trivially_destructible::value ) & ( current.group_pointer->free_list_head == std::numeric_limits::max() ) ) { number_of_group_erasures += static_cast( end - current.element_pointer ); @@ -2510,12 +2244,12 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: { while( current.element_pointer != end ) { if( *current.skipfield_pointer == 0 ) { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) #endif { - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( current.element_pointer ) ); // Destruct element + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); // Destruct element } ++number_of_group_erasures; @@ -2538,14 +2272,14 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: iterator1.group_pointer->free_list_head = std::numeric_limits::max(); number_of_group_erasures += static_cast( end - current.element_pointer ); -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) #endif { while( current.element_pointer != end ) { // miniloop - avoid checking skipfield for rest of elements in group, as there are no more skipped elements now - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( current.element_pointer++ ) ); // Destruct element + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer++ ) ); // Destruct element } } @@ -2570,7 +2304,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - const skipfield_type previous_node_value = *( iterator1.skipfield_pointer - 1 ); const skipfield_type distance_to_end = static_cast( end - iterator1.element_pointer ); @@ -2611,13 +2344,12 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: current.group_pointer = current.group_pointer->next_group; } - // Intermediate groups: const group_pointer_type previous_group = current.group_pointer->previous_group; while( current.group_pointer != iterator2.group_pointer ) { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) #endif { current.element_pointer = current.group_pointer->elements + *( current.group_pointer->skipfield ); @@ -2626,8 +2358,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: const aligned_pointer_type end = current.group_pointer->last_endpoint; do { - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( current.element_pointer ) ); // Destruct element + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); // Destruct element ++current.skipfield_pointer; current.element_pointer += *current.skipfield_pointer + 1; current.skipfield_pointer += *current.skipfield_pointer; @@ -2643,8 +2375,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: current.group_pointer = current.group_pointer->next_group; total_capacity -= current_group->capacity; - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, current_group ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, current_group, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, current_group ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, current_group, 1 ); } current.element_pointer = current.group_pointer->elements + *( current.group_pointer->skipfield ); @@ -2655,13 +2387,13 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: if( previous_group != NULL ) { previous_group->next_group = current.group_pointer; } else { - begin_iterator = - iterator2; // This line is included here primarily to avoid a secondary if statement within the if block below - it will not be needed in any other situation + // This line is included here primarily to avoid a secondary if statement within the if block below - it will not be needed in any other situation + begin_iterator = iterator2; } } - if( current.element_pointer == - iterator2.element_pointer ) { // in case iterator2 was at beginning of it's group - also covers empty range case (first == last) + // in case iterator2 was at beginning of it's group - also covers empty range case (first == last) + if( current.element_pointer == iterator2.element_pointer ) { return; } @@ -2669,7 +2401,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: // Code explanation: // If not erasing entire final group, 1. Destruct elements (if non-trivial destructor) and add locations to group free list. 2. process skipfield. // If erasing entire group, 1. Destruct elements (if non-trivial destructor), 2. if no elements left in colony, clear() 3. otherwise reset end_iterator and remove group from groups-with-erasures list (if free list of erasures present) - if( iterator2.element_pointer != end_iterator.element_pointer || current.element_pointer != current.group_pointer->elements + * ( current.group_pointer->skipfield ) ) { // ie. not erasing entire group @@ -2678,7 +2409,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: const iterator current_saved = current; -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location +#ifdef COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location if( ( std::is_trivially_destructible::value ) & ( current.group_pointer->free_list_head == std::numeric_limits::max() ) ) { number_of_group_erasures += static_cast( iterator2.element_pointer - @@ -2688,12 +2419,12 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: { while( current.element_pointer != iterator2.element_pointer ) { if( *current.skipfield_pointer == 0 ) { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) #endif { - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( current.element_pointer ) ); // Destruct element + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); // Destruct element } ++number_of_group_erasures; @@ -2717,13 +2448,13 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: number_of_group_erasures += static_cast( iterator2.element_pointer - current.element_pointer ); -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) #endif { while( current.element_pointer != iterator2.element_pointer ) { - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( current.element_pointer++ ) ); // Destruct element + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer++ ) ); // Destruct element } } @@ -2747,7 +2478,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - const skipfield_type distance_to_iterator2 = static_cast ( iterator2.element_pointer - current_saved.element_pointer ); const skipfield_type index = static_cast( current_saved.element_pointer - @@ -2781,7 +2511,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: *( iterator2.skipfield_pointer - 1 ) = prev_node_value + distance_to_iterator2; } - if( iterator1.element_pointer == begin_iterator.element_pointer ) { begin_iterator = iterator2; } @@ -2790,20 +2519,19 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: ( number_of_group_erasures ); total_number_of_elements -= number_of_group_erasures; } else { // ie. full group erasure -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) #endif { while( current.element_pointer != iterator2.element_pointer ) { - PLF_COLONY_DESTROY( element_allocator_type, ( *this ), - reinterpret_cast( current.element_pointer ) ); + COLONY_DESTROY( element_allocator_type, ( *this ), + reinterpret_cast( current.element_pointer ) ); ++current.skipfield_pointer; current.element_pointer += 1 + *current.skipfield_pointer; current.skipfield_pointer += *current.skipfield_pointer; } } - if( ( total_number_of_elements -= current.group_pointer->number_of_elements ) != 0 ) { // ie. previous_group != NULL current.group_pointer->previous_group->next_group = current.group_pointer->next_group; @@ -2820,26 +2548,20 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: blank(); } - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, current.group_pointer ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, current.group_pointer, 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, current.group_pointer ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, current.group_pointer, 1 ); } } - - - inline PLF_COLONY_FORCE_INLINE bool empty() const PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool empty() const COLONY_NOEXCEPT { return total_number_of_elements == 0; } - - - inline size_type size() const PLF_COLONY_NOEXCEPT { + inline size_type size() const COLONY_NOEXCEPT { return total_number_of_elements; } - - -#ifdef PLF_COLONY_TEST_DEBUG // used for debugging during internal testing only: +#ifdef COLONY_TEST_DEBUG // used for debugging during internal testing only: inline size_type group_size_sum() const { group_pointer_type current = begin_iterator.group_pointer; size_type temp = 0; @@ -2853,24 +2575,19 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } #endif - - inline size_type max_size() const PLF_COLONY_NOEXCEPT { -#ifdef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT + inline size_type max_size() const COLONY_NOEXCEPT { +#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT return std::allocator_traits::max_size( *this ); #else return element_allocator_type::max_size(); #endif } - - - inline size_type capacity() const PLF_COLONY_NOEXCEPT { + inline size_type capacity() const COLONY_NOEXCEPT { return total_capacity; } - - - inline size_type approximate_memory_use() const PLF_COLONY_NOEXCEPT { + inline size_type approximate_memory_use() const COLONY_NOEXCEPT { return sizeof( *this ) + // sizeof colony basic structure ( total_capacity * ( sizeof( aligned_element_type ) + sizeof( skipfield_type ) ) ) @@ -2880,8 +2597,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: skipfield_type ) ) ) ); // if colony not empty, add the memory usage of the group structures themselves, adding the extra skipfield node } - - void change_group_sizes( const skipfield_type min_allocation_amount, const skipfield_type max_allocation_amount ) { assert( ( min_allocation_amount > 2 ) & ( min_allocation_amount <= max_allocation_amount ) ); @@ -2896,49 +2611,37 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - - inline void change_minimum_group_size( const skipfield_type min_allocation_amount ) { change_group_sizes( min_allocation_amount, group_allocator_pair.max_elements_per_group ); } - - inline void change_maximum_group_size( const skipfield_type max_allocation_amount ) { change_group_sizes( pointer_allocator_pair.min_elements_per_group, max_allocation_amount ); } - - inline void get_group_sizes( skipfield_type &minimum_group_size, - skipfield_type &maximum_group_size ) const PLF_COLONY_NOEXCEPT { + skipfield_type &maximum_group_size ) const COLONY_NOEXCEPT { minimum_group_size = pointer_allocator_pair.min_elements_per_group; maximum_group_size = group_allocator_pair.max_elements_per_group; } - - inline void reinitialize( const skipfield_type min_allocation_amount, - const skipfield_type max_allocation_amount ) PLF_COLONY_NOEXCEPT { + const skipfield_type max_allocation_amount ) COLONY_NOEXCEPT { assert( ( min_allocation_amount > 2 ) & ( min_allocation_amount <= max_allocation_amount ) ); clear(); pointer_allocator_pair.min_elements_per_group = min_allocation_amount; group_allocator_pair.max_elements_per_group = max_allocation_amount; } - - - inline PLF_COLONY_FORCE_INLINE void clear() PLF_COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE void clear() COLONY_NOEXCEPT { destroy_all_data(); blank(); } - - - inline colony &operator = ( const colony &source ) { + inline colony &operator=( const colony &source ) { assert( &source != this ); -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT destroy_all_data(); colony temp( source ); *this = std::move( temp ); // Avoid generating 2nd temporary @@ -2947,21 +2650,18 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: colony temp( source ); swap( temp ); #endif - return *this; } - - -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // Move assignment - colony &operator = ( colony &&source ) PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT( allocator_type ) { + colony &operator=( colony &&source ) COLONY_NOEXCEPT_MOVE_ASSIGNMENT( allocator_type ) { assert( &source != this ); destroy_all_data(); -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_trivial::value && - std::is_trivial::value && std::is_trivial::value ) { +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_trivial::value && + std::is_trivial::value && std::is_trivial::value ) { std::memcpy( static_cast( this ), &source, sizeof( colony ) ); } else #endif @@ -2981,9 +2681,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } #endif - - - bool operator == ( const colony &rh ) const PLF_COLONY_NOEXCEPT { + bool operator==( const colony &rh ) const COLONY_NOEXCEPT { assert( this != &rh ); if( total_number_of_elements != rh.total_number_of_elements ) { @@ -3000,14 +2698,10 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return true; } - - - inline bool operator != ( const colony &rh ) const PLF_COLONY_NOEXCEPT { + inline bool operator!=( const colony &rh ) const COLONY_NOEXCEPT { return !( *this == rh ); } - - void shrink_to_fit() { if( total_number_of_elements == total_capacity ) { return; @@ -3019,8 +2713,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: consolidate(); } - - void reserve( const size_type original_reserve_amount ) { assert( original_reserve_amount > 2 ); @@ -3039,9 +2731,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: if( total_number_of_elements == 0 ) { // Most common scenario - empty colony if( begin_iterator.group_pointer != NULL ) { // Edge case - empty colony but first group is initialized ie. had some insertions but all elements got subsequently erased - PLF_COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); - PLF_COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, - 1 ); + COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); + COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); } // else: Empty colony, no insertions yet, time to allocate initialize( reserve_amount ); @@ -3059,8 +2750,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - - // Advance implementation for iterator and const_iterator: template void advance( colony_iterator &it, @@ -3089,8 +2778,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: // Note: incrementing element_pointer is avoided until necessary to avoid needless calculations - assert( !( element_pointer == group_pointer->last_endpoint && - group_pointer->next_group == NULL ) ); // Check that we're not already at end() + // Check that we're not already at end() + assert( !( element_pointer == group_pointer->last_endpoint && group_pointer->next_group == NULL ) ); // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) if( element_pointer != group_pointer->elements + * @@ -3144,7 +2833,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the current group: while( static_cast( group_pointer->number_of_elements ) <= distance ) { if( group_pointer->next_group == @@ -3163,7 +2851,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - // Final group (if not already reached): if( group_pointer->free_list_head == std::numeric_limits::max() ) { // No erasures in this group, use straight pointer addition @@ -3233,7 +2920,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: group_pointer = group_pointer->previous_group; } - // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be either the first non-erased element in the next group over, or end(): while( static_cast( group_pointer->number_of_elements ) < distance ) { if( group_pointer->previous_group == NULL ) { // we've gone beyond begin(), so bound to it @@ -3246,7 +2932,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: group_pointer = group_pointer->previous_group; } - // Final group (if not already reached): if( static_cast( group_pointer->number_of_elements ) == distance ) { element_pointer = group_pointer->elements + *( group_pointer->skipfield ); @@ -3269,13 +2954,9 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return; } } - // Only distance == 0 reaches here } - - - // Advance for reverse_iterator and const_reverse_iterator - this needs to be implemented slightly differently to forward-iterator's advance, as it needs to be able to reach rend() (ie. begin() - 1) and to be bounded by rbegin(): template void advance( colony_reverse_iterator &reverse_it, @@ -3330,7 +3011,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: group_pointer = group_pointer->previous_group; - // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the next group: while( static_cast( group_pointer->number_of_elements ) < distance ) { if( group_pointer->previous_group == NULL ) { // bound to rend() @@ -3343,7 +3023,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: group_pointer = group_pointer->previous_group; } - // Final group (if not already reached) if( static_cast( group_pointer->number_of_elements ) == distance ) { element_pointer = group_pointer->elements + *( group_pointer->skipfield ); @@ -3422,7 +3101,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the current group, as a result of the previous code blocks: while( static_cast( group_pointer->number_of_elements ) <= distance ) { if( group_pointer->next_group == NULL ) { // bound to rbegin() @@ -3442,7 +3120,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - // Final group (if not already reached): if( group_pointer->free_list_head == std::numeric_limits::max() ) { // No erasures in this group, use straight pointer addition @@ -3465,9 +3142,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - - - // Next implementations: template inline colony_iterator next( const colony_iterator &it, @@ -3477,8 +3151,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return return_iterator; } - - template inline colony_reverse_iterator next( const colony_reverse_iterator &it, const typename colony_reverse_iterator::difference_type distance = 1 ) const { @@ -3487,8 +3159,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return return_iterator; } - - // Prev implementations: template inline colony_iterator prev( const colony_iterator &it, @@ -3498,8 +3168,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return return_iterator; } - - template inline colony_reverse_iterator prev( const colony_reverse_iterator &it, const typename colony_reverse_iterator::difference_type distance = 1 ) const { @@ -3508,10 +3176,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return return_iterator; } - - // distance implementation: - template typename colony_iterator::difference_type distance( const colony_iterator &first, const colony_iterator &last ) const { @@ -3530,8 +3195,8 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return 0; } - typedef colony_iterator iterator_type; - typedef typename iterator_type::difference_type diff_type; + using iterator_type = colony_iterator; + using diff_type = typename iterator_type::difference_type; diff_type distance = 0; iterator_type iterator1 = first, iterator2 = last; @@ -3573,7 +3238,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: iterator1.skipfield_pointer = iterator1.group_pointer->skipfield; } - if( iterator1.group_pointer->free_list_head == std::numeric_limits::max() ) { // ie. no erasures in this group, direct subtraction is possible distance += static_cast( iterator2.skipfield_pointer - iterator1.skipfield_pointer ); @@ -3588,7 +3252,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - if( swap ) { distance = -distance; } @@ -3596,8 +3259,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return distance; } - - template inline typename colony_reverse_iterator::difference_type distance( const colony_reverse_iterator &first, @@ -3605,9 +3266,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return distance( last.it, first.it ); } - - - // Type-changing functions: iterator get_iterator_from_pointer( const pointer element_pointer ) @@ -3635,8 +3293,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return end_iterator; } - - template size_type get_index_from_iterator( const colony_iterator &it ) const { // may throw exception if iterator is invalid/uninitialized @@ -3669,16 +3325,12 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return index; } - - template inline size_type get_index_from_reverse_iterator( const colony_reverse_iterator &rev_iterator ) const { return get_index_from_iterator( rev_iterator.it ); } - - template iterator get_iterator_from_index( const index_type index ) const { // Cannot be noexcept as colony could be empty @@ -3690,24 +3342,18 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: return it; } - - - inline allocator_type get_allocator() const PLF_COLONY_NOEXCEPT { + inline allocator_type get_allocator() const COLONY_NOEXCEPT { return element_allocator_type(); } - - - private: struct less { - bool operator()( const element_type &a, const element_type &b ) const PLF_COLONY_NOEXCEPT { + bool operator()( const element_type &a, const element_type &b ) const COLONY_NOEXCEPT { return a < b; } }; - // Function-object, used to redirect the sort function to compare element pointers by the elements they point to, and sort the element pointers instead of the elements: template struct sort_dereferencer { @@ -3717,7 +3363,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: stored_instance( function_instance ) {} - sort_dereferencer() PLF_COLONY_NOEXCEPT + sort_dereferencer() COLONY_NOEXCEPT {} bool operator()( const pointer first, const pointer second ) { @@ -3725,50 +3371,41 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } }; - public: - template void sort( comparison_function compare ) { if( total_number_of_elements < 2 ) { return; } - pointer *const element_pointers = PLF_COLONY_ALLOCATE( pointer_allocator_type, - pointer_allocator_pair, total_number_of_elements, NULL ); + pointer *const element_pointers = COLONY_ALLOCATE( pointer_allocator_type, pointer_allocator_pair, + total_number_of_elements, NULL ); pointer *element_pointer = element_pointers; // Construct pointers to all elements in the colony in sequence: for( iterator current_element = begin_iterator; current_element != end_iterator; ++current_element ) { - PLF_COLONY_CONSTRUCT( pointer_allocator_type, pointer_allocator_pair, element_pointer++, - &*current_element ); + COLONY_CONSTRUCT( pointer_allocator_type, pointer_allocator_pair, element_pointer++, + &*current_element ); } // Now, sort the pointers by the values they point to: -#ifdef GFX_TIMSORT_HPP - gfx::timsort( element_pointers, element_pointers + total_number_of_elements, - sort_dereferencer( compare ) ); -#else std::sort( element_pointers, element_pointers + total_number_of_elements, sort_dereferencer( compare ) ); -#endif - // Create a new colony and copy the elements from the old one to the new one in the order of the sorted pointers: colony new_location; new_location.change_group_sizes( pointer_allocator_pair.min_elements_per_group, group_allocator_pair.max_elements_per_group ); - try { new_location.reserve( static_cast( ( total_number_of_elements > std::numeric_limits::max() ) ? std::numeric_limits::max() : total_number_of_elements ) ); -#if defined(PLF_COLONY_TYPE_TRAITS_SUPPORT) && defined(PLF_COLONY_MOVE_SEMANTICS_SUPPORT) - if PLF_COLONY_CONSTEXPR( std::is_move_constructible::value ) { +#if defined(COLONY_TYPE_TRAITS_SUPPORT) && defined(COLONY_MOVE_SEMANTICS_SUPPORT) + if COLONY_CONSTEXPR( std::is_move_constructible::value ) { for( pointer *current_element_pointer = element_pointers; current_element_pointer != element_pointer; ++current_element_pointer ) { new_location.insert( std::move( *reinterpret_cast( *current_element_pointer ) ) ); @@ -3782,54 +3419,47 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } } catch( ... ) { -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) #endif { for( pointer *current_element_pointer = element_pointers; current_element_pointer != element_pointer; ++current_element_pointer ) { - PLF_COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); + COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); } } - PLF_COLONY_DEALLOCATE( pointer_allocator_type, pointer_allocator_pair, element_pointers, - total_number_of_elements ); + COLONY_DEALLOCATE( pointer_allocator_type, pointer_allocator_pair, element_pointers, + total_number_of_elements ); throw; } - // Make the old colony the new one, destroy the old one's data/sequence: -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT *this = std::move( new_location ); // avoid generating temporary #else swap( new_location ); #endif - -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) #endif { for( pointer *current_element_pointer = element_pointers; current_element_pointer != element_pointer; ++current_element_pointer ) { - PLF_COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); + COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); } } - PLF_COLONY_DEALLOCATE( pointer_allocator_type, pointer_allocator_pair, element_pointers, - total_number_of_elements ); + COLONY_DEALLOCATE( pointer_allocator_type, pointer_allocator_pair, element_pointers, + total_number_of_elements ); } - - - inline void sort() { sort( less() ); } - - - void splice( colony &source ) PLF_COLONY_NOEXCEPT_SWAP( allocator_type ) { + void splice( colony &source ) COLONY_NOEXCEPT_SWAP( allocator_type ) { // Process: if there are unused memory spaces at the end of the current back group of the chain, convert them // to skipped elements and add the locations to the group's free list. // Then link the destination's groups to the source's groups and nullify the source. @@ -3840,7 +3470,7 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: if( source.total_number_of_elements == 0 ) { return; } else if( total_number_of_elements == 0 ) { -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT *this = std::move( source ); #else clear(); @@ -3857,7 +3487,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: swap( source ); } - // Correct group sizes if necessary: if( source.pointer_allocator_pair.min_elements_per_group < pointer_allocator_pair.min_elements_per_group ) { @@ -3885,7 +3514,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - const skipfield_type distance_to_end = static_cast ( reinterpret_cast( end_iterator.group_pointer->skipfield ) - end_iterator.element_pointer ); @@ -3928,7 +3556,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: } } - // Update subsequent group numbers: group_pointer_type current_group = source.begin_iterator.group_pointer; size_type current_group_number = end_iterator.group_pointer->group_number; @@ -3938,7 +3565,6 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: current_group = current_group->next_group; } while( current_group != NULL ); - // Join the destination and source group chains: end_iterator.group_pointer->next_group = source.begin_iterator.group_pointer; source.begin_iterator.group_pointer->previous_group = end_iterator.group_pointer; @@ -3947,27 +3573,25 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: source.blank(); } - - - void swap( colony &source ) PLF_COLONY_NOEXCEPT_SWAP( allocator_type ) { + void swap( colony &source ) COLONY_NOEXCEPT_SWAP( allocator_type ) { assert( &source != this ); -#ifdef PLF_COLONY_TYPE_TRAITS_SUPPORT - if PLF_COLONY_CONSTEXPR( std::is_trivial::value && - std::is_trivial::value && - std::is_trivial::value ) { // if all pointer types are trivial we can just copy using memcpy - avoids constructors/destructors etc and is faster +#ifdef COLONY_TYPE_TRAITS_SUPPORT + if COLONY_CONSTEXPR( std::is_trivial::value && + std::is_trivial::value && + std::is_trivial::value ) { // if all pointer types are trivial we can just copy using memcpy - avoids constructors/destructors etc and is faster char temp[sizeof( colony )]; std::memcpy( &temp, static_cast( this ), sizeof( colony ) ); std::memcpy( static_cast( this ), static_cast( &source ), sizeof( colony ) ); std::memcpy( static_cast( &source ), &temp, sizeof( colony ) ); } -#ifdef PLF_COLONY_MOVE_SEMANTICS_SUPPORT // If pointer types are not trivial, moving them is probably going to be more efficient than copying them below - else if PLF_COLONY_CONSTEXPR( std::is_move_assignable::value && - std::is_move_assignable::value && - std::is_move_assignable::value && - std::is_move_constructible::value && - std::is_move_constructible::value && - std::is_move_constructible::value ) { +#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // If pointer types are not trivial, moving them is probably going to be more efficient than copying them below + else if COLONY_CONSTEXPR( std::is_move_assignable::value && + std::is_move_assignable::value && + std::is_move_assignable::value && + std::is_move_constructible::value && + std::is_move_constructible::value && + std::is_move_constructible::value ) { colony temp( std::move( source ) ); source = std::move( *this ); *this = std::move( temp ); @@ -4007,42 +3631,31 @@ explicit ebco_pair( const skipfield_type max_elements ) PLF_COLONY_NOEXCEPT: }; // colony - - - template inline void swap( colony &a, - colony &b ) PLF_COLONY_NOEXCEPT_SWAP( + colony &b ) COLONY_NOEXCEPT_SWAP( element_allocator_type ) { a.swap( b ); } - - -} // plf namespace - - - - -#undef PLF_COLONY_FORCE_INLINE - -#undef PLF_COLONY_ALIGNMENT_SUPPORT -#undef PLF_COLONY_INITIALIZER_LIST_SUPPORT -#undef PLF_COLONY_TYPE_TRAITS_SUPPORT -#undef PLF_COLONY_ALLOCATOR_TRAITS_SUPPORT -#undef PLF_COLONY_VARIADICS_SUPPORT -#undef PLF_COLONY_MOVE_SEMANTICS_SUPPORT -#undef PLF_COLONY_NOEXCEPT -#undef PLF_COLONY_NOEXCEPT_SWAP -#undef PLF_COLONY_NOEXCEPT_MOVE_ASSIGNMENT -#undef PLF_COLONY_CONSTEXPR - -#undef PLF_COLONY_CONSTRUCT -#undef PLF_COLONY_DESTROY -#undef PLF_COLONY_ALLOCATE -#undef PLF_COLONY_ALLOCATE_INITIALIZATION -#undef PLF_COLONY_DEALLOCATE - - -#endif // PLF_COLONY_H +#undef COLONY_FORCE_INLINE + +#undef COLONY_ALIGNMENT_SUPPORT +#undef COLONY_INITIALIZER_LIST_SUPPORT +#undef COLONY_TYPE_TRAITS_SUPPORT +#undef COLONY_ALLOCATOR_TRAITS_SUPPORT +#undef COLONY_VARIADICS_SUPPORT +#undef COLONY_MOVE_SEMANTICS_SUPPORT +#undef COLONY_NOEXCEPT +#undef COLONY_NOEXCEPT_SWAP +#undef COLONY_NOEXCEPT_MOVE_ASSIGNMENT +#undef COLONY_CONSTEXPR + +#undef COLONY_CONSTRUCT +#undef COLONY_DESTROY +#undef COLONY_ALLOCATE +#undef COLONY_ALLOCATE_INITIALIZATION +#undef COLONY_DEALLOCATE + +#endif // COLONY_H From a03ed09594565ca9689dbdc97af463013614c546 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Tue, 11 Jun 2019 19:15:48 +0200 Subject: [PATCH 30/76] Remove/simplfy pre-processor defines --- src/colony.h | 496 +++++++-------------------------------------------- 1 file changed, 67 insertions(+), 429 deletions(-) diff --git a/src/colony.h b/src/colony.h index 19fb7b58c1398..accb17a3b5472 100644 --- a/src/colony.h +++ b/src/colony.h @@ -27,44 +27,11 @@ // Compiler-specific defines used by colony: #if defined(_MSC_VER) -#define COLONY_FORCE_INLINE __forceinline -#if _MSC_VER < 1600 -#define COLONY_NOEXCEPT throw() -#define COLONY_NOEXCEPT_SWAP(the_allocator) -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() -#elif _MSC_VER == 1600 -#define COLONY_MOVE_SEMANTICS_SUPPORT -#define COLONY_NOEXCEPT throw() -#define COLONY_NOEXCEPT_SWAP(the_allocator) -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() -#elif _MSC_VER == 1700 -#define COLONY_TYPE_TRAITS_SUPPORT -#define COLONY_ALLOCATOR_TRAITS_SUPPORT -#define COLONY_MOVE_SEMANTICS_SUPPORT -#define COLONY_NOEXCEPT throw() -#define COLONY_NOEXCEPT_SWAP(the_allocator) -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() -#elif _MSC_VER == 1800 -#define COLONY_TYPE_TRAITS_SUPPORT -#define COLONY_ALLOCATOR_TRAITS_SUPPORT -#define COLONY_VARIADICS_SUPPORT // Variadics, in this context, means both variadic templates and variadic macros are supported -#define COLONY_MOVE_SEMANTICS_SUPPORT -#define COLONY_NOEXCEPT throw() -#define COLONY_NOEXCEPT_SWAP(the_allocator) -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) throw() -#define COLONY_INITIALIZER_LIST_SUPPORT -#elif _MSC_VER >= 1900 -#define COLONY_ALIGNMENT_SUPPORT -#define COLONY_TYPE_TRAITS_SUPPORT -#define COLONY_ALLOCATOR_TRAITS_SUPPORT -#define COLONY_VARIADICS_SUPPORT -#define COLONY_MOVE_SEMANTICS_SUPPORT +#define COLONY_FORCE_INLINE __forceinline #define COLONY_NOEXCEPT noexcept #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define COLONY_INITIALIZER_LIST_SUPPORT -#endif #if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L) #define COLONY_CONSTEXPR constexpr @@ -72,21 +39,13 @@ #define COLONY_CONSTEXPR #endif -#elif defined(__cplusplus) && __cplusplus >= 201103L // C++11 support, at least +#else + #define COLONY_FORCE_INLINE // note: GCC creates faster code without forcing inline #if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__clang__) // If compiler is GCC/G++ -#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 // 4.2 and below do not support variadic templates -#define COLONY_VARIADICS_SUPPORT -#endif -#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __GNUC__ > 4 // 4.3 and below do not support initializer lists -#define COLONY_INITIALIZER_LIST_SUPPORT -#endif -#if (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || __GNUC__ < 4 -#define COLONY_NOEXCEPT throw() -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) -#define COLONY_NOEXCEPT_SWAP(the_allocator) -#elif __GNUC__ < 6 + +#if __GNUC__ < 6 #define COLONY_NOEXCEPT noexcept #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept @@ -95,61 +54,20 @@ #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) #endif -#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) || __GNUC__ > 4 -#define COLONY_ALLOCATOR_TRAITS_SUPPORT -#endif -#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) || __GNUC__ > 4 -#define COLONY_ALIGNMENT_SUPPORT -#endif -#if __GNUC__ >= 5 // GCC v4.9 and below do not support std::is_trivially_copyable -#define COLONY_TYPE_TRAITS_SUPPORT -#endif + #elif defined(__GLIBCXX__) // Using another compiler type with libstdc++ - we are assuming full c++11 compliance for compiler - which may not be true -#if __GLIBCXX__ >= 20080606 // libstdc++ 4.2 and below do not support variadic templates -#define COLONY_VARIADICS_SUPPORT -#endif -#if __GLIBCXX__ >= 20090421 // libstdc++ 4.3 and below do not support initializer lists -#define COLONY_INITIALIZER_LIST_SUPPORT -#endif + #if __GLIBCXX__ >= 20160111 -#define COLONY_ALLOCATOR_TRAITS_SUPPORT #define COLONY_NOEXCEPT noexcept #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) -#elif __GLIBCXX__ >= 20120322 -#define COLONY_ALLOCATOR_TRAITS_SUPPORT +#else #define COLONY_NOEXCEPT noexcept #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept -#else -#define COLONY_NOEXCEPT throw() -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) -#define COLONY_NOEXCEPT_SWAP(the_allocator) -#endif -#if __GLIBCXX__ >= 20130322 -#define COLONY_ALIGNMENT_SUPPORT -#endif -#if __GLIBCXX__ >= 20150422 // libstdc++ v4.9 and below do not support std::is_trivially_copyable -#define COLONY_TYPE_TRAITS_SUPPORT #endif -#elif defined(_LIBCPP_VERSION) -#define COLONY_ALLOCATOR_TRAITS_SUPPORT -#define COLONY_VARIADICS_SUPPORT -#define COLONY_INITIALIZER_LIST_SUPPORT -#define COLONY_ALIGNMENT_SUPPORT -#define COLONY_NOEXCEPT noexcept -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept -#if !(defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)) -#define COLONY_TYPE_TRAITS_SUPPORT -#endif -#else // Assume type traits and initializer support for other compilers and standard libraries -#define COLONY_ALLOCATOR_TRAITS_SUPPORT -#define COLONY_ALIGNMENT_SUPPORT -#define COLONY_VARIADICS_SUPPORT -#define COLONY_INITIALIZER_LIST_SUPPORT -#define COLONY_TYPE_TRAITS_SUPPORT +#else #define COLONY_NOEXCEPT noexcept #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept @@ -169,58 +87,25 @@ #define COLONY_CONSTEXPR #endif -#define COLONY_MOVE_SEMANTICS_SUPPORT -#else -#define COLONY_FORCE_INLINE -#define COLONY_NOEXCEPT throw() -#define COLONY_NOEXCEPT_SWAP(the_allocator) -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) -#define COLONY_CONSTEXPR -#endif - -#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT -#ifdef COLONY_VARIADICS_SUPPORT -#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) std::allocator_traits::construct(allocator_instance, location, __VA_ARGS__) -#else -#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) std::allocator_traits::construct(allocator_instance, location, data) #endif +// TODO: get rid of these defines +#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) std::allocator_traits::construct(allocator_instance, location, __VA_ARGS__) #define COLONY_DESTROY(the_allocator, allocator_instance, location) std::allocator_traits::destroy(allocator_instance, location) #define COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) std::allocator_traits::allocate(allocator_instance, size, hint) #define COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) std::allocator_traits::allocate(*this, size, hint) #define COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) std::allocator_traits::deallocate(allocator_instance, location, size) -#else -#ifdef COLONY_VARIADICS_SUPPORT -#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, ...) allocator_instance.construct(location, __VA_ARGS__) -#else -#define COLONY_CONSTRUCT(the_allocator, allocator_instance, location, data) allocator_instance.construct(location, data) -#endif - -#define COLONY_DESTROY(the_allocator, allocator_instance, location) allocator_instance.destroy(location) -#define COLONY_ALLOCATE(the_allocator, allocator_instance, size, hint) allocator_instance.allocate(size, hint) -#define COLONY_ALLOCATE_INITIALIZATION(the_allocator, size, hint) the_allocator::allocate(size, hint) -#define COLONY_DEALLOCATE(the_allocator, allocator_instance, location, size) allocator_instance.deallocate(location, size) -#endif #include // std::sort and std::fill_n -#include // memset, memcpy -#include // assert -#include // std::numeric_limits -#include // std::allocator -#include // std::bidirectional_iterator_tag - -#ifdef COLONY_TYPE_TRAITS_SUPPORT +#include // assert #include // offsetof, used in blank() +#include // memset, memcpy +#include +#include // std::bidirectional_iterator_tag +#include // std::numeric_limits +#include // std::allocator #include // std::is_trivially_destructible, etc -#endif - -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT #include // std::move -#endif - -#ifdef COLONY_INITIALIZER_LIST_SUPPORT -#include -#endif template , typename element_skipfield_type = unsigned short > class colony : private @@ -233,29 +118,16 @@ class colony : private using allocator_type = element_allocator_type; using skipfield_type = element_skipfield_type; -#ifdef COLONY_ALIGNMENT_SUPPORT using aligned_element_type = typename std::aligned_storage < sizeof( element_type ), ( alignof( element_type ) > ( sizeof( element_skipfield_type ) * 2 ) ) ? alignof( element_type ) : ( sizeof( element_skipfield_type ) * 2 ) >::type; -#else - using aligned_element_type = element_type; -#endif -#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT using size_type = typename std::allocator_traits::size_type; using difference_type = typename std::allocator_traits::difference_type; using reference = element_type&; using const_reference = const element_type&; using pointer = typename std::allocator_traits::pointer; using const_pointer = typename std::allocator_traits::const_pointer; -#else - using size_type = typename element_allocator_type::size_type; - using difference_type = typename element_allocator_type::difference_type; - using reference = typename element_allocator_type::reference; - using const_reference = typename element_allocator_type::const_reference; - using pointer = typename element_allocator_type::pointer; - using const_pointer = typename element_allocator_type::const_pointer; -#endif // Iterator declarations: template class colony_iterator; @@ -274,7 +146,6 @@ class colony : private struct group; // forward declaration for typedefs below -#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT using aligned_element_allocator_type = typename std::allocator_traits::template rebind_alloc; using group_allocator_type = typename std::allocator_traits::template @@ -292,21 +163,6 @@ class colony : private using pointer_allocator_type = typename std::allocator_traits::template rebind_alloc; -#else - using aligned_element_allocator_type = typename element_allocator_type::template - rebind::other; // In case compiler supports alignment but not allocator_traits - using group_allocator_type = typename element_allocator_type::template rebind::other; - using skipfield_allocator_type = typename element_allocator_type::template - rebind::other; - using uchar_allocator_type = typename element_allocator_type::template rebind::other; - - using aligned_pointer_type = typename aligned_element_allocator_type::pointer; - using group_pointer_type = typename group_allocator_type::pointer; - using skipfield_pointer_type = typename skipfield_allocator_type::pointer; - using uchar_pointer_type = typename uchar_allocator_type::pointer; - - using pointer_allocator_type = typename element_allocator_type::template rebind::other; -#endif // Colony groups: struct group : private @@ -331,7 +187,6 @@ class colony : private size_type group_number; // Used for comparison (> < >= <=) iterator operators (used by distance function and user) -#ifdef COLONY_VARIADICS_SUPPORT group( const skipfield_type elements_per_group, group_pointer_type const previous = NULL ): last_endpoint( reinterpret_cast( COLONY_ALLOCATE_INITIALIZATION( uchar_allocator_type, ( ( elements_per_group * ( sizeof( aligned_element_type ) ) ) + ( ( @@ -351,35 +206,7 @@ class colony : private std::memset( &*skipfield, 0, sizeof( skipfield_type ) * ( elements_per_group + 1u ) ); // &* to avoid problems with non-trivial pointers } -#else - // This is a hack around the fact that element_allocator_type::construct only supports copy construction in C++03 and copy elision does not occur on the vast majority of compilers in this circumstance. And to avoid running out of memory (and losing performance) from allocating the same block twice, we're allocating in this constructor and moving data in the copy constructor. - group( const skipfield_type elements_per_group, group_pointer_type const previous = NULL ): - last_endpoint( reinterpret_cast( COLONY_ALLOCATE_INITIALIZATION( - uchar_allocator_type, ( ( elements_per_group * ( sizeof( aligned_element_type ) ) ) + ( ( - elements_per_group + 1 ) * sizeof( skipfield_type ) ) ), - ( previous == NULL ) ? 0 : previous->elements ) ) ), - elements( NULL ), - skipfield( reinterpret_cast( last_endpoint + elements_per_group ) ), - previous_group( previous ), - capacity( elements_per_group ) { - std::memset( &*skipfield, 0, sizeof( skipfield_type ) * ( elements_per_group + 1u ) ); - } - // Not a real copy constructor ie. actually a move constructor. Only used for allocator.construct in C++03 for reasons stated above: -group( const group &source ) COLONY_NOEXCEPT: - uchar_allocator_type( source ), - last_endpoint( source.last_endpoint + 1 ), - next_group( NULL ), - elements( source.last_endpoint ), - skipfield( source.skipfield ), - previous_group( source.previous_group ), - free_list_head( std::numeric_limits::max() ), - capacity( source.capacity ), - number_of_elements( 1 ), - erasures_list_next_group( NULL ), - group_number( ( source.previous_group == NULL ) ? 0 : source.previous_group->group_number + 1u ) - {} -#endif ~group() COLONY_NOEXCEPT { // Null check not necessary (for copied group as above) as delete will also perform a null check. COLONY_DEALLOCATE( uchar_allocator_type, ( *this ), reinterpret_cast( elements ), ( capacity * sizeof( aligned_element_type ) ) + ( ( capacity + 1u ) * sizeof( skipfield_type ) ) ); @@ -434,7 +261,6 @@ group( const group &source ) COLONY_NOEXCEPT: return *this; } -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // Move assignment - only really necessary if the allocator uses non-standard ie. smart pointers inline colony_iterator &operator=( colony_iterator &&source ) COLONY_NOEXCEPT { // Move is a copy in this scenario @@ -452,7 +278,6 @@ group( const group &source ) COLONY_NOEXCEPT: skipfield_pointer = std::move( source.skipfield_pointer ); return *this; } -#endif inline COLONY_FORCE_INLINE bool operator==( const colony_iterator &rh ) const COLONY_NOEXCEPT { return ( element_pointer == rh.element_pointer ); @@ -611,7 +436,6 @@ group( const group &source ) COLONY_NOEXCEPT: element_pointer( source.element_pointer ), skipfield_pointer( source.skipfield_pointer ) {} -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // move constructor inline colony_iterator( colony_iterator &&source ) COLONY_NOEXCEPT: group_pointer( std::move( source.group_pointer ) ), @@ -622,7 +446,6 @@ group( const group &source ) COLONY_NOEXCEPT: group_pointer( std::move( source.group_pointer ) ), element_pointer( std::move( source.element_pointer ) ), skipfield_pointer( std::move( source.skipfield_pointer ) ) {} -#endif }; // colony_iterator // Reverse iterators: @@ -648,13 +471,11 @@ group( const group &source ) COLONY_NOEXCEPT: return *this; } -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // move assignment inline colony_reverse_iterator &operator=( colony_reverse_iterator &&source ) COLONY_NOEXCEPT { it = std::move( source.it ); return *this; } -#endif inline COLONY_FORCE_INLINE bool operator==( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { @@ -791,14 +612,12 @@ group( const group &source ) COLONY_NOEXCEPT: public: -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // move constructors colony_reverse_iterator( colony_reverse_iterator &&source ) COLONY_NOEXCEPT: it( std::move( source.it ) ) {} colony_reverse_iterator( typename colony::iterator &&source ) COLONY_NOEXCEPT: it( std::move( source ) ) {} -#endif }; // colony_reverse_iterator @@ -848,12 +667,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // skipfield type must be of unsigned integer type (uchar, ushort, uint etc) assert( std::numeric_limits::is_integer & !std::numeric_limits::is_signed ); - -#ifndef COLONY_ALIGNMENT_SUPPORT - // eg. under C++03, aligned_storage is not available, so sizeof(skipfield type) * 2 must be larger or equal to sizeof(element_type), otherwise the doubly-linked free lists of erased element indexes will not work correctly. So if you're storing chars, for example, and using the default skipfield type (unsigned short), the compiler will flag you with this assert. You cannot store char or unsigned char in colony under C++03, and if storing short or unsigned short you must change your skipfield type to unsigned char. Or just use C++11 and above. - assert( sizeof( element_type ) >= sizeof( skipfield_type ) * - 2 ); -#endif } // Default constuctor (allocator-extended): @@ -868,11 +681,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: group_allocator_pair( std::numeric_limits::max() ) { assert( std::numeric_limits::is_integer & !std::numeric_limits::is_signed ); - -#ifndef COLONY_ALIGNMENT_SUPPORT - // see default constructor explanation - assert( sizeof( element_type ) >= sizeof( skipfield_type ) * 2 ); -#endif } // Copy constructor: @@ -913,12 +721,9 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: private: inline void blank() COLONY_NOEXCEPT { -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_trivial::value && std::is_trivial::value && std::is_trivial::value ) { // if all pointer types are trivial, we can just nuke it from orbit with memset (NULL is always 0 in C++): std::memset( static_cast( this ), 0, offsetof( colony, pointer_allocator_pair ) ); - } else -#endif - { + } else { end_iterator.group_pointer = NULL; end_iterator.element_pointer = NULL; end_iterator.skipfield_pointer = NULL; @@ -933,8 +738,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: public: -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT - // Move constructor: colony( colony &&source ) COLONY_NOEXCEPT: element_allocator_type( source ), @@ -961,7 +764,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { source.blank(); } -#endif // Fill constructor: colony( const size_type fill_number, const element_type &element, @@ -981,11 +783,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); -#ifndef COLONY_ALIGNMENT_SUPPORT - assert( sizeof( element_type ) >= sizeof( skipfield_type ) * - 2 ); // see default constructor explanation -#endif - insert( fill_number, element ); } @@ -1007,19 +804,12 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); -#ifndef COLONY_ALIGNMENT_SUPPORT - assert( sizeof( element_type ) >= sizeof( skipfield_type ) * - 2 ); // see default constructor explanation -#endif - insert( first, last ); } // Initializer-list constructor: - -#ifdef COLONY_INITIALIZER_LIST_SUPPORT colony( const std::initializer_list &element_list, const skipfield_type min_allocation_amount = 0, const skipfield_type max_allocation_amount = std::numeric_limits::max(), @@ -1037,13 +827,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: assert( ( pointer_allocator_pair.min_elements_per_group > 2 ) & ( pointer_allocator_pair.min_elements_per_group <= group_allocator_pair.max_elements_per_group ) ); -#ifndef COLONY_ALIGNMENT_SUPPORT - assert( sizeof( element_type ) >= sizeof( skipfield_type ) * - 2 ); // see default constructor explanation -#endif insert( element_list ); } -#endif inline COLONY_FORCE_INLINE iterator begin() COLONY_NOEXCEPT { return begin_iterator; @@ -1098,13 +883,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: private: void destroy_all_data() COLONY_NOEXCEPT { -#ifdef COLONY_TYPE_TRAITS_SUPPORT // Amusingly enough, these changes from && to logical & actually do make a significant difference in debug mode - if( ( total_number_of_elements != 0 ) & !( std::is_trivially_destructible::value ) ) -#else // If compiler doesn't support traits, iterate regardless - trivial destructors will not be called, hopefully compiler will optimise the 'destruct' loop out for POD types - if( total_number_of_elements != 0 ) -#endif - { + if( ( total_number_of_elements != 0 ) & !( std::is_trivially_destructible::value ) ) { total_number_of_elements = 0; // to avoid double-destruction while( true ) { @@ -1146,13 +926,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: begin_iterator.group_pointer = COLONY_ALLOCATE( group_allocator_type, group_allocator_pair, 1, 0 ); try { -#ifdef COLONY_VARIADICS_SUPPORT COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, first_group_size ); -#else - COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, - group( first_group_size ) ); -#endif } catch( ... ) { COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); begin_iterator.group_pointer = NULL; @@ -1177,15 +952,12 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: const iterator return_iterator = end_iterator; /* Make copy for return before modifying end_iterator */ -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { // For no good reason this compiles to faster code under GCC: COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), element ); end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; - } else -#endif - { + } else { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer ), element ); end_iterator.group_pointer->last_endpoint = @@ -1207,26 +979,18 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; try { -#ifdef COLONY_VARIADICS_SUPPORT COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, end_iterator.group_pointer ); -#else - COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, group( new_group_size, - end_iterator.group_pointer ) ); -#endif } catch( ... ) { COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( next_group.elements ), element ); - } else -#endif - { + } else { try { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( next_group.elements ), element ); @@ -1312,13 +1076,10 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } else { // ie. newly-constructed colony, no insertions yet and no groups initialize( pointer_allocator_pair.min_elements_per_group ); -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), element ); - } else -#endif - { + } else { try { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), element ); @@ -1334,23 +1095,19 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } } -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT - iterator insert( element_type - &&element ) { // The move-insert function is near-identical to the regular insert function, with the exception of the element construction method and is_nothrow tests. + // The move-insert function is near-identical to the regular insert function, with the exception of the element construction method and is_nothrow tests. + iterator insert( element_type &&element ) { if( end_iterator.element_pointer != NULL ) { switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { case 0: { const iterator return_iterator = end_iterator; -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; - } else -#endif - { + } else { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer ), std::move( element ) ); end_iterator.group_pointer->last_endpoint = ++end_iterator.element_pointer; @@ -1371,26 +1128,18 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: ( total_number_of_elements ) : group_allocator_pair.max_elements_per_group; try { -#ifdef COLONY_VARIADICS_SUPPORT COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, new_group_size, end_iterator.group_pointer ); -#else - COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, &next_group, group( new_group_size, - end_iterator.group_pointer ) ); -#endif } catch( ... ) { COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, &next_group, 1 ); end_iterator.group_pointer->next_group = NULL; throw; } -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( next_group.elements ), std::move( element ) ); - } else -#endif - { + } else { try { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( next_group.elements ), std::move( element ) ); @@ -1466,13 +1215,10 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } else { initialize( pointer_allocator_pair.min_elements_per_group ); -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_move_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); - } else -#endif - { + } else { try { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), std::move( element ) ); @@ -1487,9 +1233,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return begin_iterator; } } -#endif -#ifdef COLONY_VARIADICS_SUPPORT template iterator emplace( arguments &&... parameters ) { // The emplace function is near-identical to the regular insert function, with the exception of the element construction method, removal of internal VARIADICS support checks, and change to is_nothrow tests. @@ -1499,15 +1243,12 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: case 0: { const iterator return_iterator = end_iterator; -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), std::forward( parameters )... ); end_iterator.group_pointer->last_endpoint = end_iterator.element_pointer; - } else -#endif - { + } else { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer ), std::forward( parameters )... ); @@ -1537,13 +1278,10 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: throw; } -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( next_group.elements ), std::forward( parameters )... ); - } else -#endif - { + } else { try { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( next_group.elements ), std::forward( parameters )... ); @@ -1619,14 +1357,11 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } else { initialize( pointer_allocator_pair.min_elements_per_group ); -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_nothrow_constructible::value ) { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), std::forward( parameters ) ... ); - } else -#endif - { + } else { try { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer++ ), @@ -1642,7 +1377,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return begin_iterator; } } -#endif private: @@ -1652,13 +1386,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: group_allocator_type, group_allocator_pair, 1, end_iterator.group_pointer ); try { -#ifdef COLONY_VARIADICS_SUPPORT COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, number_of_elements, end_iterator.group_pointer ); -#else - COLONY_CONSTRUCT( group_allocator_type, group_allocator_pair, next_group, group( number_of_elements, - end_iterator.group_pointer ) ); -#endif } catch( ... ) { COLONY_DESTROY( group_allocator_type, group_allocator_pair, next_group ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, next_group, 1 ); @@ -1674,29 +1403,22 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } void group_fill( const element_type &element, const skipfield_type number_of_elements ) { -#ifdef COLONY_TYPE_TRAITS_SUPPORT + // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: if COLONY_CONSTEXPR( std::is_trivially_copyable::value && std::is_trivially_copy_constructible::value && - std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: -#ifdef COLONY_ALIGNMENT_SUPPORT + std::is_nothrow_copy_constructible::value ) { if COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { std::fill_n( reinterpret_cast( end_iterator.element_pointer ), number_of_elements, element ); } else { - alignas( sizeof( aligned_element_type ) ) element_type aligned_copy = - element; // to avoid potentially violating memory boundaries in line below, create an initial copy object of same (but aligned) type + // to avoid potentially violating memory boundaries in line below, create an initial copy object of same (but aligned) type + alignas( sizeof( aligned_element_type ) ) element_type aligned_copy = element; std::fill_n( end_iterator.element_pointer, number_of_elements, *( reinterpret_cast( &aligned_copy ) ) ); } -#else // type is not aligned to anything so is safe to use fill_n anyway: - std::fill_n( reinterpret_cast( end_iterator.element_pointer ), number_of_elements, - element ); -#endif end_iterator.element_pointer += number_of_elements; - } else -#endif - { + } else { const aligned_pointer_type fill_end = end_iterator.element_pointer + number_of_elements; do { @@ -1721,11 +1443,10 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: void fill_skipblock( const element_type &element, aligned_pointer_type const location, skipfield_pointer_type const skipfield_pointer, const skipfield_type number_of_elements ) { -#ifdef COLONY_TYPE_TRAITS_SUPPORT + // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: if COLONY_CONSTEXPR( std::is_trivially_copyable::value && std::is_trivially_copy_constructible::value && - std::is_nothrow_copy_constructible::value ) { // ie. we can get away with using the cheaper fill_n here if there is no chance of an exception being thrown: -#ifdef COLONY_ALIGNMENT_SUPPORT + std::is_nothrow_copy_constructible::value ) { if COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { std::fill_n( reinterpret_cast( location ), number_of_elements, element ); } else { @@ -1734,12 +1455,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: std::fill_n( location, number_of_elements, *( reinterpret_cast( &aligned_copy ) ) ); } -#else // type is not aligned to anything so is safe to use fill_n anyway: - std::fill_n( reinterpret_cast( location ), number_of_elements, element ); -#endif - } else -#endif - { + } else { const skipfield_type prev_free_list_node = *( reinterpret_cast ( location ) ); // in case of exception, grabbing indexes before free_list node is reused const aligned_pointer_type fill_end = location + number_of_elements; @@ -1929,13 +1645,11 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } } -#ifdef COLONY_INITIALIZER_LIST_SUPPORT // Initializer-list insert inline void insert( const std::initializer_list &element_list ) { // use range insert: insert( element_list.begin(), element_list.end() ); } -#endif private: @@ -1949,7 +1663,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // get all elements contiguous in memory and shrink to fit, remove erasures and erasure free lists inline COLONY_FORCE_INLINE void consolidate() { -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT colony temp; temp.change_group_sizes( static_cast( ( pointer_allocator_pair.min_elements_per_group > total_number_of_elements ) ? @@ -1958,23 +1671,16 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: total_number_of_elements ) ), group_allocator_pair.max_elements_per_group ); // Make first allocated group as large total number of elements, where possible -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_move_assignable::value && std::is_move_constructible::value ) { temp.insert( std::make_move_iterator( begin_iterator ), std::make_move_iterator( end_iterator ) ); - } else -#endif - { + } else { temp.insert( begin_iterator, end_iterator ); } temp.pointer_allocator_pair.min_elements_per_group = pointer_allocator_pair.min_elements_per_group; // reset to correct value for future clear() or erasures *this = std::move( temp ); // Avoid generating 2nd temporary -#else - colony temp( *this ); - swap( temp ); -#endif } void remove_from_groups_with_erasures_list( const group_pointer_type group_to_remove ) @@ -2006,11 +1712,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: assert( *( it.skipfield_pointer ) == 0 ); // ie. element pointed to by iterator has not been erased previously -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( ! - ( std::is_trivially_destructible::value ) ) // This if-statement should be removed by the compiler on resolution of element_type. For some optimizing compilers this step won't be necessary (for MSVC 2013 it makes a difference) -#endif - { + // This if-statement should be removed by the compiler on resolution of element_type. For some optimizing compilers this step won't be necessary (for MSVC 2013 it makes a difference) + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { COLONY_DESTROY( element_allocator_type, ( *this ), reinterpret_cast( it.element_pointer ) ); // Destruct element } @@ -2235,19 +1938,14 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // Schema: first erase all non-erased elements until end of group & remove all skipblocks post-iterator1 from the free_list. Then, either update preceding skipblock or create new one: -#ifdef COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location + // if trivially-destructible, and no erasures in group, skip while loop below and just jump straight to the location if( ( std::is_trivially_destructible::value ) & ( current.group_pointer->free_list_head == std::numeric_limits::max() ) ) { number_of_group_erasures += static_cast( end - current.element_pointer ); - } else -#endif - { + } else { while( current.element_pointer != end ) { if( *current.skipfield_pointer == 0 ) { -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) -#endif - { + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { COLONY_DESTROY( element_allocator_type, ( *this ), reinterpret_cast( current.element_pointer ) ); // Destruct element } @@ -2272,10 +1970,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: iterator1.group_pointer->free_list_head = std::numeric_limits::max(); number_of_group_erasures += static_cast( end - current.element_pointer ); -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) -#endif - { + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { while( current.element_pointer != end ) { // miniloop - avoid checking skipfield for rest of elements in group, as there are no more skipped elements now COLONY_DESTROY( element_allocator_type, ( *this ), @@ -2348,10 +2043,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: const group_pointer_type previous_group = current.group_pointer->previous_group; while( current.group_pointer != iterator2.group_pointer ) { -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) -#endif - { + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { current.element_pointer = current.group_pointer->elements + *( current.group_pointer->skipfield ); current.skipfield_pointer = current.group_pointer->skipfield + * ( current.group_pointer->skipfield ); @@ -2409,20 +2101,15 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: const iterator current_saved = current; -#ifdef COLONY_TYPE_TRAITS_SUPPORT // if trivially-destructible, and C++11 or higher, and no erasures in group, skip while loop below and just jump straight to the location + // if trivially-destructible, and no erasures in group, skip while loop below and just jump straight to the location if( ( std::is_trivially_destructible::value ) & ( current.group_pointer->free_list_head == std::numeric_limits::max() ) ) { number_of_group_erasures += static_cast( iterator2.element_pointer - current.element_pointer ); - } else -#endif - { + } else { while( current.element_pointer != iterator2.element_pointer ) { if( *current.skipfield_pointer == 0 ) { -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) -#endif - { + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { COLONY_DESTROY( element_allocator_type, ( *this ), reinterpret_cast( current.element_pointer ) ); // Destruct element } @@ -2448,10 +2135,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: number_of_group_erasures += static_cast( iterator2.element_pointer - current.element_pointer ); -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) -#endif - { + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { while( current.element_pointer != iterator2.element_pointer ) { COLONY_DESTROY( element_allocator_type, ( *this ), reinterpret_cast( current.element_pointer++ ) ); // Destruct element @@ -2519,10 +2203,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: ( number_of_group_erasures ); total_number_of_elements -= number_of_group_erasures; } else { // ie. full group erasure -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) -#endif - { + if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { while( current.element_pointer != iterator2.element_pointer ) { COLONY_DESTROY( element_allocator_type, ( *this ), reinterpret_cast( current.element_pointer ) ); @@ -2576,11 +2257,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: #endif inline size_type max_size() const COLONY_NOEXCEPT { -#ifdef COLONY_ALLOCATOR_TRAITS_SUPPORT return std::allocator_traits::max_size( *this ); -#else - return element_allocator_type::max_size(); -#endif } inline size_type capacity() const COLONY_NOEXCEPT { @@ -2641,31 +2318,22 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: inline colony &operator=( const colony &source ) { assert( &source != this ); -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT destroy_all_data(); colony temp( source ); *this = std::move( temp ); // Avoid generating 2nd temporary -#else - clear(); - colony temp( source ); - swap( temp ); -#endif + return *this; } -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // Move assignment colony &operator=( colony &&source ) COLONY_NOEXCEPT_MOVE_ASSIGNMENT( allocator_type ) { assert( &source != this ); destroy_all_data(); -#ifdef COLONY_TYPE_TRAITS_SUPPORT if COLONY_CONSTEXPR( std::is_trivial::value && std::is_trivial::value && std::is_trivial::value ) { std::memcpy( static_cast( this ), &source, sizeof( colony ) ); - } else -#endif - { + } else { end_iterator = std::move( source.end_iterator ); begin_iterator = std::move( source.begin_iterator ); groups_with_erasures_list_head = source.groups_with_erasures_list_head; @@ -2679,7 +2347,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: source.blank(); return *this; } -#endif bool operator==( const colony &rh ) const COLONY_NOEXCEPT { assert( this != &rh ); @@ -3404,25 +3071,19 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: std::numeric_limits::max() ) ? std::numeric_limits::max() : total_number_of_elements ) ); -#if defined(COLONY_TYPE_TRAITS_SUPPORT) && defined(COLONY_MOVE_SEMANTICS_SUPPORT) if COLONY_CONSTEXPR( std::is_move_constructible::value ) { for( pointer *current_element_pointer = element_pointers; current_element_pointer != element_pointer; ++current_element_pointer ) { new_location.insert( std::move( *reinterpret_cast( *current_element_pointer ) ) ); } - } else -#endif - { + } else { for( pointer *current_element_pointer = element_pointers; current_element_pointer != element_pointer; ++current_element_pointer ) { new_location.insert( *reinterpret_cast( *current_element_pointer ) ); } } } catch( ... ) { -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) -#endif - { + if COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) { for( pointer *current_element_pointer = element_pointers; current_element_pointer != element_pointer; ++current_element_pointer ) { COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); @@ -3435,16 +3096,9 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } // Make the old colony the new one, destroy the old one's data/sequence: -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT *this = std::move( new_location ); // avoid generating temporary -#else - swap( new_location ); -#endif -#ifdef COLONY_TYPE_TRAITS_SUPPORT - if COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) -#endif - { + if COLONY_CONSTEXPR( !std::is_trivially_destructible::value ) { for( pointer *current_element_pointer = element_pointers; current_element_pointer != element_pointer; ++current_element_pointer ) { COLONY_DESTROY( pointer_allocator_type, pointer_allocator_pair, current_element_pointer ); @@ -3470,13 +3124,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: if( source.total_number_of_elements == 0 ) { return; } else if( total_number_of_elements == 0 ) { -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT *this = std::move( source ); -#else - clear(); - swap( source ); -#endif - return; } @@ -3576,30 +3224,26 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: void swap( colony &source ) COLONY_NOEXCEPT_SWAP( allocator_type ) { assert( &source != this ); -#ifdef COLONY_TYPE_TRAITS_SUPPORT + // if all pointer types are trivial we can just copy using memcpy - avoids constructors/destructors etc and is faster if COLONY_CONSTEXPR( std::is_trivial::value && std::is_trivial::value && - std::is_trivial::value ) { // if all pointer types are trivial we can just copy using memcpy - avoids constructors/destructors etc and is faster + std::is_trivial::value ) { char temp[sizeof( colony )]; std::memcpy( &temp, static_cast( this ), sizeof( colony ) ); std::memcpy( static_cast( this ), static_cast( &source ), sizeof( colony ) ); std::memcpy( static_cast( &source ), &temp, sizeof( colony ) ); - } -#ifdef COLONY_MOVE_SEMANTICS_SUPPORT // If pointer types are not trivial, moving them is probably going to be more efficient than copying them below - else if COLONY_CONSTEXPR( std::is_move_assignable::value && - std::is_move_assignable::value && - std::is_move_assignable::value && - std::is_move_constructible::value && - std::is_move_constructible::value && - std::is_move_constructible::value ) { + + // If pointer types are not trivial, moving them is probably going to be more efficient than copying them below + } else if COLONY_CONSTEXPR( std::is_move_assignable::value && + std::is_move_assignable::value && + std::is_move_assignable::value && + std::is_move_constructible::value && + std::is_move_constructible::value && + std::is_move_constructible::value ) { colony temp( std::move( source ) ); source = std::move( *this ); *this = std::move( temp ); - } -#endif - else -#endif - { + } else { const iterator swap_end_iterator = end_iterator, swap_begin_iterator = begin_iterator; const group_pointer_type swap_groups_with_erasures_list_head = @@ -3641,12 +3285,6 @@ inline void swap( colony Date: Wed, 12 Jun 2019 04:06:34 +0200 Subject: [PATCH 31/76] Clean up formatting --- src/colony.h | 423 ++++++++++++++++++++++++++------------------------- 1 file changed, 219 insertions(+), 204 deletions(-) diff --git a/src/colony.h b/src/colony.h index accb17a3b5472..3104ac4ebc541 100644 --- a/src/colony.h +++ b/src/colony.h @@ -108,8 +108,8 @@ #include // std::move template , typename element_skipfield_type = unsigned short > -class colony : private - element_allocator_type // Empty base class optimization - inheriting allocator functions +// Empty base class optimization - inheriting allocator functions +class colony : private element_allocator_type // Note: unsigned short is equivalent to uint_least16_t ie. Using 16-bit unsigned integer in best-case scenario, greater-than-16-bit unsigned integer where platform doesn't support 16-bit types { public: @@ -152,11 +152,13 @@ class colony : private rebind_alloc; using skipfield_allocator_type = typename std::allocator_traits::template rebind_alloc; - using uchar_allocator_type = typename std::allocator_traits::template - rebind_alloc; // Using uchar as the generic allocator type, as sizeof is always guaranteed to be 1 byte regardless of the number of bits in a byte on given computer, whereas for example, uint8_t would fail on machines where there are more than 8 bits in a byte eg. Texas Instruments C54x DSPs. + // Using uchar as the generic allocator type, as sizeof is always guaranteed to be 1 byte regardless of the number of bits in a byte on given computer, whereas for example, uint8_t would fail on machines where there are more than 8 bits in a byte eg. Texas Instruments C54x DSPs. + using uchar_allocator_type = typename std::allocator_traits::template + rebind_alloc; + // Different typedef to 'pointer' - this is a pointer to the over aligned element type, not the original element type using aligned_pointer_type = typename - std::allocator_traits::pointer; // Different typedef to 'pointer' - this is a pointer to the over aligned element type, not the original element type + std::allocator_traits::pointer; using group_pointer_type = typename std::allocator_traits::pointer; using skipfield_pointer_type = typename std::allocator_traits::pointer; using uchar_pointer_type = typename std::allocator_traits::pointer; @@ -165,13 +167,14 @@ class colony : private rebind_alloc; // Colony groups: - struct group : private - uchar_allocator_type { // Empty base class optimization (EBCO) - inheriting allocator functions + + // Empty base class optimization (EBCO) - inheriting allocator functions + struct group : private uchar_allocator_type { aligned_pointer_type last_endpoint; // The address that is one past the highest cell number that's been used so far in this group - does not change with erase command but may change with insert (if no previously-erased locations are available) - is necessary because an iterator cannot access the colony's end_iterator. Most-used variable in colony use (operator ++, --) so first in struct group_pointer_type next_group; // Next group in the intrusive list of all groups. NULL if no next group - const aligned_pointer_type elements; // Element storage + const aligned_pointer_type elements; // Element storage const skipfield_pointer_type skipfield; // Skipfield storage. The element and skipfield arrays are allocated contiguously, hence the skipfield pointer also functions as a 'one-past-end' pointer for the elements array. There will always be one additional skipfield node allocated compared to the number of elements. This is to ensure a faster ++ iterator operation (fewer checks are required when this is present). The extra node is unused and always zero, but checked, and not having it will result in out-of-bounds memory errors. group_pointer_type @@ -179,7 +182,7 @@ class colony : private skipfield_type free_list_head; // The index of the last erased element in the group. The last erased element will, in turn, contain the number of the index of the next erased element, and so on. If this is == maximum skipfield_type value then free_list is empty ie. no erasures have occurred in the group (or if they have, the erased locations have then been reused via insert()). const skipfield_type - capacity; // The element capacity of this particular group + capacity; // The element capacity of this particular group skipfield_type number_of_elements; // indicates total number of active elements in group - changes with insert and erase commands - used to check for empty group in erase function, as an indication to remove the group group_pointer_type @@ -306,12 +309,7 @@ class colony : private return reinterpret_cast( element_pointer ); } -#if defined(_MSC_VER) && _MSC_VER <= 1600 // MSVC 2010 needs a bit of a helping hand when it comes to optimizing - inline COLONY_FORCE_INLINE colony_iterator &operator++() -#else - colony_iterator &operator++() -#endif - { + colony_iterator &operator++() { assert( group_pointer != NULL ); // covers uninitialised colony_iterator assert( !( element_pointer == group_pointer->last_endpoint && group_pointer->next_group != NULL ) ); // Assert that iterator is not already at end() @@ -536,8 +534,9 @@ class colony : private } inline COLONY_FORCE_INLINE colony_reverse_iterator &operator--() { + // ie. Check that we are not already at rbegin() assert( !( it.element_pointer == it.group_pointer->last_endpoint - 1 && - it.group_pointer->next_group == NULL ) ); // ie. Check that we are not already at rbegin() + it.group_pointer->next_group == NULL ) ); ++it; return *this; } @@ -689,16 +688,18 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: groups_with_erasures_list_head( NULL ), total_number_of_elements( 0 ), total_capacity( 0 ), + // Make the first colony group capacity the greater of min_elements_per_group or total_number_of_elements, so long as total_number_of_elements isn't larger than max_elements_per_group pointer_allocator_pair( static_cast( ( source.pointer_allocator_pair.min_elements_per_group > source.total_number_of_elements ) ? source.pointer_allocator_pair.min_elements_per_group : ( ( source.total_number_of_elements > source.group_allocator_pair.max_elements_per_group ) ? source.group_allocator_pair.max_elements_per_group : - source.total_number_of_elements ) ) ), // Make the first colony group capacity the greater of min_elements_per_group or total_number_of_elements, so long as total_number_of_elements isn't larger than max_elements_per_group + source.total_number_of_elements ) ) ), group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { insert( source.begin_iterator, source.end_iterator ); + // reset to correct value for future clear() or erasures pointer_allocator_pair.min_elements_per_group = - source.pointer_allocator_pair.min_elements_per_group; // reset to correct value for future clear() or erasures + source.pointer_allocator_pair.min_elements_per_group; } // Copy constructor (allocator-extended): @@ -751,7 +752,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: source.blank(); } - // Move constructor (allocator-extended): colony( colony &&source, const allocator_type &alloc ): element_allocator_type( alloc ), @@ -807,8 +807,6 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: insert( first, last ); } - - // Initializer-list constructor: colony( const std::initializer_list &element_list, const skipfield_type min_allocation_amount = 0, @@ -949,8 +947,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { case 0: { // ie. there are no erased elements and end_iterator is not at end of current final group - const iterator return_iterator = - end_iterator; /* Make copy for return before modifying end_iterator */ + // Make copy for return before modifying end_iterator + const iterator return_iterator = end_iterator; if COLONY_CONSTEXPR( std::is_nothrow_copy_constructible::value ) { // For no good reason this compiles to faster code under GCC: @@ -960,8 +958,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } else { COLONY_CONSTRUCT( element_allocator_type, ( *this ), reinterpret_cast( end_iterator.element_pointer ), element ); - end_iterator.group_pointer->last_endpoint = - ++end_iterator.element_pointer; // Shift the addition to the second operation, avoiding problems if an exception is thrown during construction + // Shift the addition to the second operation, avoiding problems if an exception is thrown during construction + end_iterator.group_pointer->last_endpoint = ++end_iterator.element_pointer; } ++( end_iterator.group_pointer->number_of_elements ); @@ -1008,8 +1006,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: ++total_number_of_elements; total_capacity += new_group_size; - return iterator( end_iterator.group_pointer, next_group.elements, - next_group.skipfield ); /* returns value before incrementation */ + // returns value before incrementation + return iterator( end_iterator.group_pointer, next_group.elements, next_group.skipfield ); } default: { // ie. there are erased elements, reuse previous-erased element locations iterator new_location; @@ -1029,8 +1027,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // Update skipblock: const skipfield_type new_value = *( new_location.skipfield_pointer ) - 1; - if( new_value != - 0 ) { // ie. skipfield was not 1, ie. a single-node skipblock, with no additional nodes to update + // ie. skipfield was not 1, ie. a single-node skipblock, with no additional nodes to update + if( new_value != 0 ) { // set (new) start and (original) end of skipblock to new value: *( new_location.skipfield_pointer + new_value ) = *( new_location.skipfield_pointer + 1 ) = new_value; @@ -1038,8 +1036,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // transfer free list node to new start node: ++( groups_with_erasures_list_head->free_list_head ); - if( prev_free_list_index != - std::numeric_limits::max() ) { // ie. not the tail free list node + // ie. not the tail free list node + if( prev_free_list_index != std::numeric_limits::max() ) { *( reinterpret_cast( new_location.group_pointer->elements + prev_free_list_index ) + 1 ) = groups_with_erasures_list_head->free_list_head; } @@ -1051,8 +1049,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } else { groups_with_erasures_list_head->free_list_head = prev_free_list_index; - if( prev_free_list_index != - std::numeric_limits::max() ) { // ie. not the last free list node + // ie. not the last free list node + if( prev_free_list_index != std::numeric_limits::max() ) { *( reinterpret_cast( new_location.group_pointer->elements + prev_free_list_index ) + 1 ) = std::numeric_limits::max(); } else { @@ -1065,7 +1063,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: if( new_location.group_pointer == begin_iterator.group_pointer && new_location.element_pointer < begin_iterator.element_pointer ) { - /* ie. begin_iterator was moved forwards as the result of an erasure at some point, this erased element is before the current begin, hence, set current begin iterator to this element */ + // ie. begin_iterator was moved forwards as the result of an erasure at some point, this erased element is before the current begin, hence, set current begin iterator to this element begin_iterator = new_location; } @@ -1235,8 +1233,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } template - iterator emplace( arguments &&... - parameters ) { // The emplace function is near-identical to the regular insert function, with the exception of the element construction method, removal of internal VARIADICS support checks, and change to is_nothrow tests. + // The emplace function is near-identical to the regular insert function, with the exception of the element construction method, removal of internal VARIADICS support checks, and change to is_nothrow tests. + iterator emplace( arguments &&... parameters ) { if( end_iterator.element_pointer != NULL ) { switch( ( ( groups_with_erasures_list_head != NULL ) << 1 ) | ( end_iterator.element_pointer == reinterpret_cast( end_iterator.group_pointer->skipfield ) ) ) { @@ -1397,8 +1395,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: end_iterator.group_pointer = next_group; end_iterator.element_pointer = next_group->elements; - next_group->number_of_elements = - 0; // group constructor sets this to 1 by default to allow for faster insertion during insertion/emplace in other cases + // group constructor sets this to 1 by default to allow for faster insertion during insertion/emplace in other cases + next_group->number_of_elements = 0; total_capacity += number_of_elements; } @@ -1450,14 +1448,15 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: if COLONY_CONSTEXPR( sizeof( aligned_element_type ) == sizeof( element_type ) ) { std::fill_n( reinterpret_cast( location ), number_of_elements, element ); } else { - alignas( sizeof( aligned_element_type ) ) element_type aligned_copy = - element; // to avoid potentially violating memory boundaries in line below, create an initial copy object of same (but aligned) type + // to avoid potentially violating memory boundaries in line below, create an initial copy object of same (but aligned) type + alignas( sizeof( aligned_element_type ) ) element_type aligned_copy = element; std::fill_n( location, number_of_elements, *( reinterpret_cast( &aligned_copy ) ) ); } } else { + // in case of exception, grabbing indexes before free_list node is reused const skipfield_type prev_free_list_node = *( reinterpret_cast - ( location ) ); // in case of exception, grabbing indexes before free_list node is reused + ( location ) ); const aligned_pointer_type fill_end = location + number_of_elements; for( aligned_pointer_type current_location = location; current_location != fill_end; @@ -1494,8 +1493,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } } - std::memset( skipfield_pointer, 0, - number_of_elements * sizeof( skipfield_type ) ); // reset skipfield nodes within skipblock to 0 + // reset skipfield nodes within skipblock to 0 + std::memset( skipfield_pointer, 0, number_of_elements * sizeof( skipfield_type ) ); groups_with_erasures_list_head->number_of_elements += number_of_elements; total_number_of_elements += number_of_elements; } @@ -1519,8 +1518,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: begin_iterator.group_pointer->number_of_elements = 0; } - if( total_number_of_elements != - 0 ) { // ie. not an uninitialized colony or a situation where reserve has been called + // ie. not an uninitialized colony or a situation where reserve has been called + if( total_number_of_elements != 0 ) { // Use up erased locations if available: if( groups_with_erasures_list_head != NULL ) { do { // skipblock loop: breaks when group is exhausted of reusable skipblocks, or returns if number_of_elements == 0 @@ -1537,26 +1536,27 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } if( skipblock_size <= number_of_elements ) { + // set free list head to previous free list node groups_with_erasures_list_head->free_list_head = *( reinterpret_cast - ( element_pointer ) ); // set free list head to previous free list node + ( element_pointer ) ); fill_skipblock( element, element_pointer, skipfield_pointer, skipblock_size ); number_of_elements -= skipblock_size; if( groups_with_erasures_list_head->free_list_head != std::numeric_limits::max() ) { + // set 'next' index of new free list head to 'end' (numeric max) *( reinterpret_cast( groups_with_erasures_list_head->elements + - groups_with_erasures_list_head->free_list_head ) + 1 ) = - std::numeric_limits::max(); // set 'next' index of new free list head to 'end' (numeric max) + groups_with_erasures_list_head->free_list_head ) + 1 ) = std::numeric_limits::max(); } else { - groups_with_erasures_list_head = - groups_with_erasures_list_head->erasures_list_next_group; // change groups + // change groups + groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; if( groups_with_erasures_list_head == NULL ) { break; } } } else { // skipblock is larger than remaining number of elements - const skipfield_type prev_index = *( reinterpret_cast - ( element_pointer ) ); // save before element location is overwritten + // save before element location is overwritten + const skipfield_type prev_index = *( reinterpret_cast( element_pointer ) ); fill_skipblock( element, element_pointer, skipfield_pointer, static_cast( number_of_elements ) ); const skipfield_type new_skipblock_size = static_cast( skipblock_size - @@ -1565,8 +1565,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // Update skipfield (earlier nodes already memset'd in fill_skipblock function): *( skipfield_pointer + number_of_elements ) = new_skipblock_size; *( skipfield_pointer + skipblock_size - 1 ) = new_skipblock_size; - groups_with_erasures_list_head->free_list_head += static_cast - ( number_of_elements ); // set free list head to new start node + // set free list head to new start node + groups_with_erasures_list_head->free_list_head += static_cast( number_of_elements ); // Update free list with new head: *( reinterpret_cast( element_pointer + number_of_elements ) ) = prev_index; @@ -1574,8 +1574,9 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: std::numeric_limits::max(); if( prev_index != std::numeric_limits::max() ) { + // set 'next' index of previous skipblock to new start of skipblock *( reinterpret_cast( groups_with_erasures_list_head->elements + prev_index ) - + 1 ) = groups_with_erasures_list_head->free_list_head; // set 'next' index of previous skipblock to new start of skipblock + + 1 ) = groups_with_erasures_list_head->free_list_head; } return; @@ -1630,8 +1631,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: group_fill( element, static_cast( number_of_elements ) ); } - total_number_of_elements += - number_of_elements; // Adds the remainder from the last if-block - the insert functions in the first if/else block will already have incremented total_number_of_elements + // Adds the remainder from the last if-block - the insert functions in the first if/else block will already have incremented total_number_of_elements + total_number_of_elements += number_of_elements; end_iterator.skipfield_pointer = end_iterator.group_pointer->skipfield + ( end_iterator.element_pointer - end_iterator.group_pointer->elements ); } @@ -1664,12 +1665,13 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // get all elements contiguous in memory and shrink to fit, remove erasures and erasure free lists inline COLONY_FORCE_INLINE void consolidate() { colony temp; + // Make first allocated group as large total number of elements, where possible temp.change_group_sizes( static_cast( ( pointer_allocator_pair.min_elements_per_group > total_number_of_elements ) ? pointer_allocator_pair.min_elements_per_group : ( ( total_number_of_elements > group_allocator_pair.max_elements_per_group ) ? group_allocator_pair.max_elements_per_group : total_number_of_elements ) ), - group_allocator_pair.max_elements_per_group ); // Make first allocated group as large total number of elements, where possible + group_allocator_pair.max_elements_per_group ); if COLONY_CONSTEXPR( std::is_move_assignable::value && std::is_move_constructible::value ) { @@ -1677,10 +1679,10 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } else { temp.insert( begin_iterator, end_iterator ); } - - temp.pointer_allocator_pair.min_elements_per_group = - pointer_allocator_pair.min_elements_per_group; // reset to correct value for future clear() or erasures - *this = std::move( temp ); // Avoid generating 2nd temporary + // reset to correct value for future clear() or erasures + temp.pointer_allocator_pair.min_elements_per_group = pointer_allocator_pair.min_elements_per_group; + // Avoid generating 2nd temporary + *this = std::move( temp ); } void remove_from_groups_with_erasures_list( const group_pointer_type group_to_remove ) @@ -1707,10 +1709,12 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: iterator erase( const const_iterator &it ) { assert( !empty() ); const group_pointer_type group_pointer = it.group_pointer; - assert( group_pointer != NULL ); // ie. not uninitialized iterator - assert( it.element_pointer != group_pointer->last_endpoint ); // ie. != end() - assert( *( it.skipfield_pointer ) == - 0 ); // ie. element pointed to by iterator has not been erased previously + // not uninitialized iterator + assert( group_pointer != NULL ); + // != end() + assert( it.element_pointer != group_pointer->last_endpoint ); + // element pointed to by iterator has not been erased previously + assert( *( it.skipfield_pointer ) == 0 ); // This if-statement should be removed by the compiler on resolution of element_type. For some optimizing compilers this step won't be necessary (for MSVC 2013 it makes a difference) if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { @@ -1734,8 +1738,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // zero (since it is not yet erased), meaning no additional manipulations are necessary for the previous skipfield node comparison - we only have to check against zero const char prev_skipfield = *( it.skipfield_pointer - ( it.skipfield_pointer != group_pointer->skipfield ) ) != 0; - const char after_skipfield = *( it.skipfield_pointer + 1 ) != - 0; // NOTE: boundary test (checking against end-of-elements) is able to be skipped due to the extra skipfield node (compared to element field) - which is present to enable faster iterator operator ++ operations + // NOTE: boundary test (checking against end-of-elements) is able to be skipped due to the extra skipfield node (compared to element field) - which is present to enable faster iterator operator ++ operations + const char after_skipfield = *( it.skipfield_pointer + 1 ) != 0; skipfield_type update_value = 1; switch( ( after_skipfield << 1 ) | prev_skipfield ) { @@ -1744,14 +1748,14 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: const skipfield_type index = static_cast( it.element_pointer - group_pointer->elements ); - if( group_pointer->free_list_head != - std::numeric_limits::max() ) { // ie. if this group already has some erased elements + // ie. if this group already has some erased elements + if( group_pointer->free_list_head != std::numeric_limits::max() ) { + // set prev free list head's 'next index' number to the index of the current element *( reinterpret_cast( group_pointer->elements + - group_pointer->free_list_head ) + 1 ) = - index; // set prev free list head's 'next index' number to the index of the current element + group_pointer->free_list_head ) + 1 ) = index; } else { - group_pointer->erasures_list_next_group = - groups_with_erasures_list_head; // add it to the groups-with-erasures free list + // add it to the groups-with-erasures free list + group_pointer->erasures_list_next_group = groups_with_erasures_list_head; groups_with_erasures_list_head = group_pointer; } @@ -1781,13 +1785,14 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: group_pointer->elements ); if( following_previous != std::numeric_limits::max() ) { + // Set next index of previous free list node to this node's 'next' index *( reinterpret_cast( group_pointer->elements + following_previous ) + 1 ) = - index; // Set next index of previous free list node to this node's 'next' index + index; } if( following_next != std::numeric_limits::max() ) { - *( reinterpret_cast( group_pointer->elements + following_next ) ) = - index; // Set previous index of next free list node to this node's 'previous' index + // Set previous index of next free list node to this node's 'previous' index + *( reinterpret_cast( group_pointer->elements + following_next ) ) = index; } else { group_pointer->free_list_head = index; } @@ -1810,13 +1815,15 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: ( it.element_pointer + 1 ) + 1 ); if( following_previous != std::numeric_limits::max() ) { + // Set next index of previous free list node to this node's 'next' index *( reinterpret_cast( group_pointer->elements + following_previous ) + 1 ) = - following_next; // Set next index of previous free list node to this node's 'next' index + following_next; } if( following_next != std::numeric_limits::max() ) { + // Set previous index of next free list node to this node's 'previous' index *( reinterpret_cast( group_pointer->elements + following_next ) ) = - following_previous; // Set previous index of next free list node to this node's 'previous' index + following_previous; } else { group_pointer->free_list_head = following_previous; } @@ -1830,8 +1837,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: it.skipfield_pointer + update_value ); return_iterator.check_for_end_of_group_and_progress(); - if( it.element_pointer == - begin_iterator.element_pointer ) { // If original iterator was first element in colony, update it's value with the next non-erased element: + // If original iterator was first element in colony, update it's value with the next non-erased element: + if( it.element_pointer == begin_iterator.element_pointer ) { begin_iterator = return_iterator; } @@ -1843,9 +1850,9 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: << 1 ) ) { case 0: { // ie. group_pointer == begin_iterator.group_pointer && group_pointer->next_group == NULL; only group in colony // Reset skipfield and free list rather than clearing - leads to fewer allocations/deallocations: + // &* to avoid problems with non-trivial pointers. Although there is one more skipfield than group_pointer->capacity, capacity + 1 is not necessary here as the end skipfield is never written to after initialization std::memset( &*( group_pointer->skipfield ), 0, - sizeof( skipfield_type ) * - group_pointer->capacity ); // &* to avoid problems with non-trivial pointers. Although there is one more skipfield than group_pointer->capacity, capacity + 1 is not necessary here as the end skipfield is never written to after initialization + sizeof( skipfield_type ) * group_pointer->capacity ); group_pointer->free_list_head = std::numeric_limits::max(); groups_with_erasures_list_head = NULL; @@ -1862,8 +1869,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: update_subsequent_group_numbers( begin_iterator.group_pointer ); - if( group_pointer->free_list_head != - std::numeric_limits::max() ) { // Erasures present within the group, ie. was part of the intrusive list of groups with erasures. + // Erasures present within the group, ie. was part of the intrusive list of groups with erasures. + if( group_pointer->free_list_head != std::numeric_limits::max() ) { remove_from_groups_with_erasures_list( group_pointer ); } @@ -1872,8 +1879,9 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, group_pointer, 1 ); // note: end iterator only needs to be changed if the deleted group was the final group in the chain ie. not in this case + // If the beginning index has been erased (ie. skipfield != 0), skip to next non-erased element begin_iterator.element_pointer = begin_iterator.group_pointer->elements + * - ( begin_iterator.group_pointer->skipfield ); // If the beginning index has been erased (ie. skipfield != 0), skip to next non-erased element + ( begin_iterator.group_pointer->skipfield ); begin_iterator.skipfield_pointer = begin_iterator.group_pointer->skipfield + * ( begin_iterator.group_pointer->skipfield ); @@ -1881,8 +1889,9 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } case 3: { // this is a non-first group but not final group in chain: delete the group, then link previous group to the next group in the chain: group_pointer->next_group->previous_group = group_pointer->previous_group; + // close the chain, removing this group from it const group_pointer_type return_group = group_pointer->previous_group->next_group = - group_pointer->next_group; // close the chain, removing this group from it + group_pointer->next_group; update_subsequent_group_numbers( return_group ); @@ -1904,8 +1913,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } group_pointer->previous_group->next_group = NULL; - end_iterator.group_pointer = - group_pointer->previous_group; // end iterator needs to be changed as element supplied was the back element of the colony + // end iterator needs to be changed as element supplied was the back element of the colony + end_iterator.group_pointer = group_pointer->previous_group; end_iterator.element_pointer = reinterpret_cast ( end_iterator.group_pointer->skipfield ); end_iterator.skipfield_pointer = end_iterator.group_pointer->skipfield + @@ -1921,16 +1930,16 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } // Range erase: - void erase( const const_iterator &iterator1, - const const_iterator - &iterator2 ) { // if uninitialized/invalid iterators supplied, function could generate an exception. If iterator1 > iterator2, behaviour is undefined. + void erase( const const_iterator &iterator1, const const_iterator &iterator2 ) { + // if uninitialized/invalid iterators supplied, function could generate an exception. If iterator1 > iterator2, behaviour is undefined. assert( iterator1 <= iterator2 ); iterator current = iterator1; if( current.group_pointer != iterator2.group_pointer ) { if( current.element_pointer != current.group_pointer->elements + * - ( current.group_pointer->skipfield ) ) { // if iterator1 is not the first non-erased element in it's group - most common case + ( current.group_pointer->skipfield ) ) { + // if iterator1 is not the first non-erased element in it's group - most common case size_type number_of_group_erasures = 0; // Now update skipfield: @@ -1962,27 +1971,27 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: current.element_pointer += *( current.skipfield_pointer ); current.skipfield_pointer += *( current.skipfield_pointer ); + // if this is the last skipblock in the free list if( next_free_list_index == std::numeric_limits::max() && - prev_free_list_index == - std::numeric_limits::max() ) { // if this is the last skipblock in the free list - remove_from_groups_with_erasures_list( - iterator1.group_pointer ); // remove group from list of free-list groups - will be added back in down below, but not worth optimizing for + prev_free_list_index == std::numeric_limits::max() ) { + // remove group from list of free-list groups - will be added back in down below, but not worth optimizing for + remove_from_groups_with_erasures_list( iterator1.group_pointer ); iterator1.group_pointer->free_list_head = std::numeric_limits::max(); number_of_group_erasures += static_cast( end - current.element_pointer ); if COLONY_CONSTEXPR( !( std::is_trivially_destructible::value ) ) { - while( current.element_pointer != - end ) { // miniloop - avoid checking skipfield for rest of elements in group, as there are no more skipped elements now + // miniloop - avoid checking skipfield for rest of elements in group, as there are no more skipped elements now + while( current.element_pointer != end ) { COLONY_DESTROY( element_allocator_type, ( *this ), reinterpret_cast( current.element_pointer++ ) ); // Destruct element } } break; // end overall while loop - } else if( next_free_list_index == - std::numeric_limits::max() ) { // if this is the head of the free list - current.group_pointer->free_list_head = - prev_free_list_index; // make free list head equal to next free list node + } else if( next_free_list_index == std::numeric_limits::max() ) { + // if this is the head of the free list + // make free list head equal to next free list node + current.group_pointer->free_list_head = prev_free_list_index; *( reinterpret_cast( current.group_pointer->elements + prev_free_list_index ) + 1 ) = std::numeric_limits::max(); } else { // either a tail or middle free list node @@ -2010,14 +2019,14 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: const skipfield_type index = static_cast( iterator1.element_pointer - iterator1.group_pointer->elements ); - if( iterator1.group_pointer->free_list_head != - std::numeric_limits::max() ) { // ie. if this group already has some erased elements + if( iterator1.group_pointer->free_list_head != std::numeric_limits::max() ) { + // if this group already has some erased elements + // set prev free list head's 'next index' number to the index of the iterator1 element *( reinterpret_cast( iterator1.group_pointer->elements + - iterator1.group_pointer->free_list_head ) + 1 ) = - index; // set prev free list head's 'next index' number to the index of the iterator1 element + iterator1.group_pointer->free_list_head ) + 1 ) = index; } else { - iterator1.group_pointer->erasures_list_next_group = - groups_with_erasures_list_head; // add it to the groups-with-erasures free list + // add it to the groups-with-erasures free list + iterator1.group_pointer->erasures_list_next_group = groups_with_erasures_list_head; groups_with_erasures_list_head = iterator1.group_pointer; } @@ -2127,10 +2136,10 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: current.skipfield_pointer += *( current.skipfield_pointer ); if( next_free_list_index == std::numeric_limits::max() && - prev_free_list_index == - std::numeric_limits::max() ) { // if this is the last skipblock in the free list - remove_from_groups_with_erasures_list( - iterator2.group_pointer ); // remove group from list of free-list groups - will be added back in down below, but not worth optimizing for + prev_free_list_index == std::numeric_limits::max() ) { + // if this is the last skipblock in the free list + // remove group from list of free-list groups - will be added back in down below, but not worth optimizing for + remove_from_groups_with_erasures_list( iterator2.group_pointer ); iterator2.group_pointer->free_list_head = std::numeric_limits::max(); number_of_group_erasures += static_cast( iterator2.element_pointer - current.element_pointer ); @@ -2167,19 +2176,18 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: const skipfield_type index = static_cast( current_saved.element_pointer - iterator2.group_pointer->elements ); - if( index == 0 || - *( current_saved.skipfield_pointer - 1 ) == - 0 ) { // element is either at start of group or previous skipfield node is 0 + if( index == 0 || *( current_saved.skipfield_pointer - 1 ) == 0 ) { + // element is either at start of group or previous skipfield node is 0 *( current_saved.skipfield_pointer ) = distance_to_iterator2; *( iterator2.skipfield_pointer - 1 ) = distance_to_iterator2; - if( iterator2.group_pointer->free_list_head != - std::numeric_limits::max() ) { // ie. if this group already has some erased elements + if( iterator2.group_pointer->free_list_head != std::numeric_limits::max() ) { + // if this group already has some erased elements *( reinterpret_cast( iterator2.group_pointer->elements + iterator2.group_pointer->free_list_head ) + 1 ) = index; } else { - iterator2.group_pointer->erasures_list_next_group = - groups_with_erasures_list_head; // add it to the groups-with-erasures free list + // add it to the groups-with-erasures free list + iterator2.group_pointer->erasures_list_next_group = groups_with_erasures_list_head; groups_with_erasures_list_head = iterator2.group_pointer; } @@ -2213,8 +2221,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } } - if( ( total_number_of_elements -= current.group_pointer->number_of_elements ) != - 0 ) { // ie. previous_group != NULL + if( ( total_number_of_elements -= current.group_pointer->number_of_elements ) != 0 ) { + // ie. previous_group != NULL current.group_pointer->previous_group->next_group = current.group_pointer->next_group; end_iterator.group_pointer = current.group_pointer->previous_group; end_iterator.element_pointer = current.group_pointer->previous_group->last_endpoint; @@ -2320,7 +2328,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: destroy_all_data(); colony temp( source ); - *this = std::move( temp ); // Avoid generating 2nd temporary + // Avoid generating 2nd temporary + *this = std::move( temp ); return *this; } @@ -2396,38 +2405,38 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } if( total_number_of_elements == 0 ) { // Most common scenario - empty colony - if( begin_iterator.group_pointer != - NULL ) { // Edge case - empty colony but first group is initialized ie. had some insertions but all elements got subsequently erased + if( begin_iterator.group_pointer != NULL ) { + // Edge case - empty colony but first group is initialized ie. had some insertions but all elements got subsequently erased COLONY_DESTROY( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer ); COLONY_DEALLOCATE( group_allocator_type, group_allocator_pair, begin_iterator.group_pointer, 1 ); } // else: Empty colony, no insertions yet, time to allocate initialize( reserve_amount ); - begin_iterator.group_pointer->last_endpoint = - begin_iterator.group_pointer->elements; // last_endpoint initially == elements + 1 via default constructor + // last_endpoint initially == elements + 1 via default constructor + begin_iterator.group_pointer->last_endpoint = begin_iterator.group_pointer->elements; begin_iterator.group_pointer->number_of_elements = 0; // 1 by default } else if( reserve_amount <= total_capacity ) { // Already have enough space allocated return; } else { // Non-empty colony, don't have enough space allocated const skipfield_type original_min_elements = pointer_allocator_pair.min_elements_per_group; - pointer_allocator_pair.min_elements_per_group = static_cast - ( reserve_amount ); // Make sure all groups are at maximum appropriate capacity (this amount already rounded down to a skipfield type earlier in function) + // Make sure all groups are at maximum appropriate capacity (this amount already rounded down to a skipfield type earlier in function) + pointer_allocator_pair.min_elements_per_group = static_cast( reserve_amount ); consolidate(); pointer_allocator_pair.min_elements_per_group = original_min_elements; } } // Advance implementation for iterator and const_iterator: + // Cannot be noexcept due to the possibility of an uninitialized iterator template - void advance( colony_iterator &it, - difference_type distance ) - const { // Cannot be noexcept due to the possibility of an uninitialized iterator + void advance( colony_iterator &it, difference_type distance ) const { // For code simplicity - should hopefully be optimized out by compiler: group_pointer_type &group_pointer = it.group_pointer; aligned_pointer_type &element_pointer = it.element_pointer; skipfield_pointer_type &skipfield_pointer = it.skipfield_pointer; - assert( group_pointer != NULL ); // covers uninitialized colony_iterator && empty group + // covers uninitialized colony_iterator && empty group + assert( group_pointer != NULL ); // Now, run code based on the nature of the distance type - negative, positive or zero: if( distance > 0 ) { // ie. += @@ -2449,19 +2458,19 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: assert( !( element_pointer == group_pointer->last_endpoint && group_pointer->next_group == NULL ) ); // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) - if( element_pointer != group_pointer->elements + * - ( group_pointer->skipfield ) ) { // ie. != first non-erased element in group + if( element_pointer != group_pointer->elements + * ( group_pointer->skipfield ) ) { + // ie. != first non-erased element in group const difference_type distance_from_end = static_cast ( group_pointer->last_endpoint - element_pointer ); - if( group_pointer->number_of_elements == static_cast - ( distance_from_end ) ) { // ie. if there are no erasures in the group (using endpoint - elements_start to determine number of elements in group just in case this is the last group of the colony, in which case group->last_endpoint != group->elements + group->capacity) + if( group_pointer->number_of_elements == static_cast( distance_from_end ) ) { + // ie. if there are no erasures in the group (using endpoint - elements_start to determine number of elements in group just in case this is the last group of the colony, in which case group->last_endpoint != group->elements + group->capacity) if( distance < distance_from_end ) { element_pointer += distance; skipfield_pointer += distance; return; - } else if( group_pointer->next_group == - NULL ) { // either we've reached end() or gone beyond it, so bound to end() + } else if( group_pointer->next_group == NULL ) { + // either we've reached end() or gone beyond it, so bound to end() element_pointer = group_pointer->last_endpoint; skipfield_pointer += distance_from_end; return; @@ -2484,8 +2493,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } } - if( group_pointer->next_group == - NULL ) { // either we've reached end() or gone beyond it, so bound to end() + if( group_pointer->next_group == NULL ) { + // either we've reached end() or gone beyond it, so bound to end() element_pointer = group_pointer->last_endpoint; return; } @@ -2502,8 +2511,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be the first non-erased element in the current group: while( static_cast( group_pointer->number_of_elements ) <= distance ) { - if( group_pointer->next_group == - NULL ) { // either we've reached end() or gone beyond it, so bound to end() + if( group_pointer->next_group == NULL ) { + // either we've reached end() or gone beyond it, so bound to end() element_pointer = group_pointer->last_endpoint; skipfield_pointer = group_pointer->skipfield + ( group_pointer->last_endpoint - group_pointer->elements ); @@ -2519,8 +2528,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } // Final group (if not already reached): - if( group_pointer->free_list_head == - std::numeric_limits::max() ) { // No erasures in this group, use straight pointer addition + if( group_pointer->free_list_head == std::numeric_limits::max() ) { + // No erasures in this group, use straight pointer addition element_pointer = group_pointer->elements + distance; skipfield_pointer = group_pointer->skipfield + distance; return; @@ -2539,14 +2548,16 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return; } else if( distance < 0 ) { // for negative change // Code logic is very similar to += above + + // check that we're not already at begin() assert( !( ( element_pointer == group_pointer->elements + * ( group_pointer->skipfield ) ) && - group_pointer->previous_group == NULL ) ); // check that we're not already at begin() + group_pointer->previous_group == NULL ) ); distance = -distance; // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) if( element_pointer != group_pointer->last_endpoint ) { // ie. != end() - if( group_pointer->free_list_head == - std::numeric_limits::max() ) { // ie. no prior erasures have occurred in this group + if( group_pointer->free_list_head == std::numeric_limits::max() ) { + // ie. no prior erasures have occurred in this group const difference_type distance_from_beginning = static_cast ( element_pointer - group_pointer->elements ); @@ -2554,8 +2565,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: element_pointer -= distance; skipfield_pointer -= distance; return; - } else if( group_pointer->previous_group == - NULL ) { // ie. we've gone before begin(), so bound to begin() + } else if( group_pointer->previous_group == NULL ) { + // ie. we've gone before begin(), so bound to begin() element_pointer = group_pointer->elements; skipfield_pointer = group_pointer->skipfield; return; @@ -2577,8 +2588,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } if( group_pointer->previous_group == NULL ) { - element_pointer = group_pointer->elements + * - ( group_pointer->skipfield ); // This is first group, so bound to begin() (just in case final decrement took us before begin()) + // This is first group, so bound to begin() (just in case final decrement took us before begin()) + element_pointer = group_pointer->elements + *( group_pointer->skipfield ); skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); return; } @@ -2589,7 +2600,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // Intermediary groups - at the start of this code block and the subsequent block, the position of the iterator is assumed to be either the first non-erased element in the next group over, or end(): while( static_cast( group_pointer->number_of_elements ) < distance ) { - if( group_pointer->previous_group == NULL ) { // we've gone beyond begin(), so bound to it + if( group_pointer->previous_group == NULL ) { + // we've gone beyond begin(), so bound to it element_pointer = group_pointer->elements + *( group_pointer->skipfield ); skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); return; @@ -2604,8 +2616,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: element_pointer = group_pointer->elements + *( group_pointer->skipfield ); skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); return; - } else if( group_pointer->free_list_head == - std::numeric_limits::max() ) { // ie. no erased elements in this group + } else if( group_pointer->free_list_head == std::numeric_limits::max() ) { + // ie. no erased elements in this group element_pointer = reinterpret_cast( group_pointer->skipfield ) - distance; skipfield_pointer = ( group_pointer->skipfield + group_pointer->capacity ) - distance; return; @@ -2635,8 +2647,9 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: assert( element_pointer != NULL ); if( distance > 0 ) { + // Check that we're not already at rend() assert( !( element_pointer == group_pointer->elements - 1 && - group_pointer->previous_group == NULL ) ); // Check that we're not already at rend() + group_pointer->previous_group == NULL ) ); // Special case for initial element pointer and initial group (we don't know how far into the group the element pointer is) // Since a reverse_iterator cannot == last_endpoint (ie. before rbegin()) we don't need to check for that like with iterator if( group_pointer->free_list_head == std::numeric_limits::max() ) { @@ -2647,8 +2660,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: element_pointer -= distance; skipfield_pointer -= distance; return; - } else if( group_pointer->previous_group == - NULL ) { // Either we've reached rend() or gone beyond it, so bound to rend() + } else if( group_pointer->previous_group == NULL ) { + // Either we've reached rend() or gone beyond it, so bound to rend() element_pointer = group_pointer->elements - 1; skipfield_pointer = group_pointer->skipfield - 1; return; @@ -2670,7 +2683,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } if( group_pointer->previous_group == NULL ) { - element_pointer = group_pointer->elements - 1; // If we've reached rend(), bound to that + // If we've reached rend(), bound to that + element_pointer = group_pointer->elements - 1; skipfield_pointer = group_pointer->skipfield - 1; return; } @@ -2711,14 +2725,15 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return; } } else if( distance < 0 ) { + // Check that we're not already at rbegin() assert( !( ( element_pointer == ( group_pointer->last_endpoint - 1 ) - * ( group_pointer->skipfield + ( group_pointer->last_endpoint - group_pointer->elements ) - 1 ) ) && - group_pointer->next_group == NULL ) ); // Check that we're not already at rbegin() + group_pointer->next_group == NULL ) ); - if( element_pointer != group_pointer->elements + * - ( group_pointer->skipfield ) ) { // ie. != first non-erased element in group - if( group_pointer->free_list_head == - std::numeric_limits::max() ) { // ie. if there are no erasures in the group + if( element_pointer != group_pointer->elements + * ( group_pointer->skipfield ) ) { + // ie. != first non-erased element in group + if( group_pointer->free_list_head == std::numeric_limits::max() ) { + // ie. if there are no erasures in the group const difference_type distance_from_end = static_cast ( group_pointer->last_endpoint - element_pointer ); @@ -2727,8 +2742,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: skipfield_pointer += distance; return; } else if( group_pointer->next_group == NULL ) { // bound to rbegin() - element_pointer = group_pointer->last_endpoint - - 1; // no erasures so we don't have to subtract skipfield value as we do below + // no erasures so we don't have to subtract skipfield value as we do below + element_pointer = group_pointer->last_endpoint - 1; skipfield_pointer += distance_from_end - 1; return; } else { @@ -2788,8 +2803,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } // Final group (if not already reached): - if( group_pointer->free_list_head == - std::numeric_limits::max() ) { // No erasures in this group, use straight pointer addition + if( group_pointer->free_list_head == std::numeric_limits::max() ) { + // No erasures in this group, use straight pointer addition element_pointer = group_pointer->elements + distance; skipfield_pointer = group_pointer->skipfield + distance; return; @@ -2874,15 +2889,16 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: iterator2 = first; } - if( iterator1.group_pointer != - iterator2.group_pointer ) { // if not in same group, process intermediate groups + if( iterator1.group_pointer != iterator2.group_pointer ) { + // if not in same group, process intermediate groups + // Process initial group: - if( iterator1.group_pointer->free_list_head == - std::numeric_limits::max() ) { // If no prior erasures have occured in this group we can do simple addition + if( iterator1.group_pointer->free_list_head == std::numeric_limits::max() ) { + // If no prior erasures have occured in this group we can do simple addition distance += static_cast( iterator1.group_pointer->last_endpoint - iterator1.element_pointer ); - } else if( iterator1.element_pointer == - iterator1.group_pointer->elements ) { // ie. element is at start of group - rare case + } else if( iterator1.element_pointer == iterator1.group_pointer->elements ) { + // ie. element is at start of group - rare case distance += static_cast( iterator1.group_pointer->number_of_elements ); } else { const skipfield_pointer_type endpoint = iterator1.skipfield_pointer + @@ -2905,11 +2921,11 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: iterator1.skipfield_pointer = iterator1.group_pointer->skipfield; } - if( iterator1.group_pointer->free_list_head == - std::numeric_limits::max() ) { // ie. no erasures in this group, direct subtraction is possible + if( iterator1.group_pointer->free_list_head == std::numeric_limits::max() ) { + // ie. no erasures in this group, direct subtraction is possible distance += static_cast( iterator2.skipfield_pointer - iterator1.skipfield_pointer ); - } else if( iterator1.group_pointer->last_endpoint - 1 >= - iterator2.element_pointer ) { // ie. if iterator2 is .end() or 1 before + } else if( iterator1.group_pointer->last_endpoint - 1 >= iterator2.element_pointer ) { + // ie. if iterator2 is .end() or 1 before distance += static_cast( iterator1.group_pointer->number_of_elements - ( iterator1.group_pointer->last_endpoint - iterator2.element_pointer ) ); } else { @@ -2935,13 +2951,13 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: // Type-changing functions: - iterator get_iterator_from_pointer( const pointer element_pointer ) - const { // Cannot be noexcept as colony could be empty or pointer invalid + // Cannot be noexcept as colony could be empty or pointer invalid + iterator get_iterator_from_pointer( const pointer element_pointer ) const { assert( !empty() ); assert( element_pointer != NULL ); - group_pointer_type current_group = - end_iterator.group_pointer; // Start with last group first, as will be the largest group + // Start with last group first, as will be the largest group + group_pointer_type current_group = end_iterator.group_pointer; while( current_group != NULL ) { if( reinterpret_cast( element_pointer ) >= current_group->elements && @@ -2961,8 +2977,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } template - size_type get_index_from_iterator( const colony_iterator &it ) - const { // may throw exception if iterator is invalid/uninitialized + // may throw exception if iterator is invalid/uninitialized + size_type get_index_from_iterator( const colony_iterator &it ) const { assert( !empty() ); assert( it.group_pointer != NULL ); @@ -2977,9 +2993,10 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } if( group_pointer->free_list_head == std::numeric_limits::max() ) { - index += static_cast( it.element_pointer - - group_pointer->elements ); // If no erased elements in group exist, do straight pointer arithmetic to get distance to start for first element - } else { // Otherwise do manual ++ loop - count from beginning of group until location is reached + // If no erased elements in group exist, do straight pointer arithmetic to get distance to start for first element + index += static_cast( it.element_pointer - group_pointer->elements ); + } else { + // Otherwise do manual ++ loop - count from beginning of group until location is reached skipfield_pointer_type skipfield_pointer = group_pointer->skipfield + *( group_pointer->skipfield ); while( skipfield_pointer != it.skipfield_pointer ) { @@ -2999,8 +3016,8 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } template - iterator get_iterator_from_index( const index_type index ) - const { // Cannot be noexcept as colony could be empty + // Cannot be noexcept as colony could be empty + iterator get_iterator_from_index( const index_type index ) const { assert( !empty() ); assert( std::numeric_limits::is_integer ); @@ -3181,14 +3198,14 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: const skipfield_type index = static_cast( end_iterator.element_pointer - end_iterator.group_pointer->elements ); - if( end_iterator.group_pointer->free_list_head != - std::numeric_limits::max() ) { // ie. if this group already has some erased elements + if( end_iterator.group_pointer->free_list_head != std::numeric_limits::max() ) { + // ie. if this group already has some erased elements + // set prev free list head's 'next index' number to the index of the current element *( reinterpret_cast( end_iterator.group_pointer->elements + - end_iterator.group_pointer->free_list_head ) + 1 ) = - index; // set prev free list head's 'next index' number to the index of the current element + end_iterator.group_pointer->free_list_head ) + 1 ) = index; } else { - end_iterator.group_pointer->erasures_list_next_group = - groups_with_erasures_list_head; // add it to the groups-with-erasures free list + // add it to the groups-with-erasures free list + end_iterator.group_pointer->erasures_list_next_group = groups_with_erasures_list_head; groups_with_erasures_list_head = end_iterator.group_pointer; } @@ -3244,15 +3261,13 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: source = std::move( *this ); *this = std::move( temp ); } else { - const iterator swap_end_iterator = end_iterator, - swap_begin_iterator = begin_iterator; - const group_pointer_type swap_groups_with_erasures_list_head = - groups_with_erasures_list_head; - const size_type swap_total_number_of_elements = total_number_of_elements, - swap_total_capacity = total_capacity; - const skipfield_type swap_min_elements_per_group = - pointer_allocator_pair.min_elements_per_group, - swap_max_elements_per_group = group_allocator_pair.max_elements_per_group; + const iterator swap_end_iterator = end_iterator; + const iterator swap_begin_iterator = begin_iterator; + const group_pointer_type swap_groups_with_erasures_list_head = groups_with_erasures_list_head; + const size_type swap_total_number_of_elements = total_number_of_elements; + const size_type swap_total_capacity = total_capacity; + const skipfield_type swap_min_elements_per_group = pointer_allocator_pair.min_elements_per_group; + const skipfield_type swap_max_elements_per_group = group_allocator_pair.max_elements_per_group; end_iterator = source.end_iterator; begin_iterator = source.begin_iterator; From e10c5f346ee5df876773f9847dc129a14bf06f37 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Wed, 12 Jun 2019 23:05:32 +0200 Subject: [PATCH 32/76] Further cleanup pre-processor defines --- src/colony.h | 326 ++++++++++++++++++++++----------------------------- 1 file changed, 139 insertions(+), 187 deletions(-) diff --git a/src/colony.h b/src/colony.h index 3104ac4ebc541..cbd348cb67ad2 100644 --- a/src/colony.h +++ b/src/colony.h @@ -25,68 +25,20 @@ #define COLONY_H // Compiler-specific defines used by colony: - -#if defined(_MSC_VER) - -#define COLONY_FORCE_INLINE __forceinline -#define COLONY_NOEXCEPT noexcept -#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) - -#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L) -#define COLONY_CONSTEXPR constexpr -#else #define COLONY_CONSTEXPR -#endif - -#else - -#define COLONY_FORCE_INLINE // note: GCC creates faster code without forcing inline - -#if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__clang__) // If compiler is GCC/G++ - -#if __GNUC__ < 6 -#define COLONY_NOEXCEPT noexcept #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept -#else // C++17 support -#define COLONY_NOEXCEPT noexcept -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) -#endif -#elif defined(__GLIBCXX__) // Using another compiler type with libstdc++ - we are assuming full c++11 compliance for compiler - which may not be true +// TODO: Switch to these when we move to C++17 +// #define COLONY_CONSTEXPR constexpr +// #define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) +// #define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) -#if __GLIBCXX__ >= 20160111 -#define COLONY_NOEXCEPT noexcept -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept(std::allocator_traits::propagate_on_container_swap::value) -#else -#define COLONY_NOEXCEPT noexcept -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept -#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept -#endif - -#else -#define COLONY_NOEXCEPT noexcept -#define COLONY_NOEXCEPT_MOVE_ASSIGNMENT(the_allocator) noexcept(std::allocator_traits::is_always_equal::value) -#define COLONY_NOEXCEPT_SWAP(the_allocator) noexcept -#endif - -#if __cplusplus >= 201703L -#if defined(__clang__) && ((__clang_major__ == 3 && __clang_minor__ == 9) || __clang_major__ > 3) -#define COLONY_CONSTEXPR constexpr -#elif defined(__GNUC__) && __GNUC__ >= 7 -#define COLONY_CONSTEXPR constexpr -#elif !defined(__clang__) && !defined(__GNUC__) -#define COLONY_CONSTEXPR constexpr // assume correct C++17 implementation for other compilers -#else -#define COLONY_CONSTEXPR -#endif +// Note: GCC creates faster code without forcing inline +#if defined(_MSC_VER) +#define COLONY_FORCE_INLINE __forceinline #else -#define COLONY_CONSTEXPR -#endif - +#define COLONY_FORCE_INLINE #endif // TODO: get rid of these defines @@ -210,9 +162,11 @@ class colony : private element_allocator_type 1u ) ); // &* to avoid problems with non-trivial pointers } - ~group() COLONY_NOEXCEPT { + ~group() noexcept { // Null check not necessary (for copied group as above) as delete will also perform a null check. - COLONY_DEALLOCATE( uchar_allocator_type, ( *this ), reinterpret_cast( elements ), ( capacity * sizeof( aligned_element_type ) ) + ( ( capacity + 1u ) * sizeof( skipfield_type ) ) ); + COLONY_DEALLOCATE( uchar_allocator_type, ( *this ), + reinterpret_cast( elements ), + ( capacity * sizeof( aligned_element_type ) ) + ( ( capacity + 1u ) * sizeof( skipfield_type ) ) ); } }; @@ -250,14 +204,14 @@ class colony : private element_allocator_type friend class colony_reverse_iterator; friend class colony_reverse_iterator; - inline colony_iterator &operator=( const colony_iterator &source ) COLONY_NOEXCEPT { + inline colony_iterator &operator=( const colony_iterator &source ) noexcept { group_pointer = source.group_pointer; element_pointer = source.element_pointer; skipfield_pointer = source.skipfield_pointer; return *this; } - inline colony_iterator &operator=( const colony_iterator < !is_const > &source ) COLONY_NOEXCEPT { + inline colony_iterator &operator=( const colony_iterator < !is_const > &source ) noexcept { group_pointer = source.group_pointer; element_pointer = source.element_pointer; skipfield_pointer = source.skipfield_pointer; @@ -266,7 +220,7 @@ class colony : private element_allocator_type // Move assignment - only really necessary if the allocator uses non-standard ie. smart pointers inline colony_iterator &operator=( colony_iterator &&source ) - COLONY_NOEXCEPT { // Move is a copy in this scenario + noexcept { // Move is a copy in this scenario assert( &source != this ); group_pointer = std::move( source.group_pointer ); element_pointer = std::move( source.element_pointer ); @@ -274,7 +228,7 @@ class colony : private element_allocator_type return *this; } - inline colony_iterator &operator=( colony_iterator < !is_const > &&source ) COLONY_NOEXCEPT { + inline colony_iterator &operator=( colony_iterator < !is_const > &&source ) noexcept { assert( &source != this ); group_pointer = std::move( source.group_pointer ); element_pointer = std::move( source.element_pointer ); @@ -282,42 +236,44 @@ class colony : private element_allocator_type return *this; } - inline COLONY_FORCE_INLINE bool operator==( const colony_iterator &rh ) const COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator==( const colony_iterator &rh ) const noexcept { return ( element_pointer == rh.element_pointer ); } inline COLONY_FORCE_INLINE bool operator==( const colony_iterator < !is_const > &rh ) const - COLONY_NOEXCEPT { + noexcept { return ( element_pointer == rh.element_pointer ); } - inline COLONY_FORCE_INLINE bool operator!=( const colony_iterator &rh ) const COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator!=( const colony_iterator &rh ) const noexcept { return ( element_pointer != rh.element_pointer ); } inline COLONY_FORCE_INLINE bool operator!=( const colony_iterator < !is_const > &rh ) const - COLONY_NOEXCEPT { + noexcept { return ( element_pointer != rh.element_pointer ); } - inline COLONY_FORCE_INLINE reference operator*() - const { // may cause exception with uninitialized iterator + // may cause exception with uninitialized iterator + inline COLONY_FORCE_INLINE reference operator*() const { return *( reinterpret_cast( element_pointer ) ); } - inline COLONY_FORCE_INLINE pointer operator->() const COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE pointer operator->() const noexcept { return reinterpret_cast( element_pointer ); } colony_iterator &operator++() { - assert( group_pointer != NULL ); // covers uninitialised colony_iterator - assert( !( element_pointer == group_pointer->last_endpoint && - group_pointer->next_group != NULL ) ); // Assert that iterator is not already at end() + // covers uninitialised colony_iterator + assert( group_pointer != NULL ); + // Assert that iterator is not already at end() + assert( !( element_pointer == group_pointer->last_endpoint && group_pointer->next_group != NULL ) ); skipfield_type skip = *( ++skipfield_pointer ); + // ie. beyond end of available data if( ( element_pointer += skip + 1 ) == group_pointer->last_endpoint && - group_pointer->next_group != NULL ) { // ie. beyond end of available data + group_pointer->next_group != NULL ) { group_pointer = group_pointer->next_group; skip = *( group_pointer->skipfield ); element_pointer = group_pointer->elements + skip; @@ -377,73 +333,73 @@ class colony : private element_allocator_type return copy; } - inline bool operator>( const colony_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator>( const colony_iterator &rh ) const noexcept { return ( ( group_pointer == rh.group_pointer ) & ( element_pointer > rh.element_pointer ) ) || ( group_pointer != rh.group_pointer && group_pointer->group_number > rh.group_pointer->group_number ); } - inline bool operator<( const colony_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator<( const colony_iterator &rh ) const noexcept { return rh > *this; } - inline bool operator>=( const colony_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator>=( const colony_iterator &rh ) const noexcept { return !( rh > *this ); } - inline bool operator<=( const colony_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator<=( const colony_iterator &rh ) const noexcept { return !( *this > rh ); } - inline bool operator>( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { + inline bool operator>( const colony_iterator < !is_const > &rh ) const noexcept { return ( ( group_pointer == rh.group_pointer ) & ( element_pointer > rh.element_pointer ) ) || ( group_pointer != rh.group_pointer && group_pointer->group_number > rh.group_pointer->group_number ); } - inline bool operator<( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { + inline bool operator<( const colony_iterator < !is_const > &rh ) const noexcept { return rh > *this; } - inline bool operator>=( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { + inline bool operator>=( const colony_iterator < !is_const > &rh ) const noexcept { return !( rh > *this ); } - inline bool operator<=( const colony_iterator < !is_const > &rh ) const COLONY_NOEXCEPT { + inline bool operator<=( const colony_iterator < !is_const > &rh ) const noexcept { return !( *this > rh ); } - colony_iterator() COLONY_NOEXCEPT: - group_pointer( NULL ), element_pointer( NULL ), skipfield_pointer( NULL ) {} + colony_iterator() noexcept: group_pointer( NULL ), element_pointer( NULL ), + skipfield_pointer( NULL ) {} private: // Used by cend(), erase() etc: colony_iterator( const group_pointer_type group_p, const aligned_pointer_type element_p, - const skipfield_pointer_type skipfield_p ) COLONY_NOEXCEPT: - group_pointer( group_p ), element_pointer( element_p ), skipfield_pointer( skipfield_p ) {} + const skipfield_pointer_type skipfield_p ) noexcept: group_pointer( group_p ), + element_pointer( element_p ), skipfield_pointer( skipfield_p ) {} public: - inline colony_iterator( const colony_iterator &source ) COLONY_NOEXCEPT: - group_pointer( source.group_pointer ), - element_pointer( source.element_pointer ), - skipfield_pointer( source.skipfield_pointer ) {} + inline colony_iterator( const colony_iterator &source ) noexcept: + group_pointer( source.group_pointer ), + element_pointer( source.element_pointer ), + skipfield_pointer( source.skipfield_pointer ) {} - inline colony_iterator( const colony_iterator < !is_const > &source ) COLONY_NOEXCEPT: - group_pointer( source.group_pointer ), - element_pointer( source.element_pointer ), - skipfield_pointer( source.skipfield_pointer ) {} + inline colony_iterator( const colony_iterator < !is_const > &source ) noexcept: + group_pointer( source.group_pointer ), + element_pointer( source.element_pointer ), + skipfield_pointer( source.skipfield_pointer ) {} // move constructor - inline colony_iterator( colony_iterator &&source ) COLONY_NOEXCEPT: - group_pointer( std::move( source.group_pointer ) ), - element_pointer( std::move( source.element_pointer ) ), - skipfield_pointer( std::move( source.skipfield_pointer ) ) {} - - inline colony_iterator( colony_iterator < !is_const > &&source ) COLONY_NOEXCEPT: - group_pointer( std::move( source.group_pointer ) ), - element_pointer( std::move( source.element_pointer ) ), - skipfield_pointer( std::move( source.skipfield_pointer ) ) {} + inline colony_iterator( colony_iterator &&source ) noexcept: + group_pointer( std::move( source.group_pointer ) ), + element_pointer( std::move( source.element_pointer ) ), + skipfield_pointer( std::move( source.skipfield_pointer ) ) {} + + inline colony_iterator( colony_iterator < !is_const > &&source ) noexcept: + group_pointer( std::move( source.group_pointer ) ), + element_pointer( std::move( source.element_pointer ) ), + skipfield_pointer( std::move( source.skipfield_pointer ) ) {} }; // colony_iterator // Reverse iterators: @@ -463,33 +419,30 @@ class colony : private element_allocator_type friend class colony; - inline colony_reverse_iterator &operator=( const colony_reverse_iterator &source ) - COLONY_NOEXCEPT { + inline colony_reverse_iterator &operator=( const colony_reverse_iterator &source ) noexcept { it = source.it; return *this; } // move assignment - inline colony_reverse_iterator &operator=( colony_reverse_iterator &&source ) COLONY_NOEXCEPT { + inline colony_reverse_iterator &operator=( colony_reverse_iterator &&source ) noexcept { it = std::move( source.it ); return *this; } - inline COLONY_FORCE_INLINE bool operator==( const colony_reverse_iterator &rh ) const - COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator==( const colony_reverse_iterator &rh ) const noexcept { return ( it == rh.it ); } - inline COLONY_FORCE_INLINE bool operator!=( const colony_reverse_iterator &rh ) const - COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool operator!=( const colony_reverse_iterator &rh ) const noexcept { return ( it != rh.it ); } - inline COLONY_FORCE_INLINE reference operator*() const COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE reference operator*() const noexcept { return *( reinterpret_cast( it.element_pointer ) ); } - inline COLONY_FORCE_INLINE pointer *operator->() const COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE pointer *operator->() const noexcept { return reinterpret_cast( it.element_pointer ); } @@ -551,72 +504,70 @@ class colony : private element_allocator_type return ++( typename colony::iterator( it ) ); } - inline bool operator>( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator>( const colony_reverse_iterator &rh ) const noexcept { return ( rh.it > it ); } - inline bool operator<( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator<( const colony_reverse_iterator &rh ) const noexcept { return ( it > rh.it ); } - inline bool operator>=( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator>=( const colony_reverse_iterator &rh ) const noexcept { return !( it > rh.it ); } - inline bool operator<=( const colony_reverse_iterator &rh ) const COLONY_NOEXCEPT { + inline bool operator<=( const colony_reverse_iterator &rh ) const noexcept { return !( rh.it > it ); } inline COLONY_FORCE_INLINE bool operator==( const colony_reverse_iterator < !r_is_const > &rh ) - const COLONY_NOEXCEPT { + const noexcept { return ( it == rh.it ); } inline COLONY_FORCE_INLINE bool operator!=( const colony_reverse_iterator < !r_is_const > &rh ) - const COLONY_NOEXCEPT { + const noexcept { return ( it != rh.it ); } - inline bool operator>( const colony_reverse_iterator < !r_is_const > &rh ) const COLONY_NOEXCEPT { + inline bool operator>( const colony_reverse_iterator < !r_is_const > &rh ) const noexcept { return ( rh.it > it ); } - inline bool operator<( const colony_reverse_iterator < !r_is_const > &rh ) const COLONY_NOEXCEPT { + inline bool operator<( const colony_reverse_iterator < !r_is_const > &rh ) const noexcept { return ( it > rh.it ); } - inline bool operator>=( const colony_reverse_iterator < !r_is_const > &rh ) const - COLONY_NOEXCEPT { + inline bool operator>=( const colony_reverse_iterator < !r_is_const > &rh ) const noexcept { return !( it > rh.it ); } - inline bool operator<=( const colony_reverse_iterator < !r_is_const > &rh ) const - COLONY_NOEXCEPT { + inline bool operator<=( const colony_reverse_iterator < !r_is_const > &rh ) const noexcept { return !( rh.it > it ); } - colony_reverse_iterator() COLONY_NOEXCEPT {} + colony_reverse_iterator() noexcept {} - colony_reverse_iterator( const colony_reverse_iterator &source ) COLONY_NOEXCEPT: - it( source.it ) {} + colony_reverse_iterator( const colony_reverse_iterator &source ) noexcept: + it( source.it ) {} - colony_reverse_iterator( const typename colony::iterator &source ) COLONY_NOEXCEPT: - it( source ) {} + colony_reverse_iterator( const typename colony::iterator &source ) noexcept: + it( source ) {} private: // Used by rend(), etc: colony_reverse_iterator( const group_pointer_type group_p, const aligned_pointer_type element_p, - const skipfield_pointer_type skipfield_p ) COLONY_NOEXCEPT: - it( group_p, element_p, skipfield_p ) {} + const skipfield_pointer_type skipfield_p ) noexcept: + it( group_p, element_p, skipfield_p ) {} public: // move constructors - colony_reverse_iterator( colony_reverse_iterator &&source ) COLONY_NOEXCEPT: - it( std::move( source.it ) ) {} + colony_reverse_iterator( colony_reverse_iterator &&source ) noexcept: + it( std::move( source.it ) ) {} - colony_reverse_iterator( typename colony::iterator &&source ) COLONY_NOEXCEPT: - it( std::move( source ) ) {} + colony_reverse_iterator( typename colony::iterator &&source ) noexcept: + it( std::move( source ) ) {} }; // colony_reverse_iterator @@ -641,28 +592,28 @@ class colony : private element_allocator_type // Packaging the element pointer allocator with a lesser-used member variable, for empty-base-class optimisation struct ebco_pair2 : pointer_allocator_type { skipfield_type min_elements_per_group; -explicit ebco_pair2( const skipfield_type min_elements ) COLONY_NOEXCEPT: - min_elements_per_group( min_elements ) {} + explicit ebco_pair2( const skipfield_type min_elements ) noexcept: + min_elements_per_group( min_elements ) {} } pointer_allocator_pair; struct ebco_pair : group_allocator_type { skipfield_type max_elements_per_group; -explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: - max_elements_per_group( max_elements ) {} + explicit ebco_pair( const skipfield_type max_elements ) noexcept: + max_elements_per_group( max_elements ) {} } group_allocator_pair; public: // Default constuctor: - colony() COLONY_NOEXCEPT: - element_allocator_type( element_allocator_type() ), - groups_with_erasures_list_head( NULL ), - total_number_of_elements( 0 ), - total_capacity( 0 ), - pointer_allocator_pair( ( sizeof( aligned_element_type ) * 8 > ( sizeof( *this ) + sizeof( - group ) ) * 2 ) ? 8 : ( ( ( sizeof( *this ) + sizeof( group ) ) * 2 ) / sizeof( - aligned_element_type ) ) ), - group_allocator_pair( std::numeric_limits::max() ) { + colony() noexcept: + element_allocator_type( element_allocator_type() ), + groups_with_erasures_list_head( NULL ), + total_number_of_elements( 0 ), + total_capacity( 0 ), + pointer_allocator_pair( ( sizeof( aligned_element_type ) * 8 > ( sizeof( *this ) + sizeof( + group ) ) * 2 ) ? 8 : ( ( ( sizeof( *this ) + sizeof( group ) ) * 2 ) / sizeof( + aligned_element_type ) ) ), + group_allocator_pair( std::numeric_limits::max() ) { // skipfield type must be of unsigned integer type (uchar, ushort, uint etc) assert( std::numeric_limits::is_integer & !std::numeric_limits::is_signed ); @@ -721,8 +672,11 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: private: - inline void blank() COLONY_NOEXCEPT { - if COLONY_CONSTEXPR( std::is_trivial::value && std::is_trivial::value && std::is_trivial::value ) { // if all pointer types are trivial, we can just nuke it from orbit with memset (NULL is always 0 in C++): + inline void blank() noexcept { + // if all pointer types are trivial, we can just nuke it from orbit with memset (NULL is always 0 in C++): + if COLONY_CONSTEXPR( std::is_trivial::value && + std::is_trivial::value && + std::is_trivial::value ) { std::memset( static_cast( this ), 0, offsetof( colony, pointer_allocator_pair ) ); } else { end_iterator.group_pointer = NULL; @@ -740,15 +694,15 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: public: // Move constructor: - colony( colony &&source ) COLONY_NOEXCEPT: - element_allocator_type( source ), - end_iterator( std::move( source.end_iterator ) ), - begin_iterator( std::move( source.begin_iterator ) ), - groups_with_erasures_list_head( std::move( source.groups_with_erasures_list_head ) ), - total_number_of_elements( source.total_number_of_elements ), - total_capacity( source.total_capacity ), - pointer_allocator_pair( source.pointer_allocator_pair.min_elements_per_group ), - group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { + colony( colony &&source ) noexcept: + element_allocator_type( source ), + end_iterator( std::move( source.end_iterator ) ), + begin_iterator( std::move( source.begin_iterator ) ), + groups_with_erasures_list_head( std::move( source.groups_with_erasures_list_head ) ), + total_number_of_elements( source.total_number_of_elements ), + total_capacity( source.total_capacity ), + pointer_allocator_pair( source.pointer_allocator_pair.min_elements_per_group ), + group_allocator_pair( source.group_allocator_pair.max_elements_per_group ) { source.blank(); } @@ -828,29 +782,29 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: insert( element_list ); } - inline COLONY_FORCE_INLINE iterator begin() COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE iterator begin() noexcept { return begin_iterator; } inline COLONY_FORCE_INLINE const iterator &begin() const - COLONY_NOEXCEPT { // To allow for functions which only take const colony & as a source eg. copy constructor + noexcept { // To allow for functions which only take const colony & as a source eg. copy constructor return begin_iterator; } - inline COLONY_FORCE_INLINE iterator end() COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE iterator end() noexcept { return end_iterator; } - inline COLONY_FORCE_INLINE const iterator &end() const COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE const iterator &end() const noexcept { return end_iterator; } - inline const_iterator cbegin() const COLONY_NOEXCEPT { + inline const_iterator cbegin() const noexcept { return const_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer, begin_iterator.skipfield_pointer ); } - inline const_iterator cend() const COLONY_NOEXCEPT { + inline const_iterator cend() const noexcept { return const_iterator( end_iterator.group_pointer, end_iterator.element_pointer, end_iterator.skipfield_pointer ); } @@ -860,7 +814,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return ++reverse_iterator( end_iterator ); } - inline reverse_iterator rend() const COLONY_NOEXCEPT { + inline reverse_iterator rend() const noexcept { return reverse_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer - 1, begin_iterator.skipfield_pointer - 1 ); } @@ -869,18 +823,18 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return ++const_reverse_iterator( end_iterator ); } - inline const_reverse_iterator crend() const COLONY_NOEXCEPT { + inline const_reverse_iterator crend() const noexcept { return const_reverse_iterator( begin_iterator.group_pointer, begin_iterator.element_pointer - 1, begin_iterator.skipfield_pointer - 1 ); } - ~colony() COLONY_NOEXCEPT { + ~colony() noexcept { destroy_all_data(); } private: - void destroy_all_data() COLONY_NOEXCEPT { + void destroy_all_data() noexcept { // Amusingly enough, these changes from && to logical & actually do make a significant difference in debug mode if( ( total_number_of_elements != 0 ) & !( std::is_trivially_destructible::value ) ) { total_number_of_elements = 0; // to avoid double-destruction @@ -1655,7 +1609,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: private: inline COLONY_FORCE_INLINE void update_subsequent_group_numbers( group_pointer_type current_group ) - COLONY_NOEXCEPT { + noexcept { do { --( current_group->group_number ); current_group = current_group->next_group; @@ -1685,14 +1639,14 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: *this = std::move( temp ); } - void remove_from_groups_with_erasures_list( const group_pointer_type group_to_remove ) - COLONY_NOEXCEPT { + void remove_from_groups_with_erasures_list( const group_pointer_type group_to_remove ) noexcept { if( group_to_remove == groups_with_erasures_list_head ) { groups_with_erasures_list_head = groups_with_erasures_list_head->erasures_list_next_group; return; } - group_pointer_type previous_group = groups_with_erasures_list_head, current_group = groups_with_erasures_list_head->erasures_list_next_group; + group_pointer_type previous_group = groups_with_erasures_list_head; + group_pointer_type current_group = groups_with_erasures_list_head->erasures_list_next_group; while( group_to_remove != current_group ) { previous_group = current_group; @@ -2242,11 +2196,11 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } } - inline COLONY_FORCE_INLINE bool empty() const COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE bool empty() const noexcept { return total_number_of_elements == 0; } - inline size_type size() const COLONY_NOEXCEPT { + inline size_type size() const noexcept { return total_number_of_elements; } @@ -2264,15 +2218,15 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } #endif - inline size_type max_size() const COLONY_NOEXCEPT { + inline size_type max_size() const noexcept { return std::allocator_traits::max_size( *this ); } - inline size_type capacity() const COLONY_NOEXCEPT { + inline size_type capacity() const noexcept { return total_capacity; } - inline size_type approximate_memory_use() const COLONY_NOEXCEPT { + inline size_type approximate_memory_use() const noexcept { return sizeof( *this ) + // sizeof colony basic structure ( total_capacity * ( sizeof( aligned_element_type ) + sizeof( skipfield_type ) ) ) @@ -2305,20 +2259,20 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: } inline void get_group_sizes( skipfield_type &minimum_group_size, - skipfield_type &maximum_group_size ) const COLONY_NOEXCEPT { + skipfield_type &maximum_group_size ) const noexcept { minimum_group_size = pointer_allocator_pair.min_elements_per_group; maximum_group_size = group_allocator_pair.max_elements_per_group; } inline void reinitialize( const skipfield_type min_allocation_amount, - const skipfield_type max_allocation_amount ) COLONY_NOEXCEPT { + const skipfield_type max_allocation_amount ) noexcept { assert( ( min_allocation_amount > 2 ) & ( min_allocation_amount <= max_allocation_amount ) ); clear(); pointer_allocator_pair.min_elements_per_group = min_allocation_amount; group_allocator_pair.max_elements_per_group = max_allocation_amount; } - inline COLONY_FORCE_INLINE void clear() COLONY_NOEXCEPT { + inline COLONY_FORCE_INLINE void clear() noexcept { destroy_all_data(); blank(); } @@ -2357,7 +2311,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return *this; } - bool operator==( const colony &rh ) const COLONY_NOEXCEPT { + bool operator==( const colony &rh ) const noexcept { assert( this != &rh ); if( total_number_of_elements != rh.total_number_of_elements ) { @@ -2374,7 +2328,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return true; } - inline bool operator!=( const colony &rh ) const COLONY_NOEXCEPT { + inline bool operator!=( const colony &rh ) const noexcept { return !( *this == rh ); } @@ -3026,14 +2980,14 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: return it; } - inline allocator_type get_allocator() const COLONY_NOEXCEPT { + inline allocator_type get_allocator() const noexcept { return element_allocator_type(); } private: struct less { - bool operator()( const element_type &a, const element_type &b ) const COLONY_NOEXCEPT { + bool operator()( const element_type &a, const element_type &b ) const noexcept { return a < b; } }; @@ -3047,8 +3001,7 @@ explicit ebco_pair( const skipfield_type max_elements ) COLONY_NOEXCEPT: stored_instance( function_instance ) {} - sort_dereferencer() COLONY_NOEXCEPT - {} + sort_dereferencer() noexcept {} bool operator()( const pointer first, const pointer second ) { return stored_instance( *first, *second ); @@ -3300,7 +3253,6 @@ inline void swap( colony Date: Wed, 12 Jun 2019 12:56:53 +0200 Subject: [PATCH 33/76] Add colony test cases - colony basics (simple insertion/erasure/iterator testing) - insert and erase - range erase - sort - insertion methods - perfect forwarding - emplace - group size and capacity - splice Delete `group_size_sum()` from colony as it is only needed for debugging --- src/colony.h | 14 - tests/colony_test.cpp | 1186 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1186 insertions(+), 14 deletions(-) create mode 100644 tests/colony_test.cpp diff --git a/src/colony.h b/src/colony.h index cbd348cb67ad2..103e34548b5b0 100644 --- a/src/colony.h +++ b/src/colony.h @@ -2204,20 +2204,6 @@ class colony : private element_allocator_type return total_number_of_elements; } -#ifdef COLONY_TEST_DEBUG // used for debugging during internal testing only: - inline size_type group_size_sum() const { - group_pointer_type current = begin_iterator.group_pointer; - size_type temp = 0; - - while( current != NULL ) { - temp += current->number_of_elements; - current = current->next_group; - } - - return temp; - } -#endif - inline size_type max_size() const noexcept { return std::allocator_traits::max_size( *this ); } diff --git a/tests/colony_test.cpp b/tests/colony_test.cpp new file mode 100644 index 0000000000000..0d0bc9d698498 --- /dev/null +++ b/tests/colony_test.cpp @@ -0,0 +1,1186 @@ +#include "catch/catch.hpp" +#include "colony.h" + +#include // std::find +#include // std::greater +#include // std::move +#include // range-insert testing + +// Fast xorshift+128 random number generator function +// original: https://codingforspeed.com/using-faster-psudo-random-generator-xorshift/ +static unsigned int xor_rand() +{ + static unsigned int x = 123456789; + static unsigned int y = 362436069; + static unsigned int z = 521288629; + static unsigned int w = 88675123; + + const unsigned int t = x ^ ( x << 11 ); + + // Rotate the static values (w rotation in return statement): + x = y; + y = z; + z = w; + + return w = w ^ ( w >> 19 ) ^ ( t ^ ( t >> 8 ) ); +} + +TEST_CASE( "colony basics", "[colony]" ) +{ + colony test_colony; + + // Starts empty + CHECK( test_colony.empty() ); + + int ten = 10; + test_colony.insert( &ten ); + + // Not empty after insert + CHECK_FALSE( test_colony.empty() ); + // Begin working + CHECK( **test_colony.begin() == 10 ); + // End working + CHECK_FALSE( test_colony.begin() == test_colony.end() ); + + test_colony.clear(); + + // Begin = End after clear + CHECK( test_colony.begin() == test_colony.end() ); + + int twenty = 20; + for( int temp = 0; temp < 200; ++temp ) { + test_colony.insert( &ten ); + test_colony.insert( &twenty ); + } + + int count = 0; + int sum = 0; + for( colony::iterator it = test_colony.begin(); it < test_colony.end(); ++it ) { + ++count; + sum += **it; + } + + // Iterator count + CHECK( count == 400 ); + // Iterator access + CHECK( sum == 6000 ); + + colony::iterator plus_20 = test_colony.begin(); + colony::iterator plus_200 = test_colony.begin(); + test_colony.advance( plus_20, 20 ); + test_colony.advance( plus_200, 200 ); + + // Iterator + distance + CHECK( test_colony.distance( test_colony.begin(), plus_20 ) == 20 ); + // Iterator - distance + CHECK( test_colony.distance( plus_200, test_colony.begin() ) == -200 ); + + colony::iterator next_iterator = test_colony.next( test_colony.begin(), 5 ); + colony::const_iterator cprev_iterator = test_colony.prev( test_colony.cend(), 300 ); + + // Iterator next + CHECK( test_colony.distance( test_colony.begin(), next_iterator ) == 5 ); + // Const iterator prev + CHECK( test_colony.distance( test_colony.cend(), cprev_iterator ) == -300 ); + + colony::iterator prev_iterator = test_colony.prev( test_colony.end(), 300 ); + + // Iterator/const iterator equality operator + CHECK( cprev_iterator == prev_iterator ); + + colony test_colony_2; + test_colony_2 = test_colony; + + colony test_colony_3( test_colony ); + colony test_colony_4( test_colony_2, test_colony_2.get_allocator() ); + + // Copy + CHECK( test_colony_2.size() == 400 ); + // Copy construct + CHECK( test_colony_3.size() == 400 ); + // Allocator-extended copy construct + CHECK( test_colony_4.size() == 400 ); + + // Equality operator + CHECK( test_colony == test_colony_2 ); + CHECK( test_colony_2 == test_colony_3 ); + CHECK( test_colony_3 == test_colony_4 ); + + test_colony_2.insert( &ten ); + + // Inequality operator + CHECK( test_colony_2 != test_colony_3 ); + + count = 0; + sum = 0; + for( colony::reverse_iterator it = test_colony.rbegin(); it != test_colony.rend(); ++it ) { + ++count; + sum += **it; + } + + // Reverse iterator count + CHECK( count == 400 ); + // Reverse iterator access + CHECK( sum == 6000 ); + + colony::reverse_iterator r_iterator = test_colony.rbegin(); + test_colony.advance( r_iterator, 50 ); + + // Reverse iterator advance and distance test + CHECK( test_colony.distance( test_colony.rbegin(), r_iterator ) == 50 ); + + colony::reverse_iterator r_iterator2 = test_colony.next( r_iterator, 2 ); + + // Reverse iterator next and distance test + CHECK( test_colony.distance( test_colony.rbegin(), r_iterator2 ) == 52 ); + + count = 0; + sum = 0; + for( colony::iterator it = test_colony.begin(); it < test_colony.end(); + test_colony.advance( it, 2 ) ) { + ++count; + sum += **it; + } + + // Multiple iteration count + CHECK( count == 200 ); + // Multiple iteration access + CHECK( sum == 2000 ); + + count = 0; + sum = 0; + for( colony::const_iterator it = test_colony.cbegin(); it != test_colony.cend(); ++it ) { + ++count; + sum += **it; + } + + // Constant iterator count + CHECK( count == 400 ); + // Constant iterator access + CHECK( sum == 6000 ); + + count = 0; + sum = 0; + for( colony::const_reverse_iterator it = --colony::const_reverse_iterator( + test_colony.crend() ); it != colony::const_reverse_iterator( test_colony.crbegin() ); + --it ) { + ++count; + sum += **it; + } + + // Const_reverse_iterator -- count + CHECK( count == 399 ); + //Const_reverse_iterator -- access + CHECK( sum == 5980 ); + + count = 0; + for( colony::iterator it = ++colony::iterator( test_colony.begin() ); + it < test_colony.end(); ++it ) { + ++count; + it = test_colony.erase( it ); + } + + // Partial erase iteration test + CHECK( count == 200 ); + // Post-erase size test + CHECK( test_colony.size() == 200 ); + + const unsigned int temp_capacity = static_cast( test_colony.capacity() ); + test_colony.shrink_to_fit(); + // Shrink_to_fit test + CHECK( test_colony.capacity() < temp_capacity ); + CHECK( test_colony.capacity() == 200 ); + + count = 0; + for( colony::reverse_iterator it = test_colony.rbegin(); it != test_colony.rend(); ++it ) { + ++count; + colony::iterator temp = it.base(); + it = test_colony.erase( --temp ); + } + + // Full erase reverse iteration test + CHECK( count == 200 ); + // Post-erase size test + CHECK( test_colony.size() == 0 ); + + // Restore previous state after erasure + for( int temp = 0; temp < 200; ++temp ) { + test_colony.insert( &ten ); + test_colony.insert( &twenty ); + } + + count = 0; + for( colony::iterator it = --colony::iterator( test_colony.end() ); + it != test_colony.begin(); --it ) { + ++count; + } + + // Negative iteration test + CHECK( count == 399 ); + + count = 0; + for( colony::iterator it = --( colony::iterator( test_colony.end() ) ); + it != test_colony.begin(); test_colony.advance( it, -2 ) ) { + ++count; + } + + // Negative multiple iteration test + CHECK( count == 200 ); + + test_colony_2 = std::move( test_colony ); + + // Move test + CHECK( test_colony_2.size() == 400 ); + + test_colony.insert( &ten ); + + // Insert to post-moved-colony test + CHECK( test_colony.size() == 1 ); + + colony test_colony_5( test_colony_2 ); + colony test_colony_6( std::move( test_colony_5 ), test_colony_2.get_allocator() ); + + // Allocator-extended move construct test + CHECK( test_colony_6.size() == 400 ); + + test_colony_3 = test_colony_2; + + //Copy test 2 + CHECK( test_colony_3.size() == 400 ); + + test_colony_2.insert( &ten ); + + test_colony_2.swap( test_colony_3 ); + + //Swap test + CHECK( test_colony_2.size() == test_colony_3.size() - 1 ); + + swap( test_colony_2, test_colony_3 ); + + //Swap test 2 + CHECK( test_colony_3.size() == test_colony_2.size() - 1 ); + + //max_size() + CHECK( test_colony_2.max_size() > test_colony_2.size() ); +} + +TEST_CASE( "insert and erase", "[colony]" ) +{ + colony test_colony; + + for( int i = 0; i < 500000; ++i ) { + test_colony.insert( i ); + } + + // Size after insert + CHECK( test_colony.size() == 500000 ); + + colony::iterator found = std::find( test_colony.begin(), test_colony.end(), 5000 ); + colony::reverse_iterator found2 = std::find( test_colony.rbegin(), test_colony.rend(), 5000 ); + + // std::find reverse_iterator + CHECK( *found == 5000 ); + // std::find iterator + CHECK( *found2 == 5000 ); + + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + it = test_colony.erase( it ); + } + + // Erase alternating + CHECK( test_colony.size() == 250000 ); + + do { + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ) { + if( ( xor_rand() & 7 ) == 0 ) { + it = test_colony.erase( it ); + } else { + ++it; + } + } + + } while( !test_colony.empty() ); + + //Erase randomly till-empty + CHECK( test_colony.size() == 0 ); + + test_colony.clear(); + test_colony.change_minimum_group_size( 10000 ); + + for( int i = 0; i != 30000; ++i ) { + test_colony.insert( 1 ); + } + + // Size after reinitialize + insert + CHECK( test_colony.size() == 30000 ); + + int count = 0; + do { + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ) { + if( ( xor_rand() & 7 ) == 0 ) { + it = test_colony.erase( it ); + ++count; + } else { + ++it; + } + } + + } while( count < 15000 ); + + // Erase randomly till half-empty + CHECK( test_colony.size() == static_cast( 30000 - count ) ); + + for( int i = 0; i < count; ++i ) { + test_colony.insert( 1 ); + } + + // Size after reinsert + CHECK( test_colony.size() == 30000 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ) { + if( ++count == 3 ) { + count = 0; + it = test_colony.erase( it ); + } else { + test_colony.insert( 1 ); + ++it; + } + } + + // Alternating insert/erase + CHECK( test_colony.size() == 45001 ); + + do { + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ) { + if( ( xor_rand() & 3 ) == 0 ) { + ++it; + test_colony.insert( 1 ); + } else { + it = test_colony.erase( it ); + } + } + } while( !test_colony.empty() );; + + // Random insert/erase till empty + CHECK( test_colony.size() == 0 ); + + for( int i = 0; i != 500000; ++i ) { + test_colony.insert( 10 ); + } + + // Insert post-erase + CHECK( test_colony.size() == 500000 ); + + colony::iterator it = test_colony.begin(); + test_colony.advance( it, 250000 ); + + for( ; it != test_colony.end(); ) { + it = test_colony.erase( it ); + } + + // Large multi-increment iterator + CHECK( test_colony.size() == 250000 ); + + for( int i = 0; i < 250000; ++i ) { + test_colony.insert( 10 ); + } + + colony::iterator end_it = test_colony.end(); + test_colony.advance( end_it, -250000 ); + + for( colony::iterator it = test_colony.begin(); it != end_it; ) { + it = test_colony.erase( it ); + } + + // Large multi-decrement iterator + CHECK( test_colony.size() == 250000 ); + + for( int i = 0; i < 250000; ++i ) { + test_colony.insert( 10 ); + } + + int sum = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + sum += *it; + } + + // Re-insert post-heavy-erasure + CHECK( sum == 5000000 ); + + end_it = test_colony.end(); + test_colony.advance( end_it, -50001 ); + colony::iterator begin_it = test_colony.begin(); + test_colony.advance( begin_it, 300000 ); + + for( colony::iterator it = begin_it; it != end_it; ) { + it = test_colony.erase( it ); + } + + // Non-end decrement + erase + CHECK( test_colony.size() == 350001 ); + + for( int i = 0; i < 100000; ++i ) { + test_colony.insert( 10 ); + } + + begin_it = test_colony.begin(); + test_colony.advance( begin_it, 300001 ); + + for( colony::iterator it = begin_it; it != test_colony.end(); ) { + it = test_colony.erase( it ); + } + + // Non-beginning increment + erase + CHECK( test_colony.size() == 300001 ); + + it = test_colony.begin(); + test_colony.advance( it, 2 ); // Advance test 1 + unsigned int index = static_cast( test_colony.get_index_from_iterator( it ) ); + + // Advance + iterator-to-index test + CHECK( index == 2 ); + + // Check edge-case with advance when erasures present in initial group + test_colony.erase( it ); + it = test_colony.begin(); + test_colony.advance( it, 500 ); + index = static_cast( test_colony.get_index_from_iterator( it ) ); + + // Advance + iterator-to-index test + CHECK( index == 500 ); + + colony::iterator it2 = test_colony.get_iterator_from_pointer( &( *it ) ); + + // Pointer-to-iterator test + CHECK( it2 != test_colony.end() ); + + it2 = test_colony.get_iterator_from_index( 500 ); + + // Index-to-iterator test + CHECK( it2 == it ); + + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ) { + it = test_colony.erase( it ); + } + + // Total erase + CHECK( test_colony.empty() ); + + test_colony.clear(); + test_colony.change_minimum_group_size( 3 ); + const unsigned int temp_capacity2 = static_cast( test_colony.capacity() ); + test_colony.reserve( 1000 ); + + // Colony reserve + CHECK( temp_capacity2 != test_colony.capacity() ); + CHECK( test_colony.capacity() == 1000 ); + + count = 0; + for( int i = 0; i < 50000; ++i ) { + for( int j = 0; j < 10; ++j ) { + if( ( xor_rand() & 7 ) == 0 ) { + test_colony.insert( 1 ); + ++count; + } + } + int count2 = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ) { + if( ( xor_rand() & 7 ) == 0 ) { + it = test_colony.erase( it ); + --count; + } else { + ++it; + } + ++count2; + } + } + + // Multiple sequential small insert/erase commands + CHECK( test_colony.size() == static_cast( count ) ); +} + +TEST_CASE( "range erase", "[colony]" ) +{ + colony test_colony; + + int count = 0; + for( ; count != 1000; ++count ) { + test_colony.insert( count ); + } + + colony::iterator it1 = test_colony.begin(); + colony::iterator it2 = test_colony.begin(); + + test_colony.advance( it1, 500 ); + test_colony.advance( it2, 800 ); + + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + //Simple range erase 1 + CHECK( count == 700 ); + CHECK( test_colony.size() == 700 ); + + it1 = test_colony.begin(); + it2 = test_colony.begin(); + + test_colony.advance( it1, 400 ); + test_colony.advance( it2, 500 ); // This should put it2 past the point of previous erasures + + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + //Simple range erase 2 + CHECK( count == 600 ); + CHECK( test_colony.size() == 600 ); + + it2 = it1 = test_colony.begin(); + + test_colony.advance( it1, 4 ); + test_colony.advance( it2, 9 ); // This should put it2 past the point of previous erasures + + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Simple range erase 3 + CHECK( count == 595 ); + CHECK( test_colony.size() == 595 ); + + it1 = test_colony.begin(); + it2 = test_colony.begin(); + + test_colony.advance( it2, 50 ); + + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Range erase from begin() + CHECK( count == 545 ); + CHECK( test_colony.size() == 545 ); + + it1 = test_colony.begin(); + it2 = test_colony.end(); + + // Test erasing and validity when it removes the final group in colony + test_colony.advance( it1, 345 ); + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Range erase to end() + CHECK( count == 345 ); + CHECK( test_colony.size() == 345 ); + + test_colony.clear(); + + for( count = 0; count != 3000; ++count ) { + test_colony.insert( count ); + } + + for( colony::iterator it = test_colony.begin(); it < test_colony.end(); ++it ) { + it = test_colony.erase( it ); + } + + it2 = test_colony.begin(); + it1 = test_colony.begin(); + + test_colony.advance( it1, 4 ); + test_colony.advance( it2, 600 ); + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Range erase with colony already half-erased, alternating erasures + CHECK( count == 904 ); + CHECK( test_colony.size() == 904 ); + + test_colony.clear(); + + for( count = 0; count < 3000; ++count ) { + test_colony.insert( count ); + } + + for( colony::iterator it = test_colony.begin(); it < test_colony.end(); ++it ) { + if( ( xor_rand() & 1 ) == 0 ) { + it = test_colony.erase( it ); + } + } + + if( test_colony.size() < 400 ) { + for( count = 0; count != 400; ++count ) { + test_colony.insert( count ); + } + } + + it1 = test_colony.begin(); + it2 = test_colony.end(); + + test_colony.advance( it1, 400 ); + test_colony.erase( it1, it2 ); + + count = 0; + + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Range-erase with colony already third-erased, randomized erasures + CHECK( count == 400 ); + CHECK( test_colony.size() == 400 ); + + unsigned int size, range1, range2, loop_count, internal_loop_count; + for( loop_count = 0; loop_count < 50; ++loop_count ) { + test_colony.clear(); + + for( count = 0; count < 1000; ++count ) { + test_colony.insert( count ); + } + + internal_loop_count = 0; + + while( !test_colony.empty() ) { + it1 = test_colony.begin(); + it2 = test_colony.begin(); + + size = static_cast( test_colony.size() ); + range1 = xor_rand() % size; + range2 = range1 + 1 + ( xor_rand() % ( size - range1 ) ); + test_colony.advance( it1, range1 ); + test_colony.advance( it2, range2 ); + + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Fuzz-test range-erase randomly Fails + CAPTURE( loop_count, internal_loop_count ); + CHECK( test_colony.size() == static_cast( count ) ); + + if( test_colony.size() > 2 ) { + // Test to make sure our stored erased_locations are valid + test_colony.insert( 1 ); + test_colony.insert( 10 ); + } + + ++internal_loop_count; + } + } + + // "Fuzz-test range-erase randomly until empty" + CHECK( test_colony.size() == 0 ); + + for( loop_count = 0; loop_count < 50; ++loop_count ) { + test_colony.clear(); + internal_loop_count = 0; + + test_colony.insert( 10000, 10 ); // fill-insert + + while( !test_colony.empty() ) { + it1 = test_colony.begin(); + it2 = test_colony.begin(); + + size = static_cast( test_colony.size() ); + range1 = xor_rand() % size; + range2 = range1 + 1 + ( xor_rand() % ( size - range1 ) ); + test_colony.advance( it1, range1 ); + test_colony.advance( it2, range2 ); + + test_colony.erase( it1, it2 ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Fuzz-test range-erase + fill-insert randomly fails during erase + CAPTURE( loop_count, internal_loop_count ); + CHECK( test_colony.size() == static_cast( count ) ); + + if( test_colony.size() > 100 ) { + // Test to make sure our stored erased_locations are valid & fill-insert is functioning properly in these scenarios + const unsigned int extra_size = xor_rand() % 128; + test_colony.insert( extra_size, 5 ); + + // Fuzz-test range-erase + fill-insert randomly fails during insert + CAPTURE( loop_count, internal_loop_count ); + CHECK( test_colony.size() == static_cast( count ) + extra_size ); + + count = 0; + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + ++count; + } + + // Fuzz-test range-erase + fill-insert randomly fails during count-test fill-insert + CHECK( test_colony.size() == static_cast( count ) ); + } + + ++internal_loop_count; + } + } + + // Fuzz-test range-erase + fill-insert randomly until empty + CHECK( test_colony.size() == 0 ); + + test_colony.erase( test_colony.begin(), test_colony.end() ); + + // Range-erase when colony is empty test (crash test) + CHECK( test_colony.size() == 0 ); + + test_colony.insert( 10, 1 ); + test_colony.erase( test_colony.begin(), test_colony.begin() ); + + // Range-erase when range is empty test (crash test) + CHECK( test_colony.size() == 10 ); +} + +TEST_CASE( "sort", "[colony]" ) +{ + colony test_colony; + + test_colony.reserve( 50000 ); + + for( int i = 0; i < 50000; ++i ) { + test_colony.insert( xor_rand() & 65535 ); + } + + test_colony.sort(); + + bool sorted = true; + int prev = 0; + + for( colony::iterator cur = test_colony.begin(); cur != test_colony.end(); ++cur ) { + if( prev > *cur ) { + sorted = false; + break; + } + prev = *cur; + } + + // Less-than sort test + CHECK( sorted ); + + test_colony.sort( std::greater() ); + + prev = 65536; + + for( colony::iterator cur = test_colony.begin(); cur != test_colony.end(); ++cur ) { + if( prev < *cur ) { + sorted = false; + break; + } + prev = *cur; + } + + // Greater-than sort test + CHECK( sorted ); +} + +TEST_CASE( "insertion methods", "[colony]" ) +{ + colony test_colony = {1, 2, 3}; + + // Initializer-list constructor + CHECK( test_colony.size() == 3 ); + + colony test_colony_2( test_colony.begin(), test_colony.end() ); + + // Range constructor + CHECK( test_colony_2.size() == 3 ); + + colony test_colony_3( 5000, 2, 100, 1000 ); + + // Fill construction + CHECK( test_colony_3.size() == 5000 ); + + test_colony_2.insert( 500000, 5 ); + + // Fill insertion + CHECK( test_colony_2.size() == 500003 ); + + std::vector some_ints( 500, 2 ); + + test_colony_2.insert( some_ints.begin(), some_ints.end() ); + + // Range insertion + CHECK( test_colony_2.size() == 500503 ); + + test_colony_3.clear(); + test_colony_2.clear(); + test_colony_2.reserve( 50000 ); + test_colony_2.insert( 60000, 1 ); + + int sum = 0; + + for( colony::iterator it = test_colony_2.begin(); it != test_colony_2.end(); ++it ) { + sum += *it; + } + + // Reserve + fill insert + CHECK( test_colony_2.size() == 60000 ); + CHECK( sum == 60000 ); + + test_colony_2.clear(); + test_colony_2.reserve( 5000 ); + test_colony_2.insert( 60, 1 ); + + sum = 0; + + for( colony::iterator it = test_colony_2.begin(); it != test_colony_2.end(); ++it ) { + sum += *it; + } + + // Reserve + fill insert + CHECK( test_colony_2.size() == 60 ); + CHECK( sum == 60 ); + + test_colony_2.insert( 6000, 1 ); + + sum = 0; + + for( colony::iterator it = test_colony_2.begin(); it != test_colony_2.end(); ++it ) { + sum += *it; + } + + // Reserve + fill + fill + CHECK( test_colony_2.size() == 6060 ); + CHECK( sum == 6060 ); + + test_colony_2.reserve( 18000 ); + test_colony_2.insert( 6000, 1 ); + + sum = 0; + for( colony::iterator it = test_colony_2.begin(); it != test_colony_2.end(); ++it ) { + sum += *it; + } + + // Reserve + fill + fill + reserve + fill + CHECK( test_colony_2.size() == 12060 ); + CHECK( sum == 12060 ); +} + +struct perfect_forwarding_test { + const bool success; + + perfect_forwarding_test( int && /*perfect1*/, int &perfect2 ) : success( true ) { + perfect2 = 1; + } + + template + perfect_forwarding_test( T && /*imperfect1*/, U && /*imperfect2*/ ) : success( false ) + {} +}; + +TEST_CASE( "perfect forwarding", "[colony]" ) +{ + colony test_colony; + + int lvalue = 0; + int &lvalueref = lvalue; + + test_colony.emplace( 7, lvalueref ); + + CHECK( ( *test_colony.begin() ).success ); + CHECK( lvalueref == 1 ); +} + +struct small_struct { + double *empty_field_1; + double unused_number; + unsigned int empty_field2; + double *empty_field_3; + int number; + unsigned int empty_field4; + + small_struct( const int num ) noexcept: + number( num ) {}; +}; + +TEST_CASE( "emplace", "[colony]" ) +{ + colony test_colony; + int sum1 = 0, sum2 = 0; + + for( int i = 0; i < 100; ++i ) { + test_colony.emplace( i ); + sum1 += i; + } + + for( colony::iterator it = test_colony.begin(); it != test_colony.end(); ++it ) { + sum2 += it->number; + } + + //Basic emplace + CHECK( sum1 == sum2 ); + //Basic emplace + CHECK( test_colony.size() == 100 ); +} + +TEST_CASE( "group size and capacity", "[colony]" ) +{ + colony test_colony; + test_colony.change_group_sizes( 50, 100 ); + + test_colony.insert( 27 ); + + // Change_group_sizes min-size + CHECK( test_colony.capacity() == 50 ); + + for( int i = 0; i != 100; ++i ) { + test_colony.insert( i ); + } + + // Change_group_sizes max-size + CHECK( test_colony.capacity() == 200 ); + + test_colony.reinitialize( 200, 2000 ); + + test_colony.insert( 27 ); + + // Reinitialize min-size + CHECK( test_colony.capacity() == 200 ); + + for( int i = 0; i != 3300; ++i ) { + test_colony.insert( i ); + } + + // Reinitialize max-size + CHECK( test_colony.capacity() == 5200 ); + + test_colony.change_group_sizes( 500, 500 ); + + // Change_group_sizes resize + CHECK( test_colony.capacity() == 3500 ); + + test_colony.change_minimum_group_size( 200 ); + test_colony.change_maximum_group_size( 200 ); + + // Change_maximum_group_size resize + CHECK( test_colony.capacity() == 3400 ); +} + +TEST_CASE( "splice", "[colony]" ) +{ + colony test_colony_1, test_colony_2; + + SECTION( "small splice 1" ) { + int i = 0; + for( ; i < 20; ++i ) { + test_colony_1.insert( i ); + test_colony_2.insert( i + 20 ); + } + + test_colony_1.splice( test_colony_2 ); + + i = 0; + for( colony::iterator it = test_colony_1.begin(); it < test_colony_1.end(); ++it ) { + CHECK( i++ == *it ); + } + } + + SECTION( "small splice 2" ) { + int i = 0; + for( ; i < 100; ++i ) { + test_colony_1.insert( i ); + test_colony_2.insert( i + 100 ); + } + + test_colony_1.splice( test_colony_2 ); + + i = 0; + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ++it ) { + CHECK( i++ == *it ); + } + } + + SECTION( "large splice" ) { + int i = 0; + for( ; i < 100000; ++i ) { + test_colony_1.insert( i ); + test_colony_2.insert( i + 100000 ); + } + + test_colony_1.splice( test_colony_2 ); + + i = 0; + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ++it ) { + CHECK( i++ == *it ); + } + } + + SECTION( "erase and splice 1" ) { + for( int i = 0; i < 100; ++i ) { + test_colony_1.insert( i ); + test_colony_2.insert( i + 100 ); + } + + for( colony::iterator it = test_colony_2.begin(); it != test_colony_2.end(); ) { + if( ( xor_rand() & 7 ) == 0 ) { + it = test_colony_2.erase( it ); + } else { + ++it; + } + } + + test_colony_1.splice( test_colony_2 ); + + int prev = -1; + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ++it ) { + CHECK( prev < *it ); + prev = *it; + } + } + + SECTION( "erase and splice 2" ) { + for( int i = 0; i != 100; ++i ) { + test_colony_1.insert( i ); + test_colony_2.insert( i + 100 ); + } + + for( colony::iterator it = test_colony_2.begin(); it != test_colony_2.end(); ) { + if( ( xor_rand() & 3 ) == 0 ) { + it = test_colony_2.erase( it ); + } else { + ++it; + } + } + + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ) { + if( ( xor_rand() & 1 ) == 0 ) { + it = test_colony_1.erase( it ); + } else { + ++it; + } + } + + test_colony_1.splice( test_colony_2 ); + + int prev = -1; + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ++it ) { + CHECK( prev < *it ); + prev = *it; + } + } + + SECTION( "unequal size splice 1" ) { + test_colony_1.change_group_sizes( 200, 200 ); + test_colony_2.change_group_sizes( 200, 200 ); + + for( int i = 0; i < 100; ++i ) { + test_colony_1.insert( i + 150 ); + } + + for( int i = 0; i < 150; ++i ) { + test_colony_2.insert( i ); + } + + test_colony_1.splice( test_colony_2 ); + + int prev = -1; + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ++it ) { + CHECK( prev < *it ); + prev = *it; + } + } + + SECTION( "unequal size splice 2" ) { + test_colony_1.reinitialize( 200, 200 ); + test_colony_2.reinitialize( 200, 200 ); + + for( int i = 0; i < 100; ++i ) { + test_colony_1.insert( 100 - i ); + } + + for( int i = 0; i < 150; ++i ) { + test_colony_2.insert( 250 - i ); + } + + test_colony_1.splice( test_colony_2 ); + + int prev = 255; + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ++it ) { + CHECK( prev >= *it ); + prev = *it; + } + } + + SECTION( "large unequal size erase and splice" ) { + for( int i = 0; i < 100000; ++i ) { + test_colony_1.insert( i + 200000 ); + } + + for( int i = 0; i < 200000; ++i ) { + test_colony_2.insert( i ); + } + + for( colony::iterator it = test_colony_2.begin(); it != test_colony_2.end(); ) { + if( ( xor_rand() & 1 ) == 0 ) { + it = test_colony_2.erase( it ); + } else { + ++it; + } + } + + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ) { + if( ( xor_rand() & 1 ) == 0 ) { + it = test_colony_1.erase( it ); + } else { + ++it; + } + } + + test_colony_1.erase( --( test_colony_1.end() ) ); + test_colony_2.erase( --( test_colony_2.end() ) ); + + // splice should swap the order at this point due to differences in numbers of unused elements at end of final group in each colony + test_colony_1.splice( test_colony_2 ); + + int prev = -1; + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ++it ) { + CHECK( prev < *it ); + prev = *it; + } + + do { + for( colony::iterator it = test_colony_1.begin(); it != test_colony_1.end(); ) { + if( ( xor_rand() & 3 ) == 0 ) { + it = test_colony_1.erase( it ); + } else if( ( xor_rand() & 7 ) == 0 ) { + test_colony_1.insert( 433 ); + ++it; + } else { + ++it; + } + } + + } while( !test_colony_1.empty() ); + + // Post-splice insert-and-erase randomly till-empty + CHECK( test_colony_1.size() == 0 ); + } +} From 2e04c5415a71a11b7328946b714ac85cb33381de Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Thu, 13 Jun 2019 11:48:44 +0200 Subject: [PATCH 34/76] Update colony implementation to v5.10 Correction to reserve() semantics. Reserve() also will no longer assert that reserve amount is within bounds of maximum and minimum group sizes, and will silently round the value down or up accordingly. Please consult the documentation to understand the current limitations of reserve() for colony. --- src/colony.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/colony.h b/src/colony.h index 103e34548b5b0..99211e31562b1 100644 --- a/src/colony.h +++ b/src/colony.h @@ -2330,9 +2330,12 @@ class colony : private element_allocator_type } void reserve( const size_type original_reserve_amount ) { - assert( original_reserve_amount > 2 ); + if( original_reserve_amount == 0 || original_reserve_amount <= total_capacity ) { + // Already have enough space allocated + return; + } - skipfield_type reserve_amount = static_cast( original_reserve_amount ); + skipfield_type reserve_amount; if( original_reserve_amount > static_cast ( group_allocator_pair.max_elements_per_group ) ) { @@ -2342,6 +2345,8 @@ class colony : private element_allocator_type reserve_amount = pointer_allocator_pair.min_elements_per_group; } else if( original_reserve_amount > max_size() ) { reserve_amount = static_cast( max_size() ); + } else { + reserve_amount = static_cast( original_reserve_amount ); } if( total_number_of_elements == 0 ) { // Most common scenario - empty colony @@ -2355,8 +2360,6 @@ class colony : private element_allocator_type // last_endpoint initially == elements + 1 via default constructor begin_iterator.group_pointer->last_endpoint = begin_iterator.group_pointer->elements; begin_iterator.group_pointer->number_of_elements = 0; // 1 by default - } else if( reserve_amount <= total_capacity ) { // Already have enough space allocated - return; } else { // Non-empty colony, don't have enough space allocated const skipfield_type original_min_elements = pointer_allocator_pair.min_elements_per_group; // Make sure all groups are at maximum appropriate capacity (this amount already rounded down to a skipfield type earlier in function) From 677394c3b2148aeabd9d065fcaa6be05e7ae4ee7 Mon Sep 17 00:00:00 2001 From: Sergey Alirzaev Date: Thu, 13 Jun 2019 15:51:35 +0300 Subject: [PATCH 35/76] junkfood.json: realistic Necco wafers' stats fixes https://github.com/CleverRaven/Cataclysm-DDA/issues/31102 --- data/json/items/comestibles/junkfood.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/data/json/items/comestibles/junkfood.json b/data/json/items/comestibles/junkfood.json index e0cca83b252f0..67b190f43f7ae 100644 --- a/data/json/items/comestibles/junkfood.json +++ b/data/json/items/comestibles/junkfood.json @@ -567,8 +567,9 @@ { "type": "COMESTIBLE", "id": "neccowafers", - "name": "Necco wafer", - "weight": 46, + "name": "Necco wafers", + "name_plural": "Necco wafers", + "weight": 60, "color": "magenta", "spoils_in": "180 days", "stim": 1, @@ -581,7 +582,7 @@ "description": "A handful of candy wafers, in assorted flavors: orange, lemon, lime, clove, chocolate, wintergreen, cinnamon, and licorice. Yum!", "price": 100, "material": "junk", - "volume": 0, + "volume": "40 ml", "flags": [ "EDIBLE_FROZEN" ], "fun": 4 }, From a1785cd28582302f698490eebe8729ed9579d48b Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 13 Jun 2019 14:51:32 +0100 Subject: [PATCH 36/76] see gender on npc Look at option --- src/player.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/player.cpp b/src/player.cpp index 4f4e8616c359b..ea87aa1984a27 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -11545,7 +11545,8 @@ std::string player::visible_mutations( const int visibility_cap ) const std::vector player::short_description_parts() const { std::vector result; - + std::string gender = male ? _( "Male" ) : _( "Female" ); + result.push_back( _( "Gender: " ) + gender ); if( is_armed() ) { result.push_back( _( "Wielding: " ) + weapon.tname() ); } From c42e417478ebd4359f45a6ec54d5a4bbddb76532 Mon Sep 17 00:00:00 2001 From: Kevin Granade Date: Thu, 13 Jun 2019 11:07:37 -0700 Subject: [PATCH 37/76] Revert "See gender on NPC Look at option" --- src/player.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/player.cpp b/src/player.cpp index ea87aa1984a27..4f4e8616c359b 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -11545,8 +11545,7 @@ std::string player::visible_mutations( const int visibility_cap ) const std::vector player::short_description_parts() const { std::vector result; - std::string gender = male ? _( "Male" ) : _( "Female" ); - result.push_back( _( "Gender: " ) + gender ); + if( is_armed() ) { result.push_back( _( "Wielding: " ) + weapon.tname() ); } From 5dcae08f0d3483bc3a20a4520f0a8817749ccd37 Mon Sep 17 00:00:00 2001 From: Mooses2k Date: Wed, 12 Jun 2019 15:37:32 -0500 Subject: [PATCH 38/76] removed recipes for ir and nv goggs --- data/json/recipes/armor/head.json | 41 ------------------------------- 1 file changed, 41 deletions(-) diff --git a/data/json/recipes/armor/head.json b/data/json/recipes/armor/head.json index 82322fa522d4b..e59f5c91137f3 100644 --- a/data/json/recipes/armor/head.json +++ b/data/json/recipes/armor/head.json @@ -158,47 +158,6 @@ "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "string_36", 1 ], [ "string_6", 2 ] ], [ [ "bottle_plastic", 1 ], [ "bottle_plastic_small", 2 ] ] ] }, - { - "result": "goggles_ir", - "type": "recipe", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_HEAD", - "skill_used": "electronics", - "difficulty": 6, - "skills_required": [ "tailor", 1 ], - "time": "40 m", - "reversible": true, - "decomp_learn": 4, - "book_learn": [ [ "textbook_fireman", 6 ], [ "advanced_electronics", 5 ], [ "textbook_electronics", 6 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "goggles_ski", 1 ], [ "goggles_welding", 1 ], [ "mask_gas", 1 ] ], - [ [ "power_supply", 1 ] ], - [ [ "amplifier", 4 ] ], - [ [ "e_scrap", 2 ] ], - [ [ "scrap", 2 ] ] - ] - }, - { - "result": "goggles_nv", - "type": "recipe", - "category": "CC_ARMOR", - "subcategory": "CSC_ARMOR_HEAD", - "skill_used": "electronics", - "difficulty": 5, - "skills_required": [ "tailor", 1 ], - "time": "40 m", - "reversible": true, - "decomp_learn": 4, - "book_learn": [ [ "textbook_fireman", 7 ], [ "advanced_electronics", 4 ], [ "textbook_electronics", 4 ] ], - "qualities": [ { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "goggles_ski", 1 ], [ "goggles_welding", 1 ], [ "mask_gas", 1 ] ], - [ [ "power_supply", 1 ] ], - [ [ "amplifier", 3 ] ], - [ [ "scrap", 5 ] ] - ] - }, { "result": "goggles_swim", "type": "recipe", From d0565ff434051d08f5c4454031f2a08aba14119f Mon Sep 17 00:00:00 2001 From: ymber Date: Thu, 13 Jun 2019 18:42:41 +0100 Subject: [PATCH 39/76] return const ref from item::ammo_types --- src/dump.cpp | 5 ++--- src/item.cpp | 31 ++++++++++++++----------------- src/item.h | 2 +- src/player.cpp | 4 ++-- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/src/dump.cpp b/src/dump.cpp index 8e72e4fc24d38..afca7044401e0 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -185,9 +185,8 @@ bool game::dump_stats( const std::string &what, dump_mode mode, auto dump = [&rows, &locations]( const standard_npc & who, const item & obj ) { std::vector r; r.push_back( obj.tname( 1, false ) ); - const std::set atypes = obj.ammo_types(); - r.push_back( !atypes.empty() ? enumerate_as_string( atypes.begin(), - atypes.end(), []( const ammotype & at ) { + r.push_back( !obj.ammo_types().empty() ? enumerate_as_string( obj.ammo_types().begin(), + obj.ammo_types().end(), []( const ammotype & at ) { return at.str(); }, enumeration_conjunction::none ) : "" ); r.push_back( to_string( obj.volume() / units::legacy_volume_factor ) ); diff --git a/src/item.cpp b/src/item.cpp index 49225c9a288ac..bf61ac500f1b1 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -1437,9 +1437,8 @@ std::string item::info( std::vector &info, const iteminfo_query *parts } } } else if( parts->test( iteminfo_parts::GUN_TYPE ) ) { - const std::set &atypes = mod->ammo_types(); - info.emplace_back( "GUN", _( "Type: " ), enumerate_as_string( atypes.begin(), - atypes.end(), []( const ammotype & at ) { + info.emplace_back( "GUN", _( "Type: " ), enumerate_as_string( mod->ammo_types().begin(), + mod->ammo_types().end(), []( const ammotype & at ) { return at->name(); }, enumeration_conjunction::none ) ); } @@ -2120,9 +2119,8 @@ std::string item::info( std::vector &info, const iteminfo_query *parts if( !ammo_types().empty() ) { //~ "%s" is ammunition type. This types can't be plural. tmp = ngettext( "Maximum charge of %s.", "Maximum charges of %s.", ammo_capacity() ); - const std::set atypes = ammo_types(); - tmp = string_format( tmp, enumerate_as_string( atypes.begin(), - atypes.end(), []( const ammotype & at ) { + tmp = string_format( tmp, enumerate_as_string( ammo_types().begin(), + ammo_types().end(), []( const ammotype & at ) { return at->name(); }, enumeration_conjunction::none ) ); @@ -5909,7 +5907,7 @@ itype_id item::ammo_current() const return ammo ? ammo->get_id() : "null"; } -std::set item::ammo_types( bool conversion ) const +const std::set &item::ammo_types( bool conversion ) const { if( conversion ) { auto mods = is_gun() ? gunmods() : toolmods(); @@ -5927,7 +5925,9 @@ std::set item::ammo_types( bool conversion ) const } else if( is_magazine() ) { return type->magazine->type; } - return {}; + + static std::set atypes = {}; + return atypes; } ammotype item::ammo_type() const @@ -5940,9 +5940,8 @@ ammotype item::ammo_type() const itype_id item::ammo_default( bool conversion ) const { - std::set atypes = ammo_types( conversion ); - if( !atypes.empty() ) { - itype_id res = ammotype( *atypes.begin() )->default_ammotype(); + if( !ammo_types( conversion ).empty() ) { + itype_id res = ammotype( *ammo_types( conversion ).begin() )->default_ammotype(); if( !res.empty() ) { return res; } @@ -5952,9 +5951,8 @@ itype_id item::ammo_default( bool conversion ) const itype_id item::common_ammo_default( bool conversion ) const { - std::set atypes = ammo_types( conversion ); - if( !atypes.empty() ) { - for( const ammotype &at : atypes ) { + if( !ammo_types( conversion ).empty() ) { + for( const ammotype &at : ammo_types( conversion ) ) { const item *mag = magazine_current(); if( mag && mag->type->magazine->type.count( at ) ) { itype_id res = at->default_ammotype(); @@ -6011,9 +6009,8 @@ bool item::magazine_integral() const itype_id item::magazine_default( bool conversion ) const { - std::set atypes = ammo_types( conversion ); - if( !atypes.empty() ) { - auto mag = type->magazine_default.find( ammotype( *atypes.begin() ) ); + if( !ammo_types( conversion ).empty() ) { + auto mag = type->magazine_default.find( ammotype( *ammo_types( conversion ).begin() ) ); if( mag != type->magazine_default.end() ) { return mag->second; } diff --git a/src/item.h b/src/item.h index 321c920eb0fd4..3b7c2d508d93f 100644 --- a/src/item.h +++ b/src/item.h @@ -1586,7 +1586,7 @@ class item : public visitable /** Set of ammo types (@ref ammunition_type) used by item * @param conversion whether to include the effect of any flags or mods which convert the type * @return empty set if item does not use a specific ammo type (and is consequently not reloadable) */ - std::set ammo_types( bool conversion = true ) const; + const std::set &ammo_types( bool conversion = true ) const; /** Ammo type of an ammo item * @return ammotype of ammo item or a null id if the item is not ammo */ diff --git a/src/player.cpp b/src/player.cpp index 4f4e8616c359b..9b92dbecd4c36 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -7722,8 +7722,8 @@ item::reload_option player::select_ammo( const item &base, bool prompt, bool emp } else if( base.is_watertight_container() ) { name = base.is_container_empty() ? "liquid" : base.contents.front().tname(); } else { - const std::set &atypes = base.ammo_types(); - name = enumerate_as_string( atypes.begin(), atypes.end(), []( const ammotype & at ) { + name = enumerate_as_string( base.ammo_types().begin(), + base.ammo_types().end(), []( const ammotype & at ) { return at->name(); }, enumeration_conjunction::none ); } From 97c10768f7142a9dc5605b9bf64ad95345bda121 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Wed, 12 Jun 2019 12:31:56 +0300 Subject: [PATCH 40/76] Normalize function names --- src/activity_item_handling.cpp | 4 +- src/advanced_inv.cpp | 2 +- src/cata_tiles.cpp | 20 +- src/creature.cpp | 2 +- src/editmap.cpp | 36 +-- src/field.cpp | 64 +++-- src/field.h | 49 ++-- src/game.cpp | 6 +- src/iuse.cpp | 2 +- src/lightmap.cpp | 20 +- src/map.cpp | 72 ++--- src/map_field.cpp | 500 ++++++++++++++++----------------- src/monmove.cpp | 2 +- src/npcmove.cpp | 6 +- src/savegame_json.cpp | 12 +- src/submap.h | 4 +- tests/map_helpers.cpp | 2 +- 17 files changed, 403 insertions(+), 400 deletions(-) diff --git a/src/activity_item_handling.cpp b/src/activity_item_handling.cpp index e8921dd44270d..783fa8e4cd1b0 100644 --- a/src/activity_item_handling.cpp +++ b/src/activity_item_handling.cpp @@ -1217,11 +1217,11 @@ static cata::optional find_best_fire( time_duration best_fire_age = 1_days; for( const tripoint &pt : from ) { field_entry *fire = g->m.get_field( pt, fd_fire ); - if( fire == nullptr || fire->getFieldDensity() > 1 || + if( fire == nullptr || fire->get_field_intensity() > 1 || !g->m.clear_path( center, pt, PICKUP_RANGE, 1, 100 ) ) { continue; } - time_duration fire_age = fire->getFieldAge(); + time_duration fire_age = fire->get_field_age(); // Refuel only the best fueled fire (if it needs it) if( fire_age < best_fire_age ) { best_fire = pt; diff --git a/src/advanced_inv.cpp b/src/advanced_inv.cpp index 7cd164b1f0dd7..335363189f888 100644 --- a/src/advanced_inv.cpp +++ b/src/advanced_inv.cpp @@ -754,7 +754,7 @@ void advanced_inv_area::init() const field &tmpfld = g->m.field_at( pos ); for( auto &fld : tmpfld ) { const field_entry &cur = fld.second; - field_id curType = cur.getFieldType(); + field_id curType = cur.get_field_type(); switch( curType ) { case fd_fire: flags.append( _( " FIRE" ) ); diff --git a/src/cata_tiles.cpp b/src/cata_tiles.cpp index ad52cbe309379..f984d9be7ef5d 100644 --- a/src/cata_tiles.cpp +++ b/src/cata_tiles.cpp @@ -1496,9 +1496,9 @@ bool cata_tiles::draw_from_id_string( std::string id, TILE_CATEGORY category, } } else if( category == C_FIELD ) { const field_id fid = field_from_ident( id ); - sym = fieldlist[fid].sym; + sym = all_field_types_enum_list[fid].sym; // TODO: field density? - col = fieldlist[fid].color[0]; + col = all_field_types_enum_list[fid].color[0]; } else if( category == C_TRAP ) { const trap_str_id tmp( id ); if( tmp.is_valid() ) { @@ -2071,7 +2071,7 @@ bool cata_tiles::draw_field_or_item( const tripoint &p, lit_level ll, int &heigh { // check for field const field &f = g->m.field_at( p ); - field_id f_id = f.fieldSymbol(); + field_id f_id = f.field_symbol(); bool is_draw_field; bool do_item; switch( f_id ) { @@ -2115,19 +2115,19 @@ bool cata_tiles::draw_field_or_item( const tripoint &p, lit_level ll, int &heigh bool ret_draw_field = true; bool ret_draw_item = true; if( is_draw_field ) { - const std::string fd_name = fieldlist[f.fieldSymbol()].id; + const std::string fd_name = all_field_types_enum_list[f.field_symbol()].id; // for rotation information const int neighborhood[4] = { - static_cast( g->m.field_at( tripoint( p.x, p.y + 1, p.z ) ).fieldSymbol() ), // south - static_cast( g->m.field_at( tripoint( p.x + 1, p.y, p.z ) ).fieldSymbol() ), // east - static_cast( g->m.field_at( tripoint( p.x - 1, p.y, p.z ) ).fieldSymbol() ), // west - static_cast( g->m.field_at( tripoint( p.x, p.y - 1, p.z ) ).fieldSymbol() ) // north + static_cast( g->m.field_at( tripoint( p.x, p.y + 1, p.z ) ).field_symbol() ), // south + static_cast( g->m.field_at( tripoint( p.x + 1, p.y, p.z ) ).field_symbol() ), // east + static_cast( g->m.field_at( tripoint( p.x - 1, p.y, p.z ) ).field_symbol() ), // west + static_cast( g->m.field_at( tripoint( p.x, p.y - 1, p.z ) ).field_symbol() ) // north }; int subtile = 0; int rotation = 0; - get_tile_values( f.fieldSymbol(), neighborhood, subtile, rotation ); + get_tile_values( f.field_symbol(), neighborhood, subtile, rotation ); ret_draw_field = draw_from_id_string( fd_name, C_FIELD, empty_string, p, subtile, rotation, ll, nv_goggles_activated ); @@ -2923,7 +2923,7 @@ void cata_tiles::do_tile_loading_report() }, "Monsters", "" ); tile_loading_report( vpart_info::all(), "Vehicle Parts", "vp_" ); tile_loading_report( trap::count(), "Traps", "" ); - tile_loading_report( fieldlist, num_fields, "Fields", "" ); + tile_loading_report( all_field_types_enum_list, num_fields, "Fields", "" ); // needed until DebugLog ostream::flush bugfix lands DebugLog( D_INFO, DC_ALL ); diff --git a/src/creature.cpp b/src/creature.cpp index 51360887e439b..190f05a594d37 100644 --- a/src/creature.cpp +++ b/src/creature.cpp @@ -168,7 +168,7 @@ bool Creature::is_dangerous_fields( const field &fld ) const bool Creature::is_dangerous_field( const field_entry &entry ) const { // If it's dangerous and we're not immune return true, else return false - return entry.is_dangerous() && !is_immune_field( entry.getFieldType() ); + return entry.is_dangerous() && !is_immune_field( entry.get_field_type() ); } bool Creature::sees( const Creature &critter ) const diff --git a/src/editmap.cpp b/src/editmap.cpp index d43f0322995d0..dc66bc468ee6f 100644 --- a/src/editmap.cpp +++ b/src/editmap.cpp @@ -260,9 +260,9 @@ void editmap_hilight::draw( editmap &em, bool update ) t_col = furniture_type.color(); } const field &t_field = g->m.field_at( p ); - if( t_field.fieldCount() > 0 ) { - field_id t_ftype = t_field.fieldSymbol(); - const field_entry *t_fld = t_field.findField( t_ftype ); + if( t_field.field_count() > 0 ) { + field_id t_ftype = t_field.field_symbol(); + const field_entry *t_fld = t_field.find_field( t_ftype ); if( t_fld != nullptr ) { t_col = t_fld->color(); t_sym = t_fld->symbol(); @@ -550,9 +550,9 @@ void editmap::update_view( bool update_info ) t_col = furniture_type.color(); } const field &t_field = g->m.field_at( p ); - if( t_field.fieldCount() > 0 ) { - field_id t_ftype = t_field.fieldSymbol(); - const field_entry *t_fld = t_field.findField( t_ftype ); + if( t_field.field_count() > 0 ) { + field_id t_ftype = t_field.field_symbol(); + const field_entry *t_fld = t_field.find_field( t_ftype ); if( t_fld != nullptr ) { t_col = t_fld->color(); t_sym = t_fld->symbol(); @@ -649,8 +649,8 @@ void editmap::update_view( bool update_info ) const field_entry &cur = fld.second; mvwprintz( w_info, off, 1, cur.color(), _( "field: %s (%d) density %d age %d" ), - cur.name(), cur.getFieldType(), - cur.getFieldDensity(), to_turns( cur.getFieldAge() ) + cur.name(), cur.get_field_type(), + cur.get_field_intensity(), to_turns( cur.get_field_age() ) ); off++; // 10ish } @@ -1060,10 +1060,10 @@ int editmap::edit_ter() void editmap::update_fmenu_entry( uilist &fmenu, field &field, const field_id idx ) { int fdens = 1; - const field_t &ftype = fieldlist[idx]; - field_entry *fld = field.findField( idx ); + const field_t &ftype = all_field_types_enum_list[idx]; + field_entry *fld = field.find_field( idx ); if( fld != nullptr ) { - fdens = fld->getFieldDensity(); + fdens = fld->get_field_intensity(); } fmenu.entries[idx].txt = ftype.name( fdens - 1 ); if( fld != nullptr ) { @@ -1078,7 +1078,7 @@ void editmap::setup_fmenu( uilist &fmenu ) fmenu.entries.clear(); for( int i = 0; i < num_fields; i++ ) { const field_id fid = static_cast( i ); - const field_t &ftype = fieldlist[fid]; + const field_t &ftype = all_field_types_enum_list[fid]; int fdens = 1; std::string fname = ftype.name( fdens - 1 ); fmenu.addentry( fid, true, -2, fname ); @@ -1114,9 +1114,9 @@ int editmap::edit_fld() ) { int fdens = 0; const field_id idx = static_cast( fmenu.selected ); - field_entry *fld = cur_field->findField( idx ); + field_entry *fld = cur_field->find_field( idx ); if( fld != nullptr ) { - fdens = fld->getFieldDensity(); + fdens = fld->get_field_intensity(); } int fsel_dens = fdens; if( fmenu.ret > 0 ) { @@ -1126,7 +1126,7 @@ int editmap::edit_fld() femenu.w_y = fmenu.w_height; femenu.w_x = offsetX; - const field_t &ftype = fieldlist[idx]; + const field_t &ftype = all_field_types_enum_list[idx]; femenu.text = ftype.name( fdens == 0 ? 0 : fdens - 1 ); femenu.addentry( pgettext( "map editor: used to describe a clean field (e.g. without blood)", "-clear-" ) ); @@ -1150,10 +1150,10 @@ int editmap::edit_fld() for( auto &elem : target_list ) { const auto fid = static_cast( idx ); field &t_field = g->m.get_field( elem ); - field_entry *t_fld = t_field.findField( fid ); + field_entry *t_fld = t_field.find_field( fid ); int t_dens = 0; if( t_fld != nullptr ) { - t_dens = t_fld->getFieldDensity(); + t_dens = t_fld->get_field_intensity(); } if( fsel_dens != 0 ) { if( t_dens != 0 ) { @@ -1175,7 +1175,7 @@ int editmap::edit_fld() } else if( fmenu.ret == 0 ) { for( auto &elem : target_list ) { field &t_field = g->m.get_field( elem ); - while( t_field.fieldCount() > 0 ) { + while( t_field.field_count() > 0 ) { const auto rmid = t_field.begin()->first; g->m.remove_field( elem, rmid ); if( elem == target ) { diff --git a/src/field.cpp b/src/field.cpp index 346a2bb30e17e..3e6b9a7d98339 100644 --- a/src/field.cpp +++ b/src/field.cpp @@ -13,7 +13,7 @@ #include "optional.h" /** ID, {name}, symbol, priority, {color}, {transparency}, {dangerous}, half-life, {move_cost}, phase_id (of matter), accelerated_decay (decay outside of reality bubble) **/ -const std::array fieldlist = { { +const std::array all_field_types_enum_list = { { { "fd_null", {"", "", ""}, '%', 0, @@ -469,7 +469,7 @@ const std::array fieldlist = { { field_id field_from_ident( const std::string &field_ident ) { for( size_t i = 0; i < num_fields; i++ ) { - if( fieldlist[i].id == field_ident ) { + if( all_field_types_enum_list[i].id == field_ident ) { return static_cast( i ); } } @@ -479,35 +479,35 @@ field_id field_from_ident( const std::string &field_ident ) int field_entry::move_cost() const { - return fieldlist[type].move_cost[ getFieldDensity() - 1 ]; + return all_field_types_enum_list[type].move_cost[ get_field_intensity() - 1 ]; } nc_color field_entry::color() const { - return fieldlist[type].color[density - 1]; + return all_field_types_enum_list[type].color[density - 1]; } char field_entry::symbol() const { - return fieldlist[type].sym; + return all_field_types_enum_list[type].sym; } -field_id field_entry::getFieldType() const +field_id field_entry::get_field_type() const { return type; } -int field_entry::getFieldDensity() const +int field_entry::get_field_intensity() const { return density; } -time_duration field_entry::getFieldAge() const +time_duration field_entry::get_field_age() const { return age; } -field_id field_entry::setFieldType( const field_id new_field_id ) +field_id field_entry::set_field_type( const field_id new_field_id ) { // TODO: Better bounds checking. @@ -521,13 +521,13 @@ field_id field_entry::setFieldType( const field_id new_field_id ) } -int field_entry::setFieldDensity( const int new_density ) +int field_entry::set_field_density( const int new_density ) { is_alive = new_density > 0; return density = std::max( std::min( new_density, MAX_FIELD_DENSITY ), 1 ); } -time_duration field_entry::setFieldAge( const time_duration &new_age ) +time_duration field_entry::set_field_age( const time_duration &new_age ) { return age = new_age; } @@ -538,11 +538,11 @@ field::field() } /* -Function: findField +Function: find_field Returns a field entry corresponding to the field_id parameter passed in. If no fields are found then returns NULL. -Good for checking for existence of a field: if(myfield.findField(fd_fire)) would tell you if the field is on fire. +Good for checking for existence of a field: if(myfield.find_field(fd_fire)) would tell you if the field is on fire. */ -field_entry *field::findField( const field_id field_to_find ) +field_entry *field::find_field( const field_id field_to_find ) { const auto it = field_list.find( field_to_find ); if( it != field_list.end() ) { @@ -551,7 +551,7 @@ field_entry *field::findField( const field_id field_to_find ) return nullptr; } -const field_entry *field::findFieldc( const field_id field_to_find ) const +const field_entry *field::find_field_c( const field_id field_to_find ) const { const auto it = field_list.find( field_to_find ); if( it != field_list.end() ) { @@ -560,9 +560,9 @@ const field_entry *field::findFieldc( const field_id field_to_find ) const return nullptr; } -const field_entry *field::findField( const field_id field_to_find ) const +const field_entry *field::find_field( const field_id field_to_find ) const { - return findFieldc( field_to_find ); + return find_field_c( field_to_find ); } /* @@ -570,36 +570,37 @@ Function: addfield Inserts the given field_id into the field list for a given tile if it does not already exist. Returns false if the field_id already exists, true otherwise. If the field already exists, it will return false BUT it will add the density/age to the current values for upkeep. -If you wish to modify an already existing field use findField and modify the result. +If you wish to modify an already existing field use find_field and modify the result. Density defaults to 1, and age to 0 (permanent) if not specified. */ -bool field::addField( const field_id field_to_add, const int new_density, - const time_duration &new_age ) +bool field::add_field( const field_id field_to_add, const int new_density, + const time_duration &new_age ) { auto it = field_list.find( field_to_add ); - if( fieldlist[field_to_add].priority >= fieldlist[draw_symbol].priority ) { + if( all_field_types_enum_list[field_to_add].priority >= + all_field_types_enum_list[draw_symbol].priority ) { draw_symbol = field_to_add; } if( it != field_list.end() ) { //Already exists, but lets update it. This is tentative. - it->second.setFieldDensity( it->second.getFieldDensity() + new_density ); + it->second.set_field_density( it->second.get_field_intensity() + new_density ); return false; } field_list[field_to_add] = field_entry( field_to_add, new_density, new_age ); return true; } -bool field::removeField( field_id const field_to_remove ) +bool field::remove_field( field_id const field_to_remove ) { const auto it = field_list.find( field_to_remove ); if( it == field_list.end() ) { return false; } - removeField( it ); + remove_field( it ); return true; } -void field::removeField( std::map::iterator const it ) +void field::remove_field( std::map::iterator const it ) { field_list.erase( it ); if( field_list.empty() ) { @@ -607,7 +608,8 @@ void field::removeField( std::map::iterator const it ) } else { draw_symbol = fd_null; for( auto &fld : field_list ) { - if( fieldlist[fld.first].priority >= fieldlist[draw_symbol].priority ) { + if( all_field_types_enum_list[fld.first].priority >= + all_field_types_enum_list[draw_symbol].priority ) { draw_symbol = fld.first; } } @@ -615,10 +617,10 @@ void field::removeField( std::map::iterator const it ) } /* -Function: fieldCount +Function: field_count Returns the number of fields existing on the current tile. */ -unsigned int field::fieldCount() const +unsigned int field::field_count() const { return field_list.size(); } @@ -650,10 +652,10 @@ std::string field_t::name( const int density ) const } /* -Function: fieldSymbol +Function: field_symbol Returns the last added field from the tile for drawing purposes. */ -field_id field::fieldSymbol() const +field_id field::field_symbol() const { return draw_symbol; } @@ -669,6 +671,6 @@ int field::move_cost() const bool field_type_dangerous( field_id id ) { - const field_t &ft = fieldlist[id]; + const field_t &ft = all_field_types_enum_list[id]; return ft.dangerous[0] || ft.dangerous[1] || ft.dangerous[2]; } diff --git a/src/field.h b/src/field.h index 08ea930c61012..f9949dca528ea 100644 --- a/src/field.h +++ b/src/field.h @@ -60,7 +60,7 @@ struct field_t { bool accelerated_decay; }; -//The master list of id's for a field, corresponding to the fieldlist array. +//The master list of id's for a field, corresponding to the all_field_types_enum_list array. enum field_id : int { fd_null = 0, fd_blood, @@ -119,7 +119,7 @@ enum field_id : int { /* Controls the master listing of all possible field effects, indexed by a field_id. Does not store active fields, just metadata. */ -extern const std::array fieldlist; +extern const std::array all_field_types_enum_list; /** * Returns the field_id of the field whose ident (field::id) matches the given ident. * Returns fd_null (and prints a debug message!) if the field ident is unknown. @@ -151,48 +151,48 @@ class field_entry int move_cost() const; //Returns the field_id of the current field entry. - field_id getFieldType() const; + field_id get_field_type() const; //Returns the current density (aka intensity) of the current field entry. - int getFieldDensity() const; + int get_field_intensity() const; //Allows you to modify the field_id of the current field entry. //This probably shouldn't be called outside of field::replaceField, as it //breaks the field drawing code and field lookup - field_id setFieldType( const field_id new_field_id ); + field_id set_field_type( const field_id new_field_id ); //Allows you to modify the density of the current field entry. - int setFieldDensity( const int new_density ); + int set_field_density( const int new_density ); /// @returns @ref age. - time_duration getFieldAge() const; + time_duration get_field_age() const; /// Sets @ref age to the given value. /// @returns New value of @ref age. - time_duration setFieldAge( const time_duration &new_age ); + time_duration set_field_age( const time_duration &new_age ); /// Adds given value to @ref age. /// @returns New value of @ref age. time_duration mod_age( const time_duration &mod ) { - return setFieldAge( getFieldAge() + mod ); + return set_field_age( get_field_age() + mod ); } //Returns if the current field is dangerous or not. bool is_dangerous() const { - return fieldlist[type].dangerous[density - 1]; + return all_field_types_enum_list[type].dangerous[density - 1]; } //Returns the display name of the current field given its current density. //IE: light smoke, smoke, heavy smoke std::string name() const { - return fieldlist[type].name( density - 1 ); + return all_field_types_enum_list[type].name( density - 1 ); } //Returns true if this is an active field, false if it should be removed. - bool isAlive() { + bool is_field_alive() { return is_alive; } bool decays_on_actualize() const { - return fieldlist[type].accelerated_decay; + return all_field_types_enum_list[type].accelerated_decay; } private: @@ -206,9 +206,9 @@ class field_entry * A variable sized collection of field entries on a given map square. * It contains one (at most) entry of each field type (e. g. one smoke entry and one * fire entry, but not two fire entries). - * Use @ref findField to get the field entry of a specific type, or iterate over + * Use @ref find_field to get the field entry of a specific type, or iterate over * all entries via @ref begin and @ref end (allows range based iteration). - * There is @ref fieldSymbol to specific which field should be drawn on the map. + * There is @ref field_symbol to specific which field should be drawn on the map. */ class field { @@ -219,26 +219,27 @@ class field * Returns a field entry corresponding to the field_id parameter passed in. * If no fields are found then nullptr is returned. */ - field_entry *findField( const field_id field_to_find ); + field_entry *find_field( const field_id field_to_find ); /** * Returns a field entry corresponding to the field_id parameter passed in. * If no fields are found then nullptr is returned. */ - const field_entry *findFieldc( const field_id field_to_find ) const; + const field_entry *find_field_c( const field_id field_to_find ) const; /** * Returns a field entry corresponding to the field_id parameter passed in. * If no fields are found then nullptr is returned. */ - const field_entry *findField( const field_id field_to_find ) const; + const field_entry *find_field( const field_id field_to_find ) const; /** * Inserts the given field_id into the field list for a given tile if it does not already exist. - * If you wish to modify an already existing field use findField and modify the result. + * If you wish to modify an already existing field use find_field and modify the result. * Density defaults to 1, and age to 0 (permanent) if not specified. * The density is added to an existing field entry, but the age is only used for newly added entries. * @return false if the field_id already exists, true otherwise. */ - bool addField( field_id field_to_add, int new_density = 1, const time_duration &new_age = 0_turns ); + bool add_field( field_id field_to_add, int new_density = 1, + const time_duration &new_age = 0_turns ); /** * Removes the field entry with a type equal to the field_id parameter. @@ -246,20 +247,20 @@ class field * function returns true. * @return True if the field was removed, false if it did not exist in the first place. */ - bool removeField( field_id field_to_remove ); + bool remove_field( field_id field_to_remove ); /** * Make sure to decrement the field counter in the submap. * Removes the field entry, the iterator must point into @ref field_list and must be valid. */ - void removeField( std::map::iterator ); + void remove_field( std::map::iterator ); //Returns the number of fields existing on the current tile. - unsigned int fieldCount() const; + unsigned int field_count() const; /** * Returns the id of the field that should be drawn. */ - field_id fieldSymbol() const; + field_id field_symbol() const; //Returns the vector iterator to begin searching through the list. std::map::iterator begin(); diff --git a/src/game.cpp b/src/game.cpp index 803efd11b43fb..9930be213d586 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -5358,11 +5358,11 @@ static const std::string get_fire_fuel_string( const tripoint &examp ) if( fire ) { std::stringstream ss; ss << string_format( _( "There is a fire here." ) ) << " "; - if( fire->getFieldDensity() > 1 ) { + if( fire->get_field_intensity() > 1 ) { ss << string_format( _( "It's too big and unpredictable to evaluate how long it will last." ) ); return ss.str(); } - time_duration fire_age = fire->getFieldAge(); + time_duration fire_age = fire->get_field_age(); // half-life inclusion int mod = 5 - g->u.get_skill_level( skill_survival ); mod = std::max( mod, 0 ); @@ -8717,7 +8717,7 @@ bool game::prompt_dangerous_tile( const tripoint &dest_loc ) const const auto fields_here = m.field_at( u.pos() ); for( const auto &e : m.field_at( dest_loc ) ) { // warn before moving into a dangerous field except when already standing within a similar field - if( u.is_dangerous_field( e.second ) && fields_here.findField( e.first ) == nullptr ) { + if( u.is_dangerous_field( e.second ) && fields_here.find_field( e.first ) == nullptr ) { harmful_stuff.push_back( e.second.name() ); } } diff --git a/src/iuse.cpp b/src/iuse.cpp index 2a9e3d3e621d6..c755433b6f26a 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -4168,7 +4168,7 @@ int iuse::gasmask( player *p, item *it, bool t, const tripoint &pos ) const field &gasfield = g->m.field_at( pos ); for( auto &dfield : gasfield ) { const field_entry &entry = dfield.second; - const field_id fid = entry.getFieldType(); + const field_id fid = entry.get_field_type(); switch( fid ) { case fd_smoke: it->set_var( "gas_absorbed", it->get_var( "gas_absorbed", 0 ) + 12 ); diff --git a/src/lightmap.cpp b/src/lightmap.cpp index 552ed6302b56a..9c1ded1d1f34a 100644 --- a/src/lightmap.cpp +++ b/src/lightmap.cpp @@ -124,10 +124,10 @@ bool map::build_transparency_cache( const int zlev ) for( const auto &fld : cur_submap->fld[sx][sy] ) { const field_entry &cur = fld.second; - const field_id type = cur.getFieldType(); - const int density = cur.getFieldDensity(); + const field_id type = cur.get_field_type(); + const int density = cur.get_field_intensity(); - if( fieldlist[type].transparent[density - 1] ) { + if( all_field_types_enum_list[type].transparent[density - 1] ) { continue; } @@ -363,11 +363,11 @@ void map::generate_lightmap( const int zlev ) for( auto &fld : cur_submap->fld[sx][sy] ) { const field_entry *cur = &fld.second; // TODO: [lightmap] Attach light brightness to fields - switch( cur->getFieldType() ) { + switch( cur->get_field_type() ) { case fd_fire: - if( 3 == cur->getFieldDensity() ) { + if( 3 == cur->get_field_intensity() ) { add_light_source( p, 160 ); - } else if( 2 == cur->getFieldDensity() ) { + } else if( 2 == cur->get_field_intensity() ) { add_light_source( p, 60 ); } else { add_light_source( p, 20 ); @@ -379,9 +379,9 @@ void map::generate_lightmap( const int zlev ) break; case fd_electricity: case fd_plasma: - if( 3 == cur->getFieldDensity() ) { + if( 3 == cur->get_field_intensity() ) { add_light_source( p, 20 ); - } else if( 2 == cur->getFieldDensity() ) { + } else if( 2 == cur->get_field_intensity() ) { add_light_source( p, 4 ); } else { // Kinda a hack as the square will still get marked. @@ -389,9 +389,9 @@ void map::generate_lightmap( const int zlev ) } break; case fd_incendiary: - if( 3 == cur->getFieldDensity() ) { + if( 3 == cur->get_field_intensity() ) { add_light_source( p, 160 ); - } else if( 2 == cur->getFieldDensity() ) { + } else if( 2 == cur->get_field_intensity() ) { add_light_source( p, 60 ); } else { add_light_source( p, 20 ); diff --git a/src/map.cpp b/src/map.cpp index f83757ace58ab..aa041a1153388 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -2111,7 +2111,7 @@ void map::drop_vehicle( const tripoint &p ) void map::drop_fields( const tripoint &p ) { field &fld = field_at( p ); - if( fld.fieldCount() == 0 ) { + if( fld.field_count() == 0 ) { return; } @@ -2122,13 +2122,13 @@ void map::drop_fields( const tripoint &p ) // For now only drop cosmetic fields, which don't warrant per-turn check // Active fields "drop themselves" if( entry.decays_on_actualize() ) { - add_field( below, entry.getFieldType(), entry.getFieldDensity(), entry.getFieldAge() ); - dropped.push_back( entry.getFieldType() ); + add_field( below, entry.get_field_type(), entry.get_field_intensity(), entry.get_field_age() ); + dropped.push_back( entry.get_field_type() ); } } for( const auto &entry : dropped ) { - fld.removeField( entry ); + fld.remove_field( entry ); } } @@ -2714,17 +2714,17 @@ void map::decay_fields_and_scent( const time_duration &amount ) field &fields = cur_submap->fld[sx][sy]; if( !outside_cache[x][y] ) { - to_proc -= fields.fieldCount(); + to_proc -= fields.field_count(); continue; } for( auto &fp : fields ) { to_proc--; field_entry &cur = fp.second; - const field_id type = cur.getFieldType(); + const field_id type = cur.get_field_type(); switch( type ) { case fd_fire: - cur.setFieldAge( cur.getFieldAge() + amount_fire ); + cur.set_field_age( cur.get_field_age() + amount_fire ); break; case fd_blood: case fd_bile: @@ -2736,7 +2736,7 @@ void map::decay_fields_and_scent( const time_duration &amount ) case fd_blood_invertebrate: case fd_gibs_insect: case fd_gibs_invertebrate: - cur.setFieldAge( cur.getFieldAge() + amount_liquid ); + cur.set_field_age( cur.get_field_age() + amount_liquid ); break; case fd_smoke: case fd_toxic_gas: @@ -2757,7 +2757,7 @@ void map::decay_fields_and_scent( const time_duration &amount ) case fd_hot_air2: case fd_hot_air3: case fd_hot_air4: - cur.setFieldAge( cur.getFieldAge() + amount_gas ); + cur.set_field_age( cur.get_field_age() + amount_gas ); break; default: break; @@ -2845,7 +2845,7 @@ bool map::mop_spills( const tripoint &p ) fd_sludge }; for( field_id fid : to_check ) { - retval |= fld.removeField( fid ); + retval |= fld.remove_field( fid ); } if( const optional_vpart_position vp = veh_at( p ) ) { @@ -3730,10 +3730,10 @@ void map::shoot( const tripoint &p, projectile &proj, const bool hit_items ) const field_entry *fieldhit = get_field( p, fd_web ); if( fieldhit != nullptr ) { if( inc ) { - add_field( p, fd_fire, fieldhit->getFieldDensity() - 1 ); - } else if( dam > 5 + fieldhit->getFieldDensity() * 5 && - one_in( 5 - fieldhit->getFieldDensity() ) ) { - dam -= rng( 1, 2 + fieldhit->getFieldDensity() * 2 ); + add_field( p, fd_fire, fieldhit->get_field_intensity() - 1 ); + } else if( dam > 5 + fieldhit->get_field_intensity() * 5 && + one_in( 5 - fieldhit->get_field_intensity() ) ) { + dam -= rng( 1, 2 + fieldhit->get_field_intensity() * 2 ); remove_field( p, fd_web ); } } @@ -5396,7 +5396,7 @@ time_duration map::set_field_age( const tripoint &p, const field_id type, const const bool isoffset ) { if( field_entry *const field_ptr = get_field( p, type ) ) { - return field_ptr->setFieldAge( ( isoffset ? field_ptr->getFieldAge() : 0_turns ) + age ); + return field_ptr->set_field_age( ( isoffset ? field_ptr->get_field_age() : 0_turns ) + age ); } return -1_turns; } @@ -5409,9 +5409,9 @@ int map::set_field_strength( const tripoint &p, const field_id type, const int s { field_entry *field_ptr = get_field( p, type ); if( field_ptr != nullptr ) { - int adj = ( isoffset ? field_ptr->getFieldDensity() : 0 ) + str; + int adj = ( isoffset ? field_ptr->get_field_intensity() : 0 ) + str; if( adj > 0 ) { - field_ptr->setFieldDensity( adj ); + field_ptr->set_field_density( adj ); return adj; } else { remove_field( p, type ); @@ -5426,14 +5426,14 @@ int map::set_field_strength( const tripoint &p, const field_id type, const int s time_duration map::get_field_age( const tripoint &p, const field_id type ) const { - auto field_ptr = field_at( p ).findField( type ); - return field_ptr == nullptr ? -1_turns : field_ptr->getFieldAge(); + auto field_ptr = field_at( p ).find_field( type ); + return field_ptr == nullptr ? -1_turns : field_ptr->get_field_age(); } int map::get_field_strength( const tripoint &p, const field_id type ) const { - auto field_ptr = field_at( p ).findField( type ); - return ( field_ptr == nullptr ? 0 : field_ptr->getFieldDensity() ); + auto field_ptr = field_at( p ).find_field( type ); + return ( field_ptr == nullptr ? 0 : field_ptr->get_field_intensity() ); } field_entry *map::get_field( const tripoint &p, const field_id type ) @@ -5445,7 +5445,7 @@ field_entry *map::get_field( const tripoint &p, const field_id type ) point l; submap *const current_submap = get_submap_at( p, l ); - return current_submap->fld[l.x][l.y].findField( type ); + return current_submap->fld[l.x][l.y].find_field( type ); } bool map::add_field( const tripoint &p, const field_id type, int density, const time_duration &age ) @@ -5467,7 +5467,7 @@ bool map::add_field( const tripoint &p, const field_id type, int density, const submap *const current_submap = get_submap_at( p, l ); current_submap->is_uniform = false; - if( current_submap->fld[l.x][l.y].addField( type, density, age ) ) { + if( current_submap->fld[l.x][l.y].add_field( type, density, age ) ) { //Only adding it to the count if it doesn't exist. current_submap->field_count++; } @@ -5480,7 +5480,7 @@ bool map::add_field( const tripoint &p, const field_id type, int density, const // TODO: Make it skip transparent fields set_transparency_cache_dirty( p.z ); - const field_t &ft = fieldlist[type]; + const field_t &ft = all_field_types_enum_list[type]; if( field_type_dangerous( type ) ) { set_pathfinding_cache_dirty( p.z ); } @@ -5502,10 +5502,10 @@ void map::remove_field( const tripoint &p, const field_id field_to_remove ) point l; submap *const current_submap = get_submap_at( p, l ); - if( current_submap->fld[l.x][l.y].removeField( field_to_remove ) ) { + if( current_submap->fld[l.x][l.y].remove_field( field_to_remove ) ) { // Only adjust the count if the field actually existed. current_submap->field_count--; - const auto &fdata = fieldlist[ field_to_remove ]; + const auto &fdata = all_field_types_enum_list[ field_to_remove ]; for( bool i : fdata.transparent ) { if( !i ) { set_transparency_cache_dirty( p.z ); @@ -5906,10 +5906,10 @@ bool map::draw_maptile( const catacurses::window &w, const player &u, const trip sym = curr_trap.sym; } } - if( curr_field.fieldCount() > 0 ) { - const field_id &fid = curr_field.fieldSymbol(); - const field_entry *fe = curr_field.findField( fid ); - const field_t &f = fieldlist[fid]; + if( curr_field.field_count() > 0 ) { + const field_id &fid = curr_field.field_symbol(); + const field_entry *fe = curr_field.find_field( fid ); + const field_t &f = all_field_types_enum_list[fid]; if( f.sym == '&' || fe == nullptr ) { // Do nothing, a '&' indicates invisible fields. } else if( f.sym == '*' ) { @@ -7189,10 +7189,10 @@ void map::decay_cosmetic_fields( const tripoint &p, const time_duration &time_si const time_duration added_age = 2 * time_since_last_actualize / rng( 2, 4 ); fd.mod_age( added_age ); - const time_duration hl = fieldlist[ fd.getFieldType() ].halflife; - const int density_drop = fd.getFieldAge() / hl; + const time_duration hl = all_field_types_enum_list[ fd.get_field_type() ].halflife; + const int density_drop = fd.get_field_age() / hl; if( density_drop > 0 ) { - fd.setFieldDensity( fd.getFieldDensity() - density_drop ); + fd.set_field_density( fd.get_field_intensity() - density_drop ); fd.mod_age( -hl * density_drop ); } } @@ -8541,9 +8541,9 @@ void map::update_pathfinding_cache( int zlev ) const for( const auto &fld : tile.get_field() ) { const field_entry &cur = fld.second; - const field_id type = cur.getFieldType(); - const int density = cur.getFieldDensity(); - if( fieldlist[type].dangerous[density - 1] ) { + const field_id type = cur.get_field_type(); + const int density = cur.get_field_intensity(); + if( all_field_types_enum_list[type].dangerous[density - 1] ) { cur_value |= PF_FIELD; } } diff --git a/src/map_field.cpp b/src/map_field.cpp index 2cb1cfc1a342d..2726b6aec3c5f 100644 --- a/src/map_field.cpp +++ b/src/map_field.cpp @@ -202,11 +202,11 @@ bool map::process_fields_in_submap( submap *const current_submap, g->scent.set( tmp, 0 ); } - const int current_density = cur.getFieldDensity(); - const time_duration current_age = cur.getFieldAge(); + const int current_density = cur.get_field_intensity(); + const time_duration current_age = cur.get_field_age(); // Dissipate faster outdoors. if( is_outside( p ) ) { - cur.setFieldAge( current_age + outdoor_age_speedup ); + cur.set_field_age( current_age + outdoor_age_speedup ); } // Bail out if we don't meet the spread chance or required density. @@ -215,12 +215,12 @@ bool map::process_fields_in_submap( submap *const current_submap, } const auto can_spread_to = [&]( const maptile & dst, field_id curtype ) { - const field_entry *tmpfld = dst.get_field().findField( curtype ); + const field_entry *tmpfld = dst.get_field().find_field( curtype ); const auto &ter = dst.get_ter_t(); const auto &frn = dst.get_furn_t(); // Candidates are existing weaker fields or navigable/flagged tiles with no field. return ( ter_furn_movecost( ter, frn ) > 0 || ter_furn_has_flag( ter, frn, TFLAG_PERMEABLE ) ) && - ( tmpfld == nullptr || tmpfld->getFieldDensity() < cur.getFieldDensity() ); + ( tmpfld == nullptr || tmpfld->get_field_intensity() < cur.get_field_intensity() ); }; const auto spread_to = [&]( maptile & dst ) { @@ -228,15 +228,15 @@ bool map::process_fields_in_submap( submap *const current_submap, // Nearby gas grows thicker, and ages are shared. const time_duration age_fraction = current_age / current_density ; if( candidate_field != nullptr ) { - candidate_field->setFieldDensity( candidate_field->getFieldDensity() + 1 ); - cur.setFieldDensity( current_density - 1 ); - candidate_field->setFieldAge( candidate_field->getFieldAge() + age_fraction ); - cur.setFieldAge( current_age - age_fraction ); + candidate_field->set_field_density( candidate_field->get_field_intensity() + 1 ); + cur.set_field_density( current_density - 1 ); + candidate_field->set_field_age( candidate_field->get_field_age() + age_fraction ); + cur.set_field_age( current_age - age_fraction ); // Or, just create a new field. } else if( dst.add_field( curtype, 1, 0_turns ) ) { - dst.find_field( curtype )->setFieldAge( age_fraction ); - cur.setFieldDensity( current_density - 1 ); - cur.setFieldAge( current_age - age_fraction ); + dst.find_field( curtype )->set_field_age( age_fraction ); + cur.set_field_density( current_density - 1 ); + cur.set_field_age( current_age - age_fraction ); } }; @@ -338,7 +338,7 @@ bool map::process_fields_in_submap( submap *const current_submap, // More correctly: not just when the field is opaque, but when it changes state // to a more/less transparent one, or creates a non-transparent field nearby bool dirty_transparency_cache = false; - //Holds m.field_at(x,y).findField(fd_some_field) type returns. + //Holds m.field_at(x,y).find_field(fd_some_field) type returns. // Just to avoid typing that long string for a temp value. field_entry *tmpfld = nullptr; @@ -365,24 +365,24 @@ bool map::process_fields_in_submap( submap *const current_submap, //Iterating through all field effects in the submap's field. field_entry &cur = it->second; // The field might have been killed by processing a neighbor field - if( !cur.isAlive() ) { - if( !fieldlist[cur.getFieldType()].transparent[cur.getFieldDensity() - 1] ) { + if( !cur.is_field_alive() ) { + if( !all_field_types_enum_list[cur.get_field_type()].transparent[cur.get_field_intensity() - 1] ) { dirty_transparency_cache = true; } current_submap->field_count--; - curfield.removeField( it++ ); + curfield.remove_field( it++ ); continue; } - //Holds cur.getFieldType() as that is what the old system used before rewrite. - field_id curtype = cur.getFieldType(); - // Again, legacy support in the event someone Mods setFieldDensity to allow more values. - if( cur.getFieldDensity() > 3 || cur.getFieldDensity() < 1 ) { - debugmsg( "Whoooooa density of %d", cur.getFieldDensity() ); + //Holds cur.get_field_type() as that is what the old system used before rewrite. + field_id curtype = cur.get_field_type(); + // Again, legacy support in the event someone Mods set_field_density to allow more values. + if( cur.get_field_intensity() > 3 || cur.get_field_intensity() < 1 ) { + debugmsg( "Whoooooa density of %d", cur.get_field_intensity() ); } // Don't process "newborn" fields. This gives the player time to run if they need to. - if( cur.getFieldAge() == 0_turns ) { + if( cur.get_field_age() == 0_turns ) { curtype = fd_null; } @@ -403,14 +403,14 @@ bool map::process_fields_in_submap( submap *const current_submap, case fd_gibs_invertebrate: // Dissipate faster in water if( map_tile.get_ter_t().has_flag( TFLAG_SWIMMABLE ) ) { - cur.setFieldAge( cur.getFieldAge() + 25_minutes ); + cur.set_field_age( cur.get_field_age() + 25_minutes ); } break; case fd_acid: { const auto &ter = map_tile.get_ter_t(); if( ter.has_flag( TFLAG_SWIMMABLE ) ) { // Dissipate faster in water - cur.setFieldAge( cur.getFieldAge() + 2_minutes ); + cur.set_field_age( cur.get_field_age() + 2_minutes ); } // Try to fall by a z-level @@ -423,22 +423,22 @@ bool map::process_fields_in_submap( submap *const current_submap, maptile dst_tile = maptile_at_internal( dst ); field_entry *acid_there = dst_tile.find_field( fd_acid ); if( acid_there == nullptr ) { - dst_tile.add_field( fd_acid, cur.getFieldDensity(), cur.getFieldAge() ); + dst_tile.add_field( fd_acid, cur.get_field_intensity(), cur.get_field_age() ); } else { // Math can be a bit off, // but "boiling" falling acid can be allowed to be stronger // than acid that just lies there - const int sum_density = cur.getFieldDensity() + acid_there->getFieldDensity(); + const int sum_density = cur.get_field_intensity() + acid_there->get_field_intensity(); const int new_density = std::min( 3, sum_density ); // No way to get precise elapsed time, let's always reset // Allow falling acid to last longer than regular acid to show it off const time_duration new_age = -1_minutes * ( sum_density - new_density ); - acid_there->setFieldDensity( new_density ); - acid_there->setFieldAge( new_age ); + acid_there->set_field_density( new_density ); + acid_there->set_field_age( new_age ); } // Set ourselves up for removal - cur.setFieldDensity( 0 ); + cur.set_field_density( 0 ); } // TODO: Allow spreading to the sides if age < 0 && density == 3 @@ -453,8 +453,8 @@ bool map::process_fields_in_submap( submap *const current_submap, case fd_sludge: break; case fd_slime: - if( g->scent.get( p ) < cur.getFieldDensity() * 10 ) { - g->scent.set( p, cur.getFieldDensity() * 10 ); + if( g->scent.get( p ) < cur.get_field_intensity() * 10 ) { + g->scent.set( p, cur.get_field_intensity() * 10 ); } break; case fd_plasma: @@ -504,9 +504,9 @@ bool map::process_fields_in_submap( submap *const current_submap, } } - fire_data frd( cur.getFieldDensity(), !can_spread ); + fire_data frd( cur.get_field_intensity(), !can_spread ); // The highest # of items this fire can remove in one turn - int max_consume = cur.getFieldDensity() * 2; + int max_consume = cur.get_field_intensity() * 2; for( auto fuel = items_here.begin(); fuel != items_here.end() && consumed < max_consume; ) { // `item::burn` modifies the charges in order to simulate some of them getting @@ -545,54 +545,54 @@ bool map::process_fields_in_submap( submap *const current_submap, //Get the part of the vehicle in the fire. vehicle *veh = veh_at_internal( p, part ); // _internal skips the boundary check if( veh != nullptr ) { - veh->damage( part, cur.getFieldDensity() * 10, DT_HEAT, true ); + veh->damage( part, cur.get_field_intensity() * 10, DT_HEAT, true ); //Damage the vehicle in the fire. } if( can_spread ) { if( ter.has_flag( TFLAG_SWIMMABLE ) ) { // Flames die quickly on water - cur.setFieldAge( cur.getFieldAge() + 4_minutes ); + cur.set_field_age( cur.get_field_age() + 4_minutes ); } // Consume the terrain we're on if( ter_furn_has_flag( ter, frn, TFLAG_FLAMMABLE ) ) { // The fire feeds on the ground itself until max density. - time_added += 1_turns * ( 5 - cur.getFieldDensity() ); + time_added += 1_turns * ( 5 - cur.get_field_intensity() ); smoke += 2; smoke += static_cast( windpower / 5 ); - if( cur.getFieldDensity() > 1 && - one_in( 200 - cur.getFieldDensity() * 50 ) ) { + if( cur.get_field_intensity() > 1 && + one_in( 200 - cur.get_field_intensity() * 50 ) ) { destroy( p, false ); } } else if( ter_furn_has_flag( ter, frn, TFLAG_FLAMMABLE_HARD ) && one_in( 3 ) ) { // The fire feeds on the ground itself until max density. - time_added += 1_turns * ( 4 - cur.getFieldDensity() ); + time_added += 1_turns * ( 4 - cur.get_field_intensity() ); smoke += 2; smoke += static_cast( windpower / 5 ); - if( cur.getFieldDensity() > 1 && - one_in( 200 - cur.getFieldDensity() * 50 ) ) { + if( cur.get_field_intensity() > 1 && + one_in( 200 - cur.get_field_intensity() * 50 ) ) { destroy( p, false ); } } else if( ter.has_flag( TFLAG_FLAMMABLE_ASH ) ) { // The fire feeds on the ground itself until max density. - time_added += 1_turns * ( 5 - cur.getFieldDensity() ); + time_added += 1_turns * ( 5 - cur.get_field_intensity() ); smoke += 2; smoke += static_cast( windpower / 5 ); - if( cur.getFieldDensity() > 1 && - one_in( 200 - cur.getFieldDensity() * 50 ) ) { + if( cur.get_field_intensity() > 1 && + one_in( 200 - cur.get_field_intensity() * 50 ) ) { ter_set( p, t_dirt ); } } else if( frn.has_flag( TFLAG_FLAMMABLE_ASH ) ) { // The fire feeds on the ground itself until max density. - time_added += 1_turns * ( 5 - cur.getFieldDensity() ); + time_added += 1_turns * ( 5 - cur.get_field_intensity() ); smoke += 2; smoke += static_cast( windpower / 5 ); - if( cur.getFieldDensity() > 1 && - one_in( 200 - cur.getFieldDensity() * 50 ) ) { + if( cur.get_field_intensity() > 1 && + one_in( 200 - cur.get_field_intensity() * 50 ) ) { furn_set( p, f_ash ); add_item_or_charges( p, item( "ash" ) ); } @@ -605,22 +605,22 @@ bool map::process_fields_in_submap( submap *const current_submap, field_entry *fire_there = dst_tile.find_field( fd_fire ); if( fire_there == nullptr ) { dst_tile.add_field( fd_fire, 1, 0_turns ); - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } else { // Don't fuel raging fires or they'll burn forever // as they can produce small fires above themselves - int new_density = std::max( cur.getFieldDensity(), - fire_there->getFieldDensity() ); + int new_density = std::max( cur.get_field_intensity(), + fire_there->get_field_intensity() ); // Allow smaller fires to combine if( new_density < 3 && - cur.getFieldDensity() == fire_there->getFieldDensity() ) { + cur.get_field_intensity() == fire_there->get_field_intensity() ) { new_density++; } - fire_there->setFieldDensity( new_density ); + fire_there->set_field_density( new_density ); // A raging fire below us can support us for a while // Otherwise decay and decay fast if( new_density < 3 || one_in( 10 ) ) { - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } } @@ -630,12 +630,12 @@ bool map::process_fields_in_submap( submap *const current_submap, } // Lower age is a longer lasting fire if( time_added != 0_turns ) { - cur.setFieldAge( cur.getFieldAge() - time_added ); + cur.set_field_age( cur.get_field_age() - time_added ); } else if( can_spread || !ter_furn_has_flag( ter, frn, TFLAG_FIRE_CONTAINER ) ) { // Nothing to burn = fire should be dying out faster // Drain more power from big fires, so that they stop raging over nothing // Except for fires on stoves and fireplaces, those are made to keep the fire alive - cur.setFieldAge( cur.getFieldAge() + 10_seconds * cur.getFieldDensity() ); + cur.set_field_age( cur.get_field_age() + 10_seconds * cur.get_field_intensity() ); } // Below we will access our nearest 8 neighbors, so let's cache them now @@ -669,7 +669,7 @@ bool map::process_fields_in_submap( submap *const current_submap, // If the flames are big, they contribute to adjacent flames if( can_spread ) { - if( cur.getFieldDensity() > 1 && one_in( 3 ) ) { + if( cur.get_field_intensity() > 1 && one_in( 3 ) ) { // Basically: Scan around for a spot, // if there is more fire there, make it bigger and give it some fuel. // This is how big fires spend their excess age: @@ -677,21 +677,21 @@ bool map::process_fields_in_submap( submap *const current_submap, if( sheltered || windpower < 5 ) { end_it = static_cast( rng( 0, neighs.size() - 1 ) ); for( size_t i = ( end_it + 1 ) % neighs.size(), count = 0; - count != neighs.size() && cur.getFieldAge() < 0_turns; + count != neighs.size() && cur.get_field_age() < 0_turns; i = ( i + 1 ) % neighs.size(), count++ ) { maptile &dst = neighs[i]; auto dstfld = dst.find_field( fd_fire ); // If the fire exists and is weaker than ours, boost it if( dstfld != nullptr && - ( dstfld->getFieldDensity() <= cur.getFieldDensity() || - dstfld->getFieldAge() > cur.getFieldAge() ) && + ( dstfld->get_field_intensity() <= cur.get_field_intensity() || + dstfld->get_field_age() > cur.get_field_age() ) && ( in_pit == ( dst.get_ter() == t_pit ) ) ) { - if( dstfld->getFieldDensity() < 2 ) { - dstfld->setFieldDensity( dstfld->getFieldDensity() + 1 ); + if( dstfld->get_field_intensity() < 2 ) { + dstfld->set_field_density( dstfld->get_field_intensity() + 1 ); } - dstfld->setFieldAge( dstfld->getFieldAge() - 5_minutes ); - cur.setFieldAge( cur.getFieldAge() + 5_minutes ); + dstfld->set_field_age( dstfld->get_field_age() - 5_minutes ); + cur.set_field_age( cur.get_field_age() + 5_minutes ); } if( dstfld != nullptr ) { @@ -701,21 +701,21 @@ bool map::process_fields_in_submap( submap *const current_submap, } else { end_it = static_cast( rng( 0, neighbour_vec.size() - 1 ) ); for( size_t i = ( end_it + 1 ) % neighbour_vec.size(), count = 0; - count != neighbour_vec.size() && cur.getFieldAge() < 0_turns; + count != neighbour_vec.size() && cur.get_field_age() < 0_turns; i = ( i + 1 ) % neighbour_vec.size(), count++ ) { maptile &dst = neighbour_vec[i]; auto dstfld = dst.find_field( fd_fire ); // If the fire exists and is weaker than ours, boost it if( dstfld != nullptr && - ( dstfld->getFieldDensity() <= cur.getFieldDensity() || - dstfld->getFieldAge() > cur.getFieldAge() ) && + ( dstfld->get_field_intensity() <= cur.get_field_intensity() || + dstfld->get_field_age() > cur.get_field_age() ) && ( in_pit == ( dst.get_ter() == t_pit ) ) ) { - if( dstfld->getFieldDensity() < 2 ) { - dstfld->setFieldDensity( dstfld->getFieldDensity() + 1 ); + if( dstfld->get_field_intensity() < 2 ) { + dstfld->set_field_density( dstfld->get_field_intensity() + 1 ); } - dstfld->setFieldAge( dstfld->getFieldAge() - 5_minutes ); - cur.setFieldAge( cur.getFieldAge() + 5_minutes ); + dstfld->set_field_age( dstfld->get_field_age() - 5_minutes ); + cur.set_field_age( cur.get_field_age() + 5_minutes ); } if( dstfld != nullptr ) { @@ -723,7 +723,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } } } - } else if( cur.getFieldAge() < 0_turns && cur.getFieldDensity() < 3 ) { + } else if( cur.get_field_age() < 0_turns && cur.get_field_intensity() < 3 ) { // See if we can grow into a stage 2/3 fire, for this // burning neighbors are necessary in addition to // field age < 0, or alternatively, a LOT of fuel. @@ -736,34 +736,34 @@ bool map::process_fields_in_submap( submap *const current_submap, // 1. Calculate maximum field density based on fuel, -50 minutes is 2(medium), -500 minutes is 3(raging) // 2. Calculate maximum field density based on neighbors, 3 neighbors is 2(medium), 7 or more neighbors is 3(raging) // 3. Pick the higher maximum between 1. and 2. - if( cur.getFieldAge() < -500_minutes ) { + if( cur.get_field_age() < -500_minutes ) { maximum_density = 3; } else { for( auto &neigh : neighs ) { - if( neigh.get_field().findField( fd_fire ) != nullptr ) { + if( neigh.get_field().find_field( fd_fire ) != nullptr ) { adjacent_fires++; } } maximum_density = 1 + ( adjacent_fires >= 3 ) + ( adjacent_fires >= 7 ); - if( maximum_density < 2 && cur.getFieldAge() < -50_minutes ) { + if( maximum_density < 2 && cur.get_field_age() < -50_minutes ) { maximum_density = 2; } } // If we consumed a lot, the flames grow higher - if( cur.getFieldDensity() < maximum_density && cur.getFieldAge() < 0_turns ) { + if( cur.get_field_intensity() < maximum_density && cur.get_field_age() < 0_turns ) { // Fires under 0 age grow in size. Level 3 fires under 0 spread later on. // Weaken the newly-grown fire - cur.setFieldDensity( cur.getFieldDensity() + 1 ); - cur.setFieldAge( cur.getFieldAge() + 10_minutes * cur.getFieldDensity() ); + cur.set_field_density( cur.get_field_intensity() + 1 ); + cur.set_field_age( cur.get_field_age() + 10_minutes * cur.get_field_intensity() ); } } } // Consume adjacent fuel / terrain / webs to spread. // Allow raging fires (and only raging fires) to spread up // Spreading down is achieved by wrecking the walls/floor and then falling - if( zlevels && cur.getFieldDensity() == 3 && p.z < OVERMAP_HEIGHT ) { + if( zlevels && cur.get_field_intensity() == 3 && p.z < OVERMAP_HEIGHT ) { // Let it burn through the floor maptile dst = maptile_at_internal( {p.x, p.y, p.z + 1} ); const auto &dst_ter = dst.get_ter_t(); @@ -773,7 +773,7 @@ bool map::process_fields_in_submap( submap *const current_submap, dst_ter.has_flag( TFLAG_FLAMMABLE_HARD ) ) { field_entry *nearfire = dst.find_field( fd_fire ); if( nearfire != nullptr ) { - nearfire->setFieldAge( nearfire->getFieldAge() - 2_minutes ); + nearfire->set_field_age( nearfire->get_field_age() - 2_minutes ); } else { dst.add_field( fd_fire, 1, 0_turns ); } @@ -787,7 +787,7 @@ bool map::process_fields_in_submap( submap *const current_submap, for( size_t i = ( end_i + 1 ) % neighs.size(), count = 0; count != neighs.size(); i = ( i + 1 ) % neighs.size(), count++ ) { - if( one_in( cur.getFieldDensity() * 2 ) ) { + if( one_in( cur.get_field_intensity() * 2 ) ) { // Skip some processing to save on CPU continue; } @@ -805,7 +805,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } field_entry *nearwebfld = dst.find_field( fd_web ); - int spread_chance = 25 * ( cur.getFieldDensity() - 1 ); + int spread_chance = 25 * ( cur.get_field_intensity() - 1 ); if( nearwebfld != nullptr ) { spread_chance = 50 + spread_chance / 2; } @@ -813,11 +813,11 @@ bool map::process_fields_in_submap( submap *const current_submap, const auto &dster = dst.get_ter_t(); const auto &dsfrn = dst.get_furn_t(); // Allow weaker fires to spread occasionally - const int power = cur.getFieldDensity() + one_in( 5 ); + const int power = cur.get_field_intensity() + one_in( 5 ); if( can_spread && rng( 1, 100 ) < spread_chance && ( in_pit == ( dster.id.id() == t_pit ) ) && ( - ( power >= 3 && cur.getFieldAge() < 0_turns && one_in( 20 ) ) || + ( power >= 3 && cur.get_field_age() < 0_turns && one_in( 20 ) ) || ( power >= 2 && ( ter_furn_has_flag( dster, dsfrn, TFLAG_FLAMMABLE ) && one_in( 2 ) ) ) || ( power >= 2 && ( ter_furn_has_flag( dster, dsfrn, TFLAG_FLAMMABLE_ASH ) && one_in( 2 ) ) ) || ( power >= 3 && ( ter_furn_has_flag( dster, dsfrn, TFLAG_FLAMMABLE_HARD ) && one_in( 5 ) ) ) || @@ -829,12 +829,12 @@ bool map::process_fields_in_submap( submap *const current_submap, tmpfld = dst.find_field( fd_fire ); if( tmpfld != nullptr ) { // Make the new fire quite weak, so that it doesn't start jumping around instantly - tmpfld->setFieldAge( 2_minutes ); + tmpfld->set_field_age( 2_minutes ); // Consume a bit of our fuel - cur.setFieldAge( cur.getFieldAge() + 1_minutes ); + cur.set_field_age( cur.get_field_age() + 1_minutes ); } if( nearwebfld ) { - nearwebfld->setFieldDensity( 0 ); + nearwebfld->set_field_density( 0 ); } } } @@ -843,7 +843,7 @@ bool map::process_fields_in_submap( submap *const current_submap, for( size_t i = ( end_i + 1 ) % neighbour_vec.size(), count = 0; count != neighbour_vec.size(); i = ( i + 1 ) % neighbour_vec.size(), count++ ) { - if( one_in( cur.getFieldDensity() * 2 ) ) { + if( one_in( cur.get_field_intensity() * 2 ) ) { // Skip some processing to save on CPU continue; } @@ -865,7 +865,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } field_entry *nearwebfld = dst.find_field( fd_web ); - int spread_chance = 25 * ( cur.getFieldDensity() - 1 ); + int spread_chance = 25 * ( cur.get_field_intensity() - 1 ); if( nearwebfld != nullptr ) { spread_chance = 50 + spread_chance / 2; } @@ -873,11 +873,11 @@ bool map::process_fields_in_submap( submap *const current_submap, const auto &dster = dst.get_ter_t(); const auto &dsfrn = dst.get_furn_t(); // Allow weaker fires to spread occasionally - const int power = cur.getFieldDensity() + one_in( 5 ); + const int power = cur.get_field_intensity() + one_in( 5 ); if( can_spread && rng( 1, ( 100 - windpower ) ) < spread_chance && ( in_pit == ( dster.id.id() == t_pit ) ) && ( - ( power >= 3 && cur.getFieldAge() < 0_turns && one_in( 20 ) ) || + ( power >= 3 && cur.get_field_age() < 0_turns && one_in( 20 ) ) || ( power >= 2 && ( ter_furn_has_flag( dster, dsfrn, TFLAG_FLAMMABLE ) && one_in( 2 ) ) ) || ( power >= 2 && ( ter_furn_has_flag( dster, dsfrn, TFLAG_FLAMMABLE_ASH ) && one_in( 2 ) ) ) || ( power >= 3 && ( ter_furn_has_flag( dster, dsfrn, TFLAG_FLAMMABLE_HARD ) && one_in( 5 ) ) ) || @@ -889,12 +889,12 @@ bool map::process_fields_in_submap( submap *const current_submap, tmpfld = dst.find_field( fd_fire ); if( tmpfld != nullptr ) { // Make the new fire quite weak, so that it doesn't start jumping around instantly - tmpfld->setFieldAge( 2_minutes ); + tmpfld->set_field_age( 2_minutes ); // Consume a bit of our fuel - cur.setFieldAge( cur.getFieldAge() + 1_minutes ); + cur.set_field_age( cur.get_field_age() + 1_minutes ); } if( nearwebfld ) { - nearwebfld->setFieldDensity( 0 ); + nearwebfld->set_field_density( 0 ); } } } @@ -902,14 +902,14 @@ bool map::process_fields_in_submap( submap *const current_submap, // Create smoke once - above us if possible, at us otherwise if( !ter_furn_has_flag( ter, frn, TFLAG_SUPPRESS_SMOKE ) && rng( 0, ( 100 - windpower ) ) <= smoke && - rng( 3, 35 ) < cur.getFieldDensity() * 10 ) { + rng( 3, 35 ) < cur.get_field_intensity() * 10 ) { bool smoke_up = zlevels && p.z < OVERMAP_HEIGHT; if( smoke_up ) { tripoint up{p.x, p.y, p.z + 1}; maptile dst = maptile_at_internal( up ); const auto &dst_ter = dst.get_ter_t(); if( dst_ter.has_flag( TFLAG_NO_FLOOR ) ) { - dst.add_field( fd_smoke, rng( 1, cur.getFieldDensity() ), 0_turns ); + dst.add_field( fd_smoke, rng( 1, cur.get_field_intensity() ), 0_turns ); } else { // Can't create smoke above smoke_up = false; @@ -919,7 +919,7 @@ bool map::process_fields_in_submap( submap *const current_submap, if( !smoke_up ) { maptile dst = maptile_at_internal( p ); // Create thicker smoke - dst.add_field( fd_smoke, cur.getFieldDensity(), 0_turns ); + dst.add_field( fd_smoke, cur.get_field_intensity(), 0_turns ); } dirty_transparency_cache = true; // Smoke affects transparency @@ -929,7 +929,7 @@ bool map::process_fields_in_submap( submap *const current_submap, // Don't produce too much of it if we have a lot fires nearby, they produce // radiant heat which does what hot air would do anyway if( adjacent_fires < 5 && rng( 0, 4 - adjacent_fires ) ) { - create_hot_air( p, cur.getFieldDensity() ); + create_hot_air( p, cur.get_field_intensity() ); } } break; @@ -948,7 +948,7 @@ bool map::process_fields_in_submap( submap *const current_submap, case fd_fungal_haze: dirty_transparency_cache = true; spread_gas( cur, p, curtype, 13, 5_turns ); - if( one_in( 10 - 2 * cur.getFieldDensity() ) ) { + if( one_in( 10 - 2 * cur.get_field_intensity() ) ) { // Haze'd terrain fungal_effects( *g, g->m ).spread_fungus( p ); } @@ -1003,7 +1003,7 @@ bool map::process_fields_in_submap( submap *const current_submap, case fd_nuke_gas: { dirty_transparency_cache = true; - int extra_radiation = rng( 0, cur.getFieldDensity() ); + int extra_radiation = rng( 0, cur.get_field_intensity() ); adjust_radiation( p, extra_radiation ); spread_gas( cur, p, curtype, 15, 1_minutes ); break; @@ -1022,13 +1022,13 @@ bool map::process_fields_in_submap( submap *const current_submap, case fd_gas_vent: { dirty_transparency_cache = true; - for( const tripoint &pnt : points_in_radius( p, cur.getFieldDensity() - 1 ) ) { + for( const tripoint &pnt : points_in_radius( p, cur.get_field_intensity() - 1 ) ) { field &wandering_field = get_field( pnt ); - tmpfld = wandering_field.findField( fd_toxic_gas ); - if( tmpfld && tmpfld->getFieldDensity() < cur.getFieldDensity() ) { - tmpfld->setFieldDensity( tmpfld->getFieldDensity() + 1 ); + tmpfld = wandering_field.find_field( fd_toxic_gas ); + if( tmpfld && tmpfld->get_field_intensity() < cur.get_field_intensity() ) { + tmpfld->set_field_density( tmpfld->get_field_intensity() + 1 ); } else { - add_field( pnt, fd_toxic_gas, cur.getFieldDensity() ); + add_field( pnt, fd_toxic_gas, cur.get_field_intensity() ); } } } @@ -1036,55 +1036,55 @@ bool map::process_fields_in_submap( submap *const current_submap, case fd_smoke_vent: { dirty_transparency_cache = true; - for( const tripoint &pnt : points_in_radius( p, cur.getFieldDensity() - 1 ) ) { + for( const tripoint &pnt : points_in_radius( p, cur.get_field_intensity() - 1 ) ) { field &wandering_field = get_field( pnt ); - tmpfld = wandering_field.findField( fd_smoke ); - if( tmpfld && tmpfld->getFieldDensity() < cur.getFieldDensity() ) { - tmpfld->setFieldDensity( tmpfld->getFieldDensity() + 1 ); + tmpfld = wandering_field.find_field( fd_smoke ); + if( tmpfld && tmpfld->get_field_intensity() < cur.get_field_intensity() ) { + tmpfld->set_field_density( tmpfld->get_field_intensity() + 1 ); } else { - add_field( pnt, fd_smoke, cur.getFieldDensity() ); + add_field( pnt, fd_smoke, cur.get_field_intensity() ); } } } break; case fd_fire_vent: - if( cur.getFieldDensity() > 1 ) { + if( cur.get_field_intensity() > 1 ) { if( one_in( 3 ) ) { - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } - create_hot_air( p, cur.getFieldDensity() ); + create_hot_air( p, cur.get_field_intensity() ); } else { dirty_transparency_cache = true; - add_field( p, fd_flame_burst, 3, cur.getFieldAge() ); - cur.setFieldDensity( 0 ); + add_field( p, fd_flame_burst, 3, cur.get_field_age() ); + cur.set_field_density( 0 ); } break; case fd_flame_burst: - if( cur.getFieldDensity() > 1 ) { - cur.setFieldDensity( cur.getFieldDensity() - 1 ); - create_hot_air( p, cur.getFieldDensity() ); + if( cur.get_field_intensity() > 1 ) { + cur.set_field_density( cur.get_field_intensity() - 1 ); + create_hot_air( p, cur.get_field_intensity() ); } else { dirty_transparency_cache = true; - add_field( p, fd_fire_vent, 3, cur.getFieldAge() ); - cur.setFieldDensity( 0 ); + add_field( p, fd_fire_vent, 3, cur.get_field_age() ); + cur.set_field_density( 0 ); } break; case fd_electricity: if( !one_in( 5 ) ) { // 4 in 5 chance to spread std::vector valid; - if( impassable( p ) && cur.getFieldDensity() > 1 ) { // We're grounded + if( impassable( p ) && cur.get_field_intensity() > 1 ) { // We're grounded int tries = 0; tripoint pnt; pnt.z = p.z; - while( tries < 10 && cur.getFieldAge() < 5_minutes && cur.getFieldDensity() > 1 ) { + while( tries < 10 && cur.get_field_age() < 5_minutes && cur.get_field_intensity() > 1 ) { pnt.x = p.x + rng( -1, 1 ); pnt.y = p.y + rng( -1, 1 ); if( passable( pnt ) ) { - add_field( pnt, fd_electricity, 1, cur.getFieldAge() + 1_turns ); - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + add_field( pnt, fd_electricity, 1, cur.get_field_age() + 1_turns ); + cur.set_field_density( cur.get_field_intensity() - 1 ); tries = 0; } else { tries++; @@ -1098,20 +1098,20 @@ bool map::process_fields_in_submap( submap *const current_submap, } if( valid.empty() ) { // Spread to adjacent space, then tripoint dst( p.x + rng( -1, 1 ), p.y + rng( -1, 1 ), p.z ); - field_entry *elec = get_field( dst ).findField( fd_electricity ); + field_entry *elec = get_field( dst ).find_field( fd_electricity ); if( passable( dst ) && elec != nullptr && - elec->getFieldDensity() < 3 ) { - elec->setFieldDensity( elec->getFieldDensity() + 1 ); - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + elec->get_field_intensity() < 3 ) { + elec->set_field_density( elec->get_field_intensity() + 1 ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } else if( passable( dst ) ) { - add_field( dst, fd_electricity, 1, cur.getFieldAge() + 1_turns ); + add_field( dst, fd_electricity, 1, cur.get_field_age() + 1_turns ); } - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } - while( !valid.empty() && cur.getFieldDensity() > 1 ) { + while( !valid.empty() && cur.get_field_intensity() > 1 ) { const tripoint target = random_entry_removed( valid ); - add_field( target, fd_electricity, 1, cur.getFieldAge() + 1_turns ); - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + add_field( target, fd_electricity, 1, cur.get_field_age() + 1_turns ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } } } @@ -1125,9 +1125,9 @@ bool map::process_fields_in_submap( submap *const current_submap, mtype_id( "mon_blank" ), } }; - if( cur.getFieldDensity() < 3 && calendar::once_every( 6_hours ) && one_in( 10 ) ) { - cur.setFieldDensity( cur.getFieldDensity() + 1 ); - } else if( cur.getFieldDensity() == 3 && one_in( 600 ) ) { // Spawn nether creature! + if( cur.get_field_intensity() < 3 && calendar::once_every( 6_hours ) && one_in( 10 ) ) { + cur.set_field_density( cur.get_field_intensity() + 1 ); + } else if( cur.get_field_intensity() == 3 && one_in( 600 ) ) { // Spawn nether creature! g->summon_mon( random_entry( monids ), p ); } } @@ -1181,12 +1181,12 @@ bool map::process_fields_in_submap( submap *const current_submap, break; case fd_shock_vent: - if( cur.getFieldDensity() > 1 ) { + if( cur.get_field_intensity() > 1 ) { if( one_in( 5 ) ) { - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } } else { - cur.setFieldDensity( 3 ); + cur.set_field_density( 3 ); int num_bolts = rng( 3, 6 ); for( int i = 0; i < num_bolts; i++ ) { int xdir = 0; @@ -1222,16 +1222,16 @@ bool map::process_fields_in_submap( submap *const current_submap, break; case fd_acid_vent: - if( cur.getFieldDensity() > 1 ) { - if( cur.getFieldAge() >= 1_minutes ) { - cur.setFieldDensity( cur.getFieldDensity() - 1 ); - cur.setFieldAge( 0_turns ); + if( cur.get_field_intensity() > 1 ) { + if( cur.get_field_age() >= 1_minutes ) { + cur.set_field_density( cur.get_field_intensity() - 1 ); + cur.set_field_age( 0_turns ); } } else { - cur.setFieldDensity( 3 ); + cur.set_field_density( 3 ); for( const tripoint &t : points_in_radius( p, 5 ) ) { const field_entry *acid = get_field( t, fd_acid ); - if( acid != nullptr && acid->getFieldDensity() == 0 ) { + if( acid != nullptr && acid->get_field_intensity() == 0 ) { int newdens = 3 - ( rl_dist( p, t ) / 2 ) + ( one_in( 3 ) ? 1 : 0 ); if( newdens > 3 ) { newdens = 3; @@ -1248,28 +1248,28 @@ bool map::process_fields_in_submap( submap *const current_submap, dirty_transparency_cache = true; // Poor bees are vulnerable to so many other fields. // TODO: maybe adjust effects based on different fields. - if( curfield.findField( fd_web ) || - curfield.findField( fd_fire ) || - curfield.findField( fd_smoke ) || - curfield.findField( fd_toxic_gas ) || - curfield.findField( fd_tear_gas ) || - curfield.findField( fd_relax_gas ) || - curfield.findField( fd_nuke_gas ) || - curfield.findField( fd_gas_vent ) || - curfield.findField( fd_smoke_vent ) || - curfield.findField( fd_fungicidal_gas ) || - curfield.findField( fd_fire_vent ) || - curfield.findField( fd_flame_burst ) || - curfield.findField( fd_electricity ) || - curfield.findField( fd_fatigue ) || - curfield.findField( fd_shock_vent ) || - curfield.findField( fd_plasma ) || - curfield.findField( fd_laser ) || - curfield.findField( fd_dazzling ) || - curfield.findField( fd_electricity ) || - curfield.findField( fd_incendiary ) ) { + if( curfield.find_field( fd_web ) || + curfield.find_field( fd_fire ) || + curfield.find_field( fd_smoke ) || + curfield.find_field( fd_toxic_gas ) || + curfield.find_field( fd_tear_gas ) || + curfield.find_field( fd_relax_gas ) || + curfield.find_field( fd_nuke_gas ) || + curfield.find_field( fd_gas_vent ) || + curfield.find_field( fd_smoke_vent ) || + curfield.find_field( fd_fungicidal_gas ) || + curfield.find_field( fd_fire_vent ) || + curfield.find_field( fd_flame_burst ) || + curfield.find_field( fd_electricity ) || + curfield.find_field( fd_fatigue ) || + curfield.find_field( fd_shock_vent ) || + curfield.find_field( fd_plasma ) || + curfield.find_field( fd_laser ) || + curfield.find_field( fd_dazzling ) || + curfield.find_field( fd_electricity ) || + curfield.find_field( fd_incendiary ) ) { // Kill them at the end of processing. - cur.setFieldDensity( 0 ); + cur.set_field_density( 0 ); } else { // Bees chase the player if in range, wander randomly otherwise. if( !g->u.is_underwater() && @@ -1285,10 +1285,10 @@ bool map::process_fields_in_submap( submap *const current_submap, // TODO: Figure out a way to merge bee fields without allowing // Them to effectively move several times in a turn depending // on iteration direction. - if( !target_field.findField( fd_bees ) ) { + if( !target_field.find_field( fd_bees ) ) { add_field( tripoint( candidate_position, p.z ), fd_bees, - cur.getFieldDensity(), cur.getFieldAge() ); - cur.setFieldDensity( 0 ); + cur.get_field_intensity(), cur.get_field_age() ); + cur.set_field_density( 0 ); break; } } @@ -1314,7 +1314,7 @@ bool map::process_fields_in_submap( submap *const current_submap, } spread_gas( cur, p, curtype, 66, 4_minutes ); - create_hot_air( p, cur.getFieldDensity() ); + create_hot_air( p, cur.get_field_intensity() ); } break; @@ -1329,7 +1329,7 @@ bool map::process_fields_in_submap( submap *const current_submap, //check the terrain and replace it accordingly to simulate the fungus dieing off const auto &ter = map_tile.get_ter_t(); const auto &frn = map_tile.get_furn_t(); - const int density = cur.getFieldDensity(); + const int density = cur.get_field_intensity(); if( ter.has_flag( "FUNGUS" ) && one_in( 10 / density ) ) { ter_set( p, t_dirt ); } @@ -1345,16 +1345,16 @@ bool map::process_fields_in_submap( submap *const current_submap, } // switch (curtype) - cur.setFieldAge( cur.getFieldAge() + 1_turns ); - auto &fdata = fieldlist[cur.getFieldType()]; - if( fdata.halflife > 0_turns && cur.getFieldAge() > 0_turns && - dice( 2, to_turns( cur.getFieldAge() ) ) > to_turns( fdata.halflife ) ) { - cur.setFieldAge( 0_turns ); - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + cur.set_field_age( cur.get_field_age() + 1_turns ); + auto &fdata = all_field_types_enum_list[cur.get_field_type()]; + if( fdata.halflife > 0_turns && cur.get_field_age() > 0_turns && + dice( 2, to_turns( cur.get_field_age() ) ) > to_turns( fdata.halflife ) ) { + cur.set_field_age( 0_turns ); + cur.set_field_density( cur.get_field_intensity() - 1 ); } - if( !cur.isAlive() ) { + if( !cur.is_field_alive() ) { current_submap->field_count--; - curfield.removeField( it++ ); + curfield.remove_field( it++ ); } else { ++it; } @@ -1389,16 +1389,16 @@ void map::player_in_field( player &u ) } // Iterate through all field effects on this tile. - // Do not remove the field with removeField, instead set it's density to 0. It will be removed + // Do not remove the field with remove_field, instead set it's density to 0. It will be removed // later by the field processing, which will also adjust field_count accordingly. for( auto &field_list_it : curfield ) { field_entry &cur = field_list_it.second; - if( !cur.isAlive() ) { + if( !cur.is_field_alive() ) { continue; } //Do things based on what field effect we are currently in. - switch( cur.getFieldType() ) { + switch( cur.get_field_type() ) { case fd_null: case fd_blood: // It doesn't actually do anything //necessary to add other types of blood? case fd_bile: // Ditto @@ -1415,13 +1415,13 @@ void map::player_in_field( player &u ) //Moving through multiple webs stacks the effect. if( !u.has_trait( trait_id( "WEB_WALKER" ) ) && !u.in_vehicle ) { //between 5 and 15 minus your current web level. - u.add_effect( effect_webbed, 1_turns, num_bp, true, cur.getFieldDensity() ); - cur.setFieldDensity( 0 ); //Its spent. + u.add_effect( effect_webbed, 1_turns, num_bp, true, cur.get_field_intensity() ); + cur.set_field_density( 0 ); //Its spent. continue; //If you are in a vehicle destroy the web. //It should of been destroyed when you ran over it anyway. } else if( u.in_vehicle ) { - cur.setFieldDensity( 0 ); + cur.set_field_density( 0 ); continue; } } @@ -1439,7 +1439,7 @@ void map::player_in_field( player &u ) break; } - const int density = cur.getFieldDensity(); + const int density = cur.get_field_intensity(); int total_damage = 0; // Use a helper for a bit less boilerplate const auto burn_part = [&]( body_part bp, const int scale ) { @@ -1497,16 +1497,16 @@ void map::player_in_field( player &u ) } u.add_msg_player_or_npc( m_bad, _( "The sap sticks to you!" ), _( "The sap sticks to !" ) ); - u.add_effect( effect_sap, cur.getFieldDensity() * 2_turns ); - cur.setFieldDensity( cur.getFieldDensity() - 1 ); //Use up sap. + u.add_effect( effect_sap, cur.get_field_intensity() * 2_turns ); + cur.set_field_density( cur.get_field_intensity() - 1 ); //Use up sap. break; case fd_sludge: //sludge is on the ground, but you are above the ground when boarded on a vehicle if( !u.in_vehicle ) { u.add_msg_if_player( m_bad, _( "The sludge is thick and sticky. You struggle to pull free." ) ); - u.moves -= cur.getFieldDensity() * 300; - cur.setFieldDensity( 0 ); + u.moves -= cur.get_field_intensity() * 300; + cur.set_field_density( 0 ); } break; @@ -1516,7 +1516,7 @@ void map::player_in_field( player &u ) break; } //Burn the player. Less so if you are in a car or ON a car. - adjusted_intensity = cur.getFieldDensity(); + adjusted_intensity = cur.get_field_intensity(); if( u.in_vehicle ) { if( inside ) { adjusted_intensity -= 2; @@ -1597,7 +1597,7 @@ void map::player_in_field( player &u ) case fd_smoke: { if( !inside ) { //Get smoke disease from standing in smoke. - int density = cur.getFieldDensity(); + int density = cur.get_field_intensity(); int coughStr; time_duration coughDur = 0_turns; if( density >= 3 ) { // thick smoke @@ -1617,17 +1617,17 @@ void map::player_in_field( player &u ) case fd_tear_gas: //Tear gas will both give you teargas disease and/or blind you. - if( ( cur.getFieldDensity() > 1 || !one_in( 3 ) ) && ( !inside || one_in( 3 ) ) ) { + if( ( cur.get_field_intensity() > 1 || !one_in( 3 ) ) && ( !inside || one_in( 3 ) ) ) { u.add_env_effect( effect_teargas, bp_mouth, 5, 2_minutes ); } - if( cur.getFieldDensity() > 1 && ( !inside || one_in( 3 ) ) ) { - u.add_env_effect( effect_blind, bp_eyes, cur.getFieldDensity() * 2, 1_minutes ); + if( cur.get_field_intensity() > 1 && ( !inside || one_in( 3 ) ) ) { + u.add_env_effect( effect_blind, bp_eyes, cur.get_field_intensity() * 2, 1_minutes ); } break; case fd_relax_gas: - if( ( cur.getFieldDensity() > 1 || !one_in( 3 ) ) && ( !inside || one_in( 3 ) ) ) { - u.add_env_effect( effect_relax_gas, bp_mouth, cur.getFieldDensity() * 2, 3_turns ); + if( ( cur.get_field_intensity() > 1 || !one_in( 3 ) ) && ( !inside || one_in( 3 ) ) ) { + u.add_env_effect( effect_relax_gas, bp_mouth, cur.get_field_intensity() * 2, 3_turns ); } break; @@ -1639,7 +1639,7 @@ void map::player_in_field( player &u ) break; case fd_dazzling: - if( cur.getFieldDensity() > 1 || one_in( 5 ) ) { + if( cur.get_field_intensity() > 1 || one_in( 5 ) ) { u.add_env_effect( effect_blind, bp_eyes, 10, 10_turns ); } else { u.add_env_effect( effect_blind, bp_eyes, 2, 2_turns ); @@ -1651,12 +1651,12 @@ void map::player_in_field( player &u ) // Toxic gas at high levels will cause very nasty poison. { bool inhaled = false; - if( ( cur.getFieldDensity() == 2 && !inside ) || - ( cur.getFieldDensity() == 3 && inside ) ) { + if( ( cur.get_field_intensity() == 2 && !inside ) || + ( cur.get_field_intensity() == 3 && inside ) ) { inhaled = u.add_env_effect( effect_poison, bp_mouth, 5, 3_minutes ); - } else if( cur.getFieldDensity() == 3 && !inside ) { + } else if( cur.get_field_intensity() == 3 && !inside ) { inhaled = u.add_env_effect( effect_badpoison, bp_mouth, 5, 3_minutes ); - } else if( cur.getFieldDensity() == 1 && ( !inside ) ) { + } else if( cur.get_field_intensity() == 1 && ( !inside ) ) { inhaled = u.add_env_effect( effect_poison, bp_mouth, 2, 2_minutes ); } if( inhaled ) { @@ -1669,11 +1669,11 @@ void map::player_in_field( player &u ) case fd_nuke_gas: { // Get irradiated by the nuclear fallout. // Changed to min of density, not 0. - float rads = rng( cur.getFieldDensity(), - cur.getFieldDensity() * ( cur.getFieldDensity() + 1 ) ); + float rads = rng( cur.get_field_intensity(), + cur.get_field_intensity() * ( cur.get_field_intensity() + 1 ) ); bool rad_proof = !u.irradiate( rads ); // TODO: Reduce damage for rad resistant? - if( cur.getFieldDensity() == 3 && !rad_proof ) { + if( cur.get_field_intensity() == 3 && !rad_proof ) { u.add_msg_if_player( m_bad, _( "This radioactive gas burns!" ) ); u.hurtall( rng( 1, 3 ), nullptr ); } @@ -1707,7 +1707,7 @@ void map::player_in_field( player &u ) int total_damage = 0; for( size_t i = 0; i < num_hp_parts; i++ ) { const body_part bp = player::hp_to_bp( static_cast( i ) ); - const int dmg = rng( 1, cur.getFieldDensity() ); + const int dmg = rng( 1, cur.get_field_intensity() ); total_damage += u.deal_damage( nullptr, bp, damage_instance( DT_ELECTRIC, dmg ) ).total_damage(); } @@ -1729,10 +1729,10 @@ void map::player_in_field( player &u ) case fd_fatigue: //Teleports you... somewhere. - if( rng( 0, 2 ) < cur.getFieldDensity() && u.is_player() ) { + if( rng( 0, 2 ) < cur.get_field_intensity() && u.is_player() ) { // TODO: allow teleporting for npcs add_msg( m_bad, _( "You're violently teleported!" ) ); - u.hurtall( cur.getFieldDensity(), nullptr ); + u.hurtall( cur.get_field_intensity(), nullptr ); g->teleport(); } break; @@ -1742,14 +1742,14 @@ void map::player_in_field( player &u ) case fd_shock_vent: // Stepping on an acid vent shuts it down. case fd_acid_vent: - cur.setFieldDensity( 0 ); + cur.set_field_density( 0 ); continue; case fd_bees: // Player is immune to bees while underwater. if( !u.is_underwater() ) { int times_stung = 0; - int density = cur.getFieldDensity(); + int density = cur.get_field_intensity(); // If the bees can get at you, they cause steadily increasing pain. // TODO: Specific stinging messages. times_stung += one_in( 4 ) && @@ -1797,7 +1797,7 @@ void map::player_in_field( player &u ) // Mysterious incendiary substance melts you horribly. if( u.has_trait( trait_M_SKIN2 ) || u.has_trait( trait_M_SKIN3 ) || - cur.getFieldDensity() == 1 ) { + cur.get_field_intensity() == 1 ) { u.add_msg_player_or_npc( m_bad, _( "The incendiary burns you!" ), _( "The incendiary burns !" ) ); u.hurtall( rng( 1, 3 ), nullptr ); @@ -1822,7 +1822,7 @@ void map::player_in_field( player &u ) break; } bool inhaled = false; - const int density = cur.getFieldDensity(); + const int density = cur.get_field_intensity(); inhaled = u.add_env_effect( effect_poison, bp_mouth, 5, density * 1_minutes ); if( u.has_trait( trait_id( "THRESH_MYCUS" ) ) || u.has_trait( trait_id( "THRESH_MARLOSS" ) ) ) { inhaled |= u.add_env_effect( effect_badpoison, bp_mouth, 5, density * 1_minutes ); @@ -1864,15 +1864,15 @@ void map::monster_in_field( monster &z ) int dam = 0; // Iterate through all field effects on this tile. - // Do not remove the field with removeField, instead set it's density to 0. It will be removed + // Do not remove the field with remove_field, instead set it's density to 0. It will be removed // later by the field processing, which will also adjust field_count accordingly. for( auto &field_list_it : curfield ) { field_entry &cur = field_list_it.second; - if( !cur.isAlive() ) { + if( !cur.is_field_alive() ) { continue; } - switch( cur.getFieldType() ) { + switch( cur.get_field_type() ) { case fd_null: case fd_blood: // It doesn't actually do anything case fd_bile: // Ditto @@ -1880,29 +1880,29 @@ void map::monster_in_field( monster &z ) case fd_web: if( !z.has_flag( MF_WEBWALK ) ) { - z.add_effect( effect_webbed, 1_turns, num_bp, true, cur.getFieldDensity() ); - cur.setFieldDensity( 0 ); + z.add_effect( effect_webbed, 1_turns, num_bp, true, cur.get_field_intensity() ); + cur.set_field_density( 0 ); } break; case fd_acid: if( !z.has_flag( MF_FLIES ) ) { - const int d = rng( cur.getFieldDensity(), cur.getFieldDensity() * 3 ); + const int d = rng( cur.get_field_intensity(), cur.get_field_intensity() * 3 ); z.deal_damage( nullptr, bp_torso, damage_instance( DT_ACID, d ) ); z.check_dead_state(); } break; case fd_sap: - z.moves -= cur.getFieldDensity() * 5; - cur.setFieldDensity( cur.getFieldDensity() - 1 ); + z.moves -= cur.get_field_intensity() * 5; + cur.set_field_density( cur.get_field_intensity() - 1 ); break; case fd_sludge: if( !z.has_flag( MF_DIGS ) && !z.has_flag( MF_FLIES ) && !z.has_flag( MF_SLUDGEPROOF ) ) { - z.moves -= cur.getFieldDensity() * 300; - cur.setFieldDensity( 0 ); + z.moves -= cur.get_field_intensity() * 300; + cur.set_field_density( 0 ); } break; @@ -1929,9 +1929,9 @@ void map::monster_in_field( monster &z ) } dam -= z.get_armor_type( DT_HEAT, bp_torso ); - if( cur.getFieldDensity() == 1 ) { + if( cur.get_field_intensity() == 1 ) { dam += rng( 2, 6 ); - } else if( cur.getFieldDensity() == 2 ) { + } else if( cur.get_field_intensity() == 2 ) { dam += rng( 6, 12 ); if( !z.has_flag( MF_FLIES ) ) { z.moves -= 20; @@ -1939,7 +1939,7 @@ void map::monster_in_field( monster &z ) z.add_effect( effect_onfire, 1_turns * rng( dam / 2, dam * 2 ) ); } } - } else if( cur.getFieldDensity() == 3 ) { + } else if( cur.get_field_intensity() == 3 ) { dam += rng( 10, 20 ); if( !z.has_flag( MF_FLIES ) || one_in( 3 ) ) { z.moves -= 40; @@ -1954,63 +1954,63 @@ void map::monster_in_field( monster &z ) case fd_smoke: if( !z.has_flag( MF_NO_BREATHE ) ) { - if( cur.getFieldDensity() == 3 ) { + if( cur.get_field_intensity() == 3 ) { z.moves -= rng( 10, 20 ); } if( z.made_of( material_id( "veggy" ) ) ) { // Plants suffer from smoke even worse - z.moves -= rng( 1, cur.getFieldDensity() * 12 ); + z.moves -= rng( 1, cur.get_field_intensity() * 12 ); } } break; case fd_tear_gas: if( z.made_of_any( Creature::cmat_fleshnveg ) && !z.has_flag( MF_NO_BREATHE ) ) { - if( cur.getFieldDensity() == 3 ) { + if( cur.get_field_intensity() == 3 ) { z.add_effect( effect_stunned, rng( 1_minutes, 2_minutes ) ); dam += rng( 4, 10 ); - } else if( cur.getFieldDensity() == 2 ) { + } else if( cur.get_field_intensity() == 2 ) { z.add_effect( effect_stunned, rng( 5_turns, 10_turns ) ); dam += rng( 2, 5 ); } else { z.add_effect( effect_stunned, rng( 1_turns, 5_turns ) ); } if( z.made_of( material_id( "veggy" ) ) ) { - z.moves -= rng( cur.getFieldDensity() * 5, cur.getFieldDensity() * 12 ); - dam += cur.getFieldDensity() * rng( 8, 14 ); + z.moves -= rng( cur.get_field_intensity() * 5, cur.get_field_intensity() * 12 ); + dam += cur.get_field_intensity() * rng( 8, 14 ); } if( z.has_flag( MF_SEES ) ) { - z.add_effect( effect_blind, cur.getFieldDensity() * 8_turns ); + z.add_effect( effect_blind, cur.get_field_intensity() * 8_turns ); } } break; case fd_relax_gas: if( z.made_of_any( Creature::cmat_fleshnveg ) && !z.has_flag( MF_NO_BREATHE ) ) { - z.add_effect( effect_stunned, rng( cur.getFieldDensity() * 4_turns, - cur.getFieldDensity() * 8_turns ) ); + z.add_effect( effect_stunned, rng( cur.get_field_intensity() * 4_turns, + cur.get_field_intensity() * 8_turns ) ); } break; case fd_dazzling: if( z.has_flag( MF_SEES ) && !z.has_flag( MF_ELECTRONIC ) ) { - z.add_effect( effect_blind, cur.getFieldDensity() * 12_turns ); - z.add_effect( effect_stunned, cur.getFieldDensity() * rng( 5_turns, 12_turns ) ); + z.add_effect( effect_blind, cur.get_field_intensity() * 12_turns ); + z.add_effect( effect_stunned, cur.get_field_intensity() * rng( 5_turns, 12_turns ) ); } break; case fd_toxic_gas: if( !z.has_flag( MF_NO_BREATHE ) ) { - dam += cur.getFieldDensity(); - z.moves -= cur.getFieldDensity(); + dam += cur.get_field_intensity(); + z.moves -= cur.get_field_intensity(); } break; case fd_nuke_gas: if( !z.has_flag( MF_NO_BREATHE ) ) { - if( cur.getFieldDensity() == 3 ) { + if( cur.get_field_intensity() == 3 ) { z.moves -= rng( 60, 120 ); dam += rng( 30, 50 ); - } else if( cur.getFieldDensity() == 2 ) { + } else if( cur.get_field_intensity() == 2 ) { z.moves -= rng( 20, 50 ); dam += rng( 10, 25 ); } else { @@ -2018,8 +2018,8 @@ void map::monster_in_field( monster &z ) dam += rng( 0, 12 ); } if( z.made_of( material_id( "veggy" ) ) ) { - z.moves -= rng( cur.getFieldDensity() * 5, cur.getFieldDensity() * 12 ); - dam *= cur.getFieldDensity(); + z.moves -= rng( cur.get_field_intensity() * 5, cur.get_field_intensity() * 12 ); + dam *= cur.get_field_intensity(); } } break; @@ -2048,12 +2048,12 @@ void map::monster_in_field( monster &z ) case fd_electricity: // We don't want to increase dam, but deal a separate hit so that it can apply effects z.deal_damage( nullptr, bp_torso, - damage_instance( DT_ELECTRIC, rng( 1, cur.getFieldDensity() * 3 ) ) ); + damage_instance( DT_ELECTRIC, rng( 1, cur.get_field_intensity() * 3 ) ) ); break; case fd_fatigue: - if( rng( 0, 2 ) < cur.getFieldDensity() ) { - dam += cur.getFieldDensity(); + if( rng( 0, 2 ) < cur.get_field_intensity() ) { + dam += cur.get_field_intensity(); int tries = 0; tripoint newpos = z.pos(); do { @@ -2094,15 +2094,15 @@ void map::monster_in_field( monster &z ) dam += -5; } - if( cur.getFieldDensity() == 1 ) { + if( cur.get_field_intensity() == 1 ) { dam += rng( 2, 6 ); - } else if( cur.getFieldDensity() == 2 ) { + } else if( cur.get_field_intensity() == 2 ) { dam += rng( 6, 12 ); z.moves -= 20; if( !z.made_of( LIQUID ) && !z.made_of_any( Creature::cmat_flameres ) ) { z.add_effect( effect_onfire, rng( 8_turns, 12_turns ) ); } - } else if( cur.getFieldDensity() == 3 ) { + } else if( cur.get_field_intensity() == 3 ) { dam += rng( 10, 20 ); z.moves -= 40; if( !z.made_of( LIQUID ) && !z.made_of_any( Creature::cmat_flameres ) ) { @@ -2116,7 +2116,7 @@ void map::monster_in_field( monster &z ) !z.type->has_flag( MF_NO_BREATHE ) && !z.make_fungus() ) { // Don't insta-kill jabberwocks, that's silly - const int density = cur.getFieldDensity(); + const int density = cur.get_field_intensity(); z.moves -= rng( 10 * density, 30 * density ); dam += rng( 0, 10 * density ); } @@ -2124,7 +2124,7 @@ void map::monster_in_field( monster &z ) case fd_fungicidal_gas: if( z.type->in_species( FUNGUS ) ) { - const int density = cur.getFieldDensity(); + const int density = cur.get_field_intensity(); z.moves -= rng( 10 * density, 30 * density ); dam += rng( 4, 7 * density ); } @@ -2213,7 +2213,7 @@ void map::propagate_field( const tripoint ¢er, const field_id type, int amou std::set closed; open.push( { 0.0f, center } ); - const bool not_gas = fieldlist[ type ].phase != GAS; + const bool not_gas = all_field_types_enum_list[ type ].phase != GAS; while( amount > 0 && !open.empty() ) { if( closed.count( open.top().second ) ) { diff --git a/src/monmove.cpp b/src/monmove.cpp index 496eb8b20ff58..bee15b0886345 100644 --- a/src/monmove.cpp +++ b/src/monmove.cpp @@ -155,7 +155,7 @@ bool monster::can_move_to( const tripoint &p ) const } } else if( has_flag( MF_AVOID_DANGER_1 ) ) { // Don't enter fire or electricity ever (other dangerous fields are fine though) - if( target_field.findField( fd_fire ) || target_field.findField( fd_electricity ) ) { + if( target_field.find_field( fd_fire ) || target_field.find_field( fd_electricity ) ) { return false; } } diff --git a/src/npcmove.cpp b/src/npcmove.cpp index f897263e29560..234c9c7fc9abb 100644 --- a/src/npcmove.cpp +++ b/src/npcmove.cpp @@ -251,7 +251,7 @@ tripoint npc::good_escape_direction( bool include_pos ) for( const auto &e : g->m.field_at( pt ) ) { if( is_dangerous_field( e.second ) ) { // @todo: Rate fire higher than smoke - rating += e.second.getFieldDensity(); + rating += e.second.get_field_intensity(); } } return rating; @@ -298,8 +298,8 @@ bool npc::could_move_onto( const tripoint &p ) const continue; } - const auto *entry_here = fields_here.findField( e.first ); - if( entry_here == nullptr || entry_here->getFieldDensity() < e.second.getFieldDensity() ) { + const auto *entry_here = fields_here.find_field( e.first ); + if( entry_here == nullptr || entry_here->get_field_intensity() < e.second.get_field_intensity() ) { return false; } } diff --git a/src/savegame_json.cpp b/src/savegame_json.cpp index be37e7a61b4eb..a3981409556d4 100644 --- a/src/savegame_json.cpp +++ b/src/savegame_json.cpp @@ -3289,16 +3289,16 @@ void submap::store( JsonOut &jsout ) const for( int j = 0; j < SEEY; j++ ) { for( int i = 0; i < SEEX; i++ ) { // Save fields - if( fld[i][j].fieldCount() > 0 ) { + if( fld[i][j].field_count() > 0 ) { jsout.write( i ); jsout.write( j ); jsout.start_array(); for( auto &elem : fld[i][j] ) { const field_entry &cur = elem.second; // We don't seem to have a string identifier for fields anywhere. - jsout.write( cur.getFieldType() ); - jsout.write( cur.getFieldDensity() ); - jsout.write( cur.getFieldAge() ); + jsout.write( cur.get_field_type() ); + jsout.write( cur.get_field_intensity() ); + jsout.write( cur.get_field_age() ); } jsout.end_array(); } @@ -3518,10 +3518,10 @@ void submap::load( JsonIn &jsin, const std::string &member_name, bool rubpow_upd int type = jsin.get_int(); int density = jsin.get_int(); int age = jsin.get_int(); - if( fld[i][j].findField( field_id( type ) ) == nullptr ) { + if( fld[i][j].find_field( field_id( type ) ) == nullptr ) { field_count++; } - fld[i][j].addField( field_id( type ), density, time_duration::from_turns( age ) ); + fld[i][j].add_field( field_id( type ), density, time_duration::from_turns( age ) ); } } } else if( member_name == "graffiti" ) { diff --git a/src/submap.h b/src/submap.h index 5084abfd141e3..9a3a2b7b53749 100644 --- a/src/submap.h +++ b/src/submap.h @@ -251,11 +251,11 @@ struct maptile { } field_entry *find_field( const field_id field_to_find ) { - return sm->fld[x][y].findField( field_to_find ); + return sm->fld[x][y].find_field( field_to_find ); } bool add_field( const field_id field_to_add, const int new_density, const time_duration &new_age ) { - const bool ret = sm->fld[x][y].addField( field_to_add, new_density, new_age ); + const bool ret = sm->fld[x][y].add_field( field_to_add, new_density, new_age ); if( ret ) { sm->field_count++; } diff --git a/tests/map_helpers.cpp b/tests/map_helpers.cpp index 284dbf83dbf0d..ef207d0c56509 100644 --- a/tests/map_helpers.cpp +++ b/tests/map_helpers.cpp @@ -62,7 +62,7 @@ void clear_fields( const int zlevel ) const tripoint p( x, y, zlevel ); std::vector fields; for( auto &pr : g->m.field_at( p ) ) { - fields.push_back( pr.second.getFieldType() ); + fields.push_back( pr.second.get_field_type() ); } for( field_id f : fields ) { g->m.remove_field( p, f ); From 74f7d047e0320ca6545b1c4418486b23bd685a98 Mon Sep 17 00:00:00 2001 From: RosieMcCattail <43783725+RosieMcCattail@users.noreply.github.com> Date: Fri, 14 Jun 2019 01:01:54 +0300 Subject: [PATCH 41/76] Edit the elec_jackhammer power drain (#31192) * Edit the elec_jackhammer power drain Currently the electric jackhammer drains 25 charges per operation, that can last for up to an hour. This is about the same as the flashlight drains, if not less. Upping the power requirement ten times will probably be a bit closer to the reality. Alternatives: - Upping the drain to 500 or 100 charges, but this won't fit cleanly with the existing battery cells, with 250 one can drain the cell dry after a couple uses, with no charges left. - Changing the battery capacity to be cleanly divided by 500 or 1000, then changing the jackhammer's drain to those values. - Actually making the jackhammer drain 1 power per X turns, though I'm not sure how it will work. --- data/json/items/tools.json | 14 ++++++-------- data/json/recipes/recipe_electronics.json | 9 ++++++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/data/json/items/tools.json b/data/json/items/tools.json index ea2e8a01f0411..3772002c6548f 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -3045,8 +3045,8 @@ "id": "elec_jackhammer", "type": "TOOL", "name": "electric jackhammer", - "description": "This is a construction tool for drilling through hard rock or other surfaces. It runs on batteries. Use it (if loaded) to blast a hole in adjacent solid terrain.", - "weight": 15875, + "description": "This is a construction tool for drilling through hard rock or other surfaces. It runs on a cell compatible with UPS. Use it to blast a hole in adjacent solid terrain.", + "weight": 40000, "volume": 20, "price": 40000, "to_hit": -8, @@ -3056,13 +3056,11 @@ "symbol": ";", "color": "light_gray", "ammo": "battery", - "charges_per_use": 25, + "initial_charges": 3500, + "max_charges": 7000, + "charges_per_use": 3500, "use_action": "JACKHAMMER", - "flags": [ "STAB", "DIG_TOOL", "POWERED" ], - "magazines": [ - [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] - ], - "magazine_well": 4 + "flags": [ "STAB", "DIG_TOOL", "POWERED", "USE_UPS", "NO_UNLOAD", "NO_RELOAD" ] }, { "id": "electrohack", diff --git a/data/json/recipes/recipe_electronics.json b/data/json/recipes/recipe_electronics.json index 7dfaeb47a1f69..4dd15c4714082 100644 --- a/data/json/recipes/recipe_electronics.json +++ b/data/json/recipes/recipe_electronics.json @@ -2015,7 +2015,14 @@ ], "using": [ [ "welding_standard", 10 ] ], "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ [ [ "motor_small", 1 ] ], [ [ "cable", 12 ] ], [ [ "rebar", 2 ], [ "steel_chunk", 4 ] ], [ [ "scrap", 3 ] ] ] + "components": [ + [ [ "motor_small", 1 ] ], + [ [ "UPS_off", 1 ] ], + [ [ "medium_storage_battery", 1 ] ], + [ [ "cable", 12 ] ], + [ [ "rebar", 2 ], [ "steel_chunk", 4 ] ], + [ [ "scrap", 3 ] ] + ] }, { "type": "recipe", From 03c4211334143f5639aeea4946fd1f6e5e19451a Mon Sep 17 00:00:00 2001 From: Highmongrel <47551519+Highmongrel@users.noreply.github.com> Date: Thu, 13 Jun 2019 18:07:16 -0700 Subject: [PATCH 42/76] Update battery size mods --- data/json/items/toolmod.json | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/data/json/items/toolmod.json b/data/json/items/toolmod.json index f96c9c49fac48..2ee9f7c0d0bf4 100644 --- a/data/json/items/toolmod.json +++ b/data/json/items/toolmod.json @@ -55,7 +55,20 @@ "description": "A battery compartment mod that allows the use of light batteries in tools that otherwise could not.", "color": "light_green", "acceptable_ammo": [ "battery" ], - "magazine_adaptor": [ [ "battery", [ "light_battery_cell", "light_plus_battery_cell", "light_minus_battery_cell" ] ] ] + "magazine_adaptor": [ + [ + "battery", + [ + "light_minus_battery_cell", + "light_minus_atomic_battery_cell", + "light_minus_disposable_cell", + "light_battery_cell", + "light_plus_battery_cell", + "light_atomic_battery_cell", + "light_disposable_cell" + ] + ] + ] }, { "id": "magazine_battery_medium_mod", @@ -66,7 +79,12 @@ "description": "A battery compartment mod that allows the use of medium batteries in tools that otherwise could not.", "color": "light_green", "acceptable_ammo": [ "battery" ], - "magazine_adaptor": [ [ "battery", [ "medium_battery_cell", "medium_plus_battery_cell" ] ] ] + "magazine_adaptor": [ + [ + "battery", + [ "medium_battery_cell", "medium_plus_battery_cell", "medium_atomic_battery_cell", "medium_disposable_cell" ] + ] + ] }, { "id": "magazine_battery_heavy_mod", @@ -77,6 +95,8 @@ "description": "A battery compartment mod that allows the use of heavy batteries in tools that otherwise could not.", "color": "light_green", "acceptable_ammo": [ "battery" ], - "magazine_adaptor": [ [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell" ] ] ] + "magazine_adaptor": [ + [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] + ] } ] From 3b161e49d081710dd426701e678b1a0fac0e74af Mon Sep 17 00:00:00 2001 From: Kevin Granade Date: Fri, 14 Jun 2019 05:27:33 +0000 Subject: [PATCH 43/76] Add and update a cache of which submaps contain active items --- src/map.cpp | 44 +++++++++++++++++++++++++++++++++++--------- src/map.h | 4 ++++ 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/src/map.cpp b/src/map.cpp index aa041a1153388..453b09b476e55 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -4125,6 +4125,9 @@ std::list::iterator map::i_rem( const tripoint &p, std::list::iterat if( current_submap->active_items.has( it, l ) ) { current_submap->active_items.remove( it, l ); + if( current_submap->active_items.empty() ) { + submaps_with_active_items.erase( abs_sub + tripoint( p.x / SEEX, p.y / SEEY, p.z ) ); + } } current_submap->update_lum_rem( l, *it ); @@ -4172,6 +4175,10 @@ void map::i_clear( const tripoint &p ) item_it != current_submap->itm[l.x][l.y].end(); ++item_it ) { if( current_submap->active_items.has( item_it, l ) ) { current_submap->active_items.remove( item_it, l ); + if( current_submap->active_items.empty() ) { + submaps_with_active_items.erase( + abs_sub + tripoint( p.x / SEEX, p.y / SEEY, p.z ) ); + } } } @@ -4398,6 +4405,9 @@ item &map::add_item_at( const tripoint &p, current_submap->update_lum_add( l, new_item ); const auto new_pos = current_submap->itm[l.x][l.y].insert( index, new_item ); if( new_item.needs_processing() ) { + if( current_submap->active_items.empty() ) { + submaps_with_active_items.insert( abs_sub + tripoint( p.x / SEEX, p.y / SEEY, p.z ) ); + } current_submap->active_items.add( new_pos, l ); } @@ -4461,6 +4471,10 @@ void map::make_active( item_location &loc ) return &i == target; } ); + if( current_submap->active_items.empty() ) { + submaps_with_active_items.insert( abs_sub + tripoint( loc.position().x / SEEX, + loc.position().y / SEEY, loc.position().z ) ); + } current_submap->active_items.add( iter, l ); } @@ -4607,14 +4621,11 @@ void map::process_items( const bool active, map::map_process_func processor, } } } - for( gz = minz; gz <= maxz; ++gz ) { - for( gx = 0; gx < my_MAPSIZE; ++gx ) { - for( gy = 0; gy < my_MAPSIZE; ++gy ) { - submap *const current_submap = get_submap_at_grid( gp ); - if( !active || !current_submap->active_items.empty() ) { - process_items_in_submap( *current_submap, gp, processor, signal ); - } - } + for( const tripoint &abs_pos : submaps_with_active_items ) { + const tripoint local_pos = abs_pos - abs_sub; + submap *const current_submap = get_submap_at_grid( local_pos ); + if( !active || !current_submap->active_items.empty() ) { + process_items_in_submap( *current_submap, local_pos, processor, signal ); } } } @@ -6508,6 +6519,7 @@ void map::load( const int wx, const int wy, const int wz, const bool update_vehi for( auto &traps : traplocs ) { traps.clear(); } + submaps_with_active_items.clear(); set_abs_sub( wx, wy, wz ); for( int gridx = 0; gridx < my_MAPSIZE; gridx++ ) { for( int gridy = 0; gridy < my_MAPSIZE; gridy++ ) { @@ -6603,6 +6615,9 @@ void map::shift( const int sx, const int sy ) for( int gridx = 0; gridx < my_MAPSIZE; gridx++ ) { if( sy >= 0 ) { for( int gridy = 0; gridy < my_MAPSIZE; gridy++ ) { + if( gridx == 0 || gridy == 0 ) { + submaps_with_active_items.erase( { absx + gridx, absy + gridy, gridz } ); + } if( gridx + sx < my_MAPSIZE && gridy + sy < my_MAPSIZE ) { copy_grid( tripoint( gridx, gridy, gridz ), tripoint( gridx + sx, gridy + sy, gridz ) ); @@ -6613,6 +6628,9 @@ void map::shift( const int sx, const int sy ) } } else { // sy < 0; work through it backwards for( int gridy = my_MAPSIZE - 1; gridy >= 0; gridy-- ) { + if( gridx == 0 || gridy == my_MAPSIZE - 1 ) { + submaps_with_active_items.erase( { absx + gridx, absy + gridy, gridz } ); + } if( gridx + sx < my_MAPSIZE && gridy + sy >= 0 ) { copy_grid( tripoint( gridx, gridy, gridz ), tripoint( gridx + sx, gridy + sy, gridz ) ); @@ -6627,6 +6645,9 @@ void map::shift( const int sx, const int sy ) for( int gridx = my_MAPSIZE - 1; gridx >= 0; gridx-- ) { if( sy >= 0 ) { for( int gridy = 0; gridy < my_MAPSIZE; gridy++ ) { + if( gridx == my_MAPSIZE - 1 || gridy == 0 ) { + submaps_with_active_items.erase( { absx + gridx, absy + gridy, gridz } ); + } if( gridx + sx >= 0 && gridy + sy < my_MAPSIZE ) { copy_grid( tripoint( gridx, gridy, gridz ), tripoint( gridx + sx, gridy + sy, gridz ) ); @@ -6637,6 +6658,9 @@ void map::shift( const int sx, const int sy ) } } else { // sy < 0; work through it backwards for( int gridy = my_MAPSIZE - 1; gridy >= 0; gridy-- ) { + if( gridx == my_MAPSIZE - 1 || gridy == my_MAPSIZE - 1 ) { + submaps_with_active_items.erase( { absx + gridx, absy + gridy, gridz } ); + } if( gridx + sx >= 0 && gridy + sy >= 0 ) { copy_grid( tripoint( gridx, gridy, gridz ), tripoint( gridx + sx, gridy + sy, gridz ) ); @@ -6824,7 +6848,9 @@ void map::loadn( const int gridx, const int gridy, const int gridz, const bool u set_floor_cache_dirty( gridz ); set_pathfinding_cache_dirty( gridz ); setsubmap( gridn, tmpsub ); - + if( !tmpsub->active_items.empty() ) { + submaps_with_active_items.emplace( absx, absy, gridz ); + } // Destroy bugged no-part vehicles auto &veh_vec = tmpsub->vehicles; for( auto iter = veh_vec.begin(); iter != veh_vec.end(); ) { diff --git a/src/map.h b/src/map.h index 8c7bbc5521369..0a8d8ac59f952 100644 --- a/src/map.h +++ b/src/map.h @@ -1660,6 +1660,10 @@ class map std::array< std::unique_ptr, OVERMAP_LAYERS > caches; mutable std::array< std::unique_ptr, OVERMAP_LAYERS > pathfinding_caches; + /** + * Set of submaps that contain active items in absolute coordinates. + */ + std::set submaps_with_active_items; // Note: no bounds check level_cache &get_cache( int zlev ) const { From 2d6ed3601ce8fb1ae69d0cef66ed5e9f49ae7066 Mon Sep 17 00:00:00 2001 From: Kevin Granade Date: Fri, 14 Jun 2019 06:45:46 +0000 Subject: [PATCH 44/76] Walk cached vehicle list instead of the map --- src/map.cpp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/map.cpp b/src/map.cpp index 453b09b476e55..1ad58d862aa39 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -4606,19 +4606,17 @@ void map::process_items( const bool active, map::map_process_func processor, { const int minz = zlevels ? -OVERMAP_DEPTH : abs_sub.z; const int maxz = zlevels ? OVERMAP_HEIGHT : abs_sub.z; - tripoint gp( 0, 0, 0 ); - int &gx = gp.x; - int &gy = gp.y; - int &gz = gp.z; - for( gz = minz; gz <= maxz; ++gz ) { - for( gx = 0; gx < my_MAPSIZE; ++gx ) { - for( gy = 0; gy < my_MAPSIZE; ++gy ) { - submap *const current_submap = get_submap_at_grid( gp ); - // Vehicles first in case they get blown up and drop active items on the map. - if( !current_submap->vehicles.empty() ) { - process_items_in_vehicles( *current_submap, gz, processor, signal ); - } - } + for( int gz = minz; gz <= maxz; ++gz ) { + level_cache &cache = access_cache( gz ); + std::set submaps_with_vehicles; + for( vehicle *this_vehicle : cache.vehicle_list ) { + tripoint pos = this_vehicle->global_pos3(); + submaps_with_vehicles.emplace( pos.x / SEEX, pos.y / SEEY, pos.z ); + } + for( const tripoint &pos : submaps_with_vehicles ) { + submap *const current_submap = get_submap_at_grid( pos ); + // Vehicles first in case they get blown up and drop active items on the map. + process_items_in_vehicles( *current_submap, pos.z, processor, signal ); } } for( const tripoint &abs_pos : submaps_with_active_items ) { From 7e3c4b14366bda56c8e8ad11f24e66fa0eb9a71f Mon Sep 17 00:00:00 2001 From: nexusmrsep <39925111+nexusmrsep@users.noreply.github.com> Date: Fri, 14 Jun 2019 09:37:05 +0200 Subject: [PATCH 45/76] Radio station broadcast audio archives - lore (#30482) * radio archives --- data/json/mapgen/station_radio.json | 3 ++- data/json/snippets.json | 28 ++++++++++++++++++++++++++++ src/computer.cpp | 16 ++++++++++++++++ src/computer.h | 1 + 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/data/json/mapgen/station_radio.json b/data/json/mapgen/station_radio.json index e17e2de1db7b6..3ddfa6c052c97 100644 --- a/data/json/mapgen/station_radio.json +++ b/data/json/mapgen/station_radio.json @@ -84,7 +84,8 @@ "security": 2, "options": [ { "name": "ERROR: SIGNAL DISCONNECT", "action": "tower_unresponsive" }, - { "name": "Install Repeater Mod", "action": "repeater_mod" } + { "name": "Install Repeater Mod", "action": "repeater_mod" }, + { "name": "Browse Audio Archive", "action": "radio_archive" } ] } }, diff --git a/data/json/snippets.json b/data/json/snippets.json index 3edfecedba4e4..17eafc6fca53c 100644 --- a/data/json/snippets.json +++ b/data/json/snippets.json @@ -2300,6 +2300,34 @@ "XE037 revivification has reached critical levels, which are rapidly overwhelming the available military and regional police assets' ability to stop. Every team in the field has encountered hostile specimens, and several are no longer responding to communications. Dr. Savage has proposed a strategic redeployment to the underground complex known as the VAULT, and continuing production of PE062 there." ] }, + { + "type": "snippet", + "category": "radio_archive", + "text": [ + "kssht. Dark Horse, this is Blue Jay, what's your status, over. kssht. Blue Jay, this is Black Horse, still holding, but not for long. kssht. Dark Horse, you've got to hold position for 3 hours. We're almost black on ammo, but resupply is on the way, over. kssht. Not possible Blue Jay, too many dead. 30 minutes max, and if you don't order us to retreat we're gone, over. kssht.", + "kssht. Blue Jay, this is Black Rose, got your resupply, going in on vector 36, what's the status of the LZ? kssht. Black Rose, this is Blue Jay, what took you so long? LZ hot and unsecured, ammo black, bayonets in action, land on your own discretion, over. kssht. Roger that, hold on, Black Rose out. kssht.", + "To whomever is listening, this may be our last broadcast. Wish you luck. Can't stay in the studio any longer, station is being rewired to military frequencies for automatic broadcast. Stay safe, and bless you, people.", + "You're listening to KDDA from Boston, I'm Jenny Sanders with a special emergency news update. Road closures by military and police forces have been reported on interstates 90, 91, 93, and 95. Alternative routes have not been suggested. Due to dangers on non-interstate roads, it is strongly recommended that you avoid major thoroughfares and population centers when travelling by car.", + "Those evacuating cities are advised to head to the nearest designated evacuation shelter and await pickup by a FEMA transport. Do not engage with rioters. Due to the danger of being mistaken for a rioter, do not approach military or police blockades, even for assistance. I repeat, do not approach military or police blockades, even for assistance.", + "If you are not in an evacuation zone, officials highly recommend you pack gear for evacuation. Make sure to include clean clothes, a blanket, and enough food and water to last a few days.", + "In other news, the federal government has confirmed that Rhode Island's declaration of secession is official, although the US government does not acknowledge its validity. Our sources haven't been able to determine the extent of hostilities in the area, but there are rumors of border violence initiated by the Rhode Island militia.", + "Hey ladies and gentlemen of the apocalypse, you're listening to Dark Days Radio, the last radio station on the Eastern Seaboard, I'm DJ Dustbowl here with our mascot Sam.", + "DJ Dustbowl back, you're listening to Dark Days Radio. Quick survivor tip: remember, killing a zombie isn't enough. You've gotta smash that thing to a pulp or chop it into pieces if you don't want it getting back up. Good news though, you don't need to worry about headshots! Any major damage will lay a shambler out.", + "You're listening to Dark Days Radio, I'm DJ Dustbowl! In with a quick tip for any survivors listening: one zombie is bad news, two are worse. Don't go Rambo on me. Tackle threats in small numbers or through bottlenecks. You aren't tougher than a zombie but you are smarter, use that to your advantage... or just run away.", + "…black goo in the water! Drugs and who knows what else, the government wants you dumb and docile! Wake up people. They are the spawn of Satan! This is Alan Jewels with the AJ show, we’ll be back after the break.", + "This is Escort, frequency one-fifty-five, nineteen-thousand, here's your report. Can you gimme an 'amen', it's ...kshhhsk.... days after Armageddon and I'm still kicking. The 49ers are headed southwards towards Neufolk, so if you're there and listening, barricade or lay low until they go by. There's another horde forming out of Metro Bay.", + "I'll be calling them the Pigskins, and they're circling the city right now, but trickles tell me they're going to converge on Neufolk in the next few days, so once the 49ers pass, Neufolkians, get all the supplies you can, cause this is gonna be a big one...", + "This is an emergency broadcast from the National Emergency Alert System. This is not a test. There has been several hundred confirmed cases of an unknown pathogen in the metropolitan area of ...kshhssk... in the last 24 hours. The contagion is believed to be highly transmittable. Residents are advised to remain in their homes at this time. More information will be released as it becomes available.", + "This is an emergency broadcast from the National Emergency Alert System. This is not a test. The new pathogen has now been confirmed in several cities across the US. Victims of this disease are known to display highly aggressive, rabies-like behavior, and may be violent to people around them. Avoid contact with infected persons at all costs. If you suspect that you or someone else has contracted the pathogen, contact emergency services immediately.", + "This is not a test. Seek immediate shelter. Multiple missile launches have been confirmed to be targeting the ..ksshhsk... Seek immediate shelter. If a community shelter is not available, alternative shelter locations are basements, beneath stairwells, or central rooms with no windows. Ensure that you have sufficient protection from falling debris. Ensure that you have food and water for at least one week. Repeat. Seek immediate shelter.", + "Hello American patriots! This is the national guard, calling you to use your God-Given second amendment rights and buy a firearm! It is obvious that the Chinese, a scourge upon the face of the earth and the stopper of freedom and prosperity, are in a state of aggression. Therefore, we suggest that with the new gun laws introduced, YOU must help in the defense of this bastion of freedom and prosperity. Go to your local gun store and prepare to defend yourself against the red scourge in every way you can!", + "zzzzchzzzzchurzzz Are you tired of always losing your dumpy old sunglasses? Tired of having to pay for over price shades just to have them fall to pieces? Well no longer now introducing zchzzzzch- brand Anti-glare compensators for the shade you need in you. Order now for 12 easy payments of $1200.99 and we'll throw in a free order of zpzzzzpzz eye bot.", + "This is WSSA-233, broadcasting from . We've barricaded all the doors and windows. There's a ton of them right outside, we're trying to stay quiet. Do not, I repeat, do not approach.", + "First Fleet, this is Mount Wheater, we've send a helicopter with a squad to the location of the Guard Outpost. If any survivors of the crash are to reach the outpost, contact the base, we are short on men and one of the big ones has just breached the perimeter. Over.", + "USS Eagle of Freedom to all callsigns. Operation Ocean 11 is in effect. Repeat. Operation Ocean 11 is in effect. Sir, this should effectively reach about 150 units, but there is no response from literally anyone in hours. Their coms winked out like candles in the wind. And how do we even secure the port to load anyone in?", + "Seagull 54 to USS Eagle of Freedom. It's as we predicted. Going down on last reserves of fuel, with dropping evacuated unit out of question at that point. This is our last call. Will try emergency landing at ...kshssssssk... Don't send us a rescue team, we know the odds. Will be moving east towards the shore, and if we're not there in T minus 3 days, count us dead. Proud to serve the country. Over and out." + ] + }, { "type": "snippet", "category": "amigara1", diff --git a/src/computer.cpp b/src/computer.cpp index 8df7207a726b7..b62957330660a 100644 --- a/src/computer.cpp +++ b/src/computer.cpp @@ -564,6 +564,21 @@ void computer::activate_function( computer_action action ) } break; + case COMPACT_RADIO_ARCHIVE: { + g->u.moves -= 300; + sfx::play_ambient_variant_sound( "radio", "inaudible_chatter", 100, 21, 2000 ); + print_text( "Accessing archive. Playing audio recording nr %d.\n%s", rng( 1, 9999 ), + SNIPPET.random_from_category( "radio_archive" ) ); + if( one_in( 3 ) ) { + query_any( _( "Warning: resticted data access. Attempt logged. Press any key..." ) ); + alerts ++; + } else { + query_any( _( "Press any key..." ) ); + } + sfx::fade_audio_channel( 21, 100 ); + } + break; + case COMPACT_MAPS: { g->u.moves -= 30; const tripoint center = g->u.global_omt_location(); @@ -1878,6 +1893,7 @@ computer_action computer_action_from_string( const std::string &str ) { "shutters", COMPACT_SHUTTERS }, { "extract_rad_source", COMPACT_EXTRACT_RAD_SOURCE }, { "deactivate_shock_vent", COMPACT_DEACTIVATE_SHOCK_VENT }, + { "radio_archive", COMPACT_RADIO_ARCHIVE } } }; diff --git a/src/computer.h b/src/computer.h index a59c32ef1291c..2b15bd50e0b80 100644 --- a/src/computer.h +++ b/src/computer.h @@ -63,6 +63,7 @@ enum computer_action { COMPACT_SHUTTERS, COMPACT_EXTRACT_RAD_SOURCE, COMPACT_DEACTIVATE_SHOCK_VENT, + COMPACT_RADIO_ARCHIVE, NUM_COMPUTER_ACTIONS }; From 490f97ed0afbb191f4cb769b6244af6d089a715e Mon Sep 17 00:00:00 2001 From: Brett Dong Date: Fri, 14 Jun 2019 15:45:47 +0800 Subject: [PATCH 46/76] Routine i18n updates on 14 Jun 2019 --- lang/extract_json_strings.py | 1 + lang/po/cataclysm-dda.pot | 3112 +++++++++++--- lang/po/de.po | 6086 ++++++++++++++++++++++------ lang/po/es_AR.po | 5654 ++++++++++++++++++++------ lang/po/es_ES.po | 5518 ++++++++++++++++++++----- lang/po/hu.po | 5446 ++++++++++++++++++++----- lang/po/ja.po | 5722 +++++++++++++++++++++----- lang/po/ko.po | 5483 ++++++++++++++++++++----- lang/po/pl.po | 5899 +++++++++++++++++++++------ lang/po/ru.po | 7370 ++++++++++++++++++++++++++-------- lang/po/zh_CN.po | 6598 ++++++++++++++++++++++-------- lang/po/zh_TW.po | 5436 ++++++++++++++++++++----- 12 files changed, 49518 insertions(+), 12807 deletions(-) diff --git a/lang/extract_json_strings.py b/lang/extract_json_strings.py index 69816de411d55..4effbd1530cdc 100755 --- a/lang/extract_json_strings.py +++ b/lang/extract_json_strings.py @@ -68,6 +68,7 @@ def warning_supressed(filename): "colordef", "emit", "EXTERNAL_OPTION", + "field_type", "GAME_OPTION", "ITEM_BLACKLIST", "item_group", diff --git a/lang/po/cataclysm-dda.pot b/lang/po/cataclysm-dda.pot index 190a2efca1d06..27b5de527dba6 100644 --- a/lang/po/cataclysm-dda.pot +++ b/lang/po/cataclysm-dda.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-06-07 17:32+0800\n" +"POT-Creation-Date: 2019-06-14 15:45+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -617,6 +617,28 @@ msgstr[1] "" msgid "Flammable material, finely divided for easy combustion." msgstr "" +#: lang/json/AMMO_from_json.py +msgid "RPG die" +msgid_plural "RPG dice" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for RPG die +#: lang/json/AMMO_from_json.py +msgid "A die used to play various role-playing games." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "metal RPG die" +msgid_plural "metal RPG dice" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for metal RPG die +#: lang/json/AMMO_from_json.py +msgid "A metal die used to play various role-playing games" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "crude wooden arrow" msgstr "" @@ -2163,6 +2185,30 @@ msgstr "" msgid "reloaded .32 ACP" msgstr "" +#: lang/json/AMMO_from_json.py +msgid ".357 magnum FMJ" +msgstr "" + +#. ~ Description for .357 magnum FMJ +#: lang/json/AMMO_from_json.py +msgid "" +"Jacketed .357 magnum ammunition. The .357 magnum round is derived from the " +"earlier .38 special, with a marginally longer case and generating greater " +"pressure." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".357 magnum JHP" +msgstr "" + +#. ~ Description for .357 magnum JHP +#: lang/json/AMMO_from_json.py +msgid "" +"Jacketed hollow point .357 magnum ammunition. The .357 magnum round is " +"derived from the earlier .38 special, with a marginally longer case and " +"generating greater pressure." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".357 SIG FMJ" msgstr "" @@ -3538,6 +3584,51 @@ msgid "" "a rifle. Extremely damaging but rather inaccurate." msgstr "" +#: lang/json/AMMO_from_json.py +msgid "scrap shotcanister" +msgstr "" + +#. ~ Description for scrap shotcanister +#: lang/json/AMMO_from_json.py +msgid "" +"This small paper canister resembling a crude shotshell is filled to the brim " +"with assorted pieces of scrap metal." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "pebble shotcanister" +msgstr "" + +#. ~ Description for pebble shotcanister +#: lang/json/AMMO_from_json.py +msgid "" +"This small paper canister resembling a crude shotshell is filled to the brim " +"with tiny pebbles. Damage is pathetic but flight is much more stable than " +"scrap" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "flechette shotcanister" +msgstr "" + +#. ~ Description for flechette shotcanister +#: lang/json/AMMO_from_json.py +msgid "" +"This small paper canister resembling a crude shotshell is filled to the brim " +"with handmade flechettes, giving it some armor piercing capabilities." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "bearing shotcanister" +msgstr "" + +#. ~ Description for bearing shotcanister +#: lang/json/AMMO_from_json.py +msgid "" +"This small paper canister resembling a crude shotshell is filled to the brim " +"with handmade bearings, stabilizing it's flight pattern a tiny bit." +msgstr "" + #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "signal flare" msgstr "" @@ -9633,7 +9724,7 @@ msgid "Your optical cloak flickers as it becomes transparent." msgstr "" #. ~ Use action deactive_msg for FB51 optical cloak. -#: lang/json/ARMOR_from_json.py src/player.cpp +#: lang/json/ARMOR_from_json.py msgid "Your optical cloak flickers for a moment as it becomes opaque." msgstr "" @@ -11636,11 +11727,25 @@ msgstr[1] "" #. ~ Description for XL survivor suit #: lang/json/ARMOR_from_json.py msgid "" -"A massive home-built combination armor made from a bulletproof vest and a " +"A massive hand-built combination armor made from a bulletproof vest and a " "reinforced leather jumpsuit. Protects from the elements as well as from " "harm." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL heavy survivor suit" +msgid_plural "XL heavy survivor suits" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for XL heavy survivor suit +#: lang/json/ARMOR_from_json.py +msgid "" +"A massive, heavy, hand-built combination armor made from a reinforced " +"bulletproof vest and a metal-plated leather jumpsuit. Protects from the " +"elements as well as from harm." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "zubon" msgid_plural "zubons" @@ -11791,6 +11896,7 @@ msgstr[1] "" #. ~ Use action holster_msg for MBR vest (Kevlar plates). #. ~ Use action holster_msg for MBR vest (steel plating). #. ~ Use action holster_msg for MBR vest (superalloy). +#. ~ Use action holster_msg for XL kevlar vest. #. ~ Use action holster_msg for large grenade pouch. #. ~ Use action holster_msg for MBR vest (titanium). #. ~ Use action holster_msg for javelin bag. @@ -11869,6 +11975,7 @@ msgstr[1] "" #. ~ Use action holster_prompt for MBR vest (Kevlar plates). #. ~ Use action holster_prompt for MBR vest (steel plating). #. ~ Use action holster_prompt for MBR vest (superalloy). +#. ~ Use action holster_prompt for XL kevlar vest. #. ~ Use action holster_prompt for MBR vest (titanium). #: lang/json/ARMOR_from_json.py msgid "Stash ammo" @@ -12029,6 +12136,19 @@ msgid "" "additional weight. It has four pouches capable of carrying magazines." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "XL kevlar vest" +msgid_plural "XL kevlar vests" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for XL kevlar vest +#: lang/json/ARMOR_from_json.py +msgid "" +"A massive, hand-built kevlar vest based on the design of existing bullet " +"resistant vests. It has four pouches capable of carrying magazines." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "pistol bandolier" msgid_plural "pistol bandoliers" @@ -15004,13 +15124,12 @@ msgid_plural "Integrated Toolset CBMs" msgstr[0] "" msgstr[1] "" -#. ~ Description for Integrated Toolset #. ~ Description for Integrated Toolset CBM -#: lang/json/BIONIC_ITEM_from_json.py lang/json/bionic_from_json.py +#: lang/json/BIONIC_ITEM_from_json.py msgid "" -"Surgically implanted in your hands and fingers is a complete tool set - " -"screwdriver, hammer, wrench, hacksaw, wood saw, boltcutters, drill and " -"heating elements. You can use this in place of many tools when crafting." +"Surgically implanted in your hands and fingers is set of tools - " +"screwdriver, hammer, wrench, hacksaw, hand drill, and heating elements. You " +"can use this in place of many tools when crafting." msgstr "" #: lang/json/BIONIC_ITEM_from_json.py @@ -22827,10 +22946,12 @@ msgid "A handful of soft chocolate-covered peppermint patties... yum!" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "Necco wafer" -msgstr "" +msgid "Necco wafers" +msgid_plural "Necco wafers" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for Necco wafer +#. ~ Description for Necco wafers #: lang/json/COMESTIBLE_from_json.py msgid "" "A handful of candy wafers, in assorted flavors: orange, lemon, lime, clove, " @@ -26490,14 +26611,16 @@ msgid "Dehydrated tofu, sealed and still extra firm to last a long time." msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "soybean" -msgstr "" +msgid "soybeans" +msgid_plural "soybeans" +msgstr[0] "" +msgstr[1] "" -#. ~ Description for soybean +#. ~ Description for soybeans #: lang/json/COMESTIBLE_from_json.py msgid "" -"A light brown bean, has many uses, mildly toxic and not recommended, but you " -"could eat them raw." +"Light brown beans, they have many uses, mildly toxic and not recommended, " +"but you could eat them raw." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -27651,7 +27774,7 @@ msgstr[1] "" #. ~ Description for mushroom spores #: lang/json/COMESTIBLE_from_json.py -msgid "Some mushroom spores. You could probably plant these." +msgid "Some mushroom spores." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -27962,7 +28085,7 @@ msgstr[1] "" #. ~ Description for cattail seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some cattail seeds. You could probably plant these." +msgid "Some cattail seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -27977,7 +28100,7 @@ msgstr[1] "" #. ~ Description for dahlia seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some dahlia seeds. You could probably plant these." +msgid "Some dahlia seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py lang/json/GENERIC_from_json.py @@ -27996,9 +28119,8 @@ msgstr[1] "" #. ~ Description for decorative plant seeds #: lang/json/COMESTIBLE_from_json.py msgid "" -"Some small decorative plant seeds, likely grass or flower. You could " -"probably plant these, but don't expect them to be useful for anything other " -"than dry plant material." +"Some small decorative plant seeds, likely grass or flower. Don't expect " +"them to be useful for anything other than dry plant material." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28013,10 +28135,10 @@ msgstr[1] "" #. ~ Description for cactus seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some cactus seeds. You could probably plant these." +msgid "Some cactus seeds." msgstr "" -#: lang/json/COMESTIBLE_from_json.py +#: lang/json/COMESTIBLE_from_json.py lang/json/terrain_from_json.py msgid "cactus" msgstr "" @@ -28117,7 +28239,8 @@ msgstr[1] "" #: lang/json/COMESTIBLE_from_json.py msgid "" "This looks like a sunflower seed the size of your palm. It has a strong but " -"delicious aroma, but is clearly either mutated or of alien origin." +"delicious aroma, but is clearly either mutated or of alien origin. You " +"could probably plant it." msgstr "" #. ~ Description for raw beans @@ -28130,12 +28253,18 @@ msgid "beans" msgstr "" #: lang/json/COMESTIBLE_from_json.py -msgid "soybean seed" +msgid "soybean seeds" +msgid_plural "soybean seeds" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for soybean seeds +#: lang/json/COMESTIBLE_from_json.py +msgid "Some soybean seeds." msgstr "" -#. ~ Description for soybean seed #: lang/json/COMESTIBLE_from_json.py -msgid "Some soybean seeds. You could probably plant these." +msgid "soybean" msgstr "" #. ~ Description for raw lentils @@ -28155,7 +28284,7 @@ msgstr[1] "" #. ~ Description for thyme seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some thyme seeds. You could probably plant these." +msgid "Some thyme seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28170,8 +28299,7 @@ msgstr[1] "" #. ~ Description for canola seeds #: lang/json/COMESTIBLE_from_json.py -msgid "" -"Some canola seeds. You could probably plant these, or press them into oil." +msgid "Some canola seeds. You could press them into oil." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28182,7 +28310,7 @@ msgstr[1] "" #. ~ Description for pumpkin seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some raw pumpkin seeds. Could be fried and eaten or planted." +msgid "Some raw pumpkin seeds. Could be fried and eaten." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28211,7 +28339,7 @@ msgstr[1] "" #. ~ Description for dogbane seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some dogbane seeds. You could probably plant these." +msgid "Some dogbane seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28222,7 +28350,7 @@ msgstr[1] "" #. ~ Description for bee balm seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some bee balm seeds. You could probably plant these." +msgid "Some bee balm seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28233,7 +28361,7 @@ msgstr[1] "" #. ~ Description for mugwort seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some mugwort seeds. You could probably plant these." +msgid "Some mugwort seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28244,7 +28372,7 @@ msgstr[1] "" #. ~ Description for buckwheat seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some buckwheat seeds. You could probably plant these." +msgid "Some buckwheat seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28255,7 +28383,7 @@ msgstr[1] "" #. ~ Description for wild herb seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some seeds harvested from wild herbs. You could probably plant these." +msgid "Some seeds harvested from wild herbs." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28270,7 +28398,7 @@ msgstr[1] "" #. ~ Description for wild vegetable stems #: lang/json/COMESTIBLE_from_json.py -msgid "Some wild vegetable stems. You could probably plant these." +msgid "Some wild vegetable stems." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28285,7 +28413,7 @@ msgstr[1] "" #. ~ Description for dandelion seeds #: lang/json/COMESTIBLE_from_json.py -msgid "Some dandelion seeds. You could probably plant these." +msgid "Some dandelion seeds." msgstr "" #: lang/json/COMESTIBLE_from_json.py lang/json/furniture_from_json.py @@ -28300,7 +28428,7 @@ msgstr[1] "" #. ~ Description for rhubarb stems #: lang/json/COMESTIBLE_from_json.py -msgid "Some rhubarb stems. You could probably plant these." +msgid "Some rhubarb stems." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28311,7 +28439,7 @@ msgstr[1] "" #. ~ Description for morel mushroom spores #: lang/json/COMESTIBLE_from_json.py -msgid "Some morel mushroom spores. You could probably plant these." +msgid "Some morel mushroom spores." msgstr "" #: lang/json/COMESTIBLE_from_json.py @@ -28325,8 +28453,7 @@ msgstr[1] "" msgid "" "Small, dark seeds from the spiny pods of a datura plant. Full of powerful " "psychoactive chemicals, these tiny seeds are a potent analgesic and " -"deliriant, and can be deadly in cases of overdose. You could probably plant " -"these." +"deliriant, and can be deadly in cases of overdose." msgstr "" #: lang/json/COMESTIBLE_from_json.py lang/json/furniture_from_json.py @@ -29456,6 +29583,16 @@ msgstr "" msgid "A rather green stick. Very fibrous." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "Dana's sourdough bread" +msgstr "" + +#. ~ Description for Dana's sourdough bread +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"This round loaf of bread has a thick, dark crust, and smells very enticing." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "cheap wine must" msgstr "" @@ -29646,6 +29783,17 @@ msgid "" "Civilization." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "Lesser Mana Potion" +msgstr "" + +#. ~ Description for Lesser Mana Potion +#: lang/json/COMESTIBLE_from_json.py +msgid "" +"You can't buy these, so you need to save them until the last boss! " +"Actually, don't even use them there!" +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "resinous cord" msgstr "" @@ -30274,6 +30422,15 @@ msgstr[1] "" msgid "This rice flour is useful for baking." msgstr "" +#: lang/json/COMESTIBLE_from_json.py +msgid "cholla bud" +msgstr "" + +#. ~ Description for cholla bud +#: lang/json/COMESTIBLE_from_json.py +msgid "The candy of the Mojave Indigenous peoples." +msgstr "" + #: lang/json/COMESTIBLE_from_json.py msgid "antibiotics" msgstr "" @@ -31209,6 +31366,15 @@ msgstr "" msgid "A single-cylinder 4-stroke combustion engine." msgstr "" +#: lang/json/ENGINE_from_json.py +msgid "large 1-cylinder engine" +msgstr "" + +#. ~ Description for large 1-cylinder engine +#: lang/json/ENGINE_from_json.py +msgid "A powerful high-compression single-cylinder 4-stroke combustion engine." +msgstr "" + #: lang/json/ENGINE_from_json.py msgid "small 1-cylinder engine" msgstr "" @@ -32152,30 +32318,6 @@ msgstr[1] "" msgid "Some concrete, ready to be used in a construction project." msgstr "" -#: lang/json/GENERIC_from_json.py -msgid "log" -msgid_plural "logs" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for log -#: lang/json/GENERIC_from_json.py -msgid "" -"A large log, cut from a tree. (a)ctivate a wood axe or wood saw to cut it " -"into planks." -msgstr "" - -#: lang/json/GENERIC_from_json.py -msgid "splintered wood" -msgid_plural "splintered woods" -msgstr[0] "" -msgstr[1] "" - -#. ~ Description for splintered wood -#: lang/json/GENERIC_from_json.py -msgid "A splintered piece of wood, could be used as a skewer or for kindling." -msgstr "" - #: lang/json/GENERIC_from_json.py msgid "bone skewer" msgid_plural "bone skewers" @@ -37998,6 +38140,17 @@ msgstr[1] "" msgid "An empty casing from a .357 SIG round." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid ".357 magnum casing" +msgid_plural ".357 magnum casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .357 magnum casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .357 magnum round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "9x18mm casing" msgid_plural "9x18mm casings" @@ -39111,6 +39264,30 @@ msgid "" "been used for commercial wrapping or for weather-sealing a home." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "log" +msgid_plural "logs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for log +#: lang/json/GENERIC_from_json.py +msgid "" +"A large chunk of log, cut from a tree. (a)ctivate a wood axe or wood saw to " +"cut it into planks." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "splintered wood" +msgid_plural "splintered woods" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for splintered wood +#: lang/json/GENERIC_from_json.py +msgid "A splintered piece of wood, could be used as a skewer or for kindling." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "heavy stick" msgid_plural "heavy sticks" @@ -39135,17 +39312,32 @@ msgid "" "sticks for crafting." msgstr "" -#: lang/json/GENERIC_from_json.py src/crafting_gui.cpp -msgid "two by four" -msgid_plural "two by fours" +#: lang/json/GENERIC_from_json.py +msgid "plank" +msgid_plural "planks" msgstr[0] "" msgstr[1] "" -#. ~ Description for two by four +#. ~ Description for plank #: lang/json/GENERIC_from_json.py msgid "" -"A plank of wood. Makes a decent melee weapon, and can be used to board up " -"doors and windows if you have a hammer and nails." +"A narrow, thick plank of wood, like a 2 by 4 or similar piece of dimensional " +"lumber. Makes a decent melee weapon, and can be used for all kinds " +"construction." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "heavy wooden beam" +msgid_plural "heavy wooden beams" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for heavy wooden beam +#: lang/json/GENERIC_from_json.py +msgid "" +"An enormous beam of solid wood, very heavy and hard to lug around, but also " +"very sturdy for construction. You could saw or chop it into smaller pieces, " +"like planks or panels." msgstr "" #: lang/json/GENERIC_from_json.py @@ -39948,6 +40140,17 @@ msgstr[1] "" msgid "A vehicle headlight to light up the way." msgstr "" +#: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py +msgid "motorcycle headlight" +msgid_plural "motorcycle headlights" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for motorcycle headlight +#: lang/json/GENERIC_from_json.py +msgid "A motorcycle headlight to light up the way." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "wide-angle car headlight" msgid_plural "wide-angle car headlights" @@ -40661,6 +40864,22 @@ msgid "" "freezing food. Provides insulation from the elements." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "Dana's family sourdough starter" +msgid_plural "Dana's family sourdough starters" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Dana's family sourdough starter +#: lang/json/GENERIC_from_json.py +msgid "" +"This crusty old jar has a glow-in-the-dark millenium falcon decal on the " +"side, and a label that reads, \"Landough Calrisean. Dana's. Do not touch " +"on pain of death\". It's been abandoned for some time and doesn't look like " +"it could be readily salvaged as a sourdough culture, but maybe an " +"experienced sourdough baker could manage it." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "10 plastic bags" msgid_plural "10 plastic bags" @@ -41961,6 +42180,19 @@ msgstr[1] "" msgid "A bark covered book." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Utility of Mana as an Energy Source" +msgid_plural "The Utility of Mana as an Energy Sources" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Utility of Mana as an Energy Source +#: lang/json/GENERIC_from_json.py +msgid "" +"This book details spells that use your mana to recover various physiological " +"effects." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -44345,23 +44577,25 @@ msgid "" msgstr "" #: lang/json/MAGAZINE_from_json.py -msgid "Glock .40S&W extended magazine" +msgid "Glock 22 extended magazine" msgstr "" -#. ~ Description for Glock .40S&W extended magazine +#. ~ Description for Glock 22 extended magazine #: lang/json/MAGAZINE_from_json.py -msgid "An extended 22-round magazine for use with the Glock 22 .40S&W pistol." +msgid "" +"An extended 22-round magazine for use with Glock pistols chambered for .40 " +"S&W or .357 SIG." msgstr "" #: lang/json/MAGAZINE_from_json.py -msgid "Glock .40S&W magazine" +msgid "Glock 22 magazine" msgstr "" -#. ~ Description for Glock .40S&W magazine +#. ~ Description for Glock 22 magazine #: lang/json/MAGAZINE_from_json.py msgid "" -"A compact light-weight polymer magazine for use with the Glock 22 .40S&W " -"pistol." +"A compact light-weight polymer magazine for use with Glock pistols chambered " +"for .40 S&W or .357 SIG." msgstr "" #: lang/json/MAGAZINE_from_json.py @@ -45133,6 +45367,19 @@ msgid "" "A 12v lead-acid battery used to power smaller vehicles' electrical systems." msgstr "" +#: lang/json/MAGAZINE_from_json.py +msgid "small motorbike battery" +msgid_plural "small motorbike batteries" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for small motorbike battery +#: lang/json/MAGAZINE_from_json.py +msgid "" +"A miniature 12v lead-acid battery used to power smaller vehicles' electrical " +"systems." +msgstr "" + #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "medium storage battery" msgid_plural "medium storage batteries" @@ -46358,6 +46605,15 @@ msgstr "" msgid "Core content for Cataclysm-DDA" msgstr "" +#: lang/json/MOD_INFO_from_json.py +msgid "Desert Region" +msgstr "" + +#. ~ Description for Desert Region +#: lang/json/MOD_INFO_from_json.py +msgid "A testbed/WIP mod to showcase regional_map_settings JSON changes." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "Fast Healing" msgstr "" @@ -52447,6 +52703,74 @@ msgid_plural "gray mass" msgstr[0] "" msgstr[1] "" +#: lang/json/MONSTER_from_json.py +msgid "giant scorpion" +msgstr "" + +#. ~ Description for giant scorpion +#: lang/json/MONSTER_from_json.py +msgid "" +"A menacing arachnid with a second set of pedipalps, clacking rabidly as an " +"engorged stinger looms over its body." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "bush elephant" +msgstr "" + +#. ~ Description for bush elephant +#: lang/json/MONSTER_from_json.py +msgid "" +"The African Bush Elephant is a massive terrestrial animal with two long " +"tusks protruding from its mouth. Elephantry is on the rise since the " +"Cataclysm." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "hook kangaroo" +msgstr "" + +#. ~ Description for hook kangaroo +#: lang/json/MONSTER_from_json.py +msgid "" +"Grotesque and deformed kangaroo body that has black goo seeping from its " +"orifices. The most unnerving is its forearms have reformed into a raptorial " +"shape, like that of a praying mantis." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "fungal elephant" +msgstr "" + +#. ~ Description for fungal elephant +#: lang/json/MONSTER_from_json.py +msgid "" +"A horrifying image with tendrils seeping out of many oozing wounds, this " +"elephant's form appears more eldritch than animal." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "zandcrawler" +msgstr "" + +#. ~ Description for zandcrawler +#: lang/json/MONSTER_from_json.py +msgid "" +"A calloused and misshapened form that seems to have adapted to the harsh, " +"dry environment." +msgstr "" + +#: lang/json/MONSTER_from_json.py +msgid "Gila monster" +msgstr "" + +#. ~ Description for Gila monster +#: lang/json/MONSTER_from_json.py +msgid "" +"A reptile with aposematic coloration of black and orange that is renowned " +"for an extremely painful venom when it bites." +msgstr "" + #: lang/json/PET_ARMOR_from_json.py msgid "Kevlar dog harness" msgid_plural "Kevlar dog harnesses" @@ -52558,6 +52882,28 @@ msgid "" "that shines in the darkness!" msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Life Conversion" +msgstr "" + +#. ~ Description for Life Conversion +#: lang/json/SPELL_from_json.py +msgid "" +"You channel your life force itself into your spiritual energy. You spend hp " +"to regain mana." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Mind over Pain" +msgstr "" + +#. ~ Description for Mind over Pain +#: lang/json/SPELL_from_json.py +msgid "" +"With an intense ritual that resembles crossfit, you manage to put some of " +"your pain at bay." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Cure Light Wounds" msgstr "" @@ -52778,6 +53124,17 @@ msgid "" "for as long as it lasts." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Nature's Trance" +msgstr "" + +#. ~ Description for Nature's Trance +#: lang/json/SPELL_from_json.py +msgid "" +"Your connection to living things allows you to go into a magical trance. " +"This allows you to recover fatige quickly in exchange for mana." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -52800,6 +53157,17 @@ msgid "" "knocking enemies around you onto the ground." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Stone's Endurance" +msgstr "" + +#. ~ Description for Stone's Endurance +#: lang/json/SPELL_from_json.py +msgid "" +"You focus on the stones beneath you and draw from their agelessness. Your " +"mana is converted to stamina." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Point Flare" msgstr "" @@ -53029,6 +53397,17 @@ msgstr "" msgid "Creates a magical lamp." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Manatricity" +msgstr "" + +#. ~ Description for Manatricity +#: lang/json/SPELL_from_json.py +msgid "" +"You have found a way to convert your spiritual energy into power you can use " +"for your bionics." +msgstr "" + #: lang/json/TOOLMOD_from_json.py msgid "base toolmod" msgid_plural "base toolmods" @@ -54937,6 +55316,28 @@ msgstr[1] "" msgid "A fake fireplace used for basecamps." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "basecamp forge" +msgid_plural "basecamp forges" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basecamp forge +#: lang/json/TOOL_from_json.py +msgid "A fake forge used for basecamps." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "basecamp kiln" +msgid_plural "basecamp kilns" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for basecamp kiln +#: lang/json/TOOL_from_json.py +msgid "A fake kiln used for basecamps." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "basecamp stove" msgid_plural "basecamp stoves" @@ -57585,7 +57986,7 @@ msgstr[1] "" #: lang/json/TOOL_from_json.py msgid "" "This is a construction tool for drilling through hard rock or other " -"surfaces. It runs on batteries. Use it (if loaded) to blast a hole in " +"surfaces. It runs on a cell compatible with UPS. Use it to blast a hole in " "adjacent solid terrain." msgstr "" @@ -64929,6 +65330,10 @@ msgstr "" msgid "reading" msgstr "" +#: lang/json/activity_type_from_json.py +msgid "constructing" +msgstr "" + #: lang/json/activity_type_from_json.py msgid "playing" msgstr "" @@ -64978,10 +65383,6 @@ msgstr "" msgid "foraging" msgstr "" -#: lang/json/activity_type_from_json.py -msgid "construction" -msgstr "" - #: lang/json/activity_type_from_json.py msgid "interacting with the vehicle" msgstr "" @@ -65257,6 +65658,10 @@ msgstr "" msgid "pebbles" msgstr "" +#: lang/json/ammunition_type_from_json.py +msgid "shotcanisters" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "shot" msgstr "" @@ -65280,6 +65685,10 @@ msgstr "" msgid ".357 SIG" msgstr "" +#: lang/json/ammunition_type_from_json.py +msgid ".357 magnum" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "9x18mm" msgstr "" @@ -66325,6 +66734,14 @@ msgstr "" msgid "Integrated Toolset" msgstr "" +#. ~ Description for Integrated Toolset +#: lang/json/bionic_from_json.py +msgid "" +"Surgically implanted in your hands and fingers is a set of tools - " +"screwdriver, hammer, wrench, hacksaw, hand drill, and heating elements. You " +"can use this in place of many tools when crafting." +msgstr "" + #: lang/json/bionic_from_json.py msgid "Extended Toolset" msgstr "" @@ -67490,6 +67907,14 @@ msgstr "" msgid "Build Tarp Lean-To" msgstr "" +#: lang/json/construction_from_json.py +msgid "Dig a Shallow Pit" +msgstr "" + +#: lang/json/construction_from_json.py +msgid "Dig a Deep Pit" +msgstr "" + #: lang/json/construction_from_json.py msgid "Convert Fridge Power Supply" msgstr "" @@ -70433,22 +70858,6 @@ msgstr "" msgid "You are under the influence of depressants, and in a bit of a daze." msgstr "" -#: lang/json/effects_from_json.py -msgid "Stimulant Overdose" -msgstr "" - -#. ~ Description of effect 'Stimulant Overdose'. -#: lang/json/effects_from_json.py -msgid "" -"You can't sit still as you feel your heart pounding out of your chest. You " -"probably overdosed on those stims." -msgstr "" - -#. ~ Miss message for effect(s) 'Stimulant Overdose'. -#: lang/json/effects_from_json.py -msgid "You shake with the excess stimulation." -msgstr "" - #: lang/json/effects_from_json.py msgid "Took weak antibiotic" msgstr "" @@ -71672,13 +72081,11 @@ msgid "" msgstr "" #: lang/json/furniture_from_json.py -#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py msgid "metal screeching!" msgstr "" #: lang/json/furniture_from_json.py -#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py #: lang/json/terrain_from_json.py msgid "clang!" msgstr "" @@ -72450,6 +72857,7 @@ msgid "A carved statue made of stone." msgstr "" #: lang/json/furniture_from_json.py +#: lang/json/terrain_from_json.py msgid "thump." msgstr "" @@ -73828,6 +74236,17 @@ msgid "" "Japanese-style rooms." msgstr "" +#: lang/json/furniture_from_json.py +msgid "bitts" +msgstr "" + +#. ~ Description for bitts +#: lang/json/furniture_from_json.py +msgid "" +"Paired vertical iron posts mounted on a wharf, pier or quay. They are used " +"to secure mooring lines, ropes, hawsers, or cables." +msgstr "" + #: lang/json/furniture_from_json.py msgid "mutated cactus" msgstr "" @@ -74538,6 +74957,7 @@ msgid "" msgstr "" #: lang/json/gun_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py #: lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "shotgun" @@ -74567,6 +74987,28 @@ msgid "" "scrap. It is very quiet and deadly." msgstr "" +#: lang/json/gun_from_json.py +msgid "pneumatic shotgun" +msgid_plural "pneumatic shotguns" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A double-barreled pneumatic air shotgun handcrafted from scrap. Though it's " +"firepower is lacking compared to more conventional shotguns, this thing can " +"still pack quite a punch. That is, if your target is directly in front of " +"you." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "single" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "double" +msgstr "" + #: lang/json/gun_from_json.py msgid "mininuke launcher" msgid_plural "mininuke launchers" @@ -74716,10 +75158,6 @@ msgid_plural "base launchers" msgstr[0] "" msgstr[1] "" -#: lang/json/gun_from_json.py -msgid "single" -msgstr "" - #: lang/json/gun_from_json.py msgid "base pistol" msgid_plural "base pistols" @@ -75635,6 +76073,18 @@ msgid "" "operated semi-automatic pistol." msgstr "" +#: lang/json/gun_from_json.py +msgid "Glock 31" +msgid_plural "Glock 31s" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A full size .357 SIG Glock pistol. It is extremely similar to the Glock 22, " +"and could be converted to fire .40 S&W by switching the barrel." +msgstr "" + #: lang/json/gun_from_json.py msgid "Colt M1861 Navy" msgid_plural "Colt M1861 Navy" @@ -77328,10 +77778,6 @@ msgid "" "stock, with a pair of hammers to strike the two rounds it holds." msgstr "" -#: lang/json/gun_from_json.py -msgid "double" -msgstr "" - #: lang/json/gun_from_json.py msgid "pipe shotgun" msgid_plural "pipe shotguns" @@ -82589,6 +83035,10 @@ msgstr "" msgid "Turn off music" msgstr "" +#: lang/json/item_action_from_json.py +msgid "Roll die" +msgstr "" + #: lang/json/item_action_from_json.py msgid "Prepare to use" msgstr "" @@ -82759,6 +83209,13 @@ msgstr "" msgid "Take a magnesium tablet" msgstr "" +#. ~ Please leave anything in unchanged. +#: lang/json/json_flag_from_json.py +msgid "" +"This gear has cloaking tech that will make you invisible when active, at the cost of power from a UPS." +msgstr "" + #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "This gear has an alarm clock feature." @@ -83013,6 +83470,11 @@ msgid "" "inheriting from ingredients" msgstr "" +#. ~ Please leave anything in unchanged. +#: lang/json/json_flag_from_json.py +msgid "You could probably plant these." +msgstr "" + #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py msgid "" @@ -83792,6 +84254,10 @@ msgstr "" msgid "Delete Note" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Edit Note" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Create/Edit Note" msgstr "" @@ -83812,6 +84278,10 @@ msgstr "" msgid "Toggle Land Use Codes" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Toggle Map Notes" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Toggle City Labels" msgstr "" @@ -87368,6 +87838,10 @@ msgstr "" msgid "Soil" msgstr "" +#: lang/json/material_from_json.py +msgid "Zinc" +msgstr "" + #: lang/json/material_from_json.py msgid "Titanium" msgstr "" @@ -88727,17 +89201,20 @@ msgid "Reach Refugee Center" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring Dino Dave a roll of duct tape." +msgid "Bring 40 small cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"These ones are good, good ones. They need something to, you know, bind them " -"together. Surround them, light side, dark side." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring me the Force!" +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py @@ -88753,7 +89230,7 @@ msgid "Watch out, he's looking for it too." msgstr "" #: lang/json/mission_def_from_json.py -msgid "... eh?" +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py @@ -88765,24 +89242,13 @@ msgid "Oh, that's too bad. Guess they're eating it all." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring Dino Dave small cardboard boxes." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "" -"Gotta start small right? Little ones for keeping little things safe. I " -"could use 'em." +msgid "Bring a roll of duct tape" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Gotta start small right? Little ones for keeping little things safe. I " -"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " -"bring me like... like... forty?" -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Got the little ones yet?" +"These ones are good, good ones. They need something to, you know, bind them " +"together. Surround them, light side, dark side." msgstr "" #: lang/json/mission_def_from_json.py @@ -88796,7 +89262,7 @@ msgid "It's all around us... but did you get it in a crude matter form?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring Dino Dave medium-sized cardboard boxes" +msgid "Bring 10 medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py @@ -88819,7 +89285,7 @@ msgid "I'm so happy now!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring Dino Dave some large plastic sheets" +msgid "Bring 10 large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py @@ -88860,7 +89326,7 @@ msgid "Oh, that's too bad." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring Dino Dave large cardboard boxes" +msgid "Bring 5 large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py @@ -88905,7 +89371,64 @@ msgid "No! Oh god, no, this can't be happening..." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find a copy of the Quran for Fatima" +msgid "Find Dana's family sourdough culture" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could get my real sourdough starter..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If you really like this second-rate bread, you could risk your life for " +"something actually worth it. I left my actual sourdough starter back in the " +"bakery where I worked. That baby is a hundred years old, and has been in my " +"family for generations... if you can bring him to me, I'll bake you the " +"finest bread you've ever had." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Take care of yourself out there. And listen, when you bring my sourdough " +"back, I don't want to see a scratch on him, you understand?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I can understand why you think you wouldn't want to risk your life for a " +"bread starter. You haven't tried that bread." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"He'll be in the right-hand fridge, in a jar with a picture of the Millenium " +"Falcon on it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "So, you seen my sourdough starter?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Oh, you will not regret this. He may not look like much, but he's got it " +"where it counts, kid. It's gonna take me a few days to revive him after " +"being abandoned so long, but he'll be operational soon and then you can come " +"back for some real bread." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "This ain't it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I am not sure if I'm gonna make it through the cataclysm without my special " +"jar of goop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran" msgstr "" #: lang/json/mission_def_from_json.py @@ -88956,7 +89479,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring Jenny a motor for her compressor." +msgid "Find an electric motor" msgstr "" #: lang/json/mission_def_from_json.py @@ -89005,7 +89528,7 @@ msgid "No worries. Let me know if you want to try again." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Bring Jenny a tank for her compressor." +msgid "Bring back a 60L metal tank" msgstr "" #: lang/json/mission_def_from_json.py @@ -89081,7 +89604,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find 6 bottles of prozac for Uyen" +msgid "Find 6 bottles of Prozac" msgstr "" #: lang/json/mission_def_from_json.py @@ -89110,7 +89633,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find a haircut kit for Vanessa" +msgid "Make a makeshift haircut kit" msgstr "" #: lang/json/mission_def_from_json.py @@ -99776,6 +100299,10 @@ msgstr "" msgid "garage" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "garage roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "boat rental" msgstr "" @@ -99887,6 +100414,10 @@ msgstr "" msgid "public space" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "parking lot" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "irradiation plant" msgstr "" @@ -100132,6 +100663,18 @@ msgstr "" msgid "silos" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "yard" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural house" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "rural house roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "campus commons building" msgstr "" @@ -100140,6 +100683,22 @@ msgstr "" msgid "campus commons roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "campus media building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus media building roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus health building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus health building roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "campus lecture hall" msgstr "" @@ -100366,6 +100925,10 @@ msgstr "" msgid "garage - gas station" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "garage - gas station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "dispensary" msgstr "" @@ -100486,10 +101049,26 @@ msgstr "" msgid "gardening supply" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "gardening supply roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "craft shop" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop upper roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "craft shop 2nd floor" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "small market" msgstr "" @@ -100646,10 +101225,6 @@ msgstr "" msgid "swamp" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "parking lot" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "strange temple" msgstr "" @@ -101164,10 +101739,6 @@ msgstr "" msgid "barn roof" msgstr "" -#: lang/json/overmap_terrain_from_json.py -msgid "garage roof" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "ranch" msgstr "" @@ -101260,6 +101831,14 @@ msgstr "" msgid "golf course service building" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "golf course bar" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "golf course service building roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "baseball field" msgstr "" @@ -101386,11 +101965,15 @@ msgid "dock" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "duplex" +msgid "marina" msgstr "" #: lang/json/overmap_terrain_from_json.py -msgid "rural house" +msgid "marina parking" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "duplex" msgstr "" #: lang/json/overmap_terrain_from_json.py @@ -101890,6 +102473,10 @@ msgstr "" msgid "ruined cabin - dirt plaza" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "desert" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "FEMA refugee camp" msgstr "" @@ -105770,6 +106357,34 @@ msgid "" "on. This displeases you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Career Politician" +msgstr "" + +#. ~ Profession (male Career Politician) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You've spent your life appealing to the people, persuading many and " +"promising much throughout your time in office. Now that your voting base " +"wants to eat you alive, winning hearts and minds just got that much harder." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Career Politician" +msgstr "" + +#. ~ Profession (female Career Politician) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You've spent your life appealing to the people, persuading many and " +"promising much throughout your time in office. Now that your voting base " +"wants to eat you alive, winning hearts and minds just got that much harder." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Debugger" @@ -108122,6 +108737,688 @@ msgstr "" msgid "Stuff THE MAN doesn't want you to know" msgstr "" +#: lang/json/recipe_from_json.py +msgid "We should survey the base site and set up a bulletin board." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Now that we have some cover, we should build a fireplace in the northeast " +"shack." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Now that we have some cover, we should set up a brazier in the northeast " +"shack." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Now that we have some cover, we should build a stove in the northeast shack." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "A straw bed in the northeast shack will make sleeping easier." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A proper bed in the northeast shack will give one of us a place to sleep " +"soundly." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "Another straw bed in the northeast shack will make sleeping easier." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Another proper bed in the northeast shack will give one of us a place to " +"sleep soundly." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the east tent will allow us to house two more people " +"and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the east tent will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the east room will allow us to house two more people " +"and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the east room will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the southeast tent will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the southeast tent will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the southeast room will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the southeast room will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the northwest building will allow us to house two " +"more people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the northwest building will allow us to house two " +"more people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the west tent will allow us to house two more people " +"and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the west tent will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the west room will allow us to house two more people " +"and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the west room will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the southwest tent will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the southwest tent will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of straw beds in the southwest room will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A pair of proper beds in the southwest room will allow us to house two more " +"people and expand the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A fireplace, counter, and some pots and pans in the central building will " +"allow us to cook simple recipes and organize hunting expeditions." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We need a butchery rack to maximize the harvest from our hunting and " +"trapping efforts." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A tool rack in the central building will give us a place to store tools." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Setting up some tables and chairs will make the central building into a " +"dining area, and we can also use them as a workspace to organize the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A wood stove, counter, and some pots and pans in the south half of the " +"central building will allow us to cook simple recipes and organize hunting " +"expeditions. The stove will be more efficient than a fireplace." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "Digging a well will give us easy access to water." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "Digging a root cellar will give us a way to preserve food." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "We could build a radio tower to improve the range of our radios." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Adding a console to control the radio tower will help with recruiting more " +"survivors." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the north edge of the camp would provide some defense " +"and generate building materials." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the south edge of the camp would provide some defense " +"and generate building materials." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the northeast corner of the camp would provide some " +"defense and generate building materials. If we have solid buildings all " +"along the east side of the camp, we would only need to dig the trench long " +"enough to reach the buildings." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the northwest corner of the camp would provide some " +"defense and generate building materials. If we have solid buildings all " +"along the west side of the camp, we would only need to dig the trench long " +"enough to reach the buildings." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the southeast corner of the camp would provide some " +"defense and generate building materials. If we have solid buildings all " +"along the east side of the camp, we would only need to dig the trench long " +"enough to reach the buildings." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the southwest corner of the camp would provide some " +"defense and generate building materials. If we have solid buildings all " +"along the west side of the camp, we would only need to dig the trench long " +"enough to reach the buildings." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the east edge of the camp would provide some defense " +"and generate building materials. We'll need to run the trench the length of " +"the camp if we don't have solid buildings all along the east side." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"Digging a trench along the west edge of the camp would provide some defense " +"and generate building materials. We'll need to run the trench the length of " +"the camp if we don't have solid buildings all along the west side." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We need some shelter, so build half of a metal shack with a metal roof on " +"the northeast side of the camp" +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should use metal to expand the shelter so we have space for another bed." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "We should use metal to finish the northeast shack." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a metal building on the east " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a metal room on the east side, which " +"we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a metal building on the southeast " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a metal room on the southeast side, " +"which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a metal building on the northwest " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a metal building on the west " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a metal room on the west side, which " +"we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a metal building on the southwest " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a metal room on the southwest side, " +"which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a kitchen and dining hall. We should build " +"the northeast quarter of one from metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the east room with metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"northwest quarter of one from metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the west room with metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build " +"between the east and west rooms with metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"southeast quarter of one from metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the southeast room with metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"southwest quarter of one from metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the southwest room with metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build " +"between the southeast and southwest rooms with metal." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We need some shelter, so set up a tent on the northeast side of the camp." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a tent on the east side, though " +"doing so will mean we will need more materials to build the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a tent on the southeast side, " +"though doing so will mean we will need more materials to build the central " +"building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a tent on the northwest side, " +"though doing so will mean we will need more materials to build the central " +"building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a tent on the west side, though " +"doing so will mean we will need more materials to build the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a tent on the southwest side, " +"though doing so will mean we will need more materials to build the central " +"building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We need some shelter, so build half of a wattle-and-daub shack with a sod " +"roof on the northeast side of the camp" +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should use wattle-and-daub to expand the shelter so we have space for " +"another bed." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "We should use wattle-and-daub to finish the northeast shack." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wattle-and-daub building on the " +"east side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wattle-and-daub room on the east " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wattle-and-daub building on the " +"southeast side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wattle-and-daub room on the " +"southeast side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wattle-and-daub building on the " +"northwest side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wattle-and-daub building on the " +"west side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wattle-and-daub room on the west " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wattle-and-daub building on the " +"southwest side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wattle-and-daub room on the " +"southwest side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a kitchen and dining hall. We should build " +"the northeast quarter of one from wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the east room with wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"northwest quarter of one from wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the west room with wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build " +"between the east and west rooms with wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"southeast quarter of one from wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the southeast room with wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"southwest quarter of one from wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the southwest room with wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build " +"between the southeast and southwest rooms with wattle-and-daub." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We need some shelter, so build half of a wood panel shack with a wooden roof " +"on the northeast side of the camp" +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should use wood panel to expand the shelter so we have space for another " +"bed." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "We should use wood panel to finish the northeast shack." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wood panel building on the east " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wood panel room on the east side, " +"which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wood panel building on the " +"southeast side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wood panel room on the southeast " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wood panel building on the " +"northwest side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wood panel building on the west " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wood panel room on the west side, " +"which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by putting up a wood panel building on the " +"southwest side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"We should expand our housing by adding a wood panel room on the southwest " +"side, which we can also use as part of the central building." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a kitchen and dining hall. We should build " +"the northeast quarter of one from wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the east room with wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"northwest quarter of one from wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the west room with wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build " +"between the east and west rooms with wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"southeast quarter of one from wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the southeast room with wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build the " +"southwest quarter of one from wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build out " +"from the southwest room with wood panel." +msgstr "" + +#: lang/json/recipe_from_json.py +msgid "" +"A central building can act as a core and dining hall. We should build " +"between the southeast and southwest rooms with wood panel." +msgstr "" + #: lang/json/recipe_from_json.py msgid "We need to survey the base site first." msgstr "" @@ -108389,6 +109686,14 @@ msgid "" "exchange for charcoal." msgstr "" +#: lang/json/recipe_group_from_json.py +msgid "Field Camp" +msgstr "" + +#: lang/json/recipe_group_from_json.py +msgid "Old Camp" +msgstr "" + #: lang/json/recipe_group_from_json.py msgid "Farm" msgstr "" @@ -112754,8 +114059,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"\"Stuck in tent. Zombies outside. Friends were outside too, now they're " -"part of zombies. Need to be quiet\"" +"\"Stuck here. Zombies outside. Friends were outside too, now they're part " +"of zombies. Need to be quiet\"" msgstr "" #: lang/json/snippet_from_json.py @@ -113252,6 +114557,14 @@ msgid "" "TO THEm AND THEY WILL HELP YOU\"" msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"\"Lisa always was a fan of sports. Thank God these Global Athletics Games " +"in Harran started some time before the outbreak, so she was able to leave " +"New England before it was quarantined. I can only hope there are no " +"zombies, as we do have here, in the city she flew to.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "LABS BOMBED: In further invasion proof (discounting earlier suggestion of a " @@ -113264,7 +114577,7 @@ msgid "" "CHINA INVADES?: Communications were muddled by a large influx of aggressive " "armed individuals. \"We have this,\" says a local Police Chief. \"We are " "authorizing our robotic security drones to use lethal force on combative " -"humans\"" +"humans.\"" msgstr "" #: lang/json/snippet_from_json.py @@ -113350,6 +114663,16 @@ msgid "" "soldiers may be headed to a possible underground bunker." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"A BRIDGE TOO FAR: In a Monday statement, the Department of Defense detailed " +"its plans to deploy strategic minefields on key bridge crossings, in order " +"to quarantine infected regions. \"Military personnel will be on-site to " +"assist any refugees fleeing the infected zones. We urge citizens to comply " +"with all military directives and avoid quarantined areas whenever possible " +"until order can be restored.\"" +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "QUANTUM LEAP: An undisclosed project has yielded results in the form of " @@ -118395,6 +119718,14 @@ msgstr "" msgid " will move freely as needed." msgstr "" +#: lang/json/snippet_from_json.py +msgid " will follow you at about two paces." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid " will follow you at about four paces." +msgstr "" + #: lang/json/snippet_from_json.py msgid " will not go places that require opening a door." msgstr "" @@ -122359,6 +123690,10 @@ msgstr "" msgid "Please sort out some of these items nearby." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Please work on any construction taks that you know how to finish." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -127391,7 +128726,7 @@ msgstr "" msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " "tower, got my PhD in mycology. Did my dissertation on signaling pathways in " -"hyphae formation, and a postdoc in plant-fungus communication in rhyzomes. " +"hyphae formation, and a postdoc in plant-fungus communication in rhizomes. " "Then I got the job at the bookstore because there wasn't a ton of work for a " "doctor of mycology, although I'd had a few nibbles before things really got " "crazy. Now, people are just breaking down my door to get my sweet sweet " @@ -127407,7 +128742,7 @@ msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " "dissertation on signaling pathways in hyphae formation, and a postdoc in " -"plant-fungus communication in rhyzomes. Then I got the job at the bookstore " +"plant-fungus communication in rhizomes. Then I got the job at the bookstore " "because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " "breaking down my door to get my sweet sweet knowledge of mold to help them " @@ -127804,7 +129139,7 @@ msgid "" "to the end, only he had a lot more power to work with. One day he just " "showed up to work with a militia of rowdies and loyalists and staged a coup, " "taking over the government completely, killing those that opposed him, and " -"moving as many people as he could get behidn him onto the islands. The " +"moving as many people as he could get behind him onto the islands. The " "rumors I've heard is that most of them survived the cataclysm and are still " "running the show there, but that seems kind of impossible to me." msgstr "" @@ -127847,7 +129182,7 @@ msgid "Oh, hey, it's you again." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "You're back, and still alive! Woah." +msgid "You're back, and still alive! Whoa." msgstr "" #: lang/json/talk_topic_from_json.py @@ -128024,6 +129359,30 @@ msgstr "" msgid "Right now, not much. Maybe ask later." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spoke to your husband about getting you a job at the Tacoma Ranch. What " +"would you think about that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Your husband said to ask you what you'd think about getting out of this " +"place and coming to work for me at my own camp." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "About that sourdough starter you had me looking for..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Got any more bread I can trade flour for?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello, nice to see you again." msgstr "" @@ -128057,7 +129416,172 @@ msgid "We don't get many new faces around here. How can I help you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Not much is up right now. Ask me again some time." +msgid "I'd better get going. Bye, Dana." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Getting by as much as I can. What brings you around today?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was working in a nice restaurant as a baker, until . I was " +"pregnant, and it was getting close to time to go on mat leave; lots of time " +"on my feet, getting up stupid-early to make pastries, you know. Because of " +"the pregnancy we were evacuated early and shipped out this way, but our bus " +"was attacked in the chaos. We managed to escape, but had to hike the rest " +"of the way, with the Singhs and a few other refugees that didn't make it. I " +"lost the baby. It wasn't a good time." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have you done any baking lately?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry for your loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Not since I last saw you, sorry. Come by in another day or two and I'll try " +"to keep a loaf set aside for you, but they disappear fast." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I sure do, if you've got eight cups of flour for me, I'd be happy to trade " +"you another loaf." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do a bit. I got a sourdough starter going almost as soon as I arrived, " +"and it's making passable bread already. I cooked some up yesterday " +"actually, I could probably trade a loaf of fresh bread for, say, about eight " +"cups of flour." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That sounds like a great deal, here's some flour for you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can we talk about something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll look into that. I'd better get going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's kind of you to say. I'm doing my best to move on... it hurts, but in " +"the scale of things it could be worse. Pablo and I still have each other, " +"that's a lot more than most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of the best damn sourdough bread in the world. I used " +"to make that claim as a joke, but I feel like now there's a fighting chance " +"nobody else can beat me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice. Enjoy the mighty bounty of Landough Calrisean." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here you go, from the family recipe." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hope you enjoy it as much as I do, this is the best damn bread in the world " +"now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Great, here's a loaf of my locally-famous, not-very-mature sourdough. It's " +"not too bad honestly. Everyone here seems to like it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You seem pretty unhappy about the quality of your bread. Is there something " +"I can do to help?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "It smells awesome. I'm going to head out now, thanks!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sorry, not quite yet. Landough was in pretty rough shape. No fault of " +"yours, it was no good having him cooped up in a dank fridge for that long... " +"and I think my apprentice baker may have fucked with him before the " +"cataclysm too. He'd better hope he's a zombie now, because if I see him " +"alive... anyway, it's gonna take a few more feeds before I can get him ready " +"for prime time, check back in a couple days." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Things are tense at the best of times. We didn't choose this crowd, so not " +"all of us really get along. I like Jenny and Fatima, and the three of us " +"are kind of lucky to have friends here, but that doesn't make up for us " +"being a bunch of unfamiliar faces crammed into a tiny space. Someone's " +"gonna murder someone soon, mark my words." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Have you heard anything back from the ranch about jobs yet?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. I've made a few friends here, but not so much as I'd stick around here " +"with no future prospects, hoping someone downstairs dies to make room for " +"me. It does sound nice, if they're looking for more workers." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I spoke to the foreman over at Tacoma Ranch. If you're willing to put in " +"the work, they'll find some work for you over there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll look into that. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"All right. I've taken some time to think about it, and I'm willing to go. " +"I'm sure they'll have use for a baker over there, after all, and if I don't " +"get out of this place there's a very real chance I'm going to snap. You can " +"go let Pablo know first hand, if you want; he's been pretty excited about " +"the idea." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sure, I'll go tell him. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sure, I'll go tell him. I'd better get going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Pablo's a little quicker on the trigger than I am. We're trying to have a " +"baby, did you know that? It's a bit crazy in this world, but I won't change " +"those plans. Tell you what: if your camp has access to a doctor and some " +"medical facilities, in case I actually can get pregnant again, I would " +"consider getting out of here and signing up." msgstr "" #: lang/json/talk_topic_from_json.py @@ -128100,10 +129624,6 @@ msgstr "" msgid "Why don't we talk about it some other time?" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "How are things here?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "How did you wind up here at the center?" msgstr "" @@ -128156,7 +129676,7 @@ msgstr "" msgid "" "Before I had just finished welding school actually, and was " "about to start looking for a job. That was fun, being a young Muslim woman " -"in a Massachussets trade college, let me tell you." +"in a Massachusetts trade college, let me tell you." msgstr "" #: lang/json/talk_topic_from_json.py @@ -128208,9 +129728,9 @@ msgid "" "the women doing triage and processing had a bit of a hang-up about " "particular, um, colors of people being allowed into the center. She claimed " "to have lost our 'papers', along with a lot of other peoples'. Thankfully " -"because we'd helped so many we were able to argue that they could't leave us " -"out, but there was no space left downstairs by the time we got that sorted, " -"so here we are." +"because we'd helped so many we were able to argue that they couldn't leave " +"us out, but there was no space left downstairs by the time we got that " +"sorted, so here we are." msgstr "" #: lang/json/talk_topic_from_json.py @@ -128255,7 +129775,7 @@ msgid "Nice to meet you too. Are you staying here, or something?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "No, I'm a traveller. What's your story?" +msgid "No, I'm a traveler. What's your story?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -128365,9 +129885,9 @@ msgid "" "I don't know the other folks very well yet. There's Boris, Garry, and Stan, " "they seem to keep to each other. They've gone through something, but I " "haven't pried. Dana and her husband lost their baby, that was a big deal " -"right when they arrived. There's that counsellor lady with the unusual " -"name, she's nice enough. Fatima just showed up a little while ago, but I've " -"been trying to get to know her better, I think we've at least got our " +"right when they arrived. There's that counselor lady with the unusual name, " +"she's nice enough. Fatima just showed up a little while ago, but I've been " +"trying to get to know her better, I think we've at least got our " "professional stuff in common a bit. I haven't really spoken much to anyone " "else." msgstr "" @@ -128522,8 +130042,8 @@ msgid "" "and there's no sign of that getting better. The balance is way off right " "now, a hard day of work barely gets you enough to fill your belly. I " "shouldn't bitch too much though. I don't know much better way to run it, " -"although rumour is that the folks living downstairs have it a lot easier " -"than we do. I try not to think too much on that." +"although rumor is that the folks living downstairs have it a lot easier than " +"we do. I try not to think too much on that." msgstr "" #: lang/json/talk_topic_from_json.py @@ -128540,7 +130060,7 @@ msgid "" "She was lucky to make it out alive. She and Pedro had one of the rougher " "trips here, I guess. We just kinda click as friends, I'm grateful there's " "someone else here I can really get along with. Her husband, Pedro, is still " -"pretty shellshocked. He doesn't talk much. I like him though, when he " +"pretty shell-shocked. He doesn't talk much. I like him though, when he " "opens up he's just hilarious. Draco is just a cantankerous old fart who " "hasn't actually got old yet, give him twenty years and he'll be there. I " "like grumpy people. We also have pretty similar taste in music. Aleesha's " @@ -128716,13 +130236,23 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "I'm a traveller actually. Just had some questions." +msgid "I'm a traveler actually. Just had some questions." msgstr "" #: lang/json/talk_topic_from_json.py msgid "Ah. I am sorry, I do not think I have answers for you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Dana wanted me to be the one to let you know: they've got work for you over " +"at the ranch. You could get out of here if you want." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye, Pablo." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hi there. I'm Pablo, nice to see a new face." msgstr "" @@ -128743,6 +130273,122 @@ msgstr "" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"It's been a rough time, adapting to everything that's going on. What would " +"you like to know about?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was an accountant before. Just finished my CPA last year and I already " +"had a position as a manager at my firm. Everything was looking good. We " +"decided we were ready for a baby. Hindsight makes us idiots, hey?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up in this place?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Dana and I were evacuated early, because of her pregnancy. They took us to a " +"concentration center, and then we got on a bus to come here. The bus though, " +"it was rolled over by a giant monster, and many died. We made it out along " +"with a few others, and we kept going until we made it here. It wasn't much " +"farther, and for some reason the monster didn't chase us, just kept tearing " +"at the bus." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about the pregnancy?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What happened to the other crash survivors?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"The doctor did what she could but after the accident and the stress of the " +"attack... No." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thanks. No, really, thank you. Others have gone through so much I feel " +"like we should suck it up, but Rhy says we should let ourselves mourn " +"properly and she seems to know her stuff." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"From the bus? A few of us made it in the end; the Singh family were on that " +"bus with us. We were some of the last refugees to arrive. They put us into " +"a room for processing, where a bunch of the wounded were being handled as " +"best as they could manage. They were short staffed though, and they missed " +"one. We all thought he was just having a nap, but he wasn't, and when he " +"got back up as a zombie, there was a huge panic. Gunshots in a small, " +"crowded room, and trampling... it was really ugly. We were close to the " +"door and managed to get out right away, but then a couple panicking people " +"closed the place off and left innocent people in there for what seemed like " +"ages, calling it an 'outbreak'. By the time leveller heads prevailed, there " +"weren't many people left in there to recover." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I've been back to the quarantined area, cleared it out. It was ugly back " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thanks for that, both for taking away the constant worry about all those " +" close at hand, and for putting those poor souls at rest at last." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's pretty tough here. We're packed into too small a location with too " +"many people. Everyone is dealing with their own trauma. Rhy is trying to " +"help out, but she can't be a proper counsellor in these circumstances. I " +"don't know how we're going to survive for long. As for me, I wish I could " +"be anywhere but here. I need to see the sky again, or I'm going to go " +"insane." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why not move to the Tacoma Commune?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I've got a secure base. You and your wife could come with me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I heard about that place. What use would they have for an accountant, " +"though? If they have work for my wife Dana and I, I'd definitely consider " +"it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This is amazing news! Thank you so much! I've talked to some of the " +"traders who have been there and I really think I can help, mostly with the " +"manual labour but also with the bookkeeping end. It sounds so much better " +"than this place. Thanks, my friend! We'll get packing, and see if we can " +"get a place on the next caravan out. It'll be a little while I'm sure, but " +"at least our child won't be born in captivity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Really? I might consider it. Talk to my wife, Dana. She's put down a lot " +"more roots here, it would be up to her I think. I'd go anywhere right now." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What brings you around here? We don't see a lot of new faces." msgstr "" @@ -128769,7 +130415,7 @@ msgid "So, what's your story? We don't see a lot of new people back here." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just a curious traveller. What's up with you?" +msgid "Just a curious traveler. What's up with you?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -128801,7 +130447,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"I was a counselor actually, I worked for my band, Gitxsan. Did a lot of " "mental health and addictions for people that had been through some really " "tough stuff. Maybe not zombies eating your child level tough, but " "surprisingly not far off. My people have gone through some real messy crap." @@ -128892,7 +130538,7 @@ msgid "Hi, Uyen. Got a minute?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Just a traveller. Can I ask you a few things?" +msgid "Just a traveler. Can I ask you a few things?" msgstr "" #: lang/json/talk_topic_from_json.py @@ -129799,7 +131445,7 @@ msgid "" "One of the people that got evacuated here was actually on a charter bus " "taking him back to his ranch, 'til it was commandeered to be an evacuation " "vehicle and brought him here. Once the dust shook out we made a deal to get " -"him home and provide him with labour in return for making the ranch into a " +"him home and provide him with labor in return for making the ranch into a " "subsidiary of our dealings here. It worked out pretty well for everyone, " "most of the people with skills for that kind of work are already out there." msgstr "" @@ -129909,7 +131555,7 @@ msgstr "" msgid "" "Guess that makes two of us. Well, kind of. I don't think we're open, " "though. Full up as hell; it's almost a crowd downstairs. Did you see the " -"trader at the enterance? There's the one to ask." +"trader at the entrance? There's the one to ask." msgstr "" #: lang/json/talk_topic_from_json.py @@ -130602,6 +132248,12 @@ msgstr "" msgid "What's your job here?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Hey, are you looking for workers here? I know a couple people back at the " +"refugee center that might be willing to come." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I was starting to wonder if they were really interested in the project or " @@ -130645,6 +132297,17 @@ msgid "" "here and dump it on the ground, we'll sort it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"we're still in early stages of getting set up, but we're not overly flush " +"for hands, that's for sure. If they're willing to put in a hard day's work, " +"we can get them busy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll tell them that, but they seemed good for a bit of hard labor." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "How can I help you?" msgstr "" @@ -132921,6 +134584,16 @@ msgstr "" msgid "empty space" msgstr "" +#. ~ Description for empty space +#: lang/json/terrain_from_json.py +msgid "This is empty space." +msgstr "" + +#. ~ Description for open air +#: lang/json/terrain_from_json.py +msgid "This is open air." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built brick wall" msgstr "" @@ -136101,6 +137774,8 @@ msgid "A flight of stairs leading down." msgstr "" #. ~ Description for stairs +#. ~ Description for low stairs (beginning section) +#. ~ Description for low stairs (end section) #: lang/json/terrain_from_json.py msgid "A flight of stairs leading up." msgstr "" @@ -137271,6 +138946,67 @@ msgstr "" msgid "mound of blob feed" msgstr "" +#: lang/json/terrain_from_json.py +msgid "singing sand" +msgstr "" + +#. ~ Description for singing sand +#: lang/json/terrain_from_json.py +msgid "" +"A formation of sand containing special minerals to produce whistling noises " +"when stepped on and from the wind." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "fweet!" +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "outcrop" +msgstr "" + +#. ~ Description for outcrop +#: lang/json/terrain_from_json.py +msgid "" +"An assortment of various large, sharp rocks that jut out from the " +"surrounding terrain. Could be as a surface for a number of things or " +"climbed on if worn with proper footwear." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "dune" +msgstr "" + +#. ~ Description for dune +#: lang/json/terrain_from_json.py +msgid "" +"A huge sand dune that is continually reshaped by the wind. Climbing it will " +"be troublesome." +msgstr "" + +#: lang/json/terrain_from_json.py +msgid "desert pavement" +msgstr "" + +#. ~ Description for desert pavement +#: lang/json/terrain_from_json.py +msgid "" +"Not that kind of pavement! Naturally occurring pockets of densely packed " +"rock fragments that is easier to traverse than sand, with the right footwear." +msgstr "" + +#. ~ Description for scorched earth +#: lang/json/terrain_from_json.py +msgid "" +"Cracked and dry soil that doesn't look like it will be capable of supporting " +"anything in your lifetime." +msgstr "" + +#. ~ Description for cactus +#: lang/json/terrain_from_json.py +msgid "A tall cactus." +msgstr "" + #: lang/json/tool_quality_from_json.py msgid "cutting" msgstr "" @@ -137479,6 +139215,10 @@ msgstr "" msgid "practice target" msgstr "" +#: lang/json/trap_from_json.py +msgid "unfinished construction" +msgstr "" + #: lang/json/trap_from_json.py msgid "raincatcher" msgstr "" @@ -137810,13 +139550,21 @@ msgid "Bicycle" msgstr "" #: lang/json/vehicle_from_json.py -msgid "Dirt bike" +msgid "Mountain bike" msgstr "" #: lang/json/vehicle_from_json.py msgid "Electric Bicycle" msgstr "" +#: lang/json/vehicle_from_json.py +msgid "Motocross Bike" +msgstr "" + +#: lang/json/vehicle_from_json.py +msgid "Street-Legal Dirt Bike" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "Motorcycle" msgstr "" @@ -138202,6 +139950,10 @@ msgstr "" msgid "RV" msgstr "" +#: lang/json/vehicle_from_json.py +msgid "Limousine" +msgstr "" + #: lang/json/vehicle_from_json.py msgid "Schoolbus" msgstr "" @@ -139251,6 +141003,10 @@ msgid "" "electrical devices built into the vehicle." msgstr "" +#: lang/json/vehicle_part_from_json.py +msgid "motorbike battery, small" +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "swappable storage battery" msgstr "" @@ -139635,6 +141391,15 @@ msgid "" "the front." msgstr "" +#. ~ Description for motorcycle headlight +#: lang/json/vehicle_part_from_json.py +msgid "" +"A small, lightweight, bright light that illuminates a narrow cone outside " +"the vehicle when turned on. During installation, you can choose what " +"direction to point the light, so multiple headlights can illuminate the " +"sides or rear, as well as the front." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "wide angle headlight" msgstr "" @@ -141882,12 +143647,23 @@ msgstr "" msgid "You salvage what you can from the corpse, but it is badly damaged." msgstr "" +#: src/activity_handlers.cpp +msgid "" +"You notice some strange organs, pehraps harvestable via careful dissection." +msgstr "" + #: src/activity_handlers.cpp msgid "" "You suspect there might be bionics implanted in this corpse, that careful " "dissection might reveal." msgstr "" +#: src/activity_handlers.cpp +msgid "" +"Your butchering tool destroys a strange organ. Perhaps a more surgical " +"approach would allow harvesting it." +msgstr "" + #: src/activity_handlers.cpp msgid "" "Your butchering tool encounters something implanted in this corpse, but your " @@ -142168,7 +143944,7 @@ msgstr "" msgid "You refill the %s." msgstr "" -#: src/activity_handlers.cpp src/iuse_actor.cpp +#: src/activity_handlers.cpp msgid "There's nothing to light there." msgstr "" @@ -142411,6 +144187,21 @@ msgstr "" msgid "You try to sleep, but can't..." msgstr "" +#: src/activity_handlers.cpp +#, c-format +msgid "%s did not find an unfinished construction at the activity spot." +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "%s can't work on this construction anymore." +msgstr "" + +#: src/activity_handlers.cpp +#, c-format +msgid "%s can't reach the source tile to construct" +msgstr "" + #: src/activity_handlers.cpp msgid "" "You no longer have the in progress craft in your possession. You stop " @@ -143235,8 +145026,8 @@ msgid "Worn Items" msgstr "" #. ~ Adjective in "You block of the damage with your . -#: src/advanced_inv.cpp src/handle_action.cpp src/magic.cpp -#: src/melee.cpp src/recipe.cpp +#: src/advanced_inv.cpp src/magic.cpp src/melee.cpp +#: src/recipe.cpp msgid "none" msgstr "" @@ -145196,6 +146987,11 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "" +#: src/avatar_action.cpp +#, c-format +msgid "The %s can't be fired while loaded with incompatible ammunition %s" +msgstr "" + #: src/avatar_action.cpp msgid "You can't effectively throw while you're in your shell." msgstr "" @@ -145284,19 +147080,7 @@ msgid "Base Missions" msgstr "" #: src/basecamp.cpp -msgid "Garage Expansion" -msgstr "" - -#: src/basecamp.cpp -msgid "Kitchen Expansion" -msgstr "" - -#: src/basecamp.cpp -msgid "Blacksmith Expansion" -msgstr "" - -#: src/basecamp.cpp -msgid "Farm Expansion" +msgid "Expansion" msgstr "" #: src/basecamp.cpp @@ -146845,6 +148629,114 @@ msgstr "" msgid "Wearing:" msgstr "" +#: src/character.cpp +msgid "AW HELL NAH" +msgstr "" + +#: src/character.cpp +msgid "DAYUM" +msgstr "" + +#: src/character.cpp +msgid "Fluffy" +msgstr "" + +#: src/character.cpp +msgid "Husky" +msgstr "" + +#: src/character.cpp +msgid "Healthy" +msgstr "" + +#: src/character.cpp +msgid "Big" +msgstr "" + +#: src/character.cpp src/color.cpp +#: src/color.cpp src/options.cpp src/panels.cpp +msgid "Normal" +msgstr "" + +#: src/character.cpp +msgid "Bean Pole" +msgstr "" + +#: src/character.cpp +msgid "Emaciated" +msgstr "" + +#: src/character.cpp +msgid "Spooky Scary Skeleton" +msgstr "" + +#: src/character.cpp +msgid "Morbidly Obese" +msgstr "" + +#: src/character.cpp +msgid "Very Obese" +msgstr "" + +#: src/character.cpp +msgid "Obese" +msgstr "" + +#: src/character.cpp +msgid "Overweight" +msgstr "" + +#: src/character.cpp +msgid "Underweight" +msgstr "" + +#: src/character.cpp +msgid "Skeletal" +msgstr "" + +#: src/character.cpp +msgid "" +"You have far more fat than is healthy or useful. It is causing you major " +"problems." +msgstr "" + +#: src/character.cpp +msgid "You have too much fat. It impacts your day to day health and wellness." +msgstr "" + +#: src/character.cpp +msgid "" +"you've definitely put on a lot of extra weight. Although it's helpful in " +"times of famine, this is too much and is impacting your health." +msgstr "" + +#: src/character.cpp +msgid "" +"You've put on some extra pounds. Nothing too excessive but it's starting to " +"impact your health and waistline a bit." +msgstr "" + +#: src/character.cpp +msgid "" +"You look to be a pretty healthy weight, with some fat to last you through " +"the winter but nothing excessive." +msgstr "" + +#: src/character.cpp +msgid "" +"You are thin, thinner than is healthy. You are less resilient to going " +"without food." +msgstr "" + +#: src/character.cpp +msgid "You are very unhealthily underweight, nearing starvation." +msgstr "" + +#: src/character.cpp +msgid "" +"You have very little meat left on your bones. You appear to be starving." +msgstr "" + #: src/character.cpp msgid "NO_EXERCISE" msgstr "" @@ -147335,10 +149227,6 @@ msgstr "" msgid "Colorname" msgstr "" -#: src/color.cpp src/options.cpp src/panels.cpp -msgid "Normal" -msgstr "" - #: src/color.cpp msgid "Invert" msgstr "" @@ -148315,7 +150203,7 @@ msgstr "" #: src/construction.cpp #, c-format -msgid "You finish your construction: %s." +msgid "%s finishes construction : %s." msgstr "" #: src/construction.cpp @@ -148884,8 +150772,8 @@ msgstr "" msgid "Tool(s): " msgstr "" -#: src/crafting.cpp src/iuse.cpp -msgid "Your morale is too low to craft..." +#: src/crafting.cpp +msgid "Your morale is too low to craft such a difficult thing..." msgstr "" #: src/crafting.cpp @@ -149084,17 +150972,6 @@ msgstr "" msgid "You memorized the recipe for %s!" msgstr "" -#: src/crafting.cpp -#, c-format -msgid "You don't know the recipe for the %s and can't continue crafting." -msgstr "" - -#: src/crafting.cpp -#, c-format -msgid "" -" doesn't know the recipe for the %s and can't continue crafting." -msgstr "" - #: src/crafting.cpp msgid "You don't have the required components to continue crafting!" msgstr "" @@ -149361,6 +151238,10 @@ msgstr "" msgid "component required to craft" msgstr "" +#: src/crafting_gui.cpp +msgid "two by four" +msgstr "" + #: src/crafting_gui.cpp msgid "primary skill used to craft" msgstr "" @@ -149502,7 +151383,7 @@ msgstr "" msgid "Headshot!" msgstr "" -#: src/creature.cpp src/melee.cpp +#: src/creature.cpp src/iuse.cpp src/melee.cpp msgid "Critical!" msgstr "" @@ -150571,15 +152452,15 @@ msgstr "" msgid "Try learning some spells first." msgstr "" -#: src/debug_menu.cpp src/handle_action.cpp +#: src/debug_menu.cpp msgid "Spell" msgstr "" -#: src/debug_menu.cpp src/handle_action.cpp +#: src/debug_menu.cpp msgid "LVL" msgstr "" -#: src/debug_menu.cpp src/handle_action.cpp +#: src/debug_menu.cpp msgid "MAX" msgstr "" @@ -152582,11 +154463,19 @@ msgid "" msgstr "" #: src/faction_camp.cpp -msgid "You must build your camp in an empty field." +msgid "You choose to wait..." +msgstr "" + +#: src/faction_camp.cpp +msgid "You cannot build a camp here." +msgstr "" + +#: src/faction_camp.cpp +msgid "Select a camp type:" msgstr "" #: src/faction_camp.cpp -msgid "You need more room for camp expansions!" +msgid "You need more at least 4 adjacent for camp expansions!" msgstr "" #: src/faction_camp.cpp @@ -152623,6 +154512,11 @@ msgid "" "Are you sure you wish to continue? " msgstr "" +#: src/faction_camp.cpp +#, c-format +msgid "%s failed to start the %s basecamp." +msgstr "" + #: src/faction_camp.cpp msgid "There is no faction camp here to recover!" msgstr "" @@ -153235,6 +155129,11 @@ msgstr "" msgid "Your companion seems disappointed that your pantry is empty..." msgstr "" +#: src/faction_camp.cpp +#, c-format +msgid "%s failed to build the %s upgrade." +msgstr "" + #: src/faction_camp.cpp msgid "returns from upgrading the camp having earned a bit of experience..." msgstr "" @@ -153410,29 +155309,35 @@ msgid "returns from patrol..." msgstr "" #: src/faction_camp.cpp -msgid "Select an expansion:" +#, c-format +msgid "Select a tile up to %d tiles away." msgstr "" #: src/faction_camp.cpp -msgid "You choose to wait..." +#, c-format +msgid "You must select a tile within %d range of the camp" msgstr "" #: src/faction_camp.cpp -#, c-format -msgid "Select a tile up to %d tiles away." +msgid "Expansions must be on the same level as the camp" +msgstr "" + +#: src/faction_camp.cpp +msgid "You already have an expansion at that location" msgstr "" #: src/faction_camp.cpp #, c-format -msgid "You must select a tile within %d range of the camp" +msgid "You can't build any expansions in a %s." msgstr "" #: src/faction_camp.cpp -msgid "Expansions must be on the same level as the camp" +msgid "Select an expansion:" msgstr "" #: src/faction_camp.cpp -msgid "You must construct expansions in fields." +#, c-format +msgid "%s failed to add the %s expansion" msgstr "" #: src/faction_camp.cpp @@ -154100,201 +156005,6 @@ msgstr "" msgid "smoke vent" msgstr "" -#: src/field.cpp -#, c-format -msgid "A %s hits you!" -msgstr "" - -#: src/field.cpp -#, c-format -msgid "A %1$s hits %2$s!" -msgstr "" - -#: src/field.cpp -#, c-format -msgid "A %1$s hits the %2$s!" -msgstr "" - -#: src/field.cpp -msgid "The acid burns your body!" -msgstr "" - -#: src/field.cpp -msgid "The acid burns s body!" -msgstr "" - -#: src/field.cpp -msgid "The acid burns your legs and feet!" -msgstr "" - -#: src/field.cpp -msgid "The acid burns s legs and feet!" -msgstr "" - -#: src/field.cpp -msgid "You're lying in a pool of acid" -msgstr "" - -#: src/field.cpp -msgid "You're standing in a pool of acid" -msgstr "" - -#: src/field.cpp -msgid "The sap sticks to you!" -msgstr "" - -#: src/field.cpp -msgid "The sap sticks to !" -msgstr "" - -#: src/field.cpp -msgid "The sludge is thick and sticky. You struggle to pull free." -msgstr "" - -#: src/field.cpp -msgid "You burn your legs and feet!" -msgstr "" - -#: src/field.cpp -msgid "You're burning up!" -msgstr "" - -#: src/field.cpp -msgid "You're set ablaze!" -msgstr "" - -#: src/field.cpp -msgid "Your whole body is burning!" -msgstr "" - -#: src/field.cpp -msgid " burns their legs and feet!" -msgstr "" - -#: src/field.cpp -msgid " is burning up!" -msgstr "" - -#: src/field.cpp -msgid " is set ablaze!" -msgstr "" - -#: src/field.cpp -msgid "s whole body is burning!" -msgstr "" - -#: src/field.cpp -msgid "You're standing in a fire!" -msgstr "" - -#: src/field.cpp -msgid "You're waist-deep in a fire!" -msgstr "" - -#: src/field.cpp -msgid "You're surrounded by raging fire!" -msgstr "" - -#: src/field.cpp -msgid "You're lying in fire!" -msgstr "" - -#: src/field.cpp -#, c-format -msgid "You feel sick from inhaling the %s" -msgstr "" - -#: src/field.cpp -msgid "This radioactive gas burns!" -msgstr "" - -#: src/field.cpp -msgid "You're torched by flames!" -msgstr "" - -#: src/field.cpp -msgid " is torched by flames!" -msgstr "" - -#: src/field.cpp -msgid "These flames do not burn you." -msgstr "" - -#: src/field.cpp -msgid "Those flames do not burn ." -msgstr "" - -#: src/field.cpp -msgid "You're painfully electrocuted!" -msgstr "" - -#: src/field.cpp -msgid " is shocked!" -msgstr "" - -#: src/field.cpp -msgid "You're shocked!" -msgstr "" - -#: src/field.cpp -msgid "The electric cloud doesn't affect you." -msgstr "" - -#: src/field.cpp -msgid "The electric cloud doesn't seem to affect ." -msgstr "" - -#: src/field.cpp -msgid "You're violently teleported!" -msgstr "" - -#: src/field.cpp -msgid "The bees sting you!" -msgstr "" - -#: src/field.cpp -msgid "The bees sting you several times!" -msgstr "" - -#: src/field.cpp -msgid "The bees sting you many times!" -msgstr "" - -#: src/field.cpp -msgid "The bees sting you all over your body!" -msgstr "" - -#: src/field.cpp -msgid "The incendiary burns you!" -msgstr "" - -#: src/field.cpp -msgid "The incendiary burns !" -msgstr "" - -#: src/field.cpp -msgid "The incendiary melts into your skin!" -msgstr "" - -#: src/field.cpp -msgid "The incendiary melts into s skin!" -msgstr "" - -#: src/field.cpp -#, c-format -msgid "The %s burns your skin." -msgstr "" - -#: src/field.cpp -#, c-format -msgid "The %s makes you feel sick." -msgstr "" - -#: src/field.cpp src/trapfunc.cpp -#, c-format -msgid "The %1$s teleports into a %2$s, killing them both!" -msgstr "" - #: src/fungal_effects.cpp src/iuse.cpp #, c-format msgid "The %s is covered in tiny spores!" @@ -155223,6 +156933,11 @@ msgstr "" msgid "Coverage: %d%%" msgstr "" +#: src/game.cpp +#, c-format +msgid "Unfinished task: %s, %d%% complete" +msgstr "" + #: src/game.cpp msgid "You cannot see what is inside of it." msgstr "" @@ -155410,6 +157125,10 @@ msgctxt "butchery menu" msgid "%s (%d)" msgstr "" +#: src/game.cpp +msgid "Some types of butchery are not possible when it is dark." +msgstr "" + #: src/game.cpp msgid "Choose type of butchery:" msgstr "" @@ -155737,7 +157456,7 @@ msgstr "" msgid "Your tentacles stick to the ground, but you pull them free." msgstr "" -#: src/game.cpp +#: src/game.cpp src/monmove.cpp msgid "footsteps" msgstr "" @@ -156836,6 +158555,10 @@ msgstr "" msgid "OPERATION DURATION" msgstr "" +#: src/game_inventory.cpp +msgid "ANESTHETIC REQUIRED" +msgstr "" + #: src/game_inventory.cpp msgid "CBM already installed" msgstr "" @@ -156877,6 +158600,11 @@ msgstr "" msgid "%i%%" msgstr "" +#: src/game_inventory.cpp +#, c-format +msgid "%i mL" +msgstr "" + #: src/gamemode.cpp msgid "Tutorial" msgstr "" @@ -157364,48 +159092,10 @@ msgstr "" msgid "You don't know any spells to cast." msgstr "" -#: src/handle_action.cpp -msgid "RNG" -msgstr "" - -#: src/handle_action.cpp -msgid "XP%" -msgstr "" - -#: src/handle_action.cpp -msgid "Cast Time" -msgstr "" - -#: src/handle_action.cpp -msgid "Cost" -msgstr "" - -#: src/handle_action.cpp -msgid "DMG" -msgstr "" - -#: src/handle_action.cpp -msgid "FAIL%" -msgstr "" - -#: src/handle_action.cpp -#, c-format -msgid "%i turns" -msgstr "" - -#: src/handle_action.cpp -#, c-format -msgid "%i moves" -msgstr "" - #: src/handle_action.cpp msgid "You can't cast any of the spells you know!" msgstr "" -#: src/handle_action.cpp -msgid "Choose your spell:" -msgstr "" - #: src/handle_action.cpp #, c-format msgid "You don't have enough %s to cast the spell." @@ -157546,6 +159236,10 @@ msgstr "" msgid "You can't construct while you're riding." msgstr "" +#: src/handle_action.cpp +msgid "It is too dark to construct right now." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -158732,6 +160426,15 @@ msgstr "" msgid "That %s looks too dangerous to mess with. Best leave it alone." msgstr "" +#: src/iexamine.cpp +#, c-format +msgid "Unfinished task: %s, %d%% complete here, continue construction?" +msgstr "" + +#: src/iexamine.cpp +msgid "Cancel construction?" +msgstr "" + #: src/iexamine.cpp #, c-format msgid "There is a %s there. Take down?" @@ -159551,6 +161254,17 @@ msgstr "" msgid "Which craft to work on?" msgstr "" +#: src/iexamine.cpp src/iuse.cpp +#, c-format +msgid "You don't know the recipe for the %s and can't continue crafting." +msgstr "" + +#: src/iexamine.cpp src/iuse.cpp +#, c-format +msgid "" +" doesn't know the recipe for the %s and can't continue crafting." +msgstr "" + #: src/init.cpp msgid "Finalizing" msgstr "" @@ -159559,6 +161273,10 @@ msgstr "" msgid "Body parts" msgstr "" +#: src/init.cpp +msgid "Field types" +msgstr "" + #: src/init.cpp msgid "Crafting requirements" msgstr "" @@ -160290,7 +162008,7 @@ msgid "Ammunition: " msgstr "" #: src/item.cpp -msgid "Types: " +msgid "Type: " msgstr "" #: src/item.cpp @@ -160346,10 +162064,6 @@ msgstr "" msgid "Capacity: " msgstr "" -#: src/item.cpp -msgid "Type: " -msgstr "" - #: src/item.cpp #, c-format msgid "Uses %i charge of UPS per shot" @@ -161134,6 +162848,12 @@ msgstr "" msgid "Contents of this item:" msgstr "" +#: src/item.cpp +#, c-format +msgid "" +"* This item can be used as a die, and has %d sides." +msgstr "" + #: src/item.cpp msgid "You know dozens of things you could craft with it." msgstr "" @@ -161460,10 +163180,9 @@ msgstr "" msgid "can only accept small mods on that slot" msgstr "" -#. ~ %1$s - name of the gunmod, %2$s - name of the ammo #: src/item.cpp #, c-format -msgid "%1$s cannot be used on %2$s" +msgid "%1$s cannot be used on item with no compatible ammo types" msgstr "" #: src/item.cpp @@ -163374,6 +165093,11 @@ msgstr "" msgid "The phone turns off." msgstr "" +#: src/iuse.cpp +#, c-format +msgid "You roll a %d on your %d sided %s" +msgstr "" + #: src/iuse.cpp #, c-format msgid "You take a deep breath from your %s." @@ -164750,6 +166474,10 @@ msgid "" "shake." msgstr "" +#: src/iuse.cpp +msgid "Your morale is too low to craft..." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You need a %s." @@ -165743,7 +167471,7 @@ msgstr "" #: src/iuse_actor.cpp #, c-format -msgid "Insufficient %s to assemble %s" +msgid "Insufficient ammunition to assemble %s" msgstr "" #: src/iuse_actor.cpp @@ -167381,6 +169109,18 @@ msgstr "" msgid "You can't learn this spell." msgstr "" +#: src/magic.cpp +msgid "Ignore Distractions" +msgstr "" + +#: src/magic.cpp +msgid "Popup Distractions" +msgstr "" + +#: src/magic.cpp +msgid "Choose a Spell" +msgstr "" + #: src/magic.cpp msgid "Unable to find a valid target for teleport." msgstr "" @@ -167765,6 +169505,201 @@ msgstr "" msgid "DANGER! MINEFIELD!" msgstr "" +#: src/map_field.cpp +#, c-format +msgid "A %s hits you!" +msgstr "" + +#: src/map_field.cpp +#, c-format +msgid "A %1$s hits %2$s!" +msgstr "" + +#: src/map_field.cpp +#, c-format +msgid "A %1$s hits the %2$s!" +msgstr "" + +#: src/map_field.cpp +msgid "The acid burns your body!" +msgstr "" + +#: src/map_field.cpp +msgid "The acid burns s body!" +msgstr "" + +#: src/map_field.cpp +msgid "The acid burns your legs and feet!" +msgstr "" + +#: src/map_field.cpp +msgid "The acid burns s legs and feet!" +msgstr "" + +#: src/map_field.cpp +msgid "You're lying in a pool of acid" +msgstr "" + +#: src/map_field.cpp +msgid "You're standing in a pool of acid" +msgstr "" + +#: src/map_field.cpp +msgid "The sap sticks to you!" +msgstr "" + +#: src/map_field.cpp +msgid "The sap sticks to !" +msgstr "" + +#: src/map_field.cpp +msgid "The sludge is thick and sticky. You struggle to pull free." +msgstr "" + +#: src/map_field.cpp +msgid "You burn your legs and feet!" +msgstr "" + +#: src/map_field.cpp +msgid "You're burning up!" +msgstr "" + +#: src/map_field.cpp +msgid "You're set ablaze!" +msgstr "" + +#: src/map_field.cpp +msgid "Your whole body is burning!" +msgstr "" + +#: src/map_field.cpp +msgid " burns their legs and feet!" +msgstr "" + +#: src/map_field.cpp +msgid " is burning up!" +msgstr "" + +#: src/map_field.cpp +msgid " is set ablaze!" +msgstr "" + +#: src/map_field.cpp +msgid "s whole body is burning!" +msgstr "" + +#: src/map_field.cpp +msgid "You're standing in a fire!" +msgstr "" + +#: src/map_field.cpp +msgid "You're waist-deep in a fire!" +msgstr "" + +#: src/map_field.cpp +msgid "You're surrounded by raging fire!" +msgstr "" + +#: src/map_field.cpp +msgid "You're lying in fire!" +msgstr "" + +#: src/map_field.cpp +#, c-format +msgid "You feel sick from inhaling the %s" +msgstr "" + +#: src/map_field.cpp +msgid "This radioactive gas burns!" +msgstr "" + +#: src/map_field.cpp +msgid "You're torched by flames!" +msgstr "" + +#: src/map_field.cpp +msgid " is torched by flames!" +msgstr "" + +#: src/map_field.cpp +msgid "These flames do not burn you." +msgstr "" + +#: src/map_field.cpp +msgid "Those flames do not burn ." +msgstr "" + +#: src/map_field.cpp +msgid "You're painfully electrocuted!" +msgstr "" + +#: src/map_field.cpp +msgid " is shocked!" +msgstr "" + +#: src/map_field.cpp +msgid "You're shocked!" +msgstr "" + +#: src/map_field.cpp +msgid "The electric cloud doesn't affect you." +msgstr "" + +#: src/map_field.cpp +msgid "The electric cloud doesn't seem to affect ." +msgstr "" + +#: src/map_field.cpp +msgid "You're violently teleported!" +msgstr "" + +#: src/map_field.cpp +msgid "The bees sting you!" +msgstr "" + +#: src/map_field.cpp +msgid "The bees sting you several times!" +msgstr "" + +#: src/map_field.cpp +msgid "The bees sting you many times!" +msgstr "" + +#: src/map_field.cpp +msgid "The bees sting you all over your body!" +msgstr "" + +#: src/map_field.cpp +msgid "The incendiary burns you!" +msgstr "" + +#: src/map_field.cpp +msgid "The incendiary burns !" +msgstr "" + +#: src/map_field.cpp +msgid "The incendiary melts into your skin!" +msgstr "" + +#: src/map_field.cpp +msgid "The incendiary melts into s skin!" +msgstr "" + +#: src/map_field.cpp +#, c-format +msgid "The %s burns your skin." +msgstr "" + +#: src/map_field.cpp +#, c-format +msgid "The %s makes you feel sick." +msgstr "" + +#: src/map_field.cpp src/trapfunc.cpp +#, c-format +msgid "The %1$s teleports into a %2$s, killing them both!" +msgstr "" + #: src/mapbuffer.cpp #, c-format msgid "Please wait as the map saves [%d/%d]" @@ -167988,6 +169923,21 @@ msgstr "" msgid "* Attacks will be completely silent" msgstr "" +#: src/martialarts.cpp +#, c-format +msgid "%s cannot be used unarmed." +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "%s cannot be used with weapons." +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "The %s is not a valid %s weapon." +msgstr "" + #: src/martialarts.cpp #, c-format msgid "Type: %s" @@ -171465,10 +173415,6 @@ msgid "" "needs immediate care.\"" msgstr "" -#: src/monmove.cpp -msgid "footsteps." -msgstr "" - #: src/monmove.cpp msgid "plop." msgstr "" @@ -171992,7 +173938,7 @@ msgid "The spores transform %1$s into a %2$s!" msgstr "" #: src/morale.cpp -msgid "Total morale gain" +msgid "Total morale change" msgstr "" #: src/morale.cpp @@ -172015,6 +173961,14 @@ msgstr "" msgid "Value" msgstr "" +#: src/morale.cpp +msgid "Total positive morale" +msgstr "" + +#: src/morale.cpp +msgid "Total negative morale" +msgstr "" + #: src/mutation.cpp #, c-format msgid "Your %s is destroyed!" @@ -173901,15 +175855,15 @@ msgstr "" msgid "%s ( cost $%d )" msgstr "" -#. ~Skill name: current level -> next level (cost in dollars) +#. ~Skill name: current level (exercise) -> next level (cost in dollars) #: src/npctalk.cpp #, c-format -msgid "%s: %d -> %d (cost $%d)" +msgid "%s: %d (%d%%) -> %d (cost $%d)" msgstr "" #: src/npctalk.cpp #, c-format -msgid "%s: %d -> %d" +msgid "%s: %d (%d%%) -> %d" msgstr "" #: src/npctalk.cpp @@ -176525,23 +178479,36 @@ msgid "Note preview" msgstr "" #: src/overmap_ui.cpp -msgid "Notes:" +msgid "Really delete note?" +msgstr "" + +#: src/overmap_ui.cpp +#, c-format +msgid "" +"<%s> - center on note, <%s> - edit note, <%s> - delete note, <%s> - close " +"window" msgstr "" #: src/overmap_ui.cpp -msgid "< Prev notes" +#, c-format +msgid "Map notes (%d)" msgstr "" #: src/overmap_ui.cpp -msgid "Next notes >" +#, c-format +msgid "[%s] %s" msgstr "" #: src/overmap_ui.cpp -msgid "Press letter to center on note" +#, c-format +msgid "" +"LEVEL %i, %d'%d, %d'%d : %s (Distance: %d)" msgstr "" #: src/overmap_ui.cpp -msgid "Spacebar - Return to map " +#, c-format +msgid "Distance: %d" msgstr "" #: src/overmap_ui.cpp @@ -176594,10 +178561,6 @@ msgstr "" msgid "Note:" msgstr "" -#: src/overmap_ui.cpp -msgid "Really delete note?" -msgstr "" - #: src/overmap_ui.cpp msgid "Search term:" msgstr "" @@ -176697,10 +178660,9 @@ msgstr "" msgid "[ESCAPE/Q] Cancel" msgstr "" -#. ~ First parameter is a terrain name, second parameter is a city name. +#. ~ First parameter is a terrain name, second parameter is a direction, and third parameter is a city name. #: src/overmapbuffer.cpp -#, c-format -msgid "%1$s in central %2$s" +msgid "%1$s in central %3$s" msgstr "" #. ~ First parameter is a terrain name, second parameter is a direction, and third parameter is a city name. @@ -176709,22 +178671,15 @@ msgstr "" msgid "%1$s in %2$s %3$s" msgstr "" -#. ~ First parameter is a terrain name, second parameter is a city name. -#: src/overmapbuffer.cpp -#, c-format -msgid "%1$s in %2$s" -msgstr "" - #. ~ First parameter is a terrain name, second parameter is a direction, and third parameter is a city name. #: src/overmapbuffer.cpp -#, c-format -msgid "%1$s on the %2$s outskirts of %3$s" +msgid "%1$s in %3$s" msgstr "" #. ~ First parameter is a terrain name, second parameter is a direction, and third parameter is a city name. #: src/overmapbuffer.cpp #, c-format -msgid "%1$s %2$s from %3$s" +msgid "%1$s on the %2$s outskirts of %3$s" msgstr "" #: src/panels.cpp @@ -178716,7 +180671,11 @@ msgid "From the %1$s you hear %2$s" msgstr "" #: src/player.cpp -msgid "Your optical cloak flickers for a moment!" +msgid "Your cloaking flickers for a moment!" +msgstr "" + +#: src/player.cpp +msgid "Your cloaking flickers and becomes opaque." msgstr "" #: src/player.cpp @@ -179483,6 +181442,18 @@ msgstr "" msgid "Peckish" msgstr "" +#: src/player_display.cpp +msgid "ENCUMBRANCE AND WARMTH" +msgstr "" + +#: src/player_display.cpp +msgid "EFFECTS" +msgstr "" + +#: src/player_display.cpp +msgid "SPEED" +msgstr "" + #: src/player_display.cpp #, c-format msgid "Swimming costs %+d movement point. " @@ -179560,106 +181531,98 @@ msgid "Reduces aim speed of guns by %.1f." msgstr "" #: src/player_display.cpp -#: src/veh_interact.cpp -msgid "Strength" +msgid "" +"Strength affects your melee damage, the amount of weight you can carry, your " +"total HP, your resistance to many diseases, and the effectiveness of actions " +"which require brute force." msgstr "" #: src/player_display.cpp -msgid "Dexterity" +msgid "Base HP:" msgstr "" #: src/player_display.cpp -msgid "Intelligence" +msgid "Carry weight(kg):" msgstr "" #: src/player_display.cpp -msgid "Perception" +msgid "Carry weight(lbs):" msgstr "" #: src/player_display.cpp -msgid "Severely Malnourished" +msgid "Melee damage:" msgstr "" #: src/player_display.cpp msgid "" -"Your body is severely weakened by starvation. You might die if you don't " -"start eating regular meals!\n" -" \n" +"Dexterity affects your chance to hit in melee combat, helps you steady your " +"gun for ranged combat, and enhances many actions that require finesse." msgstr "" #: src/player_display.cpp -msgid "" -"Your body is weakened by starvation. Only time and regular meals will help " -"you recover.\n" -" \n" +msgid "Melee to-hit bonus:" msgstr "" #: src/player_display.cpp -msgid "In Sunlight" +msgid "Ranged penalty:" msgstr "" #: src/player_display.cpp -msgid "" -"The sunlight irritates you.\n" -"Strength - 1; Dexterity - 1; Intelligence - 1; Perception - 1" +msgid "Throwing penalty per target's dodge:" msgstr "" #: src/player_display.cpp msgid "" -"The sunlight irritates you badly.\n" -"Strength - 2; Dexterity - 2; Intelligence - 2; Perception - 2" +"Intelligence is less important in most situations, but it is vital for more " +"complex tasks like electronics crafting. It also affects how much skill you " +"can pick up from reading a book." msgstr "" #: src/player_display.cpp -msgid "" -"The sunlight irritates you terribly.\n" -"Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" +msgid "Read times:" msgstr "" -#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name #: src/player_display.cpp -#, c-format -msgid "%1$s | %2$s | %3$s" +msgid "Skill rust:" msgstr "" -#. ~ player info window: 1s - name, 2s - gender, '|' - field separator. #: src/player_display.cpp -#, c-format -msgid "%1$s | %2$s" +msgid "Crafting bonus:" msgstr "" #: src/player_display.cpp -msgid "Cycle to next category" +msgid "" +"Perception is the most important stat for ranged combat. It's also used for " +"detecting traps and other things of interest." msgstr "" #: src/player_display.cpp -msgid "Cycle to previous category" +msgid "Trap detection level:" msgstr "" #: src/player_display.cpp -msgid "Toggle skill training" +msgid "Aiming penalty:" msgstr "" #: src/player_display.cpp -#, c-format -msgid "Press %s for help." +msgid "Weight:" msgstr "" #: src/player_display.cpp -msgid "ENCUMBRANCE AND WARMTH" +msgid "" +"Your weight is a general indicator of how much fat your body has stored up, " +"which in turn shows how prepared you are to survive for a time without food." +"Having too much, or too little, can be unhealthy." msgstr "" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d / %2$d" -msgstr "" - -#: src/player_display.cpp -msgid "EFFECTS" +msgid "Bionic Power: %1$d" msgstr "" #: src/player_display.cpp -msgid "SPEED" +#, c-format +msgid "Bionic Power: %1$d / %2$d" msgstr "" #: src/player_display.cpp @@ -179716,82 +181679,89 @@ msgid "Bionic Speed +%s%d%%" msgstr "" #: src/player_display.cpp -msgid "" -"Strength affects your melee damage, the amount of weight you can carry, your " -"total HP, your resistance to many diseases, and the effectiveness of actions " -"which require brute force." +#: src/veh_interact.cpp +msgid "Strength" msgstr "" #: src/player_display.cpp -msgid "Base HP:" +msgid "Dexterity" msgstr "" #: src/player_display.cpp -msgid "Carry weight(kg):" +msgid "Intelligence" msgstr "" #: src/player_display.cpp -msgid "Carry weight(lbs):" +msgid "Perception" msgstr "" #: src/player_display.cpp -msgid "Melee damage:" +msgid "Severely Malnourished" msgstr "" #: src/player_display.cpp msgid "" -"Dexterity affects your chance to hit in melee combat, helps you steady your " -"gun for ranged combat, and enhances many actions that require finesse." +"Your body is severely weakened by starvation. You might die if you don't " +"start eating regular meals!\n" +" \n" msgstr "" #: src/player_display.cpp -msgid "Melee to-hit bonus:" +msgid "" +"Your body is weakened by starvation. Only time and regular meals will help " +"you recover.\n" +" \n" msgstr "" #: src/player_display.cpp -msgid "Ranged penalty:" +msgid "In Sunlight" msgstr "" #: src/player_display.cpp -msgid "Throwing penalty per target's dodge:" +msgid "" +"The sunlight irritates you.\n" +"Strength - 1; Dexterity - 1; Intelligence - 1; Perception - 1" msgstr "" #: src/player_display.cpp msgid "" -"Intelligence is less important in most situations, but it is vital for more " -"complex tasks like electronics crafting. It also affects how much skill you " -"can pick up from reading a book." +"The sunlight irritates you badly.\n" +"Strength - 2; Dexterity - 2; Intelligence - 2; Perception - 2" msgstr "" #: src/player_display.cpp -msgid "Read times:" +msgid "" +"The sunlight irritates you terribly.\n" +"Strength - 4; Dexterity - 4; Intelligence - 4; Perception - 4" msgstr "" +#. ~ player info window: 1s - name, 2s - gender, 3s - Prof or Mutation name #: src/player_display.cpp -msgid "Skill rust:" +#, c-format +msgid "%1$s | %2$s | %3$s" msgstr "" +#. ~ player info window: 1s - name, 2s - gender, '|' - field separator. #: src/player_display.cpp -msgid "Crafting bonus:" +#, c-format +msgid "%1$s | %2$s" msgstr "" #: src/player_display.cpp -msgid "" -"Perception is the most important stat for ranged combat. It's also used for " -"detecting traps and other things of interest." +msgid "Cycle to next category" msgstr "" #: src/player_display.cpp -msgid "Trap detection level:" +msgid "Cycle to previous category" msgstr "" #: src/player_display.cpp -msgid "Aiming penalty:" +msgid "Toggle skill training" msgstr "" #: src/player_display.cpp #, c-format -msgid "Bionic Power: %1$d" +msgid "Press %s for help." msgstr "" #: src/player_hardcoded_effects.cpp @@ -181873,6 +183843,10 @@ msgstr "" msgid "Your morale is too low to construct..." msgstr "" +#: src/veh_interact.cpp +msgid "It's too dark to see what you are doing..." +msgstr "" + #: src/veh_interact.cpp msgid "Cannot install any part here." msgstr "" @@ -182751,27 +184725,27 @@ msgid "hummm!" msgstr "" #: src/vehicle.cpp -msgid "roarrr!" +msgid "vroom!" msgstr "" #: src/vehicle.cpp -msgid "vroom!" +msgid "whirrr!" msgstr "" #: src/vehicle.cpp -msgid "whirrr!" +msgid "ROARRR!" msgstr "" #: src/vehicle.cpp -msgid "BRRROARRR!" +msgid "roarrr!" msgstr "" #: src/vehicle.cpp -msgid "BRUMBRUMBRUMBRUM!" +msgid "BRRROARRR!" msgstr "" #: src/vehicle.cpp -msgid "ROARRR!" +msgid "BRUMBRUMBRUMBRUM!" msgstr "" #: src/vehicle.cpp @@ -182909,7 +184883,7 @@ msgstr "" msgid "The %s is too heavy for its engine(s)!" msgstr "" -#: src/vehicle_move.cpp src/vehicle_use.cpp +#: src/vehicle_move.cpp #, c-format msgid "The %s's mechanism is out of reach!" msgstr "" diff --git a/lang/po/de.po b/lang/po/de.po index 835c60f5cd12e..cc6eebebcede4 100644 --- a/lang/po/de.po +++ b/lang/po/de.po @@ -13,17 +13,18 @@ # Reiner Herrmann , 2019 # MinerMax555 , 2019 # Pupsi , 2019 -# Vlasov Vitaly , 2019 -# Wuzzy , 2019 # Brett Dong , 2019 +# Wuzzy , 2019 +# Vlasov Vitaly , 2019 +# paraDiXson, 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Brett Dong , 2019\n" +"Last-Translator: paraDiXson, 2019\n" "Language-Team: German (https://www.transifex.com/cataclysm-dda-translators/teams/2217/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -43,6 +44,8 @@ msgid "" "Some free-floating battery charge. This can be reloaded into rechargable " "battery cells, but can never be unloaded." msgstr "" +"Freiliegende Batterieladung. Diese kann in wiederaufladbare Batteriezellen " +"geladen werden, kann aber nie entladen werden." #: lang/json/AMMO_from_json.py msgid "aluminum foil" @@ -151,7 +154,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "plutonium fuel cell" -msgstr "" +msgstr "Plutoniumbrennstoffzelle" #. ~ Description for plutonium fuel cell #: lang/json/AMMO_from_json.py @@ -162,6 +165,13 @@ msgid "" "conventional means: expended cells had to be sent to a central reprocessing " "facility that almost certainly doesn't exist anymore." msgstr "" +"Dies ist weder eine Brennstoffzelle noch nuklear, aber der Name ist " +"geblieben. Es verwendet Plutonium-244 als Katalysator, um eine komplizierte " +"Nanoverbindung zu stabilisieren, die enorme Mengen an Energie speichern " +"kann. Leider kann es nicht mit herkömmlichen Mitteln wieder aufgeladen " +"werden: Verbrauchte Zellen mussten an eine zentrale " +"Wiederaufbereitungsanlage geschickt werden, die mit ziemlicher Sicherheit " +"nicht mehr existiert." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "plutonium slurry" @@ -697,13 +707,15 @@ msgstr "Kleine Metallringe, geeignet für die Konstruktion von Kettenpanzern." #: lang/json/AMMO_from_json.py msgid "nitrox" msgid_plural "nitrox" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Nitrox" +msgstr[1] "Nitrox" #. ~ Description for nitrox #: lang/json/AMMO_from_json.py msgid "Mixture of oxygen and nitrogen in proportions suitable for diving." msgstr "" +"Ein Gemisch aus Sauerstoff und Stickstoff im tauchfähigen " +"Mischungsverhältnis." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "tinder" @@ -719,7 +731,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "crude wooden arrow" -msgstr "" +msgstr "grober Holzpfeil" #. ~ Description for crude wooden arrow #: lang/json/AMMO_from_json.py @@ -727,10 +739,12 @@ msgid "" "A crude pointed wooden shaft with a notch at the back. Stands a very low " "chance of remaining intact once fired." msgstr "" +"Ein grober spitzer Holzschaft mit einer Kerbe am Ende. Hat eine sehr geringe" +" Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "wooden bodkin arrow" -msgstr "" +msgstr "Holzbodkinpfeil" #. ~ Description for wooden bodkin arrow #: lang/json/AMMO_from_json.py @@ -738,10 +752,13 @@ msgid "" "A fletched wooden arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." msgstr "" +"Ein befiederter hölzerner Pfeilschaft mit einer runden Spitze. Nützlich für " +"die Durchdringung von Rüstungen. Hat eine gute Chance, nach dem Schuss " +"intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "simple wooden small game arrow" -msgstr "" +msgstr "einfacher kleiner Holzpfeil" #. ~ Description for simple wooden small game arrow #: lang/json/AMMO_from_json.py @@ -750,10 +767,13 @@ msgid "" " small woodland creatures without splattering them all over the ground. " "Stands a low chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Holzpfeilschaft mit abgestumpfter Spitze. Nützlich" +" für die Jagd auf kleine Waldbewohner, ohne sie über den ganzen Boden zu " +"verteilen. Hat eine geringe Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "wooden broadhead arrow" -msgstr "" +msgstr "Holzjagdpfeil" #. ~ Description for wooden broadhead arrow #: lang/json/AMMO_from_json.py @@ -762,10 +782,13 @@ msgid "" "damage to the target. Stands a decent chance of remaining intact once " "fired." msgstr "" +"Ein befiederter hölzerner Pfeilschaft mit einer blattförmigen Spitze. " +"Nützlich, um den Schaden am Ziel zu maximieren. Hat eine gute Chance, nach " +"dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "simple wooden arrow" -msgstr "" +msgstr "einfacher Holzpfeil" #. ~ Description for simple wooden arrow #: lang/json/AMMO_from_json.py @@ -773,10 +796,13 @@ msgid "" "A simple fletched wooden arrow shaft with a fire-hardened and sharpened tip." " Stands a low chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Holzpfeilschaft mit einer feuergehärteten und " +"geschliffenen Spitze. Hat eine geringe Chance, nach dem Schuss intakt zu " +"bleiben." #: lang/json/AMMO_from_json.py msgid "wooden small game arrow" -msgstr "" +msgstr "kleiner Holzpfeil" #. ~ Description for wooden small game arrow #: lang/json/AMMO_from_json.py @@ -785,10 +811,13 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." msgstr "" +"Ein befiederter Holzpfeilschaft mit einer stumpfen Spitze. Nützlich für die " +"Jagd auf kleine Waldbewohner, ohne sie über den ganzen Boden zu verteilen. " +"Hat eine geringe Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "makeshift wooden arrow" -msgstr "" +msgstr "selbstgemachter Holzpfeil" #. ~ Description for makeshift wooden arrow #: lang/json/AMMO_from_json.py @@ -796,10 +825,12 @@ msgid "" "A simple fletched wooden arrow shaft with a makeshift arrowhead. Stands a " "low chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Holzpfeilschaft mit einer selbstgemachten Spitze. " +"Hat eine geringe Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "simple metal arrow" -msgstr "" +msgstr "einfacher Metallpfeil" #. ~ Description for simple metal arrow #: lang/json/AMMO_from_json.py @@ -807,10 +838,13 @@ msgid "" "A simple fletched steel arrow shaft with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Stahlpfeilschaft mit einer abgeflachten und " +"geschliffenen Spitze. Hat eine etwas geringe Chance, nach dem Schuss intakt " +"zu bleiben." #: lang/json/AMMO_from_json.py msgid "aluminum broadhead arrow" -msgstr "" +msgstr "Aluminiumjagdpfeil" #. ~ Description for aluminum broadhead arrow #: lang/json/AMMO_from_json.py @@ -818,10 +852,13 @@ msgid "" "A fletched aluminum arrow shaft with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." msgstr "" +"Ein befiederter Aluminiumpfeilschaft mit einer blattförmigen Spitze. " +"Nützlich, um den Schaden am Ziel zu maximieren. Hat eine gute Chance, nach " +"dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "aluminum field point arrow" -msgstr "" +msgstr "aluminiumbespitzte Pfeile" #. ~ Description for aluminum field point arrow #: lang/json/AMMO_from_json.py @@ -829,10 +866,13 @@ msgid "" "A fletched aluminum arrow shaft with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." msgstr "" +"Ein befiederter Aluminiumpfeilschaft mit einer runden Spitze. Nützlich für " +"die Durchdringung von Rüstungen. Hat eine gute Chance, nach dem Schuss " +"intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "aluminum small game arrow" -msgstr "" +msgstr "Kleiner Aluminiumjagdpfeil" #. ~ Description for aluminum small game arrow #: lang/json/AMMO_from_json.py @@ -841,10 +881,13 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "good chance of remaining intact once fired." msgstr "" +"Ein befiederter Aluminiumpfeilschaft mit einer stumpfen Spitze. Nützlich für" +" die Jagd auf kleine Waldbewohner, ohne sie über den ganzen Boden zu " +"verteilen. Hat eine gute Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "carbon fiber hunting arrow" -msgstr "" +msgstr "Kohlefaserjagdpfeil" #. ~ Description for carbon fiber hunting arrow #: lang/json/AMMO_from_json.py @@ -853,6 +896,9 @@ msgid "" "impressive damage to targets. Stands a good chance of remaining intact once" " fired." msgstr "" +"Ein befiederter Kohlefaserpfeilschaft mit einer weiten Breitkopfspitze. " +"Verursacht beeindruckenden Schaden an Zielen. Hat eine gute Chance, nach dem" +" Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "explosive arrow" @@ -925,12 +971,12 @@ msgstr "Ein großer Plastikdartpfeil für Spiele im Freien." #: lang/json/AMMO_from_json.py msgid "frisbee" -msgstr "" +msgstr "Frisbee" #. ~ Description for frisbee #: lang/json/AMMO_from_json.py msgid "A plastic frisbee made for outdoor games." -msgstr "" +msgstr "Ein - für das Spielen im Freien gemachter - Frisbee aus Plastik." #: lang/json/AMMO_from_json.py src/artifact.cpp msgid "disc" @@ -942,6 +988,8 @@ msgid "" "A plastic disc made for playing disc golf, it is smaller and denser then a " "normal frisbee." msgstr "" +"Eine Plastikscheibe zum Spielen von Discgolf, sie ist kleiner und schwerer " +"als ein normales Frisbee." #: lang/json/AMMO_from_json.py msgid "wooden fishing spear" @@ -988,7 +1036,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden rubber blunt arrow" -msgstr "" +msgstr "stumpfer Holzgummipfeil" #. ~ Description for wooden rubber blunt arrow #: lang/json/AMMO_from_json.py @@ -996,10 +1044,13 @@ msgid "" "A fletched wooden arrow shaft with a blunt rubber tip. Can stun weaker " "enemies. Stands a good chance of remaining intact once fired." msgstr "" +"Ein befiederter hölzerner Pfeilschaft mit einer stumpfen Gummispitze. Kann " +"schwächere Feinde betäuben. Hat eine gute Chance, nach dem Schuss intakt zu " +"bleiben." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "anesthetic" -msgstr "" +msgstr "Narkosemittel" #. ~ Description for anesthetic #: lang/json/AMMO_from_json.py @@ -1008,6 +1059,10 @@ msgid "" "intended for use in specialized medical equipment, and can't be administered" " manually. You can reload an anesthesia kit with it." msgstr "" +"Eine Vielzahl von starken hypnotischen, analgetischen und stimulierenden " +"Medikamenten. Es ist für den Einsatz in spezialisierten medizinischen " +"Geräten vorgesehen und kann nicht manuell verabreicht werden. Damit können " +"Sie ein Narkose-Set nachladen." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1109,8 +1164,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "soil" msgid_plural "soil" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Erde" +msgstr[1] "Erde" #. ~ Description for soil #: lang/json/AMMO_from_json.py @@ -1118,6 +1173,8 @@ msgid "" "A pile of loosely packed, slightly damp loamy soil. This mixture of sand, " "silt and clay is ideal for growing plants." msgstr "" +"Ein Haufen locker gepackter, leicht feuchter, lehmhaltiger Erde. Diese " +"Mischung aus Sand, Schlick und Ton ist ideal für den Pflanzenanbau." #: lang/json/AMMO_from_json.py msgid "aluminum powder" @@ -1554,19 +1611,30 @@ msgid "" msgstr "" #: lang/json/AMMO_from_json.py -msgid "crude wooden bolt" +msgid "rosin" msgstr "" +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "crude wooden bolt" +msgstr "grober Holzbolzen" + #. ~ Description for crude wooden bolt #: lang/json/AMMO_from_json.py msgid "" "A crude pointed wooden crossbow bolt with a notch at the back. Stands a " "very low chance of remaining intact once fired." msgstr "" +"Ein grober spitzer Holzbolzen mit einer Kerbe am Ende. Hat eine sehr geringe" +" Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "simple wooden bolt" -msgstr "" +msgstr "einfacher Holzbolzen" #. ~ Description for simple wooden bolt #: lang/json/AMMO_from_json.py @@ -1574,10 +1642,13 @@ msgid "" "A simple fletched wooden crossbow bolt with a fire-hardened and sharpened " "tip. Stands a low chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Holzbolzen mit einer feuergehärteten und " +"geschliffenen Spitze. Hat eine geringe Chance, nach dem Schuss intakt zu " +"bleiben." #: lang/json/AMMO_from_json.py msgid "simple wooden small game bolt" -msgstr "" +msgstr "einfacher kleiner Holzbolzen" #. ~ Description for simple wooden small game bolt #: lang/json/AMMO_from_json.py @@ -1586,10 +1657,13 @@ msgid "" "hunting small woodland creatures without splattering them all over the " "ground. Stands a low chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Holzbolzen mit abgestumpfter Spitze. Nützlich für " +"die Jagd auf kleine Waldbewohner, ohne sie über den ganzen Boden zu " +"verteilen. Hat eine geringe Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "makeshift wooden bolt" -msgstr "" +msgstr "selbstgemachter Holzbolzen" #. ~ Description for makeshift wooden bolt #: lang/json/AMMO_from_json.py @@ -1597,10 +1671,12 @@ msgid "" "A simple fletched wooden crossbow bolt with a makeshift head. Stands a low " "chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Holzbolzen mit einer selbstgemachten Spitze. Hat " +"eine geringe Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "wooden broadhead bolt" -msgstr "" +msgstr "Holzjagdbolzen" #. ~ Description for wooden broadhead bolt #: lang/json/AMMO_from_json.py @@ -1609,10 +1685,13 @@ msgid "" "damage to the target. Stands a decent chance of remaining intact once " "fired." msgstr "" +"Ein befiederter Holzbolzen mit einer blattförmigen Spitze. Nützlich, um den " +"Schaden am Ziel zu maximieren. Hat eine gute Chance, nach dem Schuss intakt " +"zu bleiben." #: lang/json/AMMO_from_json.py msgid "wooden bodkin bolt" -msgstr "" +msgstr "Holzbodkinbolzen" #. ~ Description for wooden bodkin bolt #: lang/json/AMMO_from_json.py @@ -1620,10 +1699,13 @@ msgid "" "A fletched wooden crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a decent chance of remaining intact once fired." msgstr "" +"Ein befiederter Holzbolzen mit einer runden Spitze. Nützlich für die " +"Durchdringung von Rüstungen. Hat eine gute Chance, nach dem Schuss intakt zu" +" bleiben." #: lang/json/AMMO_from_json.py msgid "wooden small game bolt" -msgstr "" +msgstr "kleiner Holzbolzen" #. ~ Description for wooden small game bolt #: lang/json/AMMO_from_json.py @@ -1632,10 +1714,13 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "decent chance of remaining intact once fired." msgstr "" +"Ein befiederter Holzbolzen mit einer stumpfen Spitze. Nützlich für die Jagd " +"auf kleine Waldbewohner, ohne sie über den ganzen Boden zu verteilen. Hat " +"eine geringe Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "simple metal bolt" -msgstr "" +msgstr "einfacher Metallbolzen" #. ~ Description for simple metal bolt #: lang/json/AMMO_from_json.py @@ -1643,10 +1728,13 @@ msgid "" "A simple fletched steel crossbow bolt with a flattened and sharpened tip. " "Stands a somewhat low chance of remaining intact once fired." msgstr "" +"Ein einfacher befiederter Stahlbolzen mit einer abgeflachten und " +"geschliffenen Spitze. Hat eine etwas geringe Chance, nach dem Schuss intakt " +"zu bleiben." #: lang/json/AMMO_from_json.py msgid "aluminum broadhead bolt" -msgstr "" +msgstr "Aluminiumjagdbolzen" #. ~ Description for aluminum broadhead bolt #: lang/json/AMMO_from_json.py @@ -1654,10 +1742,13 @@ msgid "" "A fletched aluminum crossbow bolt with a bladed tip. Useful for maximising " "damage to the target. Stands a good chance of remaining intact once fired." msgstr "" +"Ein befiederter Aluminiumbolzen mit einer blattförmigen Spitze. Nützlich, um" +" den Schaden am Ziel zu maximieren. Hat eine gute Chance, nach dem Schuss " +"intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "aluminum field point bolt" -msgstr "" +msgstr "aluminiumbespitzter Bolzen" #. ~ Description for aluminum field point bolt #: lang/json/AMMO_from_json.py @@ -1665,10 +1756,13 @@ msgid "" "A fletched aluminum crossbow bolt with a pointed tip. Useful for piercing " "armor. Stands a good chance of remaining intact once fired." msgstr "" +"Ein befiederter Aluminiumbolzen mit einer runden Spitze. Nützlich für die " +"Durchdringung von Rüstungen. Hat eine gute Chance, nach dem Schuss intakt zu" +" bleiben." #: lang/json/AMMO_from_json.py msgid "aluminum small game bolt" -msgstr "" +msgstr "Kleiner Aluminiumjagdbolzen" #. ~ Description for aluminum small game bolt #: lang/json/AMMO_from_json.py @@ -1677,6 +1771,9 @@ msgid "" "small woodland creatures without splattering them all over the ground. " "Stands a good chance of remaining intact once fired." msgstr "" +"Ein befiederter Aluminiumbolzen mit einer stumpfen Spitze. Nützlich für die " +"Jagd auf kleine Waldbewohner, ohne sie über den ganzen Boden zu verteilen. " +"Hat eine gute Chance, nach dem Schuss intakt zu bleiben." #: lang/json/AMMO_from_json.py msgid "explosive crossbow bolt" @@ -1757,8 +1854,8 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "biodiesel" msgid_plural "biodiesel" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Biodiesel" +msgstr[1] "Biodiesel" #. ~ Description for biodiesel #: lang/json/AMMO_from_json.py @@ -1766,6 +1863,8 @@ msgid "" "Vegetable oil- or animal fat-based diesel fuel consisting of long-chain " "alkyl (methyl, ethyl, or propyl) esters." msgstr "" +"Dieselkraftstoff auf Basis von pflanzlichem Öl oder tierischem Fett, " +"bestehend aus langkettigen Alkyl- (Methyl-, Ethyl- oder Propyl-) estern." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "gasoline" @@ -1981,7 +2080,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "throwing stick" -msgstr "" +msgstr "Wurfholz" #. ~ Description for throwing stick #: lang/json/AMMO_from_json.py @@ -2618,8 +2717,23 @@ msgstr[0] "wiedergeladene .38 Super" msgstr[1] "wiedergeladene .38 Super" #: lang/json/AMMO_from_json.py -msgid ".380 ACP FMJ" +msgid "blackpowder .38 Special" +msgstr "Schwarzpulver .38 Special" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." msgstr "" +"Diese .38 Spezialpatrone ist mit einer 200 g gegossenen Bleihohlspitze und " +"23 g Schwarzpulver gefüllt. Obwohl er viel langsamer als ein normaler .38er " +"ist, hat er eine enorme Bremskraft." + +#: lang/json/AMMO_from_json.py +msgid ".380 ACP FMJ" +msgstr ".380 ACP FMJ" #. ~ Description for .380 ACP FMJ #: lang/json/AMMO_from_json.py @@ -2629,10 +2743,14 @@ msgid "" "consider carrying. One should be careful not to chamber it in 9x18mm " "Makarov or 9x19mm firearms." msgstr "" +".380 ACP Munition mit einem Messing-ummantelten 95 g Geschoss. Seit über " +"einem Jahrhundert in Handfeuerwaffen beliebt, wird es oft als das schwächste" +" Kaliber angesehen, das man in Erwägung ziehen sollte. Man sollte darauf " +"achten, damit keine 9x18mm Makarov oder 9x19mm Schusswaffen zu laden." #: lang/json/AMMO_from_json.py msgid ".380 ACP JHP" -msgstr "" +msgstr ".380 ACP JHP" #. ~ Description for .380 ACP JHP #: lang/json/AMMO_from_json.py @@ -2642,31 +2760,39 @@ msgid "" "recommended defensive caliber. One should be careful not to chamber it in " "9x18mm Makarov or 9x19mm firearms." msgstr "" +".380 ACP Munition mit einem 95 g Hohlmantelgeschoss. Es ist eine beliebte " +"Patrone für kleine, versteckbare Reservepistolen und oft das schwächste " +"empfohlene Abwehrkaliber. Man sollte darauf achten, damit keine 9x18mm " +"Makarov oder 9x19mm Schusswaffen zu laden." #: lang/json/AMMO_from_json.py msgid ".380 ACP +P" -msgstr "" +msgstr ".380 ACP +P" #. ~ Description for .380 ACP +P #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" +".380 ACP Überdruck-Munition mit einem 95 g Hohlmantelgeschoss. Diese " +"defensiven Ladungen wurden entwickelt, um die Leistung zu maximieren und " +"sind in der Regel genauer als Übungsmunition. Man sollte darauf achten, " +"damit keine 9x18mm Makarov oder 9x19mm Schusswaffen zu laden." #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP FMJ" -msgstr "" +msgstr "nachgeladene .380 ACP FMJ" #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP JHP" -msgstr "" +msgstr "nachgeladene .380 ACP JHP" #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP +P" -msgstr "" +msgstr "nachgeladene .380 ACP +P" #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "10mm Auto" @@ -2857,6 +2983,19 @@ msgstr "" "Eine 40mm-Tränengasgranate. Beim Aufprall wird eine Wolke aus höchst " "giftigem und lähmendem Gas freigesetzt." +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "40mm Schrotpatrone" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" +"Eine 40mm Granate, geladen mit einer massiven Kugel. Verabschiede dich von " +"deiner Schulter, schätze ich." + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 Magnum FMJ" @@ -2894,6 +3033,19 @@ msgstr "wiedergeladene .44 Magnum FMJ" msgid "reloaded .44 Magnum" msgstr "wiedergeladene .44 Magnum" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "Schwarzpulver .44 Magnum" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" +"Diese .44 Magnum Patrone ist mit 39 g Schwarzpulver und einem 200 g " +"gegossenen Bleihalbscharfrandgeschoss gefüllt." + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr ".44-Papierpatrone" @@ -2986,6 +3138,106 @@ msgstr "" msgid "reloaded .454 Casull" msgstr "wiedergeladene .454 Casull" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "Schwarzpulver .454 Casull" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" +"Dieser seltsame Anachronismus einer Patrone ist mit 45 g Schwarzpulver und " +"einer relativ leichten 190 g gegossenen Bleihohlspitze gefüllt." + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr ".45-70 SP" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr ".45-70 +P panzerbrechendes Geschoss" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr ".45-70 LFN Cowboy" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "wiedergeladene .45-70 SP" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "wiedergeladene .45-70 +P panzerbrechendes Geschoss" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "wiedergeladene .45-70 LFN Cowboy" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "wiedergeladene .45-70 Schwarzpulver" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4,6×30mm" @@ -3904,6 +4156,22 @@ msgstr "wiedergeladene Flechet-Hülsen" msgid "reloaded shotgun slug" msgstr "wiedergeladenes Flintenlaufgeschoss" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "Schwarzpulver Vogeldunst" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "Schwarzpulver 00-Schrotkugel" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "Schwarzpulver Flechet-Hülse" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "Schwarzpulver Flintenlaufgeschoss" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "00-Schrotkugeln" @@ -4285,13 +4553,13 @@ msgstr "Plutoniumzelle" #: lang/json/AMMO_from_json.py msgid "chunk of rubber" msgid_plural "chunks of rubber" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Gummibrocken" +msgstr[1] "Gummibrocken" #. ~ Description for chunk of rubber #: lang/json/AMMO_from_json.py msgid "A chunk of useful rubber, can be molded easily." -msgstr "" +msgstr "Ein Stück nützliches Gummi, das sich leicht formen lässt." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "lead pellets" @@ -4307,7 +4575,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "domed HP pellets" -msgstr "" +msgstr "gewölbte Hohlmantelkügelchen" #. ~ Description for domed HP pellets #: lang/json/AMMO_from_json.py @@ -4316,10 +4584,14 @@ msgid "" "hitting a target for maximized damage, the dome shape allows it to pack " "quite a punch for something so small" msgstr "" +"Ein stabiles, schwereres Bleikorn-Kügelchen mit dem Ziel, sich beim Treffer " +"auf ein Ziel zu dehnen, um maximalen Schaden zu verursachen. Die gewölbte " +"Form ermöglicht es ihm, einen ziemlichen Schlag für etwas so Kleines zu " +"versetzen." #: lang/json/AMMO_from_json.py msgid "tipped HP pellets" -msgstr "" +msgstr "spitze Hohlmantelkügelchen" #. ~ Description for tipped HP pellets #: lang/json/AMMO_from_json.py @@ -4330,7 +4602,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "alloy pellets" -msgstr "" +msgstr "Metallgemischkügelchen" #. ~ Description for alloy pellets #: lang/json/AMMO_from_json.py @@ -6096,8 +6368,8 @@ msgstr "Eine extrem schwere Zierrüstung." #: lang/json/ARMOR_from_json.py msgid "riot armor" msgid_plural "riot armors" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Spezialeinheitsrüstung" +msgstr[1] "Spezialeinheitsrüstungen" #. ~ Description for riot armor #: lang/json/ARMOR_from_json.py @@ -6106,6 +6378,10 @@ msgid "" "plastic shoulder guards offer good protection without much encumbrance. The" " word POLICE is emblazoned across the front." msgstr "" +"Schwarze Rüstung, die von Bereitschaftspolizisten benutzt wird. Die " +"gepolsterten Schichten und der Hartkunststoff-Schulterschutz bieten einen " +"guten Schutz ohne große Belastungen. Das Wort POLIZEI prangt auf der " +"Vorderseite." #: lang/json/ARMOR_from_json.py msgid "O-yoroi" @@ -6142,13 +6418,10 @@ msgstr[1] "Schrottanzüge" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." msgstr "" -"Eine Rüstung aus Schrott, welches von einfachen Fäden zusammengehalten wird;" -" bietet netten Schutz, aber der lose Zusammenbau aus Platten ist nicht " -"gerade der bequemste Schutz." #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -6298,14 +6571,16 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "doctor badge" msgid_plural "doctor badges" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Doktorabzeichen" +msgstr[1] "Doktorabzeichen" #. ~ Description for doctor badge #: lang/json/ARMOR_from_json.py msgid "" "A plastic name tag marking the wearer as a real doctor of the medical kind." msgstr "" +"Ein Namensschild aus Kunststoff, das den Träger als echten Arzt der " +"medizinischen Art kennzeichnet." #: lang/json/ARMOR_from_json.py msgid "balaclava" @@ -7335,8 +7610,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "beaded bracelet" msgid_plural "beaded bracelets" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Perlenarmband" +msgstr[1] "Perlenarmbänder" #. ~ Description for beaded bracelet #: lang/json/ARMOR_from_json.py @@ -7348,8 +7623,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "beaded necklace" msgid_plural "beaded necklaces" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Perlenhalskette" +msgstr[1] "Perlenhalsketten" #. ~ Description for beaded necklace #: lang/json/ARMOR_from_json.py @@ -9585,8 +9860,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of snow goggles" msgid_plural "pairs of snow goggles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Schneebrille" +msgstr[1] "Schneebrillen" #. ~ Description for pair of snow goggles #: lang/json/ARMOR_from_json.py @@ -10081,8 +10356,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "cyan scarf" msgid_plural "cyan scarfs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "türkiser Schal" +msgstr[1] "türkise Schals" #. ~ Description for cyan scarf #: lang/json/ARMOR_from_json.py @@ -10154,8 +10429,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "yukata" msgid_plural "yukatas" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Yukata" +msgstr[1] "Yukata" #. ~ Description for yukata #: lang/json/ARMOR_from_json.py @@ -10167,8 +10442,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "haori" msgid_plural "haoris" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Haori" +msgstr[1] "Haori" #. ~ Description for haori #: lang/json/ARMOR_from_json.py @@ -11210,8 +11485,8 @@ msgstr "Eine Tasche, um Lebensmittel nach Hause zu tragen." #: lang/json/ARMOR_from_json.py msgid "police duty belt" msgid_plural "police duty belts" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Polizeidienstgürtel" +msgstr[1] "Polizeidienstgürtel" #. ~ Use action holster_msg for police duty belt. #: lang/json/ARMOR_from_json.py @@ -12959,8 +13234,8 @@ msgstr "Lumpen, die um den Kopf getragen werden." #: lang/json/ARMOR_from_json.py msgid "headscarf" msgid_plural "headscarfs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kopftuch" +msgstr[1] "Kopftücher" #. ~ Description for headscarf #: lang/json/ARMOR_from_json.py @@ -13372,8 +13647,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "Hub 01 enviromental suit" msgid_plural "Hub 01 enviromental suits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Hub 01 Umweltanzug" +msgstr[1] "Hub 01 Umweltanzüge" #. ~ Description for Hub 01 enviromental suit #: lang/json/ARMOR_from_json.py @@ -13785,8 +14060,8 @@ msgstr "Ein lederner Patronengurt, um Gewehrpatronen nahe zur Hand zur haben." #: lang/json/ARMOR_from_json.py msgid "waist shotgun bandolier" msgid_plural "waist shotgun bandoliers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Taillen-Flintenpatronengurt" +msgstr[1] "Taillen-Flintenpatronengurte" #. ~ Description for waist shotgun bandolier #: lang/json/ARMOR_from_json.py @@ -13798,8 +14073,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "torso shotgun bandolier" msgid_plural "torso shotgun bandoliers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Torso-Flintenpatronengurt" +msgstr[1] "Torso-Flintenpatronengurte" #. ~ Description for torso shotgun bandolier #: lang/json/ARMOR_from_json.py @@ -14549,6 +14824,38 @@ msgstr "" "Ein Paar Neopren-Füßlinge, mit eigenartigen Sohlen. Sie werden zum Schwimmen" " und Tauchen verwendet." +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -14862,8 +15169,8 @@ msgstr[1] "" #: lang/json/ARMOR_from_json.py msgid "welding mask" msgid_plural "welding masks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Schweißmaske" +msgstr[1] "Schweißmasken" #. ~ Description for welding mask #: lang/json/ARMOR_from_json.py @@ -14875,8 +15182,8 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "makeshift welding mask" msgid_plural "makeshift welding masks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "selbstgemachte Schweißmaske" +msgstr[1] "selbstgemachte Schweißmasken" #. ~ Description for makeshift welding mask #: lang/json/ARMOR_from_json.py @@ -15396,6 +15703,20 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -18505,6 +18826,7 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -18513,7 +18835,8 @@ msgstr[1] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -22878,7 +23201,7 @@ msgstr[1] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" @@ -23360,12 +23683,8 @@ msgstr[1] "rohe Lungenstücke" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"Ein Teil einer Tierlunge. Sie ist schwammig, rosa und verdirbt auch sehr " -"schnell. Bei richtiger Zubereitung kann sie eine Delikatesse sein - bei " -"unsachgemäßer Zubereitung handelt es sich jedoch um ein zähes Stück " -"geschmacklosen Bindegewebes." #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -23376,14 +23695,10 @@ msgstr[1] "gekochte Lungenstücke" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" -" Auf diese Weise zubereitet, ist es lediglich ein zähes, graues Stück " -"geschmacklosen Bindegewebes. Es sieht nicht schmackhafter aus als in seiner " -"rohen Gestalt, aber zumindest wurden alle Parasiten durch das Kochen " -"abgetötet." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -29578,7 +29893,7 @@ msgstr[1] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" @@ -35206,6 +35521,31 @@ msgstr[1] "Plastikschüsseln" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "Stahlflasche" +msgstr[1] "Stahlflaschen" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "" +"Eine Wasserflasche aus rostfreiem Stahl, kann 750 ml Flüssigkeit enthalten." + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "faltbare Plastikflasche" +msgstr[1] "faltbare Plastikflaschen" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Eine unstarre wiederverschließbare Plastikflasche zum einfachen Lagern, " +"fasst 500 ml Flüssigkeit." + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -35256,18 +35596,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "Stahlflasche" -msgstr[1] "Stahlflaschen" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "" -"Eine Wasserflasche aus rostfreiem Stahl, kann 750 ml Flüssigkeit enthalten." - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -35281,19 +35609,6 @@ msgstr "" "Ein halb zerknitterter Bogen aus Aluminiumfolie, benutzt zum Kochen und " "Backen." -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "faltbare Plastikflasche" -msgstr[1] "faltbare Plastikflaschen" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Eine unstarre wiederverschließbare Plastikflasche zum einfachen Lagern, " -"fasst 500 ml Flüssigkeit." - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -35950,6 +36265,10 @@ msgstr[1] "Leichen" msgid "A dead body." msgstr "Ein toter Körper." +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "nahes Feuer" @@ -35989,9 +36308,10 @@ msgstr[1] "verdorrte Pflanzen" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." msgstr "" -"Eine verdorrte Pflanze. Kann zum Anzünden eines Feuers verwendet werden." #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -42897,6 +43217,17 @@ msgstr[1] ".45-ACP-Hülsen" msgid "An empty casing from a .45 ACP round." msgstr "Eine leere Hülse einer .45-ACP-Patrone." +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -43109,6 +43440,19 @@ msgstr "" " dieser Schein gegen Nahrung, Wasser und anderen Diensten bei den Freien " "Händlern im Flüchtlichslager eingetauscht werden kann." +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -44163,6 +44507,17 @@ msgstr "" "Eine provisorische Version eines Bajonetts, bestehend aus einem bloßen " "Stachel mit etwas Schnur." +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "Steinspeer" +msgstr[1] "Steinspeere" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "Eine stabile hölzerne Stange mit einer scharfen Steinspitze." + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -44275,6 +44630,24 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "Kochgeschirr" +msgstr[1] "Kochgeschirre" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"Eine kompakte militärische Pfanne mit Einsatz, dafür gedacht, Nahrung über " +"einem Feuer oder tragbaren Herd zu erhitzen. Flacher als ein richtiger Topf " +"oder eine Pfanne und es fehlen die integrierten Heizelemente, die moderne " +"Campinggeschirre haben." + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -47124,6 +47497,30 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -47249,6 +47646,28 @@ msgstr[1] "" msgid "A small book, containing spells created by a novice magician." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -47918,35 +48337,6 @@ msgid_plural "integral EMP projectors" msgstr[0] "integrierter EMP-Projektor" msgstr[1] "integrierte EMP-Projektoren" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "Steinspeer" -msgstr[1] "Steinspeere" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "Eine stabile hölzerne Stange mit einer scharfen Steinspitze." - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "Kochgeschirr" -msgstr[1] "Kochgeschirre" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"Eine kompakte militärische Pfanne mit Einsatz, dafür gedacht, Nahrung über " -"einem Feuer oder tragbaren Herd zu erhitzen. Flacher als ein richtiger Topf " -"oder eine Pfanne und es fehlen die integrierten Heizelemente, die moderne " -"Campinggeschirre haben." - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -52290,6 +52680,17 @@ msgstr "Erweiterte Realistische Waffen" msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "Mehr überlappende Munitionstypen und Feuerwaffen aus der realen Welt." +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "" @@ -52403,11 +52804,9 @@ msgstr "vernarbter Zombie" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." msgstr "" -"Ein deformierter menschlicher Körper. Seine Haut wurde zu einer dicken, " -"verhärteten Hülle aus Narbengewebe umgeformt." #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -52518,7 +52917,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "gasoline zombie" -msgstr "" +msgstr "Benzinzombie" #. ~ Description for gasoline zombie #: lang/json/MONSTER_from_json.py @@ -52598,7 +52997,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "prototype cyborg" -msgstr "" +msgstr "Cyborgprototyp" #. ~ Description for prototype cyborg #: lang/json/MONSTER_from_json.py @@ -52705,12 +53104,9 @@ msgstr "Geist" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "" -"Ein riesiger Schatten, der chaotisch seine Form und sein Volumen verändert; " -"zwei grelle Lichtkugeln ragen über etwas, was nur als sein Kopf beschrieben " -"werden kann, hervor." #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -52779,10 +53175,8 @@ msgstr "Verrottweiler" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." +" chains of pulsing cysts and slime-dribbling ulcers." msgstr "" -"Ein beißender Geruch begleitet diese hündische Leiche. Ihr ganzer Körper ist" -" mit Ketten pulsierender Zysten und Schleim absondernden Geschwüren bedeckt." #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -52791,9 +53185,12 @@ msgstr "Schauboter" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" #: lang/json/MONSTER_from_json.py @@ -53453,7 +53850,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skeletal brute" -msgstr "" +msgstr "Sekelettrohling" #. ~ Description for skeletal brute #: lang/json/MONSTER_from_json.py @@ -53658,11 +54055,9 @@ msgstr "Zombie" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." msgstr "" -"Ein menschlicher Körper, schwankend, wie er sich bewegt, ist ein unbändiger " -"Zorn in seinen ölschwarzen Augen zu sehen." #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -53693,7 +54088,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "brainless zombie" -msgstr "" +msgstr "hirnloser Zombie" #. ~ Description for brainless zombie #: lang/json/MONSTER_from_json.py @@ -53858,7 +54253,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "listener zombie" -msgstr "" +msgstr "Lauscherzombie" #. ~ Description for listener zombie #: lang/json/MONSTER_from_json.py @@ -54220,7 +54615,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "skull zombie" -msgstr "" +msgstr "Schädelzombie" #. ~ Description for skull zombie #: lang/json/MONSTER_from_json.py @@ -54305,7 +54700,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "thorny shambler" -msgstr "" +msgstr "dorniger Schlurfer" #. ~ Description for thorny shambler #: lang/json/MONSTER_from_json.py @@ -54666,11 +55061,9 @@ msgstr "EMP-Drohne" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." msgstr "" -"Eine automatisierte Kamikazedrohne. Dieser faustgroße Roboter scheint eine " -"EMP-Granate zu tragen." #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -54679,11 +55072,9 @@ msgstr "C-4-Drohne" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." msgstr "" -"Eine automatisierte Kamikazedrohne. Dieser faustgroße Roboter scheint etwas " -"C-4 zu tragen." #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -54692,11 +55083,9 @@ msgstr "Blendgranatendrohne" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." msgstr "" -"Eine automatisierte Kamikazedrohne. Dieser faustgroße Roboter scheint eine " -"Blendgranate zu tragen." #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -54705,11 +55094,9 @@ msgstr "Tränengasdrohne" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." msgstr "" -"Eine automatisierte Kamikazedrohne. Dieser faustgroße Roboter scheint einen " -"Tränengaskanister zu tragen." #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -54718,11 +55105,9 @@ msgstr "Granatendrohne" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." msgstr "" -"Eine automatisierte Kamikazedrohne. Dieser faustgroße Roboter scheint eine " -"Granate zu tragen." #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -54731,11 +55116,9 @@ msgstr "Klingendrohne" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." msgstr "" -"Eine automatisierte Antipersonendrohne, ein faustgroßer Roboter mit " -"schwirrenden Klingen." #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -54744,11 +55127,9 @@ msgstr "Atombömbchendrohne" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "" -"Viel größer als eine normale Klingendrohne scheint diese fliegende Drohne " -"ein Atombömbchen im Inneren zu tragen. Wenn sie dich anvisiert … lauf." #: lang/json/MONSTER_from_json.py msgid "tiny fish" @@ -57234,7 +57615,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "zombie security guard" -msgstr "" +msgstr "Zombiewachmann" #. ~ Description for zombie security guard #: lang/json/MONSTER_from_json.py @@ -57247,7 +57628,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "prisoner zombie" -msgstr "" +msgstr "Sträflingszombie" #. ~ Description for prisoner zombie #: lang/json/MONSTER_from_json.py @@ -57272,7 +57653,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "black-ops zombie" -msgstr "" +msgstr "Black-Op-Zombie" #. ~ Description for black-ops zombie #: lang/json/MONSTER_from_json.py @@ -57284,7 +57665,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "hunter-killer zombie" -msgstr "" +msgstr "Jagdzombie" #. ~ Description for hunter-killer zombie #: lang/json/MONSTER_from_json.py @@ -57296,7 +57677,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "acid-sniper zombie" -msgstr "" +msgstr "Säure-Zombieschütze" #. ~ Description for acid-sniper zombie #: lang/json/MONSTER_from_json.py @@ -57309,7 +57690,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "acid-support zombie" -msgstr "" +msgstr "Säure-Zombieaufklärer" #. ~ Description for acid-support zombie #: lang/json/MONSTER_from_json.py @@ -57322,7 +57703,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "kevlar zombie" -msgstr "" +msgstr "Kevlarzombie" #. ~ Description for kevlar zombie #: lang/json/MONSTER_from_json.py @@ -57337,7 +57718,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "kevlar hulk" -msgstr "" +msgstr "Kevlar-Hulk" #. ~ Description for kevlar hulk #: lang/json/MONSTER_from_json.py @@ -57410,7 +57791,7 @@ msgstr "" #: lang/json/MONSTER_from_json.py msgid "headless zombie" -msgstr "" +msgstr "kopfloser Zombie" #. ~ Description for headless zombie #: lang/json/MONSTER_from_json.py @@ -59685,6 +60066,61 @@ msgstr "" msgid "Evens out damage among your limbs." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "" @@ -59787,6 +60223,50 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -62773,6 +63253,19 @@ msgstr "" "Granate verwandelt. Du wirst dann drei Züge Zeit bis zur Detonation, die ein" " EMP-Feld, das Roboter beschädigt und den Strom von Bioniken entlädt, haben." +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -63585,8 +64078,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive broken cyborg" msgid_plural "inactive broken cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "defekter inaktiver Cyborg" +msgstr[1] "inaktive defekte Cyborgs" #. ~ Use action friendly_msg for inactive broken cyborg. #: lang/json/TOOL_from_json.py @@ -63612,8 +64105,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive prototype cyborg" msgid_plural "inactive prototype cyborgs" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "inaktiver Cyborgprototyp" +msgstr[1] "inaktive Cyborgprototypen" #. ~ Use action friendly_msg for inactive prototype cyborg. #: lang/json/TOOL_from_json.py @@ -67579,13 +68072,9 @@ msgstr "Du zündest den Docht der Rohrbombe an." #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" -"Dies ist ein Stück Rohr, das mit explosiven Materialen gefüllt wurde. " -"Benutze diesen Gegenstand, um seine Zündschnur anzuzünden, was dir drei Züge" -" gibt, dich von ihm zu entfernen, bevor er detoniert. Du brauchst ein " -"Feuerzeug oder ein paar Streichhölzer, um ihn zu benutzen." #: lang/json/TOOL_from_json.py msgid "active pipe bomb" @@ -68161,8 +68650,8 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "anesthesia kit" msgid_plural "anesthesia kits" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Narkose-Set" +msgstr[1] "Narkose-Sets" #: lang/json/TOOL_from_json.py msgid "shaving kit" @@ -68533,14 +69022,10 @@ msgstr[1] "selbstgemachte Halbspieße" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" -"Ein kurzer Speer Marke Eigenbau aus einem weichen hölzernen Schaft mit einer" -" geschärften Metallform, die an die Spitze eingesetzt und sorgfältig " -"befestigt wurde. Der funktionale Griff und eine gute Bauweise macht ihn zu " -"einer brauchbaren, wenn nicht gar effektiven Waffe." #: lang/json/TOOL_from_json.py msgid "spray can" @@ -69960,6 +70445,36 @@ msgid "" "supplies." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" +"Dies ist ein breites Stück geschärfter Stein, an dem genug übrig gelassen " +"wurde, um ihn sicher zu halten. Das Schweizer Armeemesser des " +"Altpaläolithikers." + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -70125,6 +70640,21 @@ msgstr "" "Dies ist ein Stück Plastik. Es könnte benutzt werden, um Gegenstände " "herzustellen, zu reparieren oder, um Plastikgegenstände zu verstärken." +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "Hexamin-Ofen" +msgstr[1] "Hexamin-Öfen" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "" +"Dies ist ein leichter faltbarer Ofen, der dafür ausgelegt wurde, kleine " +"Hexamintabletten zu Kochen zu verwenden." + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -70277,6 +70807,19 @@ msgstr "" "Hilfsmittel zum Schlachten. Sie ist zu dünn, um ein komfortabler Schlafplatz" " zu sein. Sie wurde zusammengerollt und kann transportiert werden." +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "Feuerstein und Stahl" +msgstr[1] "Sets von Feuerstein und Stahl" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -71444,6 +71987,19 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -71925,21 +72481,6 @@ msgstr "" "Ein normaler und völlig harmloser Gartenzwerg. Er enthält bis zu 100 Schuss " "9mm Munition." -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "Feuerstein und Stahl" -msgstr[1] "Sets von Feuerstein und Stahl" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "" -"Dies ist ein sorgfältig ausgesuchtes Stück Feuerstein und ein " -"Carbonstahlanzünder. Benutze es, um eine Flamme zu entfachen." - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -71986,22 +72527,6 @@ msgstr "" "Asche glimmt in ihm vor sich hin und kann benutzt werden, ein Lagerfeuer zu " "entfachen." -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "Handaxt" -msgstr[1] "Handäxte" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" -"Dies ist ein breites Stück geschärfter Stein, an dem genug übrig gelassen " -"wurde, um ihn sicher zu halten. Das Schweizer Armeemesser des " -"Altpaläolithikers." - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -72069,37 +72594,6 @@ msgstr "" "ist dabei, zu einer primitiven Art von Käse zu werden, da ihr Essig und " "natürlicher Lab hinzugefügt wurde." -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "Hexamin-Ofen" -msgstr[1] "Hexamin-Öfen" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "" -"Dies ist ein leichter faltbarer Ofen, der dafür ausgelegt wurde, kleine " -"Hexamintabletten zu Kochen zu verwenden." - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "selbstgemachte Axt" -msgstr[1] "selbstgemachte Äxte" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "" -"Dies ist ein scharfer Stahlbrocken, der an einem Stock angebracht wurde. Zum" -" Holzfällen funktioniert es ganz gut, aber es ist kein Vergleich zu einer " -"richtigen Axt." - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -73481,6 +73975,17 @@ msgstr "" "befindet sich in eine Art Koma und wartet auf deine Anweisungen. Benutze " "diesen Gegenstand, um den Untertan aufzuwecken." +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "Rad" @@ -73869,303 +74374,303 @@ msgstr "" "allerdings ist es extrem schwer." #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "Nachladen abbrechen?" +msgid "reloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "Lesen abbrechen?" +msgid "reading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "Spiel abbrechen?" +msgid "playing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "Warten abbrechen?" +msgid "waiting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "Fertigen abbrechen?" +msgid "crafting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "Demontage abbrechen?" +msgid "disassembly" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "Schlachten abbrechen?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "Schlachtungs" #: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "Ausnehmen abbrechen?" +msgid "field dressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" -msgstr "Häuten abbrechen?" +msgid "skinning" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "Vierteilen abbrechen?" +msgid "quartering" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" +msgid "dismembering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "Sezierung abbrechen?" +msgid "dissecting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "Bergen abbrechen?" +msgid "salvaging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "Sammeln abbrechen?" +msgid "foraging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "Mit dem Bau abbrechen?" +msgid "construction" +msgstr "Bau" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "Fahrzeuginteraktion abbrechen?" +msgid "interacting with the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "Training abbrechen?" +msgid "training" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" -msgstr "Nicht mehr gesellig sein?" +msgid "socializing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "Erste Hilfe abbrechen?" +msgid "using first aid" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "Fischen abbrechen?" +msgid "fishing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "Abbau abbrechen?" +msgid "mining" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "Graben abbrechen?" +msgid "burrowing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "Zerschlagen abbrechen?" +msgid "smashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" +msgid "cranking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "Entspannen abbrechen?" +msgid "de-stressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "Zerschneiden abbrechen?" +msgid "cutting tissues" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "Fallenlassen abbrechen?" +msgid "dropping" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "Verstauen abbrechen?" +msgid "stashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "Aufheben abbrechen?" +msgid "picking up" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "Bewegen der Gegenstände abbrechen?" +msgid "moving items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "Mit dem Sortieren der Beute aufhören?" +msgid "sorting out the loot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "Mit dem Pflügen des Ackerbau-Zielfelds aufhören?" +msgid "tilling the farm plot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "Mit dem Pflanzen der Samen aufhören?" +msgid "planting seeds" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "Mit dem Ernten der Ackerbau-Felder aufhören?" +msgid "harvesting plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "Mit dem Düngen der Ackerbau-Felder aufhören?" +msgid "fertilizing plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "Inventarinteraktion abbrechen?" +msgid "interacting with inventory" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "Mit der Kleidungssortierung abbrechen?" +msgid "fiddling with your clothes" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "Entzünden abbrechen?" +msgid "lighting the fire" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "Mit der Benutzung der Winde abbrechen?" +msgid "working the winch" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "Abfüllen abbrechen?" +msgid "filling the container" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "Mit dem Kurzschließen des Fahrzeugs abbrechen?" +msgid "hotwiring the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "Zielen abbrechen?" +msgid "aiming" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "Benutzung des Geldautomaten abbrechen?" +msgid "using the ATM" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "Starten des Fahrzeugs abbrechen?" +msgid "trying to start the vehicle" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "Schweißen abbrechen?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "Verschweißungs" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "Aufbrechen abbrechen?" +msgid "cracking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "Reparieren abbrechen?" +msgid "repairing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "Beheben abbrechen?" +msgid "mending" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "Waffenmodifikation abbrechen?" +msgid "modifying gun" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "Werkzeugmodifikation abbrechen?" +msgid "modifying tool" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "Mit der NPC-Interaktion aufhören?" +msgid "interacting with the NPC" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "Aufhören, den Schutt zu beseitigen?" +msgid "clearing that rubble" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "Mit der Meditation aufhören?" +msgid "meditating" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "Waschen abbrechen?" +msgid "washing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "Aufhören, das Metall zu schneiden?" +msgid "cutting the metal" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "Zerschlagen abbrechen?" +msgid "chopping down" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "Bohren abbrechen?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "Bohr" -#: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "Mit Graben aufhören?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "Grabe" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "Mit Befüllen aufhören?" +msgid "filling" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "Mit Rasieren aufhören?" +msgid "shaving" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "Mit dem Haarschnitt aufhören?" +msgid "cutting your hair" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "Nicht mehr mit deinem Tier spielen?" +msgid "playing with your pet" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "Mit dem Versuch, einzuschlafen, aufhören?" +msgid "trying to fall asleep" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" -msgstr "Entladen abbrechen?" +msgid "unloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" -msgstr "Programmierungsüberbrückung abbrechen?" +msgid "programming override" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" -msgstr "Anziehen abbrechen?" +msgid "putting on items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" +msgid "communing with the trees" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" -msgstr "" +msgid "eating" +msgstr "Essen" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" +msgid "consuming" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" +msgid "casting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" +msgid "studying" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" +msgid "drinking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" +msgid "using drugs" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" +msgid "using the mind splicer" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" +msgid "hacking console" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -74176,6 +74681,10 @@ msgstr ".700 Nitro Express" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "Nägel" @@ -76297,6 +76806,10 @@ msgstr "Notbett bauen" msgid "Build Straw Bed" msgstr "Strohbett bauen" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "" @@ -77696,6 +78209,26 @@ msgstr "" "KI-Kennzeichen für Monster, die vom Spieler getroffen wurden. Wenn du es " "hast, ist das ein Bug." +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "Zahmes Monster" @@ -78003,6 +78536,16 @@ msgstr "" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "Festgebunden" @@ -78159,6 +78702,20 @@ msgstr "" msgid "The scream dazes you!" msgstr "Der Schrei macht dich benommen!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "In Flammen" @@ -80051,6 +80608,54 @@ msgstr "" msgid "Your Frost Armor melts away." msgstr "" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "Steckt in einem leichten Fallstrick fest" @@ -80937,6 +81542,15 @@ msgstr "" "ausbeuten. Selbst, wenn du keine Ausrüstung hast, gibt es stets Bedarf nach " "Sklaven und Frischfleisch." +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "" @@ -81168,8 +81782,7 @@ msgstr "Eine Straßensperre. Zum Verbarrikadieren von Straßen." msgid "smash!" msgstr "»Schepper!«." -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "»Wumms!«." @@ -81224,8 +81837,8 @@ msgid "" "notes for other survivors to read." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "»Knirsch!«." @@ -81321,6 +81934,17 @@ msgstr "Strohbett" msgid "Kinda itches when you lay on it." msgstr "Es zwickt etwas, wenn du dich reinlegst." +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "Waschbecken" @@ -81798,10 +82422,20 @@ msgstr "Was ist drinnen? Wirf einen Blick herein!" msgid "canvas wall" msgstr "Zelttuch" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "»Patsch!«." +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "Zeltklappe" @@ -82223,6 +82857,16 @@ msgstr "Zielscheibe" msgid "A metal shooting target in the rough shape of a human." msgstr "Ein Schießscheibe mit menschlichen Umrissen." +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -82240,15 +82884,32 @@ msgid "" "and... delicious?" msgstr "" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "Wolfsmilchblume" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "Rohrkolben" @@ -82260,6 +82921,32 @@ msgid "" "edible." msgstr "" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "Seerosenblatt" @@ -82373,6 +83060,13 @@ msgstr "" msgid "ergometer" msgstr "Ergometer" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -82437,6 +83131,13 @@ msgstr "»Klopf«." msgid "canvas floor" msgstr "Zeltboden" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -82555,6 +83256,13 @@ msgstr "Tonbrennofen" msgid "A kiln designed to bake clay pottery and bricks." msgstr "Ein Ofen, der Tonwaren und Ziegel brennen kann." +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "kleiner Felsbrocken" @@ -82594,6 +83302,11 @@ msgstr "Tja, ob du ihn wohl bewegen kannst?" msgid "stone slab" msgstr "Steinplatte" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "Handschellen" @@ -83296,7 +84009,7 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "anesthetic machine" -msgstr "" +msgstr "Narkose-Maschine" #. ~ Description for anesthetic machine #: lang/json/furniture_from_json.py @@ -83305,6 +84018,10 @@ msgid "" "This machine helps an anesthesiologist keep the right mix of drugs and air " "to keep a patient asleep." msgstr "" +"Eine Person auf dem richtigen Niveau des Schlafes zu halten, um eine " +"Operation durchzuführen, ist schwierig. Diese Maschine hilft einem " +"Anästhesisten, die richtige Mischung aus Medikamenten und Luft zu finden, um" +" den Patienten im Schlaf zu halten." #: lang/json/furniture_from_json.py msgid "dialysis machine" @@ -83446,14 +84163,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "mutierter Kaktus" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "Tatami-Matte" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "mutierter Kaktus" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -83734,8 +84458,7 @@ msgstr "Fake-Gewehr, welches Säureklumpen feuert." msgid "auto" msgstr "automatisch" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "Gewehr" @@ -86221,6 +86944,46 @@ msgstr "" "Der Taurus Raging Bull ist ein fünfschüssiger Revolver, der die .454-Casull-" "Patrone benutzt. Er hat eine beeindruckene Mannstoppwirkung." +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -87242,6 +88005,14 @@ msgid_plural "fusion blasters" msgstr[0] "Fusionskanone" msgstr[1] "Fusionskanonen" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -88929,6 +89700,18 @@ msgstr "" "wiederverwendbares, mehrzweckfähiges rückstoßfreies Gewehr, welches " "üblicherweise vom US-Militär benutzt wird." +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -90576,6 +91359,22 @@ msgstr "" "Ein eingebauter Leadworks-Hochleistungslauf, der speziell für längeres " "Schießen konzipiert wurde. Erhöht den Schaden und die Waffenreichweite." +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "unterläufig" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -91349,10 +92148,6 @@ msgstr "" "Dieser selbstgebaute Miniaturflammenwerfer kann an fast jede Feuerwaffe " "befestigt werden und somit ihre Tödlichkeit stark erhöhen." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "unterläufig" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -92510,6 +93305,12 @@ msgid "" "this restriction if you find a way to completely negate pain. Don't even " "try without proper anesthesia - normal drugs won't help." msgstr "" +"Für einsame Überlebende ist die Standardoption für die Installation oder " +"Deinstallation von Bioniken ein Autodoktor. In der Regel findet man sie in " +"einem Krankenhaus oder einer Klinik. Alle Autodoktor-Verfahren erfordern ein" +" Narkose-Set. Du kannst diese Einschränkung jedoch umgehen, wenn du einen " +"Weg findest, den Schmerz vollständig zu unterdrücken. Versuch es erst gar " +"nicht ohne richtige Anästhesie - normale Medikamente helfen nicht." #: lang/json/help_from_json.py msgid "" @@ -96092,6 +96893,10 @@ msgstr "Duftnotenvisualisierung ein/aus" msgid "View Temperature Map" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "Seitenleistenstil umschalten" @@ -96132,6 +96937,10 @@ msgstr "Automatisches Graben umschalten" msgid "Toggle Auto Foraging" msgstr "Automatische Nahrungssuche umschalten" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "Aktionsmenü" @@ -96979,16 +97788,6 @@ msgstr "Zentrifuge" msgid "Analyze blood" msgstr "Blut analysieren" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "Knochen einrichten" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -97716,7 +98515,7 @@ msgstr "" #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Weapons Testing Range" -msgstr "" +msgstr "Waffenprüfstand" #. ~ Computer name #: lang/json/mapgen_from_json.py @@ -100608,7 +101407,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" #: lang/json/mission_def_from_json.py @@ -100865,99 +101664,237 @@ msgstr "" "untersucht haben möchte, in Kenntnis setzen." #: lang/json/mission_def_from_json.py -msgid "Return Field Data" +msgid "Reach Refugee Center" +msgstr "Flüchtlingslager erreichen" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" +msgid "Any luck? Bigger ones?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Yes! The home stretch!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "Flüchtlingslager erreichen" +msgid "Oh man, but we're so close!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -101075,6 +102012,157 @@ msgstr "" "Hmm, das wird nicht so funktionieren wie ich gedacht habe. Zurück ans " "Zeichenbrett." +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "Hinterhof säubern" @@ -101086,16 +102174,9 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"Wenn du wirklich helfen willst, könnten wir deine Hilfe beim Säubern der " -"Toten im Hinterhof gebrauchen. Aus Angst, in den ersten Tagen der " -"Katastrophe nach draußen zu gehen, warfen wir unsere Toten und die getöteten" -" Zombies in die versiegelte Hinterbucht. Sogar unser vielversprechender " -"Anführer ist in dieser Zeit gefallen … er hat sich in etwas anderes " -"verwandelt. Töte sie alle und stell sicher, dass sie uns nicht mehr " -"belästigen. Wir können nicht viel bezahlen, aber es würde uns helfen, die " -"Bucht zurückzuerobern." #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -101120,9 +102201,11 @@ msgstr "Werden sie uns noch länger belästigen?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." msgstr "" -"Danke, eine solch große Gefahr in der Nähe von Zuhause war nervenaufreibend." #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -101136,16 +102219,9 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"Dies ist etwas verzwickter als die letzte Aufgabe: Wir hatten neulich eine " -"Sammlergruppe, die gerade zu uns zum Handeln stieß, verloren und wir würden " -"gerne, dass du dies untersuchst. Wie haben den dringenden Verdacht, dass " -"eine Plündererbande oder eine Horde sie überwältigt hat. Ich kann dir die " -"Koordinaten ihrer letzten Funknachricht geben, aber sonst kaum etwas. So " -"oder so, kümmer dich um die Gefahr, damit die Sammler weiter in relativer " -"Sicherheit passieren können. Die beste Belohnung, die ich bieten kann, sind " -"die Vorräte, die sie mitgeführt haben." #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -101178,14 +102254,13 @@ msgstr "Prognose holen" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"Der neue Außenposten, den wir gegründet haben, könnte deine Unterstüzung " -"gebrauchen. Ich brauche dich, um die Prognose des Vorarbeiters zu erfragen, " -"bevor wir damit anfangen, weitere Flüchtlinge zur Landwirtschaftskommune zu " -"schicken. Konsultiere den Vorarbeiter, um genauere Aufgaben zu erhalten." #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -101204,13 +102279,11 @@ msgstr "Hast du die Prognose?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." +"you, here's your money." msgstr "" -"Damit werden wir in der Lage sein, andere davon zu überzeugen, in die " -"Kommune zu investieren. Dankeschön!" #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" +msgid "Find 10 solar panels" msgstr "" #: lang/json/mission_def_from_json.py @@ -101218,11 +102291,9 @@ msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -101232,10 +102303,7 @@ msgstr "" "ansteigen." #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." +msgid "Solar panels are pretty common on electric cars and on rooftops." msgstr "" #: lang/json/mission_def_from_json.py @@ -101247,17 +102315,19 @@ msgstr "" "ausbreiten können dank deiner Hilfe." #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" +msgid "Find 100 canning jars" msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" #: lang/json/mission_def_from_json.py @@ -101269,17 +102339,17 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." +" If you reconsider let me know." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." msgstr "" #: lang/json/mission_def_from_json.py @@ -101672,6 +102742,97 @@ msgstr "" "könnte. Vergiss nicht, deine Dienstmarke zu tragen, wenn du sie triffst. " "Nochmals vielen Dank, Marshal." +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "2 Destillationsapparate herstellen" @@ -109876,7 +111037,7 @@ msgstr "Du trennst eine Liane von deinem Körper." #: lang/json/mutation_from_json.py msgid "Hair Roots" -msgstr "" +msgstr "Haarwurzeln" #. ~ Description for Hair Roots #: lang/json/mutation_from_json.py @@ -112038,6 +113199,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -112203,7 +113526,7 @@ msgstr "" #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py msgid "Cyborg" -msgstr "" +msgstr "Cyborg" #: lang/json/npc_class_from_json.py msgid "Zzzzzt... I...I'm a Cy...BEEEEEP...borg." @@ -112221,7 +113544,8 @@ msgstr "" msgid "Beggar" msgstr "Bettler" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "Flüchtling" @@ -112245,6 +113569,14 @@ msgstr "" msgid "Reading this line is a bug" msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -112524,14 +113856,6 @@ msgstr "" msgid "Tester" msgstr "Tester" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "CPT" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "SFC" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "Bandit" @@ -112548,6 +113872,14 @@ msgstr "" msgid "officer" msgstr "" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "CPT" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "SFC" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "Bettler" @@ -112596,6 +113928,10 @@ msgstr "Dana Nunez" msgid "Draco Dune" msgstr "" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "" @@ -112624,10 +113960,18 @@ msgstr "" msgid "Pablo Nunez" msgstr "Pablo Nunez" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "Stan Borichenko" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "Vanessa Toby" @@ -112656,6 +114000,10 @@ msgstr "Söldner" msgid "the intercom" msgstr "" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "Friseur" @@ -113092,10 +114440,6 @@ msgstr "Blockhauskeller" msgid "cabin" msgstr "Blockhaus" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "Dreckslöcher" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "zerstörte Hütte" @@ -113423,6 +114767,30 @@ msgstr "" msgid "farm house roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "Unbefestigte Straße" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "Tankstelle" @@ -113625,6 +114993,10 @@ msgstr "Hotelkeller" msgid "motel" msgstr "Motel" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "Superheimwerkergeschäft – Eingang" @@ -113677,6 +115049,10 @@ msgstr "" msgid "dollar store" msgstr "1-Dollar-Laden" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "LAN-Zentrum" @@ -113697,6 +115073,10 @@ msgstr "Gebrauchtwarenladen" msgid "daycare center" msgstr "Kindertagesstätte" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "Tierfachgeschäft" @@ -114405,6 +115785,10 @@ msgstr "Leichenhaus" msgid "fire station" msgstr "Feuerwache" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "" @@ -114585,6 +115969,10 @@ msgstr "Musikveranstaltung" msgid "gambling hall" msgstr "Spielhalle" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "Stripclub" @@ -114617,6 +116005,10 @@ msgstr "Fitnessstudio" msgid "dojo" msgstr "Dojo" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "private Parkanlage" @@ -114701,10 +116093,6 @@ msgstr "öffentliche Toilette" msgid "roadside foodcart" msgstr "Essenswagen am Straßenrand" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "Unbefestigte Straße" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "Eisenbahn" @@ -116123,6 +117511,32 @@ msgid "" "at least you have a loyal friend." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -117048,7 +118462,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Prototype Cyborg" -msgstr "" +msgstr "Cyborgprototyp" #. ~ Profession (male Prototype Cyborg) description #: lang/json/professions_from_json.py @@ -117066,7 +118480,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Prototype Cyborg" -msgstr "" +msgstr "Cyborgprototyp" #. ~ Profession (female Prototype Cyborg) description #: lang/json/professions_from_json.py @@ -120895,6 +122309,58 @@ msgid "" "serene with the world falling down around you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -125586,6 +127052,10 @@ msgstr "" "Sei nicht zu gierig. Die Menge deiner Beute spielt, wenn du tot bist, auch " "keine Rolle mehr." +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -130757,6 +132227,41 @@ msgstr "" "Codenamen »VAULT« vorgeschlagen, um die Produktion von PE062 hier " "fortzusetzen." +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "Dies ist ein Test des Schild-Snippetsystems" @@ -131915,8 +133420,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -132053,7 +133558,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -138582,6 +140087,10 @@ msgstr "Ich würde gerne etwas mehr über dich erfahren…" msgid "I want you to use this item." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "" @@ -138635,11 +140144,11 @@ msgid "Change your bionic power recharge rules..." msgstr "" #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "Ach, schon gut." @@ -138790,6 +140299,22 @@ msgstr "" msgid "Show me what needs to be done at the camp." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -139935,223 +141460,6 @@ msgstr "" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "Über die Mission…" - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "Über eine deiner Missionen…" - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Hallo, Marshal!" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Marshal, ich fürchte, ich kann jetzt nicht reden." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "Ich bin nicht der Verantwortliche hier, Marshal." - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "Ich sollte alle Fragen der Führung übergeben, Marshal." - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "Hey, Bürger. Ich bin mir nicht sicher, dass du hierhergehörst." - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "" -"Du solltest dich um deinen eigenen Kram kümmern, hier gibt es nichts zu " -"sehen." - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "Wenn du etwas brauchst, musst du mit jemand anderem reden." - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "Sir." - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "" -"Junge, wenn du dich behaupten kannst, solltest du in Betracht ziehen, dich " -"einzuschreiben." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Gnä’ Frau" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hey, Fräulein, glaubst du nicht, dass es sicherer wäre, wenn du mich " -"begleiten würdest?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "Ignorier mich einfach." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Marshal, ich hoffe, dass du hier bist, um uns zu helfen." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "" -"Junge, ich weiß nicht, wie zur Hölle du hier nach unten gekommen sind, aber " -"wenn du irgendeine Form von Anstand hast, solltest du von hier verschwinden," -" solange du noch kannst." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Hey, ich weiß nicht, wie zur Hölle du hier nach unten gekommen sind, aber " -"wenn du irgendeine Form von Anstand hast, solltest du von hier verschwinden," -" solange du noch kannst." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "Was machst du hier unten?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "Kannst du mir etwas über diese Einrichtung erzählen?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "Wass musst du tun?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "Ich muss gehen…" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" -"Ich führe das, was von meiner Kompanie in einer Mission, um diese " -"Einrichtung zu sichern, übrigblieb. Wir haben den Komplex mit zwei Dutzend " -"Männern betreten und sicherten sofort diesen Kontrolraum. Von hier aus habe " -"ich meine Männer entsendet, um wichtige Systeme auf diesem Stock und dem " -"Stock darunter zu sichern. Wenn wir erfolgreich sind, kann diese Einrichting" -" gesäubert und als eine permanente Einsatzbasis für die Region benutzt " -"werden. Was am wichtigsten ist, dies wird es uns ermöglichen, " -"Flüchtlingsstöme von den überfüllten Außenposten wegzulenken und mehr " -"unserer Kräfte für Bergungsmissionen verfügbar zu machen." - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "Scheint ein guter Plan zu sein." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"Diese Einrichtung wurde erbaut, um einen Rückzugsort im Falle eines globalen" -" Konflikts zu bieten. Der Bunkerkomplex kann mehrere tausend Leute für ein " -"paar Jahre versorgen, wenn alle Systeme funktionstüchtig sind und " -"ausreichend viele Benachrichtigungen verteilt werden. Leider wurde an einem " -"bestimmten Zeitpunkt das Stromsystem beschädigt oder sabotiert und ließ " -"somit einen sehr starken Strahlungsstoß frei. Das katastrophale Ereignis " -"dauerte mehrere Minuten an und führte zum Tod der meisten Leute auf der 2. " -"Ebene und den Ebenen darunter. Diejenigen, die auf dieser Ebene arbeiteten, " -"waren in der Lage, die Zugangswege zu den unteren Ebenen zu versiegen, bevor" -" sie der Strahlungskrankheit erlägen. Die einzige andere Sache, die uns die " -"Protokolle mitteilen, ist, dass der gesamte Wasserdruck zu den unteren " -"Ebenen umgeleitet wurde." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "" -"Was auch immer sie getan haben, es muss wohl funktioniert haben, weil wir " -"immer noch leben." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Marshal, ich bin doch etwas überrascht, dich hier zu sehen." - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "Junge, du darfst hier nicht sein … Du solltest gehen." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "Hey, du darfst hier nicht sein … Du solltest gehen." - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "" -"[MISSION] Der Anführer hat mich geschickt, um eine Frequenzliste von dir zu " -"erhalten." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "Brauchst du Hilfe?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "Ich sollte gehen" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "" -"Wir sichern das äußere Kommunikationsfeld für diese Einrichtung. Ich bin " -"recht eingeschränkt darin, was ich sagen darf. Finde meinen Kommandanten, " -"wenn du irgendwelche Fragen hast." - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "Dann versuche ich es und finde deinen Anführer …" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" -"Ich hatte erwartet, dass der Anführer einen Läufer losschicken würde. Hier " -"ist die Liste, nach der du suchst. Was wir von hier aus identifizieren " -"können sind einfach die Frequenzen, auf denen Verkehr herrscht. Viele der " -"Übertragungen sind nicht zu entziffern, ohne das Equipment zu reparieren " -"oder zu ersetzen. Als die Einrichtung überrannt wurde, war die " -"Standardprozedur, die Verschlüsselungshardware zu zerstören, um die " -"Regierungsgeheimnisse zu schützen und die Integrität des " -"Kommunikationsnetzwerks zu bewahren. Wir hoffen, dass wir ein paar Meldungen" -" im Klartext aufnehmen können." - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -144524,6 +145832,223 @@ msgstr "" msgid "What were you saying before that?" msgstr "Was hast du davor gesagt?" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "Marshal, ich hoffe, dass du hier bist, um uns zu helfen." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "" +"Junge, ich weiß nicht, wie zur Hölle du hier nach unten gekommen sind, aber " +"wenn du irgendeine Form von Anstand hast, solltest du von hier verschwinden," +" solange du noch kannst." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Hey, ich weiß nicht, wie zur Hölle du hier nach unten gekommen sind, aber " +"wenn du irgendeine Form von Anstand hast, solltest du von hier verschwinden," +" solange du noch kannst." + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "Was machst du hier unten?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "Kannst du mir etwas über diese Einrichtung erzählen?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "Wass musst du tun?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "Über die Mission…" + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "Über eine deiner Missionen…" + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "Ich muss gehen…" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" +"Ich führe das, was von meiner Kompanie in einer Mission, um diese " +"Einrichtung zu sichern, übrigblieb. Wir haben den Komplex mit zwei Dutzend " +"Männern betreten und sicherten sofort diesen Kontrolraum. Von hier aus habe " +"ich meine Männer entsendet, um wichtige Systeme auf diesem Stock und dem " +"Stock darunter zu sichern. Wenn wir erfolgreich sind, kann diese Einrichting" +" gesäubert und als eine permanente Einsatzbasis für die Region benutzt " +"werden. Was am wichtigsten ist, dies wird es uns ermöglichen, " +"Flüchtlingsstöme von den überfüllten Außenposten wegzulenken und mehr " +"unserer Kräfte für Bergungsmissionen verfügbar zu machen." + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "Scheint ein guter Plan zu sein." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" +"Diese Einrichtung wurde erbaut, um einen Rückzugsort im Falle eines globalen" +" Konflikts zu bieten. Der Bunkerkomplex kann mehrere tausend Leute für ein " +"paar Jahre versorgen, wenn alle Systeme funktionstüchtig sind und " +"ausreichend viele Benachrichtigungen verteilt werden. Leider wurde an einem " +"bestimmten Zeitpunkt das Stromsystem beschädigt oder sabotiert und ließ " +"somit einen sehr starken Strahlungsstoß frei. Das katastrophale Ereignis " +"dauerte mehrere Minuten an und führte zum Tod der meisten Leute auf der 2. " +"Ebene und den Ebenen darunter. Diejenigen, die auf dieser Ebene arbeiteten, " +"waren in der Lage, die Zugangswege zu den unteren Ebenen zu versiegen, bevor" +" sie der Strahlungskrankheit erlägen. Die einzige andere Sache, die uns die " +"Protokolle mitteilen, ist, dass der gesamte Wasserdruck zu den unteren " +"Ebenen umgeleitet wurde." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "" +"Was auch immer sie getan haben, es muss wohl funktioniert haben, weil wir " +"immer noch leben." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Marshal, ich bin doch etwas überrascht, dich hier zu sehen." + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "Junge, du darfst hier nicht sein … Du solltest gehen." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "Hey, du darfst hier nicht sein … Du solltest gehen." + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "" +"[MISSION] Der Anführer hat mich geschickt, um eine Frequenzliste von dir zu " +"erhalten." + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "Brauchst du Hilfe?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "Ich sollte gehen" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "" +"Wir sichern das äußere Kommunikationsfeld für diese Einrichtung. Ich bin " +"recht eingeschränkt darin, was ich sagen darf. Finde meinen Kommandanten, " +"wenn du irgendwelche Fragen hast." + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "Dann versuche ich es und finde deinen Anführer …" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" +"Ich hatte erwartet, dass der Anführer einen Läufer losschicken würde. Hier " +"ist die Liste, nach der du suchst. Was wir von hier aus identifizieren " +"können sind einfach die Frequenzen, auf denen Verkehr herrscht. Viele der " +"Übertragungen sind nicht zu entziffern, ohne das Equipment zu reparieren " +"oder zu ersetzen. Als die Einrichtung überrannt wurde, war die " +"Standardprozedur, die Verschlüsselungshardware zu zerstören, um die " +"Regierungsgeheimnisse zu schützen und die Integrität des " +"Kommunikationsnetzwerks zu bewahren. Wir hoffen, dass wir ein paar Meldungen" +" im Klartext aufnehmen können." + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Hallo, Marshal!" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Marshal, ich fürchte, ich kann jetzt nicht reden." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "Ich bin nicht der Verantwortliche hier, Marshal." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "Ich sollte alle Fragen der Führung übergeben, Marshal." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "Hey, Bürger. Ich bin mir nicht sicher, dass du hierhergehörst." + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "" +"Du solltest dich um deinen eigenen Kram kümmern, hier gibt es nichts zu " +"sehen." + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "Wenn du etwas brauchst, musst du mit jemand anderem reden." + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "Sir." + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "" +"Junge, wenn du dich behaupten kannst, solltest du in Betracht ziehen, dich " +"einzuschreiben." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "Gnä’ Frau" + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Hey, Fräulein, glaubst du nicht, dass es sicherer wäre, wenn du mich " +"begleiten würdest?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "Ignorier mich einfach." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -144551,6 +146076,12 @@ msgstr "" msgid "Please, help me. I need food." msgstr "Bitte hilf mir. Ich brauche Essen." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "" @@ -144733,11 +146264,27 @@ msgstr "" msgid "OK, I'll talk to them too." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "" "Hab ich dir was über Pappkarton erzählt, mein Freund? Hast du welchen?" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "Pappkarton?" @@ -144750,6 +146297,30 @@ msgstr "Warum sitzt du hier draußen?" msgid "Are you seriously wearing a dinosaur costume?" msgstr "Trägst du ernsthaft ein Dinosaurierkostüm?" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -144762,6 +146333,14 @@ msgstr "" msgid "Why cardboard?" msgstr "Warum Pappkarton?" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "Ich denke ich muss los ..." @@ -144778,6 +146357,27 @@ msgstr "" "also trifft es den Pappkarton und er kann nicht durch. Die Reflektion kann " "jeden weiteren Schaden ablenken." +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -144787,17 +146387,56 @@ msgstr "" " Ich werde mein neues Haus bauen, und ich werde sie nicht hineinlassen." #: lang/json/talk_topic_from_json.py -msgid "Building a house?" -msgstr "Ein Haus bauen?" +msgid "You said you were building a house?" +msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "Nein." +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "Wie war das nochmal mit dem Pappkarton?" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "" @@ -144857,10 +146496,6 @@ msgid "" "but I wouldn't say no." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "" @@ -144904,6 +146539,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "" @@ -144914,6 +146554,28 @@ msgid "" "come?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -144933,8 +146595,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -144994,6 +146656,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -145006,6 +146674,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -145030,12 +146709,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -145046,7 +146725,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -145088,6 +146767,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -145098,16 +146783,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -145122,6 +146831,20 @@ msgstr "Warum fragst du?" msgid "Sorry, not interested." msgstr "Entschuldigung, ich bin nicht interessiert." +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " @@ -145130,6 +146853,10 @@ msgstr "" "Denn ich bin bestimmt nicht stark, also harre ich hier aus, bis ich zu Tode " "verhungere. Kannst du einer armen schwachen Seele helfen?" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "Was ist falsch mit dir?" @@ -145146,6 +146873,25 @@ msgstr "Wie bist du überhaupt hierher gekommen, wenn du so krank bist?" msgid "Why are you camped out here if they won't let you in?" msgstr "Warum kampierst du hier draußen, wenn sie dich nicht hereinlassen?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -145159,6 +146905,10 @@ msgstr "" "Dings, den Bluttest machen könnte, den die Ärzte benutzten, um mich alle " "paar Monate zu nerven." +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -145191,6 +146941,95 @@ msgstr "" "müsste mich immer noch nach Nahrung umsehen … anders gesagt, ich wäre " "mausetot. Oder untot, denke ich." +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "Hey, Freund." @@ -145204,6 +147043,10 @@ msgid "I couldn't help but notice, you're covered in fur." msgstr "" "Ich konnte nicht anders als zu bemerken, dass du in Pelz gehüllt bist." +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -145228,17 +147071,8 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" -"Es ist sicherer, als mein eigenes Zuhause zu bauen. Ich gehe raus und " -"sammle, wenn ich muss. Solange wir es hier sauber halten und unseren Teil " -"beitragen, wenn ein Zombie kommt, lassen sie uns hier hocken als eine " -"zusätzliche Verteidigung. Sie mögen es aber nicht, dass ich Nahrung für die " -"anderen Leute hier gebracht habe … Ich glaube, sie versuchen, uns langsam " -"aushungern zu lassen. Und obwohl ich nicht jeden satt machen kann, war ich " -"in der Lage, genug zurückzubringen, um diese Leute in besserer Form zu " -"halten. Ich vermute, dass sie bald eine Ausrede finden werden, um mich " -"hinauszuwerfen." #: lang/json/talk_topic_from_json.py msgid "" @@ -145250,6 +147084,68 @@ msgstr "" "wachsen, kurz nach der Katastrophe. Keine Idea, was es verursacht hat. Ich " "kann ihnen nicht die Schuld geben, dass sie es hassen; ich hasse es." +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -145262,6 +147158,23 @@ msgstr "" "ein bisschen verantwortlich für diese Schar an Besetzern. So lange ich der " "Einzige bin, der sie versorgen kann, denke ich nicht, dass ich gehen kann." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "Hallöchen!" @@ -145537,10 +147450,94 @@ msgstr "" msgid "Why don't we talk about it some other time?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "Hallo nochmal." +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "" @@ -145589,10 +147586,6 @@ msgstr "Hi." msgid "Hey again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -146218,6 +148211,102 @@ msgstr "Hi, Pablo, schön dich zu treffen. Ich muss aber gehen." msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "Hi, Pablo, auch schön, dich zu sehen. Ich muss aber weiter." +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -146263,6 +148352,57 @@ msgstr "" msgid "Sorry to hear that." msgstr "Es tut mir leid das zu hören." +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "Oh, da bist du ja wieder." @@ -146289,10 +148429,6 @@ msgstr "Hallo Vanessa. Wie gehts?" msgid "Yeah, no. I'm going." msgstr "Hmm, nein. Ich gehe." -#: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." -msgstr "Bis später, Sonnenschein." - #: lang/json/talk_topic_from_json.py msgid "" "Well that's good. If you're going to pull your own weight I guess that's an" @@ -146302,8 +148438,137 @@ msgstr "" "es eine Verbesserung ist." #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Hoffentlich bist du hier zum Handeln." +msgid "" +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -146311,15 +148576,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Ich überwache die Lebensmittelvorräte des Lagers. Es gab große Plünderungen " -"während der Panik, als wir ankamen, also wurde das meiste unserer Nahrung " -"weggeschafft. Ich verwalte das, was wir übrighaben und tue alles, was in " -"meiner Macht steht, um unsere Vorräte zu erhöhen. Verfaulte Lebensmittel und" -" Schimmel sind größere Probleme im feuchten Keller, also ziehe ich " -"unverderbliche Lebensmittel, wie Maismehl, Dörrfleisch und Obstwein vor." #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -146327,15 +148586,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Ich überwache die Lebensmittelvorräte des Lagers. Es gab große Plünderungen " -"während der Panik, als wir ankamen, also wurde das meiste unserer Nahrung " -"weggeschafft. Ich verwalte das, was wir übrighaben und tue alles, was in " -"meiner Macht steht, um unsere Vorräte zu erhöhen. Verfaulte Lebensmittel und" -" Schimmel sind größere Probleme im feuchten Keller, also ziehe ich " -"unverderbliche Lebensmittel, wie Maismehl, Dörrfleisch und Obstwein vor." #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -146343,58 +148596,125 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Ich überwache die Lebensmittelvorräte des Lagers. Es gab große Plünderungen " -"während der Panik, als wir ankamen, also wurde das meiste unserer Nahrung " -"weggeschafft. Ich verwalte das, was wir übrighaben und tue alles, was in " -"meiner Macht steht, um unsere Vorräte zu erhöhen. Verfaulte Lebensmittel und" -" Schimmel sind größere Probleme im feuchten Keller, also ziehe ich " -"unverderbliche Lebensmittel, wie Maismehl, Dörrfleisch und Obstwein vor." #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "Wieso Maismehl, Dörrfleisch und Obstwein?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" -"Alle drei können in der näheren Umgebung leicht in nennenswerten Stückzahlen" -" produziert werden und sind nicht-verderblich. Wir haben einen örtlichen " -"Bauern oder zwei und ein paar Jägertypen, welche beide versucht haben, uns " -"mit Lebensmitteln zu versorgen. Wir können jederzeit weitere Versorger " -"gebrauchen. Weil dieses Zeug relativ billig in großen Mengen ist, kann ich " -"dafür einen Aufpreis zahlen. Um Konserven und andere Lebensmittel kümmert " -"sich der Händler an der Vorderseite." #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "Willst du etwas anderes kaufen?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "Sehr gut…" +msgid "Very well... let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." msgstr "" -"Eigentlich nehme ich eine Reihe an verschiedenen Lebensmitteln an: Bier, " -"Zucker, Mehl, Räucherfleisch, Räucherfisch, Speiseöl und, wie vorhin " -"erwähnt, Dörrfleisch, Maismehl und Obstwein." #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "Interessant…" +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -146760,16 +149080,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "Gnä’ Frau, Sie sollten wirklich nicht hier draußen reisen." #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "Willkommen, Marshal…" - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Willkommen…" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "Eigentlich bin ich neu hier…" +msgid "I heard this place was a refugee center..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -146779,6 +149091,14 @@ msgstr "Irgendwas von der Welt da draußen gehört?" msgid "Is there any way I can join your group?" msgstr "Gibt es irgendeine Möglichkeit, eurer Gruppe beizutreten?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "Kann ich irgendwas für das Lager tun?" @@ -146788,39 +149108,41 @@ msgid "I figured you might be looking for some help..." msgstr "Ich glaube, du suchst nach etwas Hilfe…" #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." +msgid "Well, I'd better be going. Bye." msgstr "" -"Bevor du irgendwas anderes sagst, wir sind voll. Wenige Tage zuvor hatten " -"wir einen Krankheitsausbruch, weil wir zu viele neue Flüchtlinge " -"hereingelassen haben. Wir brauchen dringend Vorräte und sind bereit, alles " -"dafür zu geben. Wir bezahlen bestes Geld für Dörrfleisch, wenn du welches " -"hast." #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "Keine Ruhe für die Erschöpften…" +msgid "Welcome marshal..." +msgstr "Willkommen, Marshal…" + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Willkommen…" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"Um ehrlich zu sein, begannen wir mit sechs Bussen voller Büroarbeiter und " -"Fußballmamas … Nach dem Krankheitsausbruch vor einem oder zwei Tagen starben" -" die Mutigeren aus unserer Gruppe. Das Einzige, das wir jetzt wollen, ist " -"uns durch Handel am Leben zu erhalten. Uns ist es egal, woher deine Waren " -"kommen oder wie du sie beschafft hast, schlepp nur keinen Ärger an." #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "Es ist genauso schlecht da draußen, wenn nicht schlimmer." +msgid "It's just as bad out there, if not worse." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146837,41 +149159,27 @@ msgstr "" "rücksichtslos gemacht hat, aber einige von uns mussten unsere eigenen " "verdammten Kinder töten … denk nicht mal daran, uns unter Druck zu setzen." -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "Ich denke, es ist überall Scheiße…" - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" msgstr "" -"[INT 12] Warte, sechs Busse und Flüchtlinge … wieviele Leute hast du immer " -"noch da reingequetscht?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"Nun, die Flüchtlinge blieben hier auf dem Erdgeschoss, als eine ihrer " -"Gruppen versuchte, einen sterbenden Typen durch die Ladebucht " -"einzuschleusen; letztlich wurden wir von Schreien aufgeweckt. Vielleicht " -"sind zwei Dutzend Leute in dieser Nacht gestorben. Die verbleibenden " -"Flüchtliche wurden am nächsten Tag ausgewiesen und zogen weiter, um ein paar" -" Sammlerbanden zu bilden. Ich würde sagen, dass wir noch zwanzig anständige " -"Männer oder Frauen hier haben, aber unsere wirkliche Stärke kommt von all " -"unseren Geschäftspartnern, die es gewöhnt sind, zu tun, was auch immer zum " -"Überleben gebraucht wird." #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "Ich denke, es funktioniert für dich …" +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -146891,10 +149199,6 @@ msgstr "" "genug Lärm machen, dass sie jeden in der Nachbarschaft anlocken. " "Glücklicherweise hatten wir keinen Mob wie diesen hier vorbeilaufen." -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "Danke für den Tipp." - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -147004,6 +149308,81 @@ msgstr "Von irgendwas besserem als diesen seltsamen Waffenschatz gehört?" msgid "Was hoping for something more..." msgstr "Ich hatte auf etwas mehr gehofft …" +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Marshal…" @@ -147626,8 +150005,53 @@ msgid "Alright, I'll leave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "Möchtest du eine neue Frisur?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -148242,6 +150666,10 @@ msgstr "" " mach nur keine Hausbesetzung daraus. Du bist nicht der einzige Sammler " "hier." +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "Interessant…" + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -148715,10 +151143,30 @@ msgstr " verpasst %s einen Konterangriff" msgid "Feint" msgstr "Täuschungsmanöver" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "Griffbrecher" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "%s versucht, dich zu ergreifen, aber du brichst aus dem Griff aus!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "%s versucht, zu greifen, aber der Griff wird gebrochen!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -149456,24 +151904,28 @@ msgid "Crane Wing" msgstr "Kranichflügel" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" -msgstr "Du erhebst deine Arme auf bedrohliche Weise" +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" -msgstr " macht die Kranichflatter" +#, python-format +msgid " performs the Crane Wing at %s." +msgstr "" #: lang/json/technique_from_json.py msgid "Crane Flap" msgstr "Kranichflattern" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" -msgstr "Du schwingst deine Arme und befreist dich" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " flaps free" -msgstr " flattert sich frei" +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -149522,12 +151974,14 @@ msgid "Snake Slither" msgstr "Schlangenglitt" #: lang/json/technique_from_json.py -msgid "You slither free" -msgstr "Du gleitest dich frei" +#, python-format +msgid "The %s tries to grab you, but you slither free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" -msgstr " gleitet sich frei" +#, python-format +msgid "The %s tries to grab , but they slither free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Snake Strike" @@ -150222,12 +152676,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -151102,14 +153556,37 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "Flechtwerkwand" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "kaputte Flechtwerkwand" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "halbfertige Flechtwerkwand" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "Holzwand" @@ -152847,30 +155324,134 @@ msgstr "" msgid "willow tree" msgstr "Weide" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "Ahorn" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "Hickorybaum" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "Pistazienbaum" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "Mandelbaum" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "Pekannussbaum" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "toter Hickorybaum" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -152884,10 +155465,30 @@ msgstr "" msgid "brush." msgstr "»Knister«." +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "Strauch" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "Erdnusspflanze" @@ -153045,22 +155646,49 @@ msgstr "Ein breiter Fliederbusch, der zur Zeit keine Blüten trägt." msgid "tree trunk" msgstr "Baumstamm" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "Baumstumpf" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "Wurzelwand" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "Wachswand" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "Wachsboden" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "Lattenzaun" @@ -153170,6 +155798,11 @@ msgstr "" msgid "railing" msgstr "Geländer" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "»Knack!«." @@ -153178,6 +155811,11 @@ msgstr "»Knack!«." msgid "glass railing" msgstr "" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "" @@ -153190,10 +155828,20 @@ msgstr "»Ka-rach!«." msgid "metal railing" msgstr "" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "" @@ -153366,46 +156014,136 @@ msgstr "" msgid "shallow water" msgstr "seichtes Wasser" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "tiefes Wasser" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "Pool-Wasser" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "Abwasser" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "Lava" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "Sandkasten" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "Rutsche" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "Klettergerüst" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "Rückbrett" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "Benzinzapfsäule" @@ -153423,14 +156161,31 @@ msgstr "" msgid "tank with gasoline" msgstr "Tank mit Benzin" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "kleine Säule" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "zerstörte Benzinzapfsäule" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -153445,6 +156200,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "zerstörte Dieselzapfsäule" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "Geldautomat" @@ -153469,6 +156231,12 @@ msgstr "" msgid "broken generator" msgstr "kaputter Generator" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "Rakete" @@ -153682,6 +156450,13 @@ msgstr "" msgid "cloning vat" msgstr "Klonbottich" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "»Plonk«." @@ -153690,6 +156465,16 @@ msgstr "»Plonk«." msgid "stairs" msgstr "Treppe" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "Gullyloch" @@ -153706,22 +156491,68 @@ msgstr "" msgid "ladder" msgstr "Leiter" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "Gefälle" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "Steigung" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "Seil nach oben" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "Kartenleser" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -153796,54 +156627,121 @@ msgstr "" msgid "elevator" msgstr "Aufzug" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "dunkles Podest" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "helles Podest" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "roter Stein" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "grüner Stein" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "blauer Stein" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "roter Boden" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "grüner Boden" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "blauer Boden" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "gelber Schalter" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "türkiser Schalter" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "violetter Schalter" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "karierter Schalter" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -153868,6 +156766,18 @@ msgstr "Weicher violetter Teppich." msgid "linoleum tile" msgstr "Linoleum-Kachel" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "rote Wand" @@ -153926,10 +156836,22 @@ msgstr "Eine violett angemalte Wand." msgid "stone wall" msgstr "Steinwand" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "halbfertige Steinwand" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "bedeckter Brunnen" @@ -153967,35 +156889,64 @@ msgstr "improvisierter Unterschlupf" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" -"Eine improvisierter Unterschlupf, der geringfügigen Schutz vor dem Wetter " -"gibt." #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "Flachdach" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "" @@ -154023,22 +156974,51 @@ msgstr "" msgid "telecom cabinet" msgstr "Verteilerkasten" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "beschädigter Verteilerkasten" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "große Metallstütze" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "kleine Blechunterlage" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "HV-Ölschalter" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "»Bäm!«." @@ -154047,30 +157027,72 @@ msgstr "»Bäm!«." msgid "small HV oil circuit breaker" msgstr "kleiner HV-Ölschalter" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "großes Schaltwerk" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "kleines Schaltwerk" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "Blitzableiter" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "Trenner" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "Stromwandler" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "Spannungswandler" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -154105,6 +157127,11 @@ msgstr "" msgid "bridge pavement" msgstr "Brückenstraßenbelag" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "Beton knacken und Metall knirschen!" @@ -154113,22 +157140,61 @@ msgstr "Beton knacken und Metall knirschen!" msgid "bridge yellow pavement" msgstr "gelber Brückenstraßenbelag" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "Brückenbürgersteig" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "Geländer" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "Schwarz-Eiche" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "Tonhügel" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "»Platsch!«" @@ -154137,10 +157203,20 @@ msgstr "»Platsch!«" msgid "mound of sand" msgstr "Sandhügel" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "Fließband" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "»Ting«." @@ -154149,18 +157225,38 @@ msgstr "»Ting«." msgid "light machinery" msgstr "leichte Maschinenanlage" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "schwere Maschinenanlage" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "alte Maschinenanlage" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "elektronische Maschinenanlage" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "niedrige Treppe (Anfangsstück)" @@ -154173,10 +157269,20 @@ msgstr "niedrige Treppe (Endstück)" msgid "milking machine" msgstr "Melkmaschine" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "Großtank" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "Kies" @@ -154195,26 +157301,77 @@ msgstr "" msgid "railroad track" msgstr "Eisenbahnsschiene" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "Eisenbahnschwelle" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "farbiger Wachsboden" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "Prellbock" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "Bahnübergangssignal" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "Warnkreuz" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "Rübenkeller" @@ -154384,10 +157541,24 @@ msgstr "" msgid "pine lean-to" msgstr "Pinienanbau" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "Planenanbau" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "verbrannte Erde" @@ -154509,16 +157680,12 @@ msgstr "Blendschutz" #: lang/json/tool_quality_from_json.py msgid "anesthesia" -msgstr "" +msgstr "Narkose" #: lang/json/tool_quality_from_json.py msgid "smoothing" msgstr "Glättungs" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "Verschweißungs" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "Hämmer" @@ -154567,10 +157734,6 @@ msgstr "Destillier" msgid "tree cutting" msgstr "Baumfäll" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "Grabe" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "Bolzendreh" @@ -154587,14 +157750,6 @@ msgstr "Schraubendreh" msgid "fine screw driving" msgstr "Feinschraubendreh" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "Schlachtungs" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "Bohr" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "Hebel" @@ -155755,6 +158910,12 @@ msgstr "" "Eine Sitzgelegenheit. Die Rückenlehne lässt sich verstellen, um den Sitz in " "ein unbequemes Bett zu verwandeln." +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "Peilsender" @@ -160102,10 +163263,14 @@ msgstr "Du setzt eine Patrone in %s ein." msgid "You refill the %s." msgstr "Du befüllst %s wieder." -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "Dort ist nichts zum Anzünden." +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "" @@ -160807,6 +163972,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "Du brauchst etwas Nikotin." @@ -162717,7 +165887,7 @@ msgstr "" #: src/avatar.cpp msgid "Weapon:" -msgstr "Waffe:" +msgstr "Waffe :" #: src/avatar.cpp msgid "Equipment:" @@ -163036,6 +166206,20 @@ msgstr "%s wieder zu lesen, ist nicht mehr so schön für %s." msgid "Maybe you should find something new to read..." msgstr "Vielleicht solltest du etwas neues zum Lesen finden." +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "" +"Sieht so aus, als hättest du verschlafen und deinen internen Wecker nicht " +"wahrgenommen." + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "Sieht so aus, als hättest du verschlafen und den Wecker nicht gehört." + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "Dir würgst, aber dein Magen ist leer." + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "" @@ -163087,6 +166271,10 @@ msgstr "Da ist ein anderes Fahrzeug im Weg." msgid "That part of the vehicle is currently unsafe." msgstr "Dieses Teil des Fahrzeugs ist momentan unsicher." +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "Willst du wirklich ins Wasser eintauchen?" @@ -163145,6 +166333,10 @@ msgstr "" "Du musst atmen, aber kannst nicht schwimmen! Beweg dich schnell auf " "trockenes Land!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "" @@ -163210,6 +166402,38 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "%s kann im momentanen Zustand nicht gefeuert werden." +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "Du kannst nicht gut werfen, solange du in deinem Panzer bist." + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "Gegenstand werfen" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "Du hast keinerlei Gegenstände zum Werfen." + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "Du hast diesen Gegenstand nicht." + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "Dies ist zu schwer zum Werfen." + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "Dies ist ein Teil deines Körpers; du kannst es nicht werfen!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "Du bemühst dich sehr, dich zu konzentrieren und dein Körper gehorcht!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "Du kannst nicht die Mühen aufbringen, um irgendwas zu werfen …" + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -163246,19 +166470,13 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" @@ -164516,6 +167734,11 @@ msgstr "Du stehst auf." msgid " stands up." msgstr " steht auf." +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "%s bricht aus den Netzen aus!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "Du befreist dich aus den Spinnennetzen!" @@ -164530,6 +167753,11 @@ msgstr "" "Du versuchst, dich aus den Spinnennetzen zu befreien, doch du kommst nicht " "los!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "%s entkommt aus dem leichten Fallstrick!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "Du befreist dich aus dem leichten Fallstrick!" @@ -164544,6 +167772,11 @@ msgstr "" "Du versuchst, dich aus dem leichten Fallstrick zu befreien, aber du kommst " "nicht los!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "%s entkommt aus dem schweren Fallstrick!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "Du befreist dich aus dem schweren Fallstrick!" @@ -164558,6 +167791,16 @@ msgstr "" "Du versuchst, dich aus dem schweren Fallstrick zu befreien, aber du kommst " "nicht los!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "%s entkommt aus der Bärenfalle!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "Du befreist dich aus der Bärenfalle!" @@ -164596,6 +167839,21 @@ msgstr "Du entkommst der Grube!" msgid " escapes the pit!" msgstr " entkommt der Grube!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "Du bist nicht länger in einem Griff." @@ -164896,6 +168154,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "ein durchdringendes Heulen!" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "dich einen schrillen Heuler loslassen!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "ein lauter Schrei!" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "dich laut schreien!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "ein lautes Geschrei!" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "dich laut schreien!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "Der Ton deiner Stimme ist fast vollständig gedämpft!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "eine undeutliche Stimme" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "deinen gedämpften Schrei" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "Der Ton deiner Stimme ist deutlich gedämpft!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "Übergab sich." + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "Übergab sich." + +#: src/character.cpp +msgid " throws up heavily!" +msgstr " erbricht sich heftig!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "Du erbrichst heftig." + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "Kein Auto-Aufheben" @@ -165587,103 +168903,10 @@ msgstr "Aufzug aktiviert. Drücken Sie irgendeine Taste …" msgid "NEPower Mine(%d:%d) Log" msgstr "NEStrom: Minenprotokoll (%d:%d)" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"47. EINTRAG:\n" -"Unsere normale Abbauroutine hat eine Hohlkammer zu Tage gefördert. Dies wäre\n" -"nichts außergewöhnliches, bis auf die seltsame, perfekt vertikale Bruchlinie,\n" -"die gefunden wurde. Diese Bruchlinie hat diverse merkwürdige Wölbungen im\n" -"Inneren, was die etwas abergläubischeren Besatzungsmitglieder alarmierte;\n" -"sie scheinen menschlischen Ursprungs zu sein.\n" -"\n" -"48. EINTRAG:\n" -"Die Wölbungen sind zwischen 25 bis 50 Zentimeter hoch und ziehen sich entlang\n" -"der Bruchlinie. Jedes von ihnen hat in etwa eine menschliche Form, aber da die\n" -"Größenverhältnisse der Gliedmaßen, Nacken und Köpfe stark gebläht sind, sind\n" -"alle in sich selbst verdreht.\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "Weiterlesen?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"49. EINTRAG:\n" -"Wir haben unsere Abbau-Operationen in diesem Gebiet angehalten;\n" -"offensichtlich, bis Archäologen die Gelegenheit haben, dieses Gebiet zu\n" -"untersuchen. Das wird unseren Zeitplan um mindestens eine Woche\n" -"zurückwerfen. Dieses dumme Artefakterhaltungs-Gesetz war für 50 Jahre\n" -"in Kraft und wurde noch nicht mal zur Kündigung vorgeschlagen, obwohl\n" -"diese Abbau-Operationen das Rückgrat unserer Wirtschaft sind.\n" -"\n" -"52. EINTRAG:\n" -"Warten noch immer auf die Archäologen. Wir haben eine kleine Besichtigung\n" -"der Bruchlinie vorgenommen. Unser Sondierungsequipment reicht nicht aus,\n" -"um die Tiefe der Wölbungen zu messen. Das Equipment ist für eine Tiefe\n" -"von 15 Meilen ausgelegt, aber nicht für solche engen Tunnel, daher ist es\n" -"schwierig, zu sagen, wie weit weg sie verlaufen.\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"54. EINTRAG:\n" -"Ich bemerkte ein paar Typen, welche ein Stück der dünnen Wand\n" -"abbrachen, unten in der Kammer mit einem Meißel. Ich schaue\n" -"weg. Es ist nicht so, dass diese Intelligenzler merken werden, dass\n" -"ein kleines Stück fehlt. Scheiß auf sie!\n" -"\n" -"55. EINTRAG:\n" -"Nun, die Archäologen sind jetzt hier unten mit ein paar der Jungen\n" -"als Führer. Sie sind nicht wirklich Indiana-Jones-Typen. Ich zweifle\n" -"daran, dass sie jemals unter 20 Fuß waren. Ich hasse es, Jungens\n" -"von den Zuteilungen zu nehmen, nur um die Wissenschaftler zu\n" -"babysitten, aber, wenn sie verletzt werden, dann werden wir\n" -"heruntergefahren für weiß Gott was wie lange.\n" -"\n" -"58. EINTRAG:\n" -"Sie holen NOCH EINE Crew hier rein? Herrgot, es sind nur ein paar\n" -"Höhlenschnitzereien! Ich weiß, das ist schon eine große Sache, aber\n" -"jetzt mal im Ernst: Diese Jungens schaffen es nicht?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "AMIGARA-PROJEKT" @@ -165697,37 +168920,10 @@ msgstr "" "AUSGRABUNGSSTÄTTE %d%d%d\n" "SACHDIENLICHEN VORARBEITER-PROTOKOLLE WERDEN NOTIZEN VORANGESTELLT" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" -"\n" -"MINENOPERATIONEN EINGESTELLT. KONTROLLE AN DAS AMIGARA-PROJEKT UNTER\n" -" BEFEHL 2:07B VERGEBEN\n" -"SONDIERUNG DER BRUCHLINIE ERGAB EINE TIEFE VON 30,09 KM\n" -"SCHADEN AN DER BRUCHLINIE ENTDECKT; NESTROM-MINEN-PERSONAL WEGEN\n" -" VERLETZUNG DER REGULATION 87.08 UNTER ARREST GESTELLT UND ZUM\n" -" LABOR 89-C ALS SUBJEKTE ÜBERWIESEN\n" -"BESCHAFFENHEIT DER BRUCHLINIE NICHT KOMPROMMITIERT\n" -"STARTE STANDARD-BEBEN-TEST …" - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "DATEI BESCHÄDIGT, DRÜCKEN SIE IRGENDEINE TASTE …" -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "Die Maschine schient rasch deine gebrochene Gliedmaße ein: %s." - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--ZUGRIFF GEWÄHRT--" @@ -168116,6 +171312,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "Mutationskategorienlevels zeigen" @@ -168142,7 +171342,7 @@ msgstr "" #: src/debug_menu.cpp msgid "Test weather" -msgstr "" +msgstr "Wetter testen" #: src/debug_menu.cpp msgid "Info..." @@ -168288,6 +171488,10 @@ msgstr "Männlich" msgid "no faction" msgstr "" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -172164,27 +175368,6 @@ msgstr "" "Nahrung: %15d (kcal)\n" " \n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" -"Anmerkungen:\n" -"%s\n" -" \n" -"Benutzte Fertigkeit: %s\n" -"Schwierigkeitsgrad: %d\n" -"%s\n" -"Risiko: Keins\n" -"Dauer: %s\n" - #: src/faction_camp.cpp #, c-format msgid "" @@ -173844,6 +177027,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Ohne zusätzlichen Brennstoff wird es weiterbrennen für: %s." +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -174122,38 +177317,6 @@ msgstr "zum Schießen" msgid "Drop where?" msgstr "Wohin ablegen?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "Du kannst nicht gut werfen, solange du in deinem Panzer bist." - -#: src/game.cpp -msgid "Throw item" -msgstr "Gegenstand werfen" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "Du hast keinerlei Gegenstände zum Werfen." - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "Du hast diesen Gegenstand nicht." - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "Dies ist zu schwer zum Werfen." - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "Dies ist ein Teil deines Körpers; du kannst es nicht werfen!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "Du bemühst dich sehr, dich zu konzentrieren und dein Körper gehorcht!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "Du kannst nicht die Mühen aufbringen, um irgendwas zu werfen …" - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -174490,6 +177653,11 @@ msgid "Really step into %s?" msgstr "Wirklich in %s treten?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -174497,6 +177665,14 @@ msgstr "" msgid "Can't find grabbed object." msgstr "Festgehaltenes Objekt konnte nicht gefunden werden." +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -174557,12 +177733,27 @@ msgstr "Du verletzt deinen linken Fuß an dem %s!" msgid "You hurt your right foot on the %s!" msgstr "Du verletzt deinen rechten Fuß an dem %s!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "Du schneidest %1$s auf dem %2$s!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "Du schiebst %s aus dem Weg." + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -174572,6 +177763,10 @@ msgstr "Du versetzt: %s." msgid "There's something here, but you can't see what it is." msgstr "Da ist etwas, aber du kannst nicht sehen, was es ist." +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -174616,6 +177811,11 @@ msgstr "Hier ist eine Fahrzeugsteuerung." msgid "%s to drive." msgstr "%s zum Fahren." +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -175611,17 +178811,21 @@ msgstr "" msgid "" "Patient has Deadened nerves. Anesthesia unneeded." msgstr "" +"Der Patient hat abgestorbene Nerven. Narkose nicht " +"benötigt." #: src/game_inventory.cpp msgid "" "Patient has Sensory Dulling CBM installed. Anesthesia " "unneeded." msgstr "" +"Der Patient hat ein Sinnesdämpfungs-KBM installiert. Narkose " +"nicht erforderlich." #: src/game_inventory.cpp #, c-format msgid "Available anesthesia: %i" -msgstr "" +msgstr "Verfügbare Narkose: %i" #: src/game_inventory.cpp #, c-format @@ -175737,11 +178941,6 @@ msgstr "%s ist zu groß, um es einfach aus dem Weg zu schieben." msgid "There is too much stuff in the way." msgstr "Da ist zu viel Zeugs im Weg." -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "Du schiebst %s aus dem Weg." - #: src/gates.cpp msgid "stuff" msgstr "Zeug" @@ -175750,6 +178949,11 @@ msgstr "Zeug" msgid "No vehicle at grabbed point." msgstr "Du hältst kein Fahrzeug fest." +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -176251,14 +179455,30 @@ msgstr "Automatische Fortbewegung abgebrochen" msgid "Unknown command: \"%s\" (%ld)" msgstr "Unbekannter Befehl: »%s« (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "Du kannst keine Sachen öffnen, während du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "Du kannst keine Sachen schließen, während du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "" @@ -176276,28 +179496,52 @@ msgstr "" "Du kannst nicht massenhaft Gegenstände verschieben, solange du in deinem " "Panzer bist." +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "Du kannst keine Sachen ergreifen, solange du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "" "Du kannst keine Gegenstände mitschleifen, solange du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "Du kannst nicht schlachten, solange du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "" "Du kannst nicht um die Ecke schauen, solange du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "" @@ -176309,10 +179553,18 @@ msgstr "" msgid "You can't craft while you're in your shell." msgstr "Du kannst nichts anfertigen, solange du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "Du kannst bei der Fahrt keine Gegenstände demontieren." +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "Du kannst nicht bauen, während du dich in einem Fahrzeug befindest." @@ -176321,6 +179573,10 @@ msgstr "Du kannst nicht bauen, während du dich in einem Fahrzeug befindest." msgid "You can't construct while you're in your shell." msgstr "Du kannst nicht bauen, solange du in deinem Panzer bist." +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -176403,6 +179659,7 @@ msgstr "%s sind nun %s." #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -177904,11 +181161,29 @@ msgstr "" "Keinen Patienten auf den verbundenen Liegen gefunden. Aktion unmöglich. " "Ende." +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" +"Sie benötigen ein Narkose-Set mit mindestens einer Ladung, damit der " +"Autodoktor eine bionische Behandlung durchführen kann." #. ~ %1$s is the bionic CBM display name, %2$s is the patient name #: src/iexamine.cpp @@ -177956,6 +181231,26 @@ msgstr "Du hast keine Bioniken installiert." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s hat keine installierten Bioniken." +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "Die Maschine schient rasch deine gebrochene Gliedmaße ein: %s." + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "" @@ -183808,6 +187103,11 @@ msgstr "Essen entnehmen" msgid "Really stop cooking?" msgstr "Wirklich mit dem Kochen aufhören?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -187322,6 +190622,32 @@ msgstr "" "Dieser Stil zwingt dich, unbewaffnet zuzuschlagen, auch dann, wenn du " "gerade eine Waffe hältst." +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -187476,10 +190802,6 @@ msgstr "Deine Torsohinderung wirft dich aus dem Gleichgewicht." msgid "You can't hit reliably due to your farsightedness." msgstr "Aufgrund deiner Weitsichtigkeit kannst du nicht zuverlässig treffen." -#: src/melee.cpp -msgid "You feint." -msgstr "Du täuschst." - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "Du verfehlst und dein Schwung bringt dich ins Stolpern." @@ -188123,27 +191445,10 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"Profit: 8 $/Stunde\n" -"Gefahr: Minimal\n" -"Dauer: Mindestens 1 Stunde\n" -"\n" -"Einen deiner Verbündeten eine niedere Arbeit zuzuweisen ist eine sichere Möglichkeit, ihnen grundlegende Fähigkeiten beizubringen und dabei zu helfen, eine Reputation mit dem Außenposten aufzubauen. Erwarte jedoch keine allzugroße Belohnung." - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"Profit: 8 $/Stunde\n" -"Gefahr: Minimal\n" -"Dauer: Mindestens 1 Stunde\n" -" \n" -"Arbeitsliste:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -189667,16 +192972,6 @@ msgstr "%s grabscht nach , doch es wird ausgewichen!" msgid "The %s tries to grab you as well, but you bat it away!" msgstr "%s versucht, dich ebenfalls zu greifen, aber du schlägst es weg!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "%s versucht, dich zu ergreifen, aber du brichst aus dem Griff aus!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "%s versucht, zu greifen, aber der Griff wird gebrochen!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -189755,6 +193050,8 @@ msgid "" "a soft robotic voice say, \"Welcome doctor %s. I'll be your assistant " "today.\"" msgstr "" +"Eine sanfte Roboterstimme sagt: \"Willkommen Doktor %s. Ich werde heute " +"deine Assistentin sein.\"" #: src/monattack.cpp #, c-format @@ -189764,7 +193061,7 @@ msgstr "" #: src/monattack.cpp #, c-format msgid "The %s looks at its empty anesthesia kit with a dejected look." -msgstr "" +msgstr "%s betrachtet sein leeres Narkose-Set mit einem deprimierten Blick." #: src/monattack.cpp #, c-format @@ -190753,6 +194050,11 @@ msgstr "" msgid "Attach bag" msgstr "Tasche anbringen" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -190790,6 +194092,54 @@ msgstr "Pheromonball ausreißen" msgid "Milk %s" msgstr "%s melken" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -190803,6 +194153,11 @@ msgstr "Den Zombiesklaven wirklich töten?" msgid "Pet armor" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -190866,6 +194221,11 @@ msgstr "" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -191343,26 +194703,6 @@ msgstr "Du fühlst, wie das Gift eines Tieres in deinen Körper eindringt!" msgid "The %s climbs to its feet!" msgstr "%s rappelt sich hoch!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "%s bricht aus den Netzen aus!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "%s entkommt aus dem leichten Fallstrick!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "%s entkommt aus dem schweren Fallstrick!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "%s entkommt aus der Bärenfalle!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -192267,7 +195607,7 @@ msgid "activated" msgstr "aktiviert" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -194370,7 +197710,7 @@ msgstr "Regelt die Lautstärke der abgespielten Geräusche." #: src/options.cpp msgid "Ambient sound volume" -msgstr "" +msgstr "Umgebungslautstärke" #: src/options.cpp msgid "Adjust the volume of ambient sounds being played by the game." @@ -195518,7 +198858,7 @@ msgstr "" #: src/options.cpp msgid "Initial day" -msgstr "" +msgstr "Starttag" #: src/options.cpp msgid "" @@ -196600,7 +199940,7 @@ msgstr "Wah " #: src/panels.cpp msgid "New moon" -msgstr "" +msgstr "Neumond" #: src/panels.cpp msgid "Waxing crescent" @@ -196608,7 +199948,7 @@ msgstr "" #: src/panels.cpp msgid "Half moon" -msgstr "" +msgstr "Halbmond" #: src/panels.cpp msgid "Waxing gibbous" @@ -196616,7 +199956,7 @@ msgstr "" #: src/panels.cpp msgid "Full moon" -msgstr "" +msgstr "Vollmond" #: src/panels.cpp msgid "Waning gibbous" @@ -196628,7 +199968,7 @@ msgstr "" #: src/panels.cpp msgid "Dark moon" -msgstr "" +msgstr "Dunkelmond" #: src/panels.cpp msgid "Around midnight" @@ -196748,7 +200088,7 @@ msgstr "" #: src/panels.cpp msgid "Sound:" -msgstr "" +msgstr "Lärm :" #: src/panels.cpp msgid "Time: ???" @@ -196756,7 +200096,7 @@ msgstr "Zeit: ???" #: src/panels.cpp msgid "Moon" -msgstr "" +msgstr "Mond" #: src/panels.cpp msgid "Focus" @@ -196844,7 +200184,7 @@ msgstr "" #: src/panels.cpp #, c-format msgid "Date : %s, day %d" -msgstr "" +msgstr "Datum: %s, Tag %d" #: src/panels.cpp #, c-format @@ -196858,7 +200198,7 @@ msgstr "" #: src/panels.cpp #, c-format msgid "Moon : %s" -msgstr "" +msgstr "Mond : %s" #: src/panels.cpp #, c-format @@ -196940,11 +200280,11 @@ msgstr "Wetter :" #: src/panels.cpp msgid "Moon :" -msgstr "" +msgstr "Mond : " #: src/panels.cpp msgid "Lighting:" -msgstr "Beleuchtung:" +msgstr "Beleuch.:" #: src/panels.cpp msgid "Deaf!" @@ -196952,7 +200292,7 @@ msgstr "Taub!" #: src/panels.cpp msgid "Weapon :" -msgstr "" +msgstr "Waffe :" #: src/panels.cpp msgid "No Style" @@ -196960,7 +200300,7 @@ msgstr "k. Stil" #: src/panels.cpp msgid "Day " -msgstr "" +msgstr "Tag" #: src/panels.cpp msgid "Temp : " @@ -196972,7 +200312,7 @@ msgstr "" #: src/panels.cpp msgid "Location" -msgstr "" +msgstr "Standort" #: src/panels.cpp msgid "Mana" @@ -196980,7 +200320,7 @@ msgstr "" #: src/panels.cpp msgid "Weather" -msgstr "" +msgstr "Wetter" #: src/panels.cpp msgid "Lighting" @@ -196988,7 +200328,7 @@ msgstr "" #: src/panels.cpp msgid "Weapon" -msgstr "" +msgstr "Waffe" #: src/panels.cpp msgid "Time" @@ -197012,7 +200352,7 @@ msgstr "" #: src/panels.cpp msgid "Sound" -msgstr "" +msgstr "Lärm" #: src/panels.cpp msgid "Stats" @@ -197360,55 +200700,31 @@ msgid " attempts to put out the fire on them!" msgstr " versucht, das eigene Feuer zu löschen." #: src/player.cpp -msgid "a piercing howl!" -msgstr "ein durchdringendes Heulen!" - -#: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "dich einen schrillen Heuler loslassen!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "ein lauter Schrei!" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "dich laut schreien!" - -#: src/player.cpp -msgid "a loud shout!" -msgstr "ein lautes Geschrei!" - -#: src/player.cpp -msgid "yourself shout loudly!" -msgstr "dich laut schreien!" - -#: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "Der Ton deiner Stimme ist fast vollständig gedämpft!" +msgid "You spur your steed into a gallop." +msgstr "" #: src/player.cpp -msgid "an indistinct voice" -msgstr "eine undeutliche Stimme" +msgid "You start running." +msgstr "Du fängst an, zu laufen." #: src/player.cpp -msgid "your muffled shout" -msgstr "deinen gedämpften Schrei" +msgid "Your steed is too tired to go faster." +msgstr "" #: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "Der Ton deiner Stimme ist deutlich gedämpft!" +msgid "You're too tired to run." +msgstr "Du bist zu müde zum Laufen." #: src/player.cpp -msgid "You start running." -msgstr "Du fängst an, zu laufen." +msgid "You slow your steed to a walk." +msgstr "" #: src/player.cpp -msgid "You're too tired to run." -msgstr "Du bist zu müde zum Laufen." +msgid "You start crouching." +msgstr "" #: src/player.cpp -msgid "You start crouching." +msgid "You nudge your steed to a steady trot." msgstr "" #: src/player.cpp @@ -197696,7 +201012,7 @@ msgstr "Du VERHUNGERST!" #: src/player.cpp msgid "You feel like you haven't eaten in days..." -msgstr "" +msgstr "Du fühlst dich, als hättest du seit Tagen nichts gegessen....." #: src/player.cpp msgid "Your stomach feels so empty..." @@ -198619,28 +201935,6 @@ msgstr "Das gebrochene %s fing an, sich zu heilen." msgid "Your %s has started to mend!" msgstr "Dein %s hat damit begonnen, sich zu heilen." -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "Übergab sich." - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "Übergab sich." - -#: src/player.cpp -msgid " throws up heavily!" -msgstr " erbricht sich heftig!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "Du erbrichst heftig." - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "Dir würgst, aber dein Magen ist leer." - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -199251,7 +202545,7 @@ msgstr "Du versuchst einzuschlafen." #: src/player.cpp msgid "Your soporific inducer starts working its magic." -msgstr "" +msgstr "Dein Schlafmittelinduktor beginnt seine Wirkung zu entfalten." #: src/player.cpp msgid "Your soporific inducer doesn't have enough power to operate." @@ -199293,16 +202587,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "Ging in den Winterschlaf über." -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "" -"Sieht so aus, als hättest du verschlafen und deinen internen Wecker nicht " -"wahrgenommen." - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "Sieht so aus, als hättest du verschlafen und den Wecker nicht gehört." - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -199400,6 +202684,32 @@ msgstr "Du hörst auf, Gegenstände mitzuschleifen." msgid "Your body strains under the weight!" msgstr "Dein Körper verrenkt sich unter der Last!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "Du fällst von deinem Reittier!" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "Du verletzt dich!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "Wo absteigen?" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "Dort kannst du nicht absteigen!" + #: src/player.cpp msgid "Wielding: " msgstr "Hält: " @@ -199427,11 +202737,11 @@ msgstr "Deine Fertigkeit in %s hat sich auf %d reduziert!" #: src/player.cpp msgid "Very Hungry" -msgstr "" +msgstr "Sehr hungrig" #: src/player.cpp msgid "Peckish" -msgstr "" +msgstr "Hungrig" #: src/player_display.cpp #, c-format @@ -199597,7 +202907,7 @@ msgstr "Zur nächsten Kategorie wechseln" #: src/player_display.cpp msgid "Cycle to previous category" -msgstr "" +msgstr "Zur vorherigen Kategorie wechseln" #: src/player_display.cpp msgid "Toggle skill training" @@ -199615,7 +202925,7 @@ msgstr "HINDERUNG UND WÄRME" #: src/player_display.cpp #, c-format msgid "Bionic Power: %1$d / %2$d" -msgstr "" +msgstr "Bionikstrom: %1$d / %2$d" #: src/player_display.cpp msgid "EFFECTS" @@ -200761,6 +204071,10 @@ msgstr "»KRAWENG!«." msgid "none" msgstr "keine" +#: src/recipe.cpp +msgid "none" +msgstr "" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -201041,6 +204355,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "Trat auf eine Luftpolsterfolie." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "»Knister«." @@ -201094,6 +204413,11 @@ msgstr "Dein Fuß verfängt sich in einer Bärenfalle!" msgid "A bear trap closes on 's foot!" msgstr "Eine Bärenfalle fängt !" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -201112,6 +204436,11 @@ msgstr "Du trittst auf ein Nagelbrett!" msgid " steps on a spiked board!" msgstr " tritt auf ein Nagelbrett!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -201130,6 +204459,11 @@ msgstr "Du trittst auf scharfe metallische Krähenfüße!" msgid " steps on a sharp metal caltrop!" msgstr " tritt auf scharfe Metallkrähenfüße!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -201170,6 +204504,16 @@ msgstr "Du stolperst über einen Stolperdraht!" msgid " trips over a tripwire!" msgstr " stolpert über einen Stolperdraht!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "Du löst eine Armbrustfalle aus!" @@ -201216,6 +204560,11 @@ msgstr "Ein Bolzen schießt hinaus, aber verfehlt %s." msgid "Kerblam!" msgstr "»Peng!«" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "Du löst eine Flintenfalle aus!" @@ -201239,6 +204588,11 @@ msgstr "Löste eine Flintenfalle aus." msgid "A shotgun fires and hits the %s!" msgstr "Eine Flinte feuert und trifft %s!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "Eine Klinge schnellt hervor und trifft deinen Torso!" @@ -201261,6 +204615,11 @@ msgstr "Löste eine Klingenfalle aus." msgid "Snap!" msgstr "»Schnapp!«" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "Ein Fallstrick schließt sich um dein Bein." @@ -201279,7 +204638,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "Löste ein leichtes Fallstrick aus." -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -201416,6 +204779,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "Trat auf einen Dissektor." +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr " fällt in eine Grube!" @@ -201446,14 +204814,15 @@ msgstr "" "Du schlägst hart auf den Boden, aber deine Stoßdämpfer handhaben den " "Aufprall vortrefflich!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "Du verletzt dich!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "Du landest gewandt." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "Du fällst in eine Stachelgrube!" @@ -201532,6 +204901,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "Trat in die Lava." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "Du schaffst es nicht, es zu befestigen." @@ -201551,6 +204925,11 @@ msgstr "" " tritt in ein Erdloch, aber schafft es, sich selbst in Sicherheit " "zu ziehen." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -202931,6 +206310,11 @@ msgstr "%s steckt fest." msgid "The %s's engine emits a sneezing sound." msgstr "Der Motor von %s macht ein spotzendes Geräusch." +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -202980,6 +206364,10 @@ msgstr "%2$s von %1$s überfährt %3$s." msgid "The %1$s's %2$s runs over something." msgstr "%2$s von %1$s überfährt etwas." +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "" @@ -203556,6 +206944,36 @@ msgstr "" "Deckel und schaltest sie ein. Die Waschmaschine wird mit Wasser aus den " "Fahrzeugtanks gefüllt." +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "Fahrzeug untersuchen" @@ -203596,6 +207014,10 @@ msgstr "Fang oder befrei eine Kreatur" msgid "Load or unload a vehicle" msgstr "Fahrzeug be- oder entladen" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "Drillmaschine mit Samen beladen" diff --git a/lang/po/es_AR.po b/lang/po/es_AR.po index d7c68464be412..fb038bade3122 100644 --- a/lang/po/es_AR.po +++ b/lang/po/es_AR.po @@ -1,13 +1,13 @@ # Translators: -# Vlasov Vitaly , 2019 # Brett Dong , 2019 +# Vlasov Vitaly , 2019 # Noctivagante , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Noctivagante , 2019\n" "Language-Team: Spanish (Argentina) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_AR/)\n" @@ -846,7 +846,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "aluminum small game arrow" -msgstr "" +msgstr "flecha de aluminio de caza menor" #. ~ Description for aluminum small game arrow #: lang/json/AMMO_from_json.py @@ -855,10 +855,13 @@ msgid "" "woodland creatures without splattering them all over the ground. Stands a " "good chance of remaining intact once fired." msgstr "" +"Es una flecha emplumada de aluminio con la punta desafilada. Es útil para " +"cazar criaturas pequeñas sin reventarles el cuerpo. Tiene una decente " +"probabilidad de quedar intacta luego de ser disparada." #: lang/json/AMMO_from_json.py msgid "carbon fiber hunting arrow" -msgstr "" +msgstr "flecha de fibra de carbono de caza" #. ~ Description for carbon fiber hunting arrow #: lang/json/AMMO_from_json.py @@ -867,6 +870,9 @@ msgid "" "impressive damage to targets. Stands a good chance of remaining intact once" " fired." msgstr "" +"Es una flecha de fibra de carbono con la punta ancha. Causa un daño " +"impresionante al objetivo. Tiene una buena probabilidad de no romperse luego" +" de ser disparada." #: lang/json/AMMO_from_json.py msgid "explosive arrow" @@ -1002,7 +1008,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "wooden rubber blunt arrow" -msgstr "" +msgstr "flecha de madera con punta de goma" #. ~ Description for wooden rubber blunt arrow #: lang/json/AMMO_from_json.py @@ -1010,10 +1016,13 @@ msgid "" "A fletched wooden arrow shaft with a blunt rubber tip. Can stun weaker " "enemies. Stands a good chance of remaining intact once fired." msgstr "" +"Es una flecha de madera con la punta de goma. Puede servir para aturdir a " +"los enemigos más débiles. Tiene una buena probabilidad de no romperse luego " +"de ser disparada." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "anesthetic" -msgstr "" +msgstr "anestesia" #. ~ Description for anesthetic #: lang/json/AMMO_from_json.py @@ -1022,6 +1031,10 @@ msgid "" "intended for use in specialized medical equipment, and can't be administered" " manually. You can reload an anesthesia kit with it." msgstr "" +"Es una variedad de poderosas drogas hipnóticas, analgésicas y estimulantes. " +"Está pensado para ser utilizado con equipamiento médico especializado, y no " +"puede administrarse manualmente. Se puede usar para recargar un equipo de " +"anestesia." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1546,7 +1559,7 @@ msgstr "Es un popular polvo limpiador pre-cataclismo." #: lang/json/AMMO_from_json.py msgid "nanomaterial canister" -msgstr "" +msgstr "carcasa de nanomaterial" #. ~ Description for nanomaterial canister #: lang/json/AMMO_from_json.py @@ -1586,6 +1599,17 @@ msgstr "" "Es una cuenta de madera. Puede usarse para fabricar joyas que se puedan " "grabar o para crear una cortina de cuentas." +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "colofonia" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" +"Es un pedazo de resina amarillenta, que se puede usar como fundente en " +"soldaduras." + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "" @@ -2635,6 +2659,18 @@ msgid_plural "reloaded .38 Super" msgstr[0] ".38 Super recargada" msgstr[1] ".38 Super recargadas" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "" @@ -2669,7 +2705,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" @@ -2879,6 +2915,17 @@ msgstr "" "Es una granada 40mm con carga de gas lacrimógeno. Su explosión libera una " "nube de gas muy incapacitante." +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 Magnum FMJ" @@ -2916,6 +2963,17 @@ msgstr ".44 Magnum FMJ recargada" msgid "reloaded .44 Magnum" msgstr ".44 Magnum recargadas" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr "cartucho de papel .44" @@ -3007,6 +3065,104 @@ msgstr "" msgid "reloaded .454 Casull" msgstr ".454 Casull recargadas" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr "" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr "" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr "" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4.6x30mm" @@ -3911,6 +4067,22 @@ msgstr "cartuchos de dardos perforantes recargados" msgid "reloaded shotgun slug" msgstr "postas recargadas de escopeta" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "cartuchos 00" @@ -6132,13 +6304,10 @@ msgstr[1] "trajes de chatarra" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." msgstr "" -"Es una armadura hecha con pedazos de metal, atados con sogas. Brinda una " -"protección bastante decente, pero esta colección de placas sueltas no es la " -"mejor protección del mundo." #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -14523,6 +14692,38 @@ msgid "A pair of neoprene swimming booties, with individual toes." msgstr "" "Un par de botas de nado de neopreno, con espacio individual para cada dedo." +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -15407,6 +15608,20 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -18526,6 +18741,7 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -18534,7 +18750,8 @@ msgstr[1] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -22864,7 +23081,7 @@ msgstr[1] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" @@ -23349,11 +23566,8 @@ msgstr[1] "pedazos de pulmón crudo" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"Es un pedazo de pulmón de un animal. Es esponjoso y rosa, y se pudre muy " -"rápido. Puede ser una exquisitez si se lo prepara correctamente, pero si se " -"lo prepara mal, es un pedazos gomoso de tejido conectivo sin sabor." #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -23364,13 +23578,10 @@ msgstr[1] "pedazos de pulmón cocinados" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" -"Preparado de esta manera, es un pedazo de tejido conectivo gomoso y gris sin" -" sabor. No parece más sabroso que cuando estaba crudo, pero al menos los " -"parásitos han sido eliminados." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -29495,7 +29706,7 @@ msgstr[1] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" @@ -35098,6 +35309,30 @@ msgstr[1] "tazones de plástico" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "botella de acero" +msgstr[1] "botellas de acero" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "botella plegable de plástico" +msgstr[1] "botellas plegables de plástico" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Es una botella flexible de plástico, fácil de transportar, que puede " +"contener hasta 500 ml." + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -35148,17 +35383,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "botella de acero" -msgstr[1] "botellas de acero" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -35172,19 +35396,6 @@ msgstr "" "Es un pedazo medio arrugado de papel aluminio, usado para cocinar y para " "hornear." -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "botella plegable de plástico" -msgstr[1] "botellas plegables de plástico" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Es una botella flexible de plástico, fácil de transportar, que puede " -"contener hasta 500 ml." - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -35835,6 +36046,10 @@ msgstr[1] "cadáveres" msgid "A dead body." msgstr "Es un cadáver." +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "fuego cercano" @@ -35874,8 +36089,10 @@ msgstr[1] "plantas marchitas" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "Es una planta muerta. Sirve para encender fuegos." +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -42717,6 +42934,17 @@ msgstr[1] "vainas .45 ACP" msgid "An empty casing from a .45 ACP round." msgstr "Es una vaina servida de una bala calibre .45 ACP." +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -42928,6 +43156,19 @@ msgstr "" "explica que esto puede ser canjeado por comida, agua u otros servicios en el" " Centro de Refugiados de los Mercaderes Libres." +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -43982,6 +44223,17 @@ msgstr "" "Es una versión improvisada de la bayoneta, que consiste en una simple punta " "con un poco de soga." +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "lanza de piedra" +msgstr[1] "lanzas de piedra" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "Es un palo grueso de madera con una piedra afilada en la punta." + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -44093,6 +44345,24 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "lata de utensilios" +msgstr[1] "latas de utensilios" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"Una olla-bandeja compacta, de estilo militar, diseñada para calentar la " +"comida sobre un fuego o cocina portátil. No es tan honda como una olla " +"propiamente dicha, y le faltan las resistencias térmicas que poseen los " +"modernos kits de utensilios." + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -46929,6 +47199,30 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -47054,6 +47348,28 @@ msgstr[1] "" msgid "A small book, containing spells created by a novice magician." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -47709,35 +48025,6 @@ msgid_plural "integral EMP projectors" msgstr[0] "proyector PEM integral" msgstr[1] "proyectores PEM integrales" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "lanza de piedra" -msgstr[1] "lanzas de piedra" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "Es un palo grueso de madera con una piedra afilada en la punta." - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "lata de utensilios" -msgstr[1] "latas de utensilios" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"Una olla-bandeja compacta, de estilo militar, diseñada para calentar la " -"comida sobre un fuego o cocina portátil. No es tan honda como una olla " -"propiamente dicha, y le faltan las resistencias térmicas que poseen los " -"modernos kits de utensilios." - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -52052,6 +52339,17 @@ msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "" "Agrega más coincidencias de tipos de munición y más armas del mundo real." +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "" @@ -52165,11 +52463,9 @@ msgstr "zombi cicatrizal" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." msgstr "" -"Es un cuerpo humano deformado, su piel se ha transformado en un grueso " -"envoltorio calloso de tejido cicatrizal." #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -52462,11 +52758,9 @@ msgstr "espectro" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "" -"Una sombra gigantesca, cambiando caóticamente de forma y volumen. Dos " -"esferas penetrantes de luz dominan lo que podría describirse como la cabeza." #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -52532,11 +52826,8 @@ msgstr "rot-weiler" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." +" chains of pulsing cysts and slime-dribbling ulcers." msgstr "" -"Este cadáver canino va acompañado por un olor agrio. Su cuerpo entero está " -"cubierto con una sucesión de quistes que palpitan y de úlceras que gotean " -"baba." #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -52545,9 +52836,12 @@ msgstr "ojobot" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" #: lang/json/MONSTER_from_json.py @@ -53394,11 +53688,9 @@ msgstr "zombi" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." msgstr "" -"Es un cuerpo humano que se arrastra para moverse, con una ira incontenible " -"en sus aceitosos ojos negros." #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -54391,11 +54683,9 @@ msgstr "PEM-hack" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada de pulso electromagnético adentro." #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -54404,11 +54694,9 @@ msgstr "C4-hack" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"C-4 adentro." #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -54417,11 +54705,9 @@ msgstr "destello-hack" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada de destello adentro." #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -54430,11 +54716,9 @@ msgstr "lacrimo-hack" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada de gas lacrimógeno adentro." #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -54443,11 +54727,9 @@ msgstr "grana-hack" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada adentro." #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -54456,11 +54738,9 @@ msgstr "manhack" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." msgstr "" -"Es un drone automatizado antipersonal, un robot del tamaño de un puño " -"cubierto con cuchillas zumbantes." #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -54469,11 +54749,9 @@ msgstr "minibom-hack" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "" -"Varias veces más grande que un manhack normal, este drone volador parece " -"tener una minibomba adentro. Si te tiene como objetivo... corré." #: lang/json/MONSTER_from_json.py msgid "tiny fish" @@ -59320,6 +59598,61 @@ msgstr "" msgid "Evens out damage among your limbs." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "" @@ -59422,6 +59755,50 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -62375,6 +62752,19 @@ msgstr "" "tres turnos antes de que detone, creando un campo PEM que daña robots y " "drena energía biónica." +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -67091,12 +67481,9 @@ msgstr "Encendés la mecha de la bomba de caño." #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" -"Es un pedazo de caño lleno de materiales explosivos. Usalo para encender la " -"mecha, lo que te da tres turnos para alejarte antes de que detone. Vas a " -"necesitar un encendedor o fósforos para usarlo." #: lang/json/TOOL_from_json.py msgid "active pipe bomb" @@ -68027,13 +68414,10 @@ msgstr[1] "espontones caseros" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" -"Es una lanza corta hecha en casa con un palo de madera y una forma metálica " -"puesta y atada en la punta. Su práctico mango y decente construcción la " -"convierten en una buena arma, bastante efectiva." #: lang/json/TOOL_from_json.py msgid "spray can" @@ -69430,6 +69814,35 @@ msgid "" "supplies." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" +"Es un pedazo ancho y afilado de piedra, con una parte bastante grande para " +"agarrarlo sin problemas. La Victorinox del paleolítico inferior." + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -69593,6 +70006,21 @@ msgstr "" "Es un pedazo de plástico. Puede ser usado para fabricar, reparar o reforzar " "objetos de plástico." +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "cocina de hexamina" +msgstr[1] "cocinas de hexamina" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "" +"Conocida como la cocina Esbit, esta es una cocina liviana, plegable, " +"diseñada para usar pequeñas pastillas de hexamina para cocinar." + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -69744,6 +70172,19 @@ msgstr "" " carneás. Demasiada delgada como para dormir cómodamente encima. Está " "enrollada y lista para transportar." +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "yesquero" +msgstr[1] "yesqueros" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -70900,6 +71341,19 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -71365,21 +71819,6 @@ msgstr "" "Es un gnomo de jardín totalmente normal e indefenso. Puede tener hasta 100 " "balas 9 mm." -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "yesquero" -msgstr[1] "yesqueros" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "" -"Es un encendedor hecho con pedernal y acero al carbono. Se utiliza para " -"iniciar una llama." - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -71424,21 +71863,6 @@ msgstr "" "controlar el ingreso de aire. Adentro tiene una brasa encendida, y puede " "usarse para encender una fogata." -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "hacha de mano" -msgstr[1] "hachas de mano" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" -"Es un pedazo ancho y afilado de piedra, con una parte bastante grande para " -"agarrarlo sin problemas. La Victorinox del paleolítico inferior." - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -71503,36 +71927,6 @@ msgstr "" "Un gran odre sellado lleno con leche que está en pleno proceso de " "convertirse en una especie de queso. Tiene vinagre y cuajo natural agregado." -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "cocina de hexamina" -msgstr[1] "cocinas de hexamina" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "" -"Conocida como la cocina Esbit, esta es una cocina liviana, plegable, " -"diseñada para usar pequeñas pastillas de hexamina para cocinar." - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "hacha improvisada" -msgstr[1] "hachas improvisadas" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "" -"Es un pedazo de acero afilado y sujetado a un palo. Funciona bastante bien " -"como hacha, pero la verdad es que no se puede comparar con un hacha seria." - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -72871,6 +73265,17 @@ msgstr "" "está en estado de coma, esperando tus órdenes. Usá este objeto para " "despertar a este secuaz." +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "rueda" @@ -73256,303 +73661,303 @@ msgstr "" "pesadas." #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "¿Dejás de recargar?" +msgid "reloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "¿Dejás de leer?" +msgid "reading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "¿Dejás de tocar?" +msgid "playing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "¿Dejás de esperar?" +msgid "waiting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "¿Dejás de fabricar?" +msgid "crafting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "¿Dejás de desarmar?" +msgid "disassembly" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "¿Dejás de carnear?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "Carnear" #: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "¿´Dejás de aplicar el vendaje de emergencia?" +msgid "field dressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" -msgstr "¿Dejás de despellejar?" +msgid "skinning" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "¿Dejás de descuartizar?" +msgid "quartering" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" +msgid "dismembering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "¿Dejás de diseccionar?" +msgid "dissecting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "¿Dejás de recuperar cosas?" +msgid "salvaging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "¿Dejás de buscar comida?" +msgid "foraging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "¿Dejás de construir?" +msgid "construction" +msgstr "construcción" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "¿Dejás de interactuar con el vehículo?" +msgid "interacting with the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "¿Dejás de entrenar?" +msgid "training" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" -msgstr "¿Dejás de socializar?" +msgid "socializing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "¿Dejás de usar los primeros auxilios?" +msgid "using first aid" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "¿Dejás de pescar?" +msgid "fishing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "¿Dejás de hacer una mina?" +msgid "mining" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "¿Dejás de hacer la madriguera?" +msgid "burrowing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "¿Dejás de destrozar?" +msgid "smashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" +msgid "cranking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "¿Dejás de desestresarte?" +msgid "de-stressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "¿Dejás de cortar tejidos?" +msgid "cutting tissues" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "¿Dejás de soltar?" +msgid "dropping" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "¿Dejás de almacenar?" +msgid "stashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "¿Dejás de agarrar?" +msgid "picking up" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "¿Dejás de mover objetos?" +msgid "moving items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "¿Dejás de ordenar las cosas?" +msgid "sorting out the loot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "¿Dejás de arar el campo?" +msgid "tilling the farm plot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "¿Querés dejar de plantar semillas?" +msgid "planting seeds" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "¿Dejar de cosechar los campos?" +msgid "harvesting plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "¿Dejar de fertilizar los campos?" +msgid "fertilizing plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "¿Dejás de interactuar con el inventario?" +msgid "interacting with inventory" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "¿Dejás de juguetear con tu ropa?" +msgid "fiddling with your clothes" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "¿Dejás de encender el fuego?" +msgid "lighting the fire" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "¿Dejás de usar el malacate?" +msgid "working the winch" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "¿Dejás de llenar el recipiente?" +msgid "filling the container" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "¿Dejás de puentear el vehículo?" +msgid "hotwiring the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "¿Dejás de apuntar?" +msgid "aiming" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "¿Dejás de usar el cajero automático?" +msgid "using the ATM" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "¿Dejás de intentar arrancar el vehículo?" +msgid "trying to start the vehicle" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "¿Dejás de soldar?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "Soldar" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "¿Dejás de crackear?" +msgid "cracking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "¿Dejás de reparar?" +msgid "repairing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "¿Dejás de arreglar?" +msgid "mending" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "¿Dejás de modificar el arma?" +msgid "modifying gun" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "¿Querés dejar de modificar la herramienta?" +msgid "modifying tool" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "¿Querés dejar de interactuar con el PNJ?" +msgid "interacting with the NPC" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "¿Querés dejar de limpiar el escombro?" +msgid "clearing that rubble" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "¿Dejás de meditar?" +msgid "meditating" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "¿Querés dejar de lavar?" +msgid "washing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "¿Dejás de cortar el metal?" +msgid "cutting the metal" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "¿Querés dejar de talar?" +msgid "chopping down" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "¿Querés dejar de agujerear?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "Agujerear" -#: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "¿Querés dejar de cavar?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "Cavar" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "¿Querés dejar de llenar?" +msgid "filling" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "¿Querés dejar de afeitarte?" +msgid "shaving" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "¿Querés dejar de cortarte el pelo?" +msgid "cutting your hair" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "¿Dejás de jugar con tu mascota?" +msgid "playing with your pet" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "¿Dejás de intentar dormirte?" +msgid "trying to fall asleep" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" -msgstr "¿Dejás de descargar?" +msgid "unloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" -msgstr "¿Dejás de programar la anulación?" +msgid "programming override" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" -msgstr "¿Dejás de ponerte objetos?" +msgid "putting on items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" +msgid "communing with the trees" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" +msgid "eating" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" +msgid "consuming" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" +msgid "casting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" +msgid "studying" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" +msgid "drinking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" +msgid "using drugs" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" +msgid "using the mind splicer" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" +msgid "hacking console" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -73563,6 +73968,10 @@ msgstr ".700 Nitro Express" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "clavos" @@ -75670,6 +76079,10 @@ msgstr "Construir Cama Improvisada" msgid "Build Straw Bed" msgstr "Construir Cama de Paja" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "" @@ -77029,6 +77442,26 @@ msgstr "" "Etiqueta de IA para cuando los monstruos son golpeados por el jugador. Si te" " aparece, esto es un bug." +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "Monstruo Dócil" @@ -77341,6 +77774,16 @@ msgstr "" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "Atado" @@ -77493,6 +77936,20 @@ msgstr "" msgid "The scream dazes you!" msgstr "¡El grito te deja aturdido!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "En LLamas" @@ -79372,6 +79829,54 @@ msgstr "" msgid "Your Frost Armor melts away." msgstr "" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "Atrapado en una trampa de lazo" @@ -80220,6 +80725,15 @@ msgstr "" "sobrevivientes. Y aunque no tengas equipo, siempre serás útil como eslavo o " "carne fresca." +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "" @@ -80446,8 +80960,7 @@ msgstr "Es una barricada de caminos. Se usa para cortar calles." msgid "smash!" msgstr "¡smash!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "whump." @@ -80502,8 +81015,8 @@ msgid "" "notes for other survivors to read." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "¡crunch!" @@ -80599,6 +81112,17 @@ msgstr "cama de paja" msgid "Kinda itches when you lay on it." msgstr "Te pica un poco cuando te acostás ahí." +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "lavabo" @@ -81075,10 +81599,20 @@ msgstr "¿Qué habrá adentro? ¡Vamos a ver!" msgid "canvas wall" msgstr "pared de tela" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "¡slap!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "solapa de tela" @@ -81500,6 +82034,16 @@ msgstr "" "Es un objetivo metálico de práctica de disparo con forma más o menos de " "humano." +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -81517,15 +82061,32 @@ msgid "" "and... delicious?" msgstr "" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "flor de euforbio" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "juncos" @@ -81537,6 +82098,32 @@ msgid "" "edible." msgstr "" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "nenúfar" @@ -81650,6 +82237,13 @@ msgstr "" msgid "ergometer" msgstr "ergómetro" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -81713,6 +82307,13 @@ msgstr "whud." msgid "canvas floor" msgstr "piso de tela" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -81831,6 +82432,13 @@ msgid "A kiln designed to bake clay pottery and bricks." msgstr "" "Es una fosa de carbonización diseñada para cocinar alfarería y ladrillos." +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "roca pequeña" @@ -81870,6 +82478,11 @@ msgstr "¿Cómo vas a hacer para mover esto?" msgid "stone slab" msgstr "escalón de piedra" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "esposas" @@ -82719,14 +83332,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "cactus mutado" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "tatami" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "cactus mutado" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -83007,8 +83627,7 @@ msgstr "Es una pistola falsa que dispara un globo ácido." msgid "auto" msgstr "auto" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "rifle" @@ -85446,6 +86065,46 @@ msgstr "" "La Taurus Raging Bull es un revólver de 5 disparos para la .454. Casull. " "Tiene una potencia de detención impresionante." +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -86446,6 +87105,14 @@ msgid_plural "fusion blasters" msgstr[0] "pistola de fusión" msgstr[1] "pistolas de fusión" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -88106,6 +88773,18 @@ msgstr "" "reutilizable, multifunción, era usado comúnmente por el ejército de los " "Estados Unidos." +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -89717,6 +90396,22 @@ msgstr "" "Es un cañón reforzado integrado de Leadworks, especialmente diseñado para el" " disparo constante. Incrementa el daño y el alcance del arma." +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "bajocañón" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -90480,10 +91175,6 @@ msgstr "" "Este lanzallamas miniatura está hecho para ser adjuntado a casi cualquier " "tipo de arma de fuego, lo que aumenta mucho su capacidad letal." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "bajocañón" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -95151,6 +95842,10 @@ msgstr "Ver Mapa de Olor" msgid "View Temperature Map" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "Estilo de barra lateral" @@ -95191,6 +95886,10 @@ msgstr "Activar/Desactivar auto hacer mina" msgid "Toggle Auto Foraging" msgstr "Activar/Desactivar auto recolectar" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "Menú de Acción" @@ -96036,16 +96735,6 @@ msgstr "Centrifugar" msgid "Analyze blood" msgstr "Analizar sangre" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "Tratamiento de Huesero" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -99616,7 +100305,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" #: lang/json/mission_def_from_json.py @@ -99867,99 +100556,237 @@ msgstr "" "investigada." #: lang/json/mission_def_from_json.py -msgid "Return Field Data" +msgid "Reach Refugee Center" +msgstr "Llegar al Centro de Refugiados" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" +msgid "Any luck? Bigger ones?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Yes! The home stretch!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "Llegar al Centro de Refugiados" +msgid "Oh man, but we're so close!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -100073,6 +100900,157 @@ msgid "" msgstr "" "Ah. Esto no va a funcionar como lo pensé. De vuelta al pizarrón, supongo." +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "Limpiar Plataforma de Atrás" @@ -100084,15 +101062,9 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"Si realmente querés dar una mano nos podrías ayudar a limpiar de muertos la " -"plataforma de atrás. Por miedo a salir durante los primeros días del " -"cataclismo, terminamos tirando nuestros muertos y los zombis que matamos en " -"la plataforma sellada de atrás. Nuestro prometedor líder de ese momento " -"también murió... se convirtió en algo diferente. Matalos a todos y asegurate" -" de que no nos vuelvan a molestar. No podemos pagarte mucho pero nos vas a " -"ayudar a recuperar la plataforma." #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -100116,8 +101088,11 @@ msgstr "¿Ya no nos van a moletar más?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." -msgstr "Gracias, tener esa gran amenaza tan cerca de casa era estresante." +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -100131,15 +101106,9 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"Esta es un poco más complicada que la última tarea, recientemente perdimos " -"un grupo de cartoneros que venían a comerciar con nosotros y nos gustaría " -"que investigues. Sospechamos que una banda de piratas o una horda los agarró" -" desprevenidos. Te puedo dar las coordenadas del último mensaje de radio " -"pero nada más. En cualquier caso, encargate de la amenaza así los cartoneros" -" pueden seguir pasando relativamente seguros. La mejor recompensa que te " -"puedo ofrecer es que te quedes con los suministros que ellos llevaban." #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -100171,14 +101140,13 @@ msgstr "Recuperar Informe" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"El nuevo puesto que hemos comenzado podría usar tu ayuda. Necesito que " -"consigas el informe del capataz antes de empezar a mandar más refugiados a " -"la comunidad de la granja. Preguntale al capataz para obtener tareas más " -"detalladas." #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -100195,13 +101163,11 @@ msgstr "¿Tenés el informe?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." +"you, here's your money." msgstr "" -"Con esto vamos a poder convencer a otros para invertir en la comunidad. " -"Gracias. " #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" +msgid "Find 10 solar panels" msgstr "" #: lang/json/mission_def_from_json.py @@ -100209,11 +101175,9 @@ msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -100223,10 +101187,7 @@ msgstr "" "verán muy incrementadas." #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." +msgid "Solar panels are pretty common on electric cars and on rooftops." msgstr "" #: lang/json/mission_def_from_json.py @@ -100238,17 +101199,19 @@ msgstr "" " tu ayuda." #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" +msgid "Find 100 canning jars" msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" #: lang/json/mission_def_from_json.py @@ -100260,17 +101223,17 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." +" If you reconsider let me know." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." msgstr "" #: lang/json/mission_def_from_json.py @@ -100649,6 +101612,97 @@ msgstr "" "encontrar al capitán a cargo, seguro podrá utilizar sus habilidades. No se " "olvide de vestir la placa cuando hable con él. Gracias otra vez, alguacil." +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "Hacer 2 Destiladores" @@ -110887,6 +111941,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -111071,7 +112287,8 @@ msgstr "" msgid "Beggar" msgstr "Mendigo" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "Refugiado" @@ -111095,6 +112312,14 @@ msgstr "" msgid "Reading this line is a bug" msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -111372,14 +112597,6 @@ msgstr "" msgid "Tester" msgstr "Tester" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "CPT" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "SFC" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "Bandido" @@ -111396,6 +112613,14 @@ msgstr "" msgid "officer" msgstr "" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "CPT" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "SFC" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "mendigo" @@ -111444,6 +112669,10 @@ msgstr "Dana Nunez" msgid "Draco Dune" msgstr "" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "" @@ -111472,10 +112701,18 @@ msgstr "" msgid "Pablo Nunez" msgstr "Pablo Nunez" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "Stan Borichenko" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "Vanessa Toby" @@ -111504,6 +112741,10 @@ msgstr "Mercenario" msgid "the intercom" msgstr "" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "Peluquero" @@ -111940,10 +113181,6 @@ msgstr "sótano de la cabaña" msgid "cabin" msgstr "cabaña" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "terreno baldío" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "cabaña en ruinas" @@ -112271,6 +113508,30 @@ msgstr "" msgid "farm house roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "calle de tierra" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "estación de servicio" @@ -112473,6 +113734,10 @@ msgstr "sótano del hotel" msgid "motel" msgstr "motel" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "entrada de negocio de mejoras del hogar" @@ -112525,6 +113790,10 @@ msgstr "" msgid "dollar store" msgstr "todo por dos pesos" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "ciber" @@ -112545,6 +113814,10 @@ msgstr "tienda de gangas" msgid "daycare center" msgstr "guardería" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "pet shop" @@ -113253,6 +114526,10 @@ msgstr "morgue" msgid "fire station" msgstr "estación de bomberos" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "" @@ -113433,6 +114710,10 @@ msgstr "sala de conciertos" msgid "gambling hall" msgstr "sala de juegos" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "club nocturno" @@ -113465,6 +114746,10 @@ msgstr "gimnasio fitness" msgid "dojo" msgstr "dojo" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "parque privado" @@ -113549,10 +114834,6 @@ msgstr "baño público" msgid "roadside foodcart" msgstr "carrito de comida de ruta" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "calle de tierra" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "vía" @@ -114958,6 +116239,32 @@ msgid "" "at least you have a loyal friend." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -119702,6 +121009,58 @@ msgid "" "serene with the world falling down around you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -124332,6 +125691,10 @@ msgstr "Algunos cadáveres pueden tener biónicos si los diseccionás." msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "No seas codicioso. Los objetos no sirven de nada si estás muerto." +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -129416,6 +130779,41 @@ msgstr "" "propuesto una redistribución estratégica en el complejo subterráneo conocido" " como la BÓVEDA, y allí continuar la producción de PE062." +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "Esta es una prueba para el sistema de recortes" @@ -130559,8 +131957,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -130697,7 +132095,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -137204,6 +138602,10 @@ msgstr "Me gustaría conocer un poco más de vos..." msgid "I want you to use this item." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "" @@ -137257,11 +138659,11 @@ msgid "Change your bionic power recharge rules..." msgstr "" #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "No importa." @@ -137411,6 +138813,22 @@ msgstr "" msgid "Show me what needs to be done at the camp." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -138546,215 +139964,6 @@ msgstr "" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "Acerca de la misión..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "Acerca de una de esas misiones..." - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Hola, alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Alguacil, me temo que no puedo hablar ahora." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "No estoy a cargo acá, alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "" -"Se supone que dirija todas las preguntas directamente al liderazgo, " -"alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "Hey, ciudadano... me parece que no pertenecés a este lugar." - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "" -"Deberías meterte en tus propios problemas, no hay nada para mirar acá." - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "Si necesitás algo vas a tener que hablar con otra persona." - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "Señor." - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "Amigo, si podés controlarte deberías enrolarte." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Señora" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "No me prestes atención..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Alguacil, espero que esté aquí para ayudarnos." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "" -"Señor, no sé cómo demonios llegó hasta acá abajo pero si le queda un poco de" -" juicio se iría mientras pueda." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Señora, no sé cómo demonios llegó hasta acá abajo pero si le queda un poco " -"de juicio se iría mientras pueda." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "¿Qué estás haciendo acá abajo?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "¿Me podés decir algo de estas instalaciones?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "¿Hay algo que sea necesario hacer?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "Me tengo que ir..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" -"Estoy liderando lo que queda de mi compañía en una misión para reasegurar " -"estas instalaciones. Entramos en el complejo con dos docenas de hombre e " -"inmediatamente vinimos a asegurar esta habitación de control. Desde acá, " -"envié a mis hombres a asegurar los sistemas vitales localizados en este piso" -" y en los de abajo. Si tenemos éxito, estas instalaciones pueden ser usadas " -"como base de operaciones permanente en la región. Y más importante, nos " -"permitirá redirigir el tráfico de refugiados desde los puestos superpoblados" -" y liberar algunas de nuestras fuerzas para conducir operaciones de " -"recuperación." - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "Parece un plan decente..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"Estas instalaciones fueron construidas para brindar un refugio seguro en el " -"caso de un conflicto mundial. La bóveda puede contener varios cientos de " -"personas por unos años si todos los sistemas funcionan y se le da la " -"notificación suficiente. Lamentablemente, el sistema de energía fue dañado o" -" saboteado en algún momento y liberó una ráfaga extremadamente letal de " -"radiación. El suceso catastrófico duró por varios minutos y resultó en la " -"muerte de la mayoría de las personas ubicadas en el 2do piso y los " -"inferiores. Los que trabajan en este piso pudieron sellar los accesos a los " -"pisos inferiores antes de sucumbir a la radiación. La única cosa que nos " -"dicen los registros es que toda la presión de agua fue dirigida a los " -"niveles inferiores." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "" -"Sea lo que hayan hecho debe haber funcionado porque todavía estamos vivos..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "Señor, no está autorizado para estar acá... debería irse." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "Señora, no está autorizada para estar acá... debería irse." - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "" -"[MISSION] El capitán me mandó a conseguir una lista de frecuencias para vos." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "¿Necesitás ayuda?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "Me tengo que ir" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "" -"Estamos asegurando la matriz de comunicaciones externas de estas " -"instalaciones. Estoy bastante restringido en lo que puedo decir... buscá a " -"mi comandante si tenés alguna pregunta." - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "Voy a intentar encontrar a tu comandante entonces..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" -"Estaba esperando que el capitán envíe a un mensajero. Esta es la lista que " -"estás buscando. De lo que podemos identificar, acá están las frecuencias que" -" poseen tráfico. Muchas de las transmisiones son indescifrables sin reparar " -"o reemplazar el equipamiento de acá. Cuando las instalaciones fueron " -"invadidas, el procedimiento estándar fue destruir el hardware de " -"encriptación para proteger los secretos federales y mantener la integridad " -"de la red de comunicaciones. Esperamos igual que algunos simples mensajes de" -" texto puedan ser recibidos." - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -142910,6 +144119,215 @@ msgstr "" msgid "What were you saying before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "Alguacil, espero que esté aquí para ayudarnos." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "" +"Señor, no sé cómo demonios llegó hasta acá abajo pero si le queda un poco de" +" juicio se iría mientras pueda." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Señora, no sé cómo demonios llegó hasta acá abajo pero si le queda un poco " +"de juicio se iría mientras pueda." + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "¿Qué estás haciendo acá abajo?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "¿Me podés decir algo de estas instalaciones?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "¿Hay algo que sea necesario hacer?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "Acerca de la misión..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "Acerca de una de esas misiones..." + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "Me tengo que ir..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" +"Estoy liderando lo que queda de mi compañía en una misión para reasegurar " +"estas instalaciones. Entramos en el complejo con dos docenas de hombre e " +"inmediatamente vinimos a asegurar esta habitación de control. Desde acá, " +"envié a mis hombres a asegurar los sistemas vitales localizados en este piso" +" y en los de abajo. Si tenemos éxito, estas instalaciones pueden ser usadas " +"como base de operaciones permanente en la región. Y más importante, nos " +"permitirá redirigir el tráfico de refugiados desde los puestos superpoblados" +" y liberar algunas de nuestras fuerzas para conducir operaciones de " +"recuperación." + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "Parece un plan decente..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" +"Estas instalaciones fueron construidas para brindar un refugio seguro en el " +"caso de un conflicto mundial. La bóveda puede contener varios cientos de " +"personas por unos años si todos los sistemas funcionan y se le da la " +"notificación suficiente. Lamentablemente, el sistema de energía fue dañado o" +" saboteado en algún momento y liberó una ráfaga extremadamente letal de " +"radiación. El suceso catastrófico duró por varios minutos y resultó en la " +"muerte de la mayoría de las personas ubicadas en el 2do piso y los " +"inferiores. Los que trabajan en este piso pudieron sellar los accesos a los " +"pisos inferiores antes de sucumbir a la radiación. La única cosa que nos " +"dicen los registros es que toda la presión de agua fue dirigida a los " +"niveles inferiores." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "" +"Sea lo que hayan hecho debe haber funcionado porque todavía estamos vivos..." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "Señor, no está autorizado para estar acá... debería irse." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "Señora, no está autorizada para estar acá... debería irse." + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "" +"[MISSION] El capitán me mandó a conseguir una lista de frecuencias para vos." + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "¿Necesitás ayuda?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "Me tengo que ir" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "" +"Estamos asegurando la matriz de comunicaciones externas de estas " +"instalaciones. Estoy bastante restringido en lo que puedo decir... buscá a " +"mi comandante si tenés alguna pregunta." + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "Voy a intentar encontrar a tu comandante entonces..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" +"Estaba esperando que el capitán envíe a un mensajero. Esta es la lista que " +"estás buscando. De lo que podemos identificar, acá están las frecuencias que" +" poseen tráfico. Muchas de las transmisiones son indescifrables sin reparar " +"o reemplazar el equipamiento de acá. Cuando las instalaciones fueron " +"invadidas, el procedimiento estándar fue destruir el hardware de " +"encriptación para proteger los secretos federales y mantener la integridad " +"de la red de comunicaciones. Esperamos igual que algunos simples mensajes de" +" texto puedan ser recibidos." + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Hola, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Alguacil, me temo que no puedo hablar ahora." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "No estoy a cargo acá, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "" +"Se supone que dirija todas las preguntas directamente al liderazgo, " +"alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "Hey, ciudadano... me parece que no pertenecés a este lugar." + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "" +"Deberías meterte en tus propios problemas, no hay nada para mirar acá." + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "Si necesitás algo vas a tener que hablar con otra persona." + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "Señor." + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "Amigo, si podés controlarte deberías enrolarte." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "Señora" + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "No me prestes atención..." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -142937,6 +144355,12 @@ msgstr "" msgid "Please, help me. I need food." msgstr "Por favor, ayudame. Necesito comida." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "" @@ -143115,10 +144539,26 @@ msgstr "" msgid "OK, I'll talk to them too." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "¿Te conté sobre el cartón, amigo? ¿Tenés un poco?" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "¿Cartón?" @@ -143131,6 +144571,30 @@ msgstr "¿Qué hacés sentado acá?" msgid "Are you seriously wearing a dinosaur costume?" msgstr "¿En serio tenés puesto un disfraz de dinosaurio?" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -143143,6 +144607,14 @@ msgstr "" msgid "Why cardboard?" msgstr "¿Y por qué de cartón?" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "Me parece que me tengo que ir yendo..." @@ -143158,6 +144630,27 @@ msgstr "" "Los rayos beta vienen del punto central del zombi, así que golpea el cartón " "y no lo puede penetrar. La reflección puede frenar los daños." +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -143167,17 +144660,56 @@ msgstr "" "construirme una casa y no los voy a dejar entrar." #: lang/json/talk_topic_from_json.py -msgid "Building a house?" -msgstr "¿Una casa?" +msgid "You said you were building a house?" +msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "No." +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "¿Qué decías del cartón?" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "" @@ -143237,10 +144769,6 @@ msgid "" "but I wouldn't say no." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "" @@ -143284,6 +144812,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "" @@ -143294,6 +144827,28 @@ msgid "" "come?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -143313,8 +144868,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -143374,6 +144929,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -143386,6 +144947,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -143410,12 +144982,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -143426,7 +144998,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -143468,6 +145040,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -143478,16 +145056,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -143502,6 +145104,20 @@ msgstr "¿Por qué me preguntás?" msgid "Sorry, not interested." msgstr "Perdoname, no me interesa." +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " @@ -143510,6 +145126,10 @@ msgstr "" "Porque yo seguro que no estoy apto, así que me quedo sentado acá hasta que " "me muera de hambre. ¿Podés ayudar a este pobre mendigo?" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "¿Qué te pasa?" @@ -143526,6 +145146,25 @@ msgstr "¿Y cómo llegaste hasta acá si estás tan enfermo?" msgid "Why are you camped out here if they won't let you in?" msgstr "¿Y qué hacés acampando acá si no te dejan entrar?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -143538,6 +145177,10 @@ msgstr "" "Tampoco que vengo controlándome el comosedice... los análisis de sangre que " "usan los doctores para molestarme cada un par de meses." +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -143569,6 +145212,95 @@ msgstr "" "tendría nada de esto y tendría que seguir buscando comida... en otras " "palabras, estaría muerto bien muerto. O tal vez... muerto vivo." +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "Qué hacés, amigo." @@ -143581,6 +145313,10 @@ msgstr "¿Qué estás haciendo acá afuera?" msgid "I couldn't help but notice, you're covered in fur." msgstr "No pude evitar darme cuenta que... estás cubierto de pelaje." +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -143605,15 +145341,8 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" -"Es más seguro que hacerme mi propia casa. Salí y recolecté comida mientras " -"lo necesité. Mientras seamos limpios y hagamos nuestra parte cuando aparece " -"un zombi, nos dejan quedarnos acá como una defensa extra. No les gusta que " -"haya esta trayendo comida para los otros okupas... creo que intentan " -"hacernos morir de hambre de a poco, e incluso aunque yo no pueda mantener " -"todas las panzas llenas, pude traer suficiente para mantenerlos en buena " -"forma. Sospecho que van a encontrar una excusa para echarme, eventualmente." #: lang/json/talk_topic_from_json.py msgid "" @@ -143625,6 +145354,68 @@ msgstr "" "un poco después del cataclismo. Ni idea qué lo causó. No los puedo culpar " "por odiarlo, yo mismo lo odio." +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -143637,6 +145428,23 @@ msgstr "" "este pequeño grupo de okupas. Mientras sea el único que puede traer comida, " "no creo que me pueda ir." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "Hola, ¿qué tal?" @@ -143903,10 +145711,94 @@ msgstr "" msgid "Why don't we talk about it some other time?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "" @@ -143955,10 +145847,6 @@ msgstr "" msgid "Hey again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -144433,6 +146321,102 @@ msgstr "" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -144473,6 +146457,57 @@ msgstr "" msgid "Sorry to hear that." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "" @@ -144496,18 +146531,143 @@ msgid "Yeah, no. I'm going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." +msgid "" +"Well that's good. If you're going to pull your own weight I guess that's an" +" improvement." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well that's good. If you're going to pull your own weight I guess that's an" -" improvement." +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Espero que hayas venido a comerciar." +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -144515,15 +146675,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Superviso la provisión de comida para el centro. Hubo un saqueo importante " -"durante el pánico cuando vinimos, así que la mayoría de la comida " -"desapareció. Administré lo que nos quedó e hice lo que pude para incrementar" -" nuestros suministros. La putrefacción y el moho son más significativos en " -"la humedad del sótano así que priorizo la comida no perecedera, como la " -"harina de maíz, el charqui y el vino frutal." #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -144531,15 +146685,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Superviso la provisión de comida para el centro. Hubo un saqueo importante " -"durante el pánico cuando vinimos, así que la mayoría de la comida " -"desapareció. Administré lo que nos quedó e hice lo que pude para incrementar" -" nuestros suministros. La putrefacción y el moho son más significativos en " -"la humedad del sótano así que priorizo la comida no perecedera, como la " -"harina de maíz, el charqui y el vino frutal." #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -144547,57 +146695,125 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Superviso la provisión de comida para el centro. Hubo un saqueo importante " -"durante el pánico cuando vinimos, así que la mayoría de la comida " -"desapareció. Administré lo que nos quedó e hice lo que pude para incrementar" -" nuestros suministros. La putrefacción y el moho son más significativos en " -"la humedad del sótano así que priorizo la comida no perecedera, como la " -"harina de maíz, el charqui y el vino frutal." #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "¿Por qué harina de maíz, charqui y vino frutal?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" -"Los tres son fáciles de producir en cantidades significativas y no son " -"perecederos. Tenemos un granjero o dos y algunos cazadores que han estado " -"intentando proveernos con suministros nutritivos. Igual, siempre necesitamos" -" más proveedores. Como esto es bastante barato a granel, te puedo pagar con " -"un extra por lo que tengas. La comida enlatada y otros comestibles son " -"manejados por el mercader del frente." #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "¿Querés comprar algo más?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "Muy bien..." +msgid "Very well... let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." msgstr "" -"En este momento estoy aceptando una cantidad de diferentes alimentos: " -"cerveza, azúcar, harina, carne ahumada, pescado ahumado, aceite de cocina; y" -" como dije antes, charqui, harina de maíz y vino frutal." #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "Interesante..." +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -144960,16 +147176,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "Señora, no debería estar viajando por ahí afuera." #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "Bienvenido, alguacil..." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Bienvenido..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "En realidad, soy nuevo..." +msgid "I heard this place was a refugee center..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -144979,6 +147187,14 @@ msgstr "¿Escuchaste algo del mundo exterior?" msgid "Is there any way I can join your group?" msgstr "¿Hay alguna forma en que me pueda hacer miembro de tu grupo?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "¿Puedo hacer algo por el centro?" @@ -144988,39 +147204,41 @@ msgid "I figured you might be looking for some help..." msgstr "Me supuse que estarías buscando ayuda..." #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." +msgid "Well, I'd better be going. Bye." msgstr "" -"Antes de que digas otra cosa, estamos completos. Hace unos días tuvimos un " -"brote por haber dejado entrar a demasiados refugiados nuevos. Necesitamos " -"suministros desesperadamente y estamos dispuestos a comerciar lo que " -"podamos. Pagamos buena plata por charqui, si tenés." #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "No hay paz para los cansados..." +msgid "Welcome marshal..." +msgstr "Bienvenido, alguacil..." + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Bienvenido..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"Para ser sincero, empezamos con seis colectivos llenos de trabajadores de " -"oficina y doñas Rosas... luego del brote de refugiados hace un par de días, " -"terminaron muertos algunos de nuestros más valientes. La única cosa que " -"queremos ahora es comerciar lo suficiente como para mantenernos vivos. No " -"nos importa de dónde sacaste tus suministros o cómo los conseguiste, pero no" -" nos traigas problemas." #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "Es igual de malo acá afuera, si no peor." +msgid "It's just as bad out there, if not worse." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145036,40 +147254,27 @@ msgstr "" "a los cartoneros tan despiadados, pero algunos de nosotros tuvimos que matar" " a nuestros propios hijos... ni siquiera pienses en intimidarnos." -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "Supongo que es la misma mierda en todos lados..." - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" msgstr "" -"[INT 12] Esperá, seis colectivos y refugiados... ¿cuánta gente todavía " -"tienen apretada acá?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"Bueno, los refugiados estaban acá en el primer piso cuando uno de sus grupos" -" intentó meter un tipo que se estaba muriendo por la plataforma de carga, y " -"terminamos siendo despertados por alaridos y gritos. Unas dos docenas de " -"personas murieron esa noche. Los refugiados que quedaron fueron expulsados " -"el día siguiente y formaron un par de bandas de cartoneros. Diría que " -"tenemos unos veinte decentes hombres y mujeres, pero nuestra verdadera " -"fortaleza son nuestros compañeros de comercio que están acostumbrados a " -"hacer lo que sea necesario para sobrevivir." #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "Supongo que funciona para vos..." +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -145087,10 +147292,6 @@ msgstr "" "muchos terminan haciendo ruido como para atraer a todos en el vecindario. " "Por suerte, no hemos tenido una horda de esas por acá." -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "Gracias por el consejo." - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -145196,6 +147397,81 @@ msgstr "¿Conocés algo mejor que la provisión de armas raras?" msgid "Was hoping for something more..." msgstr "Estaba esperando algo más..." +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Alguacil..." @@ -145805,8 +148081,53 @@ msgid "Alright, I'll leave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "¿Te puedo ofrecer un recorte?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -146402,6 +148723,10 @@ msgstr "" "arriba cuando lo encontré, no fue difícil arreglarlo. Sos bienvenido a " "quedarte en una habitación, pero no la acapares. No sos el único cartonero." +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "Interesante..." + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -146874,10 +149199,30 @@ msgstr " contrataca al %s" msgid "Feint" msgstr "Amague" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "Romper Agarre" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "¡El %s intenta agarrarte, pero rompés su agarre!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "¡El %s intenta agarrar a , pero rompen su agarre!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -147612,24 +149957,28 @@ msgid "Crane Wing" msgstr "Alas de Grulla" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" -msgstr "Levantás tus brazos de manera intimidatoria" +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" -msgstr " hace las Alas de Grulla" +#, python-format +msgid " performs the Crane Wing at %s." +msgstr "" #: lang/json/technique_from_json.py msgid "Crane Flap" msgstr "Aleteo de Grulla" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" -msgstr "Movés tus brazos y te liberás" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " flaps free" -msgstr " aletea y se libera" +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -147678,12 +150027,14 @@ msgid "Snake Slither" msgstr "Serpentear" #: lang/json/technique_from_json.py -msgid "You slither free" -msgstr "Serpenteás y te liberás" +#, python-format +msgid "The %s tries to grab you, but you slither free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" -msgstr " serpentea y se libera" +#, python-format +msgid "The %s tries to grab , but they slither free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Snake Strike" @@ -148378,12 +150729,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -149256,14 +151607,37 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "pared de bareque" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "pared de bareque rota" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "pared de bareque a medio construir" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "pared de madera" @@ -150965,30 +153339,134 @@ msgstr "" msgid "willow tree" msgstr "sauce" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "arce" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "hickory" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "pistachero" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "nogal" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "pacano" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "hickory muerto" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -151002,10 +153480,30 @@ msgstr "" msgid "brush." msgstr "brash." +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "arbusto" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "arbusto de maní" @@ -151169,22 +153667,49 @@ msgstr "Es un arbusto ancho de lilas pero sin flores." msgid "tree trunk" msgstr "tronco de árbol" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "tocón" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "pared de raíces" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "pared de cera" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "piso de cera" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "valla de madera" @@ -151297,6 +153822,11 @@ msgstr "" msgid "railing" msgstr "pasamanos" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "¡crack!" @@ -151305,6 +153835,11 @@ msgstr "¡crack!" msgid "glass railing" msgstr "" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "" @@ -151317,10 +153852,20 @@ msgstr "¡ker-rash!" msgid "metal railing" msgstr "" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "" @@ -151493,46 +154038,136 @@ msgstr "" msgid "shallow water" msgstr "agua poco profunda" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "agua profunda" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "charco de agua" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "agua cloacal" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "lava" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "arenero" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "tobogán" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "pasamanos" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "tablero" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "surtidor de nafta" @@ -151550,14 +154185,31 @@ msgstr "" msgid "tank with gasoline" msgstr "tanque con nafta" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "columna chica" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "surtidor de nafta roto" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -151572,6 +154224,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "surtidor diésel roto" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "cajero automático" @@ -151595,6 +154254,12 @@ msgstr "" msgid "broken generator" msgstr "generador roto" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "misil" @@ -151805,6 +154470,13 @@ msgstr "" msgid "cloning vat" msgstr "tanque de clonación" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "plank" @@ -151813,6 +154485,16 @@ msgstr "plank" msgid "stairs" msgstr "escalera" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "cámara de inspección" @@ -151829,22 +154511,68 @@ msgstr "" msgid "ladder" msgstr "escalera de mano" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "pendiente hacia abajo" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "pendiente hacia arriba" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "soga para subir" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "lector de tarjeta" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -151919,54 +154647,121 @@ msgstr "" msgid "elevator" msgstr "ascensor" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "pedestal oscuro" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "pedestal claro" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "piedra roja" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "piedra verde" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "piedra azul" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "suelo rojo" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "suelo verde" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "suelo azul" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "interruptor amarillo" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "interruptor turquesa" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "interruptor púrpura" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "interruptor cuadrillé" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -151991,6 +154786,18 @@ msgstr "Es una suave alfombra púrpura." msgid "linoleum tile" msgstr "baldosa de linóleo" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "pared roja" @@ -152049,10 +154856,22 @@ msgstr "Es una pared pintada de púrpura." msgid "stone wall" msgstr "pared de piedra" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "pared de piedra a medio construir" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "pozo de agua cubierto" @@ -152090,35 +154909,64 @@ msgstr "refugio improvisado" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" -"Es un refugio improvisado que brinda un poquito de protección contra el " -"ambiente." #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "techo plano" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "" @@ -152146,22 +154994,51 @@ msgstr "" msgid "telecom cabinet" msgstr "cabina de telecomunicación" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "cabina dañada de telecomunicación" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "soporte grande de metal" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "soporte chico de metal" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "disyuntor en aceite de alta tensión" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "¡pam!" @@ -152170,30 +155047,72 @@ msgstr "¡pam!" msgid "small HV oil circuit breaker" msgstr "disyuntor en aceite chico de alta tensión" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "dispositivo de distribución grande" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "dispositivo de distribución chico" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "descargador de corriente de rayo" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "interruptor de desconexión" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "transformador de corriente" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "transformador de potencial" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -152228,6 +155147,11 @@ msgstr "" msgid "bridge pavement" msgstr "pavimento puente" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "¡rotura de concreto y chillido de metal!" @@ -152236,22 +155160,61 @@ msgstr "¡rotura de concreto y chillido de metal!" msgid "bridge yellow pavement" msgstr "pavimento amarillo puente" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "vereda puente" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "guardarraíl" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "roble blackjack" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "montículo de arcilla" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "¡splash!" @@ -152260,10 +155223,20 @@ msgstr "¡splash!" msgid "mound of sand" msgstr "montículo de arena" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "cinta transportadora" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "ting." @@ -152272,18 +155245,38 @@ msgstr "ting." msgid "light machinery" msgstr "maquinaria ligera" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "maquinaria pesada" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "maquinaria antigua" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "maquinaria eléctrica" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "escaleras bajas (parte inicial)" @@ -152296,10 +155289,20 @@ msgstr "escaleras bajas (parte final)" msgid "milking machine" msgstr "máquina de ordeñe" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "tanque de almacenamiento de leche" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "gravilla" @@ -152318,26 +155321,77 @@ msgstr "" msgid "railroad track" msgstr "vía" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "durmiente" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "suelo pintado encerado" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "topera" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "cartel de cruce ferroviario" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "paso a nivel" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "bodega de alimentos" @@ -152507,10 +155561,24 @@ msgstr "" msgid "pine lean-to" msgstr "cobertizo de pino" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "cobertizo de lona" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "tierra calcinada" @@ -152638,10 +155706,6 @@ msgstr "" msgid "smoothing" msgstr "Suavizar" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "Soldar" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "Martillar" @@ -152690,10 +155754,6 @@ msgstr "Destilar" msgid "tree cutting" msgstr "Cortar árbol" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "Cavar" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "Abulonar" @@ -152710,14 +155770,6 @@ msgstr "Desatornillar" msgid "fine screw driving" msgstr "Desatornillar bien" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "Carnear" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "Agujerear" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "Barretear" @@ -153850,6 +156902,12 @@ msgstr "" "Es un lugar para sentarse, cuyo respaldo se reclina para convertirlo en una " "cama incómoda." +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "dispositivo de rastreo" @@ -158138,10 +161196,14 @@ msgstr "Metés un cartucho en el/a %s." msgid "You refill the %s." msgstr "Rellenás el %s." -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "Ahí no hay nada para prender fuego." +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "Perdiste el objeto que estabas usando para encender el fuego." @@ -158850,6 +161912,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "Necesitás nicotina." @@ -161070,6 +164137,18 @@ msgstr "Releer el %s no es muy divertido para %s." msgid "Maybe you should find something new to read..." msgstr "Tal vez deberías encontrar algo nuevo para leer..." +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "Parece que te quedaste dormido/a a pesar de tu alarma interna..." + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "Parece que te quedaste dormido/a a pesar de la alarma..." + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "Tenés arcadas, pero tu estómago está vacío." + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "" @@ -161121,6 +164200,10 @@ msgstr "Hay otro vehículo en el medio." msgid "That part of the vehicle is currently unsafe." msgstr "Esa parte del vehículo, actualmente es insegura." +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "¿Querés zambullirte en el agua?" @@ -161177,6 +164260,10 @@ msgstr "¡Necesitás respirar! (%s para ir hacia la superficie.)" msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "¡Necesitás respirar pero no podés nadar! ¡Salí del agua, rápido!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "No hay criaturas hostiles al alcance. Se va a esperar un turno." @@ -161240,6 +164327,38 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "El/a %s no puede ser disparado/a en su estado actual." +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "No podés tirar con eficacia mientras estás dentro de tu caparazón." + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "Tirar objeto" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "No tenés ningún objeto para tirar." + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "No tenés ese objeto." + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "Eso es demasiado pesado para poder tirarlo." + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "Eso es parte de tu cuerpo, ¡no podés tirarlo!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "Te concentrás extremadamente, ¡y tu cuerpo obedece!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "No podés reunir las fuerzas necesarias para tirar nada..." + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -161276,19 +164395,13 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" @@ -162537,6 +165650,11 @@ msgstr "Te parás." msgid " stands up." msgstr " se para." +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "¡El %s se libera de las telarañas!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "¡Te conseguís liberar de las telarañas!" @@ -162549,6 +165667,11 @@ msgstr "¡ consigue liberarse de las telarañas!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "¡Intentás liberarte de las telarañas, pero no podés!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "¡El %s se escapa de la trampa ligera de lazo!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "¡Te conseguís liberar de la trampa ligera de lazo!" @@ -162561,6 +165684,11 @@ msgstr "¡ consigue liberarse de la trampa ligera de lazo!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "¡Intentás liberarte de la trampa ligera de lazo, pero no podés!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "¡El %s se escapa de la trampa pesada de lazo!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "¡Te conseguís liberar de la trampa pesada de lazo!" @@ -162573,6 +165701,16 @@ msgstr "¡ consigue liberarse de la trampa pesada de lazo!" msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "¡Intentás liberarte de la trampa pesada de lazo, pero no podés!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "¡El %s se escapa de la trampa para osos!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "¡Te conseguís liberar de la trampa para oso!" @@ -162609,6 +165747,21 @@ msgstr "¡Te escapás del pozo!" msgid " escapes the pit!" msgstr "¡ se escapa del pozo!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "Ya no estás agarrado." @@ -162909,6 +166062,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "un aullido penetrante!" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "a vos mismo soltando un aullido penetrante!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "un alarido fuerte!" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "a vos mismo gritando muy fuerte!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "un grito fuerte!" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "a vos mismo gritando!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "¡El sonido de tu voz está casi totalmente amortiguado!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "¡El sonido de tu voz está significativamente amortiguado!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "Vomitás." + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "Vomitás." + +#: src/character.cpp +msgid " throws up heavily!" +msgstr "¡ vomita mucho!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "¡Vomitás mucho!" + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "No Auto Agarrar" @@ -163594,97 +166805,10 @@ msgstr "Ascensor activado. Presione una tecla..." msgid "NEPower Mine(%d:%d) Log" msgstr "Registro de Mina NEPower(%d:%d)" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"NOTA 47:\n" -"Hemos desenterrado una cámara hueca durante nuestra rutina normal de excavación.\n" -"Esto no sería nada fuera de lo normal, excepto por la falla geológica extraña y perfectamente vertical que encontramos.\n" -"Esta falla geológica posee varias concavidades extrañas, las cuales han alarmado\n" -"a los miembros más supersticiosos del equipo; parecen ser de creadas por humanos.\n" -"\n" -"NOTA 48:\n" -"Las concavidades tienen entre 3 y 6 metros de alto, y son largas como la\n" -"falla. Cada una es vagamente de forma humana, pero las proporciones de\n" -"los miembros, el cuello y la cabeza son mayores, todos torcidos y\n" -"enroscados en sí mismos.\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "¿Seguir leyendo?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"NOTA 49:\n" -"Detuvimos las excavaciones en esta área, obviamente, hasta que los arqueólogos\n" -"puedan inspeccionar el lugar. Esto nos atrasará el programa por lo menos una semana.\n" -"Esta estúpida ley de preservación de artefactos hace 50 años que existe,\n" -"y ni siquiera la han derogado a pesar de que la minería es la columna vertebral\n" -"de nuestro economía.\n" -"\n" -"NOTA 52:\n" -"Todavía estamos esperando a los arqueólogos. Hemos hecho una pequeña inspección\n" -"de la falla geológica; nuestro equipo sonoro no alcanza para determinar la profundidad\n" -"de las concavidades. El equipo está puesto en 24 km de profundidad, pero\n" -"no está diseñado para túneles tan angostos, así que resulta difícil saber exactamente\n" -"hasta dónde llegan.\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"NOTA 54:\n" -"Vi a un par de tipos abajo en la cámara con un cincel, rompiendo un pedazo\n" -"de la pared vertical. Estoy mirando para el otro lado. No creo que los\n" -"cabeza de huevo se vayan a dar cuenta de que falta un pedazo. Que se jodan.\n" -"\n" -"NOTA 55:\n" -"Bueno, los arqueólogos están abajo con un par de los muchachos que los\n" -"guían. No son como Indiana Jones, dudo de que hayan estado antes a menos\n" -"de 6 metros. Odio tener que mandar a los muchachos a cuidar a los científicos,\n" -"pero si se lastiman nos van a cerrar la excavación por quién sabe cuánto.\n" -"\n" -"NOTA 58:\n" -"¿Estan llamando a OTRO GRUPO MÁS? Puta madre, ¡solamente es una cueva\n" -"tallada! Ya sé que eso es importante, ¿pero no lo pueden manejar ellos?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "PROYECTO AMIGARA" @@ -163698,38 +166822,10 @@ msgstr "" "SITIO %d%d%d\n" "LOS REGISTROS PERTINENTES DEL CAPATAZ SERÁN AGREGADOS A LAS NOTAS" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" -"\n" -"OPERACIONES EN LA MINA SUSPENDIDAS, EL CONTROL FUE TRANSFERIDO\n" -"AL PROYECTO AMIGARA BAJO EL IMPERATIVO 2:07B\n" -"EL SONDEO DE LA FALLA GEOLÓGICA DETERMINÓ SU PROFUNDIDAD\n" -"EN 30.09 KM\n" -"SE ENCONTRÓ DAÑO EN LA FALLA; EL EQUIPO DE LA MINA NEPOWER\n" -"FUE ARRESTADO BAJO LA REGULACIÓN 87.08 Y TRANSFERIDO AL\n" -"LABORATORIO 89-C PARA SER USADOS COMO SUJETOS\n" -"LA CALIDAD DE LA FALLA NO ESTÁ COMPROMETIDA\n" -"INICIANDO PRUEBA DE TEMBLOR ESTÁNDAR..." - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ARCHIVO DAÑADO, PRESIONE UNA TECLA..." -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "" - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--ACCESO PERMITIDO--" @@ -166104,6 +169200,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "Mostrar niveles de categorías de mutación" @@ -166276,6 +169376,10 @@ msgstr "Masculino" msgid "no faction" msgstr "" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -170143,27 +173247,6 @@ msgstr "" "Comida: %15d (kcal)\n" " \n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" -"Notas:\n" -"%s\n" -" \n" -"Habilidad usada: %s\n" -"Dificultad: %d\n" -"%s \n" -"Riesgo: Ninguno\n" -"Tiempo: %s\n" - #: src/faction_camp.cpp #, c-format msgid "" @@ -171796,6 +174879,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Sin más combustible puede durar %s." +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -172073,38 +175168,6 @@ msgstr "para disparar" msgid "Drop where?" msgstr "¿Soltar en dónde?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "No podés tirar con eficacia mientras estás dentro de tu caparazón." - -#: src/game.cpp -msgid "Throw item" -msgstr "Tirar objeto" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "No tenés ningún objeto para tirar." - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "No tenés ese objeto." - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "Eso es demasiado pesado para poder tirarlo." - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "Eso es parte de tu cuerpo, ¡no podés tirarlo!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "Te concentrás extremadamente, ¡y tu cuerpo obedece!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "No podés reunir las fuerzas necesarias para tirar nada..." - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -172430,6 +175493,11 @@ msgid "Really step into %s?" msgstr "¿Seguro? ¿Querés meterte en %s?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -172437,6 +175505,14 @@ msgstr "" msgid "Can't find grabbed object." msgstr "No se encuentra objeto agarrado." +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -172497,12 +175573,27 @@ msgstr "¡Te lastimaste el pie izquierdo en el %s!" msgid "You hurt your right foot on the %s!" msgstr "¡Te lastimaste el pie derecho en el %s!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "¡Te cortaste en el %1$s con el %2$s!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "Empujás el/a %s para abrirte paso." + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -172512,6 +175603,10 @@ msgstr "Desplazás el %s." msgid "There's something here, but you can't see what it is." msgstr "Hay algo acá, pero no podés ver lo que es." +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -172556,6 +175651,11 @@ msgstr "Acá están los controles del vehículo." msgid "%s to drive." msgstr "%s para manejar." +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -173663,11 +176763,6 @@ msgstr "El/a %s es demasiado grande como para empujarlo." msgid "There is too much stuff in the way." msgstr "Hay demasiadas cosas en el medio." -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "Empujás el/a %s para abrirte paso." - #: src/gates.cpp msgid "stuff" msgstr "cosas" @@ -173676,6 +176771,11 @@ msgstr "cosas" msgid "No vehicle at grabbed point." msgstr "No hay un vehículo en el lugar de agarre." +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -174171,14 +177271,30 @@ msgstr "Auto-moverse cancelado" msgid "Unknown command: \"%s\" (%ld)" msgstr "Comando desconocido: \"%s\" (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "No podés abrir cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "No podés cerrar cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "No podés destrozar cosas mientras estás dentro de tu caparazón." @@ -174192,26 +177308,50 @@ msgstr "" msgid "You can't move mass quantities while you're in your shell." msgstr "No podés mover grupos de cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "No podés agarrar cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "No podés arrastrar objetos mientras estás en tu caparazón." +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "No podés carnear mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "No podés espiar por la esquina mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "" @@ -174222,10 +177362,18 @@ msgstr "" msgid "You can't craft while you're in your shell." msgstr "No podés fabricar mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "No podés desarmar objetos mientras estás manejando." +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "No podés construir cosas mientras estás dentro de un vehículo." @@ -174234,6 +177382,10 @@ msgstr "No podés construir cosas mientras estás dentro de un vehículo." msgid "You can't construct while you're in your shell." msgstr "No podés construir cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -174317,6 +177469,7 @@ msgstr "%s ahora son %s." #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -175809,10 +178962,26 @@ msgstr "" "No se encontró paciente en los sofás conectados. Operación imposible. " "Abandonando." +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name @@ -175861,6 +179030,26 @@ msgstr "No tenés instalado ningún biónico." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s no tiene instalado ningún biónico." +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "" @@ -181665,6 +184854,11 @@ msgstr "Sacar plato" msgid "Really stop cooking?" msgstr "¿Seguro que querés dejar de cocinar?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -185124,6 +188318,32 @@ msgstr "" "Este estilo te fuerza a usar golpes desarmados, incluso si estás " "empuñando un arma." +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -185280,10 +188500,6 @@ msgstr "La incomodidad en tu torso te saca de balance." msgid "You can't hit reliably due to your farsightedness." msgstr "No podés acertarle a nada confiablemente debido a tu hipermetropía." -#: src/melee.cpp -msgid "You feint." -msgstr "Amagás." - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "Le errás y te tropezás por el ímpetu." @@ -185922,27 +189138,10 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"Ganancia: $8/hora\n" -"Peligro: Mínimo\n" -"Tiempo: 1 hora mínimo\n" -" \n" -"Asigar a uno de tus aliados a trabajo doméstico es una manera segura de enseñarle las habilidades básicas y de generar reputación en el puesto. Eso sí, no esperes mucha recompensa a cambio." - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"Ganancia: $8/hora\n" -"Peligro: Mínimo\n" -"Tiempo: 1 hora mínimo\n" -" \n" -"Equipo de Trabajo:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -187459,16 +190658,6 @@ msgid "The %s tries to grab you as well, but you bat it away!" msgstr "" "¡El %s te intenta agarrar a vos también, pero lo golpeás para evitarlo!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "¡El %s intenta agarrarte, pero rompés su agarre!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "¡El %s intenta agarrar a , pero rompen su agarre!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -188521,6 +191710,11 @@ msgstr "" msgid "Attach bag" msgstr "Conectar bolso" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -188558,6 +191752,54 @@ msgstr "Romper pelota de feromonas" msgid "Milk %s" msgstr "Ordeñar %s" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -188571,6 +191813,11 @@ msgstr "¿Seguro? ¿Matar al zombi esclavo?" msgid "Pet armor" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -188635,6 +191882,11 @@ msgstr "" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -189110,26 +192362,6 @@ msgstr "¡Sentís como te entra la ponzoña en el cuerpo!" msgid "The %s climbs to its feet!" msgstr "¡El %s se vuelve a parar!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "¡El %s se libera de las telarañas!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "¡El %s se escapa de la trampa ligera de lazo!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "¡El %s se escapa de la trampa pesada de lazo!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "¡El %s se escapa de la trampa para osos!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -190024,7 +193256,7 @@ msgid "activated" msgstr "activado" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -195077,55 +198309,31 @@ msgid " attempts to put out the fire on them!" msgstr "¡ intenta apagar el fuego que tiene encima!" #: src/player.cpp -msgid "a piercing howl!" -msgstr "un aullido penetrante!" - -#: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "a vos mismo soltando un aullido penetrante!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "un alarido fuerte!" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "a vos mismo gritando muy fuerte!" +msgid "You spur your steed into a gallop." +msgstr "" #: src/player.cpp -msgid "a loud shout!" -msgstr "un grito fuerte!" +msgid "You start running." +msgstr "Empezás a correr." #: src/player.cpp -msgid "yourself shout loudly!" -msgstr "a vos mismo gritando!" +msgid "Your steed is too tired to go faster." +msgstr "" #: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "¡El sonido de tu voz está casi totalmente amortiguado!" +msgid "You're too tired to run." +msgstr "Estás muy cansado para correr." #: src/player.cpp -msgid "an indistinct voice" +msgid "You slow your steed to a walk." msgstr "" #: src/player.cpp -msgid "your muffled shout" +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "¡El sonido de tu voz está significativamente amortiguado!" - -#: src/player.cpp -msgid "You start running." -msgstr "Empezás a correr." - -#: src/player.cpp -msgid "You're too tired to run." -msgstr "Estás muy cansado para correr." - -#: src/player.cpp -msgid "You start crouching." +msgid "You nudge your steed to a steady trot." msgstr "" #: src/player.cpp @@ -196326,28 +199534,6 @@ msgstr "Tu %s roto/a empieza a sanar." msgid "Your %s has started to mend!" msgstr "¡Tu %s empezó a sanar!" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "Vomitás." - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "Vomitás." - -#: src/player.cpp -msgid " throws up heavily!" -msgstr "¡ vomita mucho!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "¡Vomitás mucho!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "Tenés arcadas, pero tu estómago está vacío." - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -196991,14 +200177,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "Hibernación comenzada." -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "Parece que te quedaste dormido/a a pesar de tu alarma interna..." - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "Parece que te quedaste dormido/a a pesar de la alarma..." - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -197094,6 +200272,32 @@ msgstr "Dejás de arrastrar objetos." msgid "Your body strains under the weight!" msgstr "¡Tu cuerpo se esfuerza en mantener tanto peso!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "¡Te lastimás!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "" + #: src/player.cpp msgid "Wielding: " msgstr "Empuñando: " @@ -198458,6 +201662,10 @@ msgstr "¡kerblam!" msgid "none" msgstr "nada" +#: src/recipe.cpp +msgid "none" +msgstr "" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -198734,6 +201942,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "Pisó plástico de burbuja." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "¡Pop!" @@ -198787,6 +202000,11 @@ msgstr "¡Una trampa para osos se cierra en tu pie!" msgid "A bear trap closes on 's foot!" msgstr "¡Una trampa para osos se cierra en el pie de !" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -198805,6 +202023,11 @@ msgstr "¡Pisás una tabla con púas!" msgid " steps on a spiked board!" msgstr "¡ pisa una tabla con púas!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -198823,6 +202046,11 @@ msgstr "¡Pisás un miguelito puntiagudo de metal!" msgid " steps on a sharp metal caltrop!" msgstr "¡ pisa un miguelito puntiagudo de metal!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -198863,6 +202091,16 @@ msgstr "¡Tropezás con una cuerda de trampa!" msgid " trips over a tripwire!" msgstr "¡ tropieza con una cuerda de trampa!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "¡Detonás una trampa de ballesta!" @@ -198909,6 +202147,11 @@ msgstr "¡Un rayo sale disparado, pero no golpea al %s!" msgid "Kerblam!" msgstr "¡Kerblam!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "¡Detonás una trampa de escopeta!" @@ -198932,6 +202175,11 @@ msgstr "Detonó una trampa de escopeta." msgid "A shotgun fires and hits the %s!" msgstr "¡Una escopeta se dispara y golpea al %s!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "¡Una cuchilla aparece y te golpea en el torso!" @@ -198954,6 +202202,11 @@ msgstr "Detonó una trampa de cuchilla." msgid "Snap!" msgstr "¡Snap!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "Un lazo se cierra en tu pierna." @@ -198972,7 +202225,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "Detonó una trampa ligera de lazo." -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -199106,6 +202363,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "Entró en un disector." +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr "¡ se cae en un pozo!" @@ -199136,14 +202398,15 @@ msgstr "" "¡Golpeás fuertemente contra el suelo, pero tus amortiguadores manejan el " "impacto de manera admirable!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "¡Te lastimás!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "Aterrizás hábilmente." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "¡Te caés en un pozo con púas!" @@ -199222,6 +202485,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "Se metió en la lava." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "No pudiste sujetarlo..." @@ -199239,6 +202507,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr " se mete en un sumidero, pero logra salir y salvarse." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -200595,6 +203868,11 @@ msgstr "El/a %s está atascado." msgid "The %s's engine emits a sneezing sound." msgstr "El motor del %s emite un sonido como si estornudara." +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -200644,6 +203922,10 @@ msgstr "El %2$s del %1$s atropella el/a %3$s." msgid "The %1$s's %2$s runs over something." msgstr "El %2$s del %1$s atropella algo." +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "" @@ -201217,6 +204499,36 @@ msgstr "" "Ponés un poco de detergente en el lavarropas, cerrás la tapa, y lo encendés." " El lavarropas se está llenando con el agua de los tanques del vehículo." +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "Examinar vehículo" @@ -201257,6 +204569,10 @@ msgstr "Capturar o liberar criatura" msgid "Load or unload a vehicle" msgstr "Cargar o descargar vehículo" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "" diff --git a/lang/po/es_ES.po b/lang/po/es_ES.po index 7bc56121fac51..997a05eb87e5d 100644 --- a/lang/po/es_ES.po +++ b/lang/po/es_ES.po @@ -5,18 +5,18 @@ # keno xite , 2019 # Emma Forner, 2019 # lokatronao , 2019 -# Vlasov Vitaly , 2019 # Miguel de Dios Matias , 2019 # Toni López , 2019 # Brett Dong , 2019 +# Vlasov Vitaly , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Brett Dong , 2019\n" +"Last-Translator: Vlasov Vitaly , 2019\n" "Language-Team: Spanish (Spain) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/es_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1557,6 +1557,15 @@ msgstr "" "Esto es un abalorio de madera. Puede usarse para fabricar joyería " "inscribible o para crear una puerta de cortina de cuentas." +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "" @@ -2605,6 +2614,18 @@ msgid_plural "reloaded .38 Super" msgstr[0] ".38 Super recargada" msgstr[1] ".38 Super recargadas" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "" @@ -2639,7 +2660,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" @@ -2842,6 +2863,17 @@ msgstr "" "Es una granada 40mm con carga de gas lacrimógeno. Su explosión libera una " "nube de gas muy incapacitante." +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 Magnum FMJ" @@ -2879,6 +2911,17 @@ msgstr ".44 Magnum FMJ recargada" msgid "reloaded .44 Magnum" msgstr ".44 Magnum recargadas" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr "cartucho de papel del .44" @@ -2970,6 +3013,104 @@ msgstr "" msgid "reloaded .454 Casull" msgstr ".454 Casull recargadas" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr "" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr "" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr "" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4.6x30mm" @@ -3851,6 +3992,22 @@ msgstr "cartuchos de dardos perforantes recargados" msgid "reloaded shotgun slug" msgstr "postas recargadas de escopeta" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "cartuchos 00" @@ -6058,13 +6215,10 @@ msgstr[1] "trajes de chatarra" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." msgstr "" -"Un traje hecho con pedazos de metal asegurados por simples cuerdas. Brinda " -"una protección decente, pero unas placas holgadas no ofrecen la protección " -"más conveniente." #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -14318,6 +14472,38 @@ msgid "A pair of neoprene swimming booties, with individual toes." msgstr "" "Un par de botas de nado de neopreno, con espacio individual para cada dedo." +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -15158,6 +15344,20 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -18212,6 +18412,7 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -18220,7 +18421,8 @@ msgstr[1] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -22610,7 +22812,7 @@ msgstr[1] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" @@ -23076,11 +23278,8 @@ msgstr[1] "" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"Es un pedazo de pulmón de un animal. Es esponjoso y rosa, y se pudre muy " -"rápido. Puede ser una exquisitez si se lo prepara correctamente, pero si se " -"lo prepara mal, es un pedazos gomoso de tejido conectivo sin sabor." #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -23091,7 +23290,7 @@ msgstr[1] "" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" @@ -29070,7 +29269,7 @@ msgstr[1] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" @@ -34559,6 +34758,30 @@ msgstr[1] "tazones de plástico" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "botella de acero" +msgstr[1] "botellas de acero" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "botella plegable de plástico" +msgstr[1] "botellas plegables de plástico" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Es una botella flexible de plástico, fácil de transportar, que puede " +"contener hasta 500 ml." + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -34607,17 +34830,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "botella de acero" -msgstr[1] "botellas de acero" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Es una botella de acero inoxidable, que puede contener hasta 750 ml." - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -34631,19 +34843,6 @@ msgstr "" "Un pedazo medio arrugado de papel aluminio, usado para cocinar y para " "hornear." -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "botella plegable de plástico" -msgstr[1] "botellas plegables de plástico" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Es una botella flexible de plástico, fácil de transportar, que puede " -"contener hasta 500 ml." - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -35270,6 +35469,10 @@ msgstr[1] "cadáveres" msgid "A dead body." msgstr "Es un cadáver." +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "fuego cercano" @@ -35309,8 +35512,10 @@ msgstr[1] "plantas marchitas" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "Es una planta muerta. Sirve para encender fuegos." +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -41952,6 +42157,17 @@ msgstr[1] "vainas .45 ACP" msgid "An empty casing from a .45 ACP round." msgstr "Un caquillo de una bala calibre .45 ACP." +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -42155,6 +42371,19 @@ msgid "" "Merchants in the Refugee Center." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -43197,6 +43426,17 @@ msgstr "" "Una versión improvisada de una bayoneta que consiste en una mera punta con " "alguna cadena." +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "lanza de piedra" +msgstr[1] "lanzas de piedra" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "Es un palo grueso de madera con una piedra afilada en la punta." + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -43306,6 +43546,24 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "lata de utensilios" +msgstr[1] "latas de utensilios" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"Una olla-bandeja compacta, de estilo militar, diseñada para calentar la " +"comida sobre un fuego o cocina portátil. No es tan honda como una olla " +"propiamente dicha, y le faltan las resistencias térmicas que poseen los " +"modernos kits de utensilios." + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -46080,6 +46338,30 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -46205,6 +46487,28 @@ msgstr[1] "" msgid "A small book, containing spells created by a novice magician." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -46828,35 +47132,6 @@ msgid_plural "integral EMP projectors" msgstr[0] "proyector PEM integral" msgstr[1] "proyectores PEM integrales" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "lanza de piedra" -msgstr[1] "lanzas de piedra" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "Es un palo grueso de madera con una piedra afilada en la punta." - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "lata de utensilios" -msgstr[1] "latas de utensilios" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"Una olla-bandeja compacta, de estilo militar, diseñada para calentar la " -"comida sobre un fuego o cocina portátil. No es tan honda como una olla " -"propiamente dicha, y le faltan las resistencias térmicas que poseen los " -"modernos kits de utensilios." - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -51063,6 +51338,17 @@ msgstr "Armas Reales Extendidas" msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "Añade más tipos de munición superpuestos y más armas de fuego reales." +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "" @@ -51176,11 +51462,9 @@ msgstr "zombi cicatrizado" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." msgstr "" -"Es un cuerpo humano deformado, su piel se ha transformado en un grueso " -"envoltorio calloso de tejido cicatrizal." #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -51471,11 +51755,9 @@ msgstr "espectro" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "" -"Una sombra gigantesca, cambiando caóticamente de forma y volumen. Dos " -"esferas penetrantes de luz dominan lo que podría describirse como la cabeza." #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -51537,11 +51819,8 @@ msgstr "rot-weiler" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." +" chains of pulsing cysts and slime-dribbling ulcers." msgstr "" -"Este cadáver canino va acompañado por un olor agrio. Su cuerpo entero está " -"cubierto con una sucesión de quistes que palpitan y de úlceras que gotean " -"baba." #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -51550,9 +51829,12 @@ msgstr "ojobot" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" #: lang/json/MONSTER_from_json.py @@ -52345,11 +52627,9 @@ msgstr "zombi" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." msgstr "" -"Es un cuerpo humano que se arrastra para moverse, y con una ira incontenible" -" en sus aceitosos ojos negros." #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -53335,11 +53615,9 @@ msgstr "PEM-hack" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada de pulso electromagnético adentro." #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -53348,11 +53626,9 @@ msgstr "C4-hack" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"C-4 adentro." #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -53361,11 +53637,9 @@ msgstr "destello-hack" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada de destello adentro." #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -53374,11 +53648,9 @@ msgstr "lacrimo-hack" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada de gas lacrimógeno adentro." #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -53387,11 +53659,9 @@ msgstr "grana-hack" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." msgstr "" -"Es un drone kamikaze automatizado del tamaño de un puño, que parece tener " -"una granada adentro." #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -53400,11 +53670,9 @@ msgstr "manhack" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." msgstr "" -"Es un drone automatizado antipersonal, un robot del tamaño de un puño " -"cubierto con cuchillas zumbantes." #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -53413,8 +53681,8 @@ msgstr "minibom-hack" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "" #: lang/json/MONSTER_from_json.py @@ -58020,6 +58288,61 @@ msgstr "" msgid "Evens out damage among your limbs." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "" @@ -58122,6 +58445,50 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -61010,6 +61377,19 @@ msgid "" "EMP field that damages robots and drains bionic energy." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -65637,8 +66017,8 @@ msgstr "Enciendes la mecha de la bomba de tubo." #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" #: lang/json/TOOL_from_json.py @@ -66560,13 +66940,10 @@ msgstr[1] "" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" -"Es una lanza corta hecha en casa con un palo de madera y una forma metálica " -"puesta y atada en la punta. Su práctico mango y decente construcción la " -"convierten en una buena arma, bastante efectiva." #: lang/json/TOOL_from_json.py msgid "spray can" @@ -67937,6 +68314,33 @@ msgid "" "supplies." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -68100,6 +68504,21 @@ msgstr "" "Es un pedazo de plástico. Puede ser usado para fabricar, reparar o reforzar " "objetos de plástico." +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "cocina de hexamina" +msgstr[1] "cocinas de hexamina" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "" +"Conocida como la cocina Esbit, esta es una cocina liviana, plegable, " +"diseñada para usar pequeñas pastillas de hexamina para cocinar." + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -68236,6 +68655,19 @@ msgid "" "used as a comfortable sleeping place. It's rolled and ready for carrying." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "yesquero" +msgstr[1] "yesqueros" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -69375,6 +69807,19 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -69798,21 +70243,6 @@ msgstr "" "Es un gnomo de jardín totalmente normal e indefenso. Puede tener hasta 100 " "balas 9 mm." -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "yesquero" -msgstr[1] "yesqueros" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "" -"Es un encendedor hecho con pedernal y acero al carbono. Se utiliza para " -"iniciar una llama." - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -69857,19 +70287,6 @@ msgstr "" "controlar la entrada de aire. Adentro tiene una brasa encendida, y puede " "usarse para encender una fogata." -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "hacha de mano" -msgstr[1] "hachas de mano" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -69934,36 +70351,6 @@ msgstr "" "Un gran odre sellado lleno con leche que está en pleno proceso de " "convertirse en una especie de queso. Tiene vinagre y cuajo natural agregado." -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "cocina de hexamina" -msgstr[1] "cocinas de hexamina" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "" -"Conocida como la cocina Esbit, esta es una cocina liviana, plegable, " -"diseñada para usar pequeñas pastillas de hexamina para cocinar." - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "hacha improvisada" -msgstr[1] "hachas improvisadas" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "" -"Es un pedazo de acero afilado y sujetado a un palo. Funciona bastante bien " -"como hacha, pero la verdad es que no se puede comparar con un hacha seria." - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -71227,6 +71614,17 @@ msgstr "" "gelatinosa que controla su cuerpo está en estado de coma, esperando tus " "órdenes. Usa este objeto para despertar a este secuaz." +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "rueda" @@ -71591,303 +71989,303 @@ msgstr "" "pesadas." #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "¿Parar de recargar?" +msgid "reloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "¿Parar de leer?" +msgid "reading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "¿Parar de tocar?" +msgid "playing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "¿Parar de esperar?" +msgid "waiting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "¿Parar de fabricar?" +msgid "crafting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "¿Dejas de desmontar?" +msgid "disassembly" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "¿Parar de descuartizar?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "Descuartizar" #: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" +msgid "field dressing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" +msgid "skinning" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" +msgid "quartering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" +msgid "dismembering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "¿Dejás de diseccionar?" - -#: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "¿Parar de recuperar cosas?" - -#: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "¿Parar de buscar comida?" - -#: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "¿Parar de construir?" - -#: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "¿Parar de interactuar con el vehículo?" +msgid "dissecting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "¿Parar de entrenar?" +msgid "salvaging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" +msgid "foraging" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "¿Parar de usar los primeros auxilios?" +msgid "construction" +msgstr "construcción" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "¿Parar de pescar?" +msgid "interacting with the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "¿Parar de hacer una mina?" +msgid "training" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "¿Parar de hacer la madriguera?" +msgid "socializing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "¿Parar de destrozar?" +msgid "using first aid" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" +msgid "fishing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "¿Parar de desestresarte?" +msgid "mining" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "¿Parar de cortar tejidos?" +msgid "burrowing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "¿Parar de soltar?" +msgid "smashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "¿Parar de almacenar?" +msgid "cranking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "¿Parar de recoger?" +msgid "de-stressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "¿Parar de mover objetos?" +msgid "cutting tissues" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" +msgid "dropping" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" +msgid "stashing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" +msgid "picking up" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "¿Dejar de cosechar los campos?" +msgid "moving items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "¿Dejar de fertilizar los campos?" +msgid "sorting out the loot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "¿Parar de interactuar con el inventario?" +msgid "tilling the farm plot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "¿Parar de juguetear con tu ropa?" +msgid "planting seeds" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "¿Parar de encender el fuego?" +msgid "harvesting plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "¿Parar de usar el cabestrante?" +msgid "fertilizing plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "¿Parar de llenar el contenedor?" +msgid "interacting with inventory" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "¿Parar de puentear el vehículo?" +msgid "fiddling with your clothes" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "¿Parar de apuntar?" +msgid "lighting the fire" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "¿Parar de usar el cajero automático?" +msgid "working the winch" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "¿Parar de intentar arrancar el vehículo?" +msgid "filling the container" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "¿Parar de soldar?" +msgid "hotwiring the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "¿Parar de crackear?" +msgid "aiming" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "¿Parar de reparar?" +msgid "using the ATM" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "¿Parar de arreglar?" +msgid "trying to start the vehicle" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "¿Parar de modificar el arma?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "Soldar" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" +msgid "cracking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "¿Parar de interactuar con el PNJ?" - -#: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "¿Parar de limpiar el escombro?" +msgid "repairing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "¿Parar de meditar?" +msgid "mending" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "¿Parar de lavar?" +msgid "modifying gun" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" +msgid "modifying tool" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" +msgid "interacting with the NPC" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drilling?" +msgid "clearing that rubble" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop digging?" +msgid "meditating" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" +msgid "washing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" +msgid "cutting the metal" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" +msgid "chopping down" +msgstr "" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "Agujerear" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "Cavar" + +#: lang/json/activity_type_from_json.py +msgid "filling" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "shaving" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "¿Dejás de jugar con tu mascota?" +msgid "cutting your hair" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "¿Dejás de intentar dormirte?" +msgid "playing with your pet" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" +msgid "trying to fall asleep" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" +msgid "unloading" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" +msgid "programming override" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" +msgid "putting on items" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" +msgid "communing with the trees" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" +msgid "eating" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" +msgid "consuming" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" +msgid "casting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" +msgid "studying" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" +msgid "drinking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" +msgid "using drugs" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" +msgid "using the mind splicer" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "hacking console" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -71898,6 +72296,10 @@ msgstr ".700 Nitro Express" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "clavos" @@ -73928,6 +74330,10 @@ msgstr "Const. Cama Improvisada" msgid "Build Straw Bed" msgstr "Const. Cama de Paja" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "" @@ -75279,6 +75685,26 @@ msgstr "" "Etiqueta de IA para cuando los monstruos son golpeados por el jugador. Si te" " aparece, esto es un bug." +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "Monstruo Dócil" @@ -75589,6 +76015,16 @@ msgstr "" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "Atado" @@ -75741,6 +76177,20 @@ msgstr "" msgid "The scream dazes you!" msgstr "¡El grito te deja aturdido!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "En LLamas" @@ -77593,6 +78043,54 @@ msgstr "" msgid "Your Frost Armor melts away." msgstr "" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "Atrapado en una trampa de lazo" @@ -78256,6 +78754,15 @@ msgstr "" "sobrevivientes. Y aunque no tengas equipo, siempre serás útil como eslavo o " "carne fresca." +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "" @@ -78470,8 +78977,7 @@ msgstr "" msgid "smash!" msgstr "¡smash!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "whump." @@ -78526,8 +79032,8 @@ msgid "" "notes for other survivors to read." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "¡crunch!" @@ -78623,6 +79129,17 @@ msgstr "cama de paja" msgid "Kinda itches when you lay on it." msgstr "" +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "lavabo" @@ -79093,10 +79610,20 @@ msgstr "" msgid "canvas wall" msgstr "pared de tela" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "¡slap!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "solapa de tela" @@ -79513,6 +80040,16 @@ msgstr "diana" msgid "A metal shooting target in the rough shape of a human." msgstr "Una diana de metal con una forma aproximada de un humano." +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -79530,15 +80067,32 @@ msgid "" "and... delicious?" msgstr "" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "juncos" @@ -79550,6 +80104,32 @@ msgid "" "edible." msgstr "" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "nenúfar" @@ -79661,6 +80241,13 @@ msgstr "" msgid "ergometer" msgstr "ergómetro" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -79724,6 +80311,13 @@ msgstr "whud." msgid "canvas floor" msgstr "piso de tela" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -79837,6 +80431,13 @@ msgstr "horno de arcilla" msgid "A kiln designed to bake clay pottery and bricks." msgstr "Un horno fabricado para cocer ladrillos y hacer alfarería." +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "roca pequeña" @@ -79872,6 +80473,11 @@ msgstr "¿Cómo vas a hacer para mover esto?" msgid "stone slab" msgstr "escalón de piedra" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "esposas" @@ -80710,14 +81316,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "cactus mutado" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "tatami" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "cactus mutado" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -80998,8 +81611,7 @@ msgstr "" msgid "auto" msgstr "automático" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "rifle" @@ -83385,6 +83997,46 @@ msgstr "" "El Taurus Raging Bull es un revólver de 5 disparos con calibre .454 Casull." " Tiene una potencia de parada impresionante." +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -84353,6 +85005,14 @@ msgid_plural "fusion blasters" msgstr[0] "pistola de fusión" msgstr[1] "pistolas de fusión" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -85994,6 +86654,18 @@ msgstr "" "reutilizable, multifunción, era usado comúnmente por el ejército de los " "Estados Unidos." +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -87546,6 +88218,22 @@ msgid "" "shooting. Increases damage output and weapon range." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "bajocañón" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -88277,10 +88965,6 @@ msgstr "" "Este lanzallamas miniatura está hecho para ser adjuntado a casi cualquier " "tipo de arma de fuego, lo que aumenta mucho su capacidad letal." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "bajocañón" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -92667,6 +93351,10 @@ msgstr "Ver Mapa de Olor" msgid "View Temperature Map" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "Estilo de barra lateral" @@ -92707,6 +93395,10 @@ msgstr "Activar/Desactivar auto hacer mina" msgid "Toggle Auto Foraging" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "Menú de Acción" @@ -93552,16 +94244,6 @@ msgstr "Centrifugar" msgid "Analyze blood" msgstr "Analizar sangre" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -96920,7 +97602,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" #: lang/json/mission_def_from_json.py @@ -97123,99 +97805,237 @@ msgstr "" "investigada." #: lang/json/mission_def_from_json.py -msgid "Return Field Data" +msgid "Reach Refugee Center" +msgstr "Llega al Centro de Refugiados" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" +msgid "Any luck? Bigger ones?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Yes! The home stretch!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "Llega al Centro de Refugiados" +msgid "Oh man, but we're so close!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -97308,6 +98128,157 @@ msgid "" "guess." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "Limpiar Plataforma de Atrás" @@ -97319,7 +98290,8 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" #: lang/json/mission_def_from_json.py @@ -97342,7 +98314,10 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." msgstr "" #: lang/json/mission_def_from_json.py @@ -97357,7 +98332,8 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" #: lang/json/mission_def_from_json.py @@ -97390,9 +98366,12 @@ msgstr "Recuperar Informe" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" #: lang/json/mission_def_from_json.py @@ -97410,11 +98389,11 @@ msgstr "¿Tienes los prospectos?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." +"you, here's your money." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" +msgid "Find 10 solar panels" msgstr "" #: lang/json/mission_def_from_json.py @@ -97422,11 +98401,9 @@ msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -97434,10 +98411,7 @@ msgid "If you can do this for us our survival options would vastly increase." msgstr "" #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." +msgid "Solar panels are pretty common on electric cars and on rooftops." msgstr "" #: lang/json/mission_def_from_json.py @@ -97447,17 +98421,19 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" +msgid "Find 100 canning jars" msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" #: lang/json/mission_def_from_json.py @@ -97469,17 +98445,17 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." +" If you reconsider let me know." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." msgstr "" #: lang/json/mission_def_from_json.py @@ -97787,6 +98763,97 @@ msgid "" "when meeting with them. Thank you once again marshal." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "Hacer 2 Destiladores" @@ -107461,6 +108528,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -107642,7 +108871,8 @@ msgstr "" msgid "Beggar" msgstr "" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "Refugiado" @@ -107666,6 +108896,14 @@ msgstr "" msgid "Reading this line is a bug" msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -107921,14 +109159,6 @@ msgstr "" msgid "Tester" msgstr "Tester" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "Bandido" @@ -107945,6 +109175,14 @@ msgstr "" msgid "officer" msgstr "" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "" @@ -107993,6 +109231,10 @@ msgstr "" msgid "Draco Dune" msgstr "" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "" @@ -108021,10 +109263,18 @@ msgstr "" msgid "Pablo Nunez" msgstr "" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "" @@ -108053,6 +109303,10 @@ msgstr "Mercenario" msgid "the intercom" msgstr "" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "Barbero" @@ -108489,10 +109743,6 @@ msgstr "sótano de la cabaña" msgid "cabin" msgstr "cabaña" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "terreno baldío" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "cabaña en ruinas" @@ -108820,6 +110070,30 @@ msgstr "" msgid "farm house roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "estación de servicio" @@ -109022,6 +110296,10 @@ msgstr "sótano del hotel" msgid "motel" msgstr "motel" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "entrada de negocio de mejoras del hogar" @@ -109074,6 +110352,10 @@ msgstr "" msgid "dollar store" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "CPD" @@ -109094,6 +110376,10 @@ msgstr "" msgid "daycare center" msgstr "guardería" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "" @@ -109802,6 +111088,10 @@ msgstr "morgue" msgid "fire station" msgstr "estación de bomberos" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "" @@ -109982,6 +111272,10 @@ msgstr "sala de conciertos" msgid "gambling hall" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "" @@ -110014,6 +111308,10 @@ msgstr "gimnasio fitness" msgid "dojo" msgstr "dojo" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "parque privado" @@ -110098,10 +111396,6 @@ msgstr "baño público" msgid "roadside foodcart" msgstr "carrito de la compra al borde de la carretera" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "" @@ -111493,6 +112787,32 @@ msgid "" "at least you have a loyal friend." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -116179,6 +117499,58 @@ msgid "" "serene with the world falling down around you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -120572,6 +121944,10 @@ msgstr "Algunos cadáveres pueden tener biónicos si los diseccionás." msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "No seas codicioso. Los objetos no sirven de nada si estás muerto." +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -125582,6 +126958,41 @@ msgstr "" "propuesto una redistribución estratégica en el complejo subterráneo conocido" " como la BÓVEDA, y allí continuar la producción de PE062." +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "Esto es una prueba del sistema de fragmento de código" @@ -126680,8 +128091,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -126816,7 +128227,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -133274,6 +134685,10 @@ msgstr "Me gustaría conocer un poco más de ti..." msgid "I want you to use this item." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "" @@ -133327,11 +134742,11 @@ msgid "Change your bionic power recharge rules..." msgstr "" #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "No importa." @@ -133481,6 +134896,22 @@ msgstr "" msgid "Show me what needs to be done at the camp." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -134581,204 +136012,6 @@ msgstr "" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "Acerca de la misión..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "Acerca de una de esas misiones..." - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Hola, alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Alguacil, me temo que no puedo hablar ahora." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "" -"Se supone que debo dirigir todas las preguntas a mi liderazgo, alguacil." - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "Hey, ciudadano... me parece que no pertenecés a este lugar." - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "Deberías meterte en tus propios asuntos, no hay nada que mirar aquí." - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "Si necesitas algo vas a tener que hablar con otra persona." - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "Señor." - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "Amigo, si puedes controlarte deberías enrolarte." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Señora" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "No me prestes atención..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Alguacil, espero que esté aquí para ayudarnos." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "" -"Señor, no sé cómo demonios llegó hasta aquí abajo pero si le queda un poco " -"de juicio se iría mientras pueda." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Señora, no sé cómo demonios llegó hasta aquí abajo pero si le queda un poco " -"de juicio se iría mientras pueda." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "¿Qué estás haciendo aquí abajo?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "¿Me puedes decir algo de estas instalaciones?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "¿Hay algo que sea necesario hacer?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "Me tengo que ir..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "Parece un plan decente..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"Estas instalaciones fueron construidas para brindar un refugio seguro en el " -"caso de un conflicto mundial. La bóveda puede contener varios cientos de " -"personas por unos años si todos los sistemas funcionan y se le da la " -"notificación suficiente. Lamentablemente, el sistema de energía fue dañado o" -" saboteado en algún momento y liberó una ráfaga extremadamente letal de " -"radiación. El suceso catastrófico duró por varios minutos y resultó en la " -"muerte de la mayoría de las personas ubicadas en el 2do piso y los " -"inferiores. Los que trabajan en este piso pudieron sellar los accesos a los " -"pisos inferiores antes de sucumbir a la radiación. La única cosa que nos " -"dicen los registros es que toda la presión de agua fue dirigida a los " -"niveles inferiores." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "" -"Sea lo que hayan hecho debe haber funcionado porque todavía estamos vivos..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "Señor, no está autorizado para estar aquí... debería irse." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "Señora, no está autorizada para estar aquí... debería irse." - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "" -"[MISSION] El capitán me mandó a conseguir una lista de frecuencias para ti." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "¿Necesitas ayuda?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "Me tengo que ir" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "" -"Estamos asegurando la matriz de comunicaciones externas de estas " -"instalaciones. Estoy bastante restringido en lo que puedo decir... busca a " -"mi comandante si tienes alguna pregunta." - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "Voy a intentar encontrar a tu comandante entonces..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" -"Estaba esperando que el capitán envíe a un mensajero. Esta es la lista que " -"estás buscando. De lo que podemos identificar, aquí están las frecuencias " -"que poseen tráfico. Muchas de las transmisiones son indescifrables sin " -"reparar o reemplazar el equipamiento de aquí. Cuando las instalaciones " -"fueron invadidas, el procedimiento estándar fue destruir el hardware de " -"encriptación para proteger los secretos federales y mantener la integridad " -"de la red de comunicaciones. Esperamos igual que algunos simples mensajes de" -" texto puedan ser recibidos." - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -137929,6 +139162,204 @@ msgstr "" msgid "What were you saying before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "Alguacil, espero que esté aquí para ayudarnos." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "" +"Señor, no sé cómo demonios llegó hasta aquí abajo pero si le queda un poco " +"de juicio se iría mientras pueda." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Señora, no sé cómo demonios llegó hasta aquí abajo pero si le queda un poco " +"de juicio se iría mientras pueda." + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "¿Qué estás haciendo aquí abajo?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "¿Me puedes decir algo de estas instalaciones?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "¿Hay algo que sea necesario hacer?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "Acerca de la misión..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "Acerca de una de esas misiones..." + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "Me tengo que ir..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "Parece un plan decente..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" +"Estas instalaciones fueron construidas para brindar un refugio seguro en el " +"caso de un conflicto mundial. La bóveda puede contener varios cientos de " +"personas por unos años si todos los sistemas funcionan y se le da la " +"notificación suficiente. Lamentablemente, el sistema de energía fue dañado o" +" saboteado en algún momento y liberó una ráfaga extremadamente letal de " +"radiación. El suceso catastrófico duró por varios minutos y resultó en la " +"muerte de la mayoría de las personas ubicadas en el 2do piso y los " +"inferiores. Los que trabajan en este piso pudieron sellar los accesos a los " +"pisos inferiores antes de sucumbir a la radiación. La única cosa que nos " +"dicen los registros es que toda la presión de agua fue dirigida a los " +"niveles inferiores." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "" +"Sea lo que hayan hecho debe haber funcionado porque todavía estamos vivos..." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Alguacil, estoy bastante sorprendido de verlo aquí." + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "Señor, no está autorizado para estar aquí... debería irse." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "Señora, no está autorizada para estar aquí... debería irse." + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "" +"[MISSION] El capitán me mandó a conseguir una lista de frecuencias para ti." + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "¿Necesitas ayuda?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "Me tengo que ir" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "" +"Estamos asegurando la matriz de comunicaciones externas de estas " +"instalaciones. Estoy bastante restringido en lo que puedo decir... busca a " +"mi comandante si tienes alguna pregunta." + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "Voy a intentar encontrar a tu comandante entonces..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" +"Estaba esperando que el capitán envíe a un mensajero. Esta es la lista que " +"estás buscando. De lo que podemos identificar, aquí están las frecuencias " +"que poseen tráfico. Muchas de las transmisiones son indescifrables sin " +"reparar o reemplazar el equipamiento de aquí. Cuando las instalaciones " +"fueron invadidas, el procedimiento estándar fue destruir el hardware de " +"encriptación para proteger los secretos federales y mantener la integridad " +"de la red de comunicaciones. Esperamos igual que algunos simples mensajes de" +" texto puedan ser recibidos." + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Hola, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Alguacil, me temo que no puedo hablar ahora." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "" +"Se supone que debo dirigir todas las preguntas a mi liderazgo, alguacil." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "Hey, ciudadano... me parece que no pertenecés a este lugar." + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "Deberías meterte en tus propios asuntos, no hay nada que mirar aquí." + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "Si necesitas algo vas a tener que hablar con otra persona." + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "Señor." + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "Amigo, si puedes controlarte deberías enrolarte." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "Señora" + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Hey señorita, ¿no le parece que estaría más segura si se queda conmigo?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "No me prestes atención..." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -137954,6 +139385,12 @@ msgstr "" msgid "Please, help me. I need food." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "" @@ -138120,10 +139557,26 @@ msgstr "" msgid "OK, I'll talk to them too." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "" @@ -138136,6 +139589,30 @@ msgstr "" msgid "Are you seriously wearing a dinosaur costume?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -138146,6 +139623,14 @@ msgstr "" msgid "Why cardboard?" msgstr "¿Y por qué de cartón?" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "" @@ -138158,6 +139643,27 @@ msgid "" " damage." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -138165,17 +139671,56 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Building a house?" +msgid "You said you were building a house?" msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "No." +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "" @@ -138235,10 +139780,6 @@ msgid "" "but I wouldn't say no." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "" @@ -138278,6 +139819,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "" @@ -138288,6 +139834,28 @@ msgid "" "come?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -138307,8 +139875,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -138368,6 +139936,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -138380,6 +139954,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -138404,12 +139989,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -138420,7 +140005,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -138462,6 +140047,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -138472,16 +140063,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -138496,12 +140111,30 @@ msgstr "" msgid "Sorry, not interested." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " "Help a poor sickly soul out?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "" @@ -138518,6 +140151,25 @@ msgstr "" msgid "Why are you camped out here if they won't let you in?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -138530,6 +140182,10 @@ msgstr "" "Tampoco que vengo controlándome el comosedice... los análisis de sangre que " "usan los doctores para molestarme cada un par de meses." +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -138551,6 +140207,95 @@ msgid "" "dead as a doornail. Or I guess undead." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "" @@ -138563,6 +140308,10 @@ msgstr "¿Qué estás haciendo acá afuera?" msgid "I couldn't help but notice, you're covered in fur." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -138585,7 +140334,7 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" #: lang/json/talk_topic_from_json.py @@ -138595,6 +140344,68 @@ msgid "" "them for hating it, I hate it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -138603,6 +140414,23 @@ msgid "" "for them, I don't think I can leave." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "" @@ -138865,10 +140693,94 @@ msgstr "" msgid "Why don't we talk about it some other time?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "" @@ -138917,10 +140829,6 @@ msgstr "" msgid "Hey again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -139395,6 +141303,102 @@ msgstr "" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -139435,6 +141439,57 @@ msgstr "" msgid "Sorry to hear that." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "" @@ -139458,18 +141513,143 @@ msgid "Yeah, no. I'm going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." +msgid "" +"Well that's good. If you're going to pull your own weight I guess that's an" +" improvement." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well that's good. If you're going to pull your own weight I guess that's an" -" improvement." +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Espero que hayas venido a comerciar." +msgid "Tell me more about that ranch of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -139477,15 +141657,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Superviso la provisión de comida para el centro. Hubo un saqueo importante " -"durante el pánico cuando vinimos, así que la mayoría de la comida " -"desapareció. Administré lo que nos quedó e hice lo que pude para incrementar" -" nuestros suministros. La putrefacción y el moho son más significativos en " -"la humedad del sótano así que priorizo la comida no perecedera, como la " -"harina de maíz, la cecina y el vino frutal." #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -139493,15 +141667,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Superviso la provisión de comida para el centro. Hubo un saqueo importante " -"durante el pánico cuando vinimos, así que la mayoría de la comida " -"desapareció. Administré lo que nos quedó e hice lo que pude para incrementar" -" nuestros suministros. La putrefacción y el moho son más significativos en " -"la humedad del sótano así que priorizo la comida no perecedera, como la " -"harina de maíz, la cecina y el vino frutal." #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -139509,57 +141677,125 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Superviso la provisión de comida para el centro. Hubo un saqueo importante " -"durante el pánico cuando vinimos, así que la mayoría de la comida " -"desapareció. Administré lo que nos quedó e hice lo que pude para incrementar" -" nuestros suministros. La putrefacción y el moho son más significativos en " -"la humedad del sótano así que priorizo la comida no perecedera, como la " -"harina de maíz, la cecina y el vino frutal." #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "¿Por qué harina de maíz, cecina y vino frutal?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" -"Los tres son fáciles de producir en cantidades significativas y no son " -"perecederos. Tenemos un granjero o dos y algunos cazadores que han estado " -"intentando proveernos con suministros nutritivos. Igual, siempre necesitamos" -" más proveedores. Como esto es bastante barato a granel, te puedo pagar con " -"un extra por lo que tengas. La comida enlatada y otros comestibles son " -"manejados por el mercader del frente." #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "¿Quieres comprar algo más?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "Muy bien..." +msgid "Very well... let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." msgstr "" -"En este momento estoy aceptando una cantidad de diferentes alimentos: " -"cerveza, azúcar, harina, carne ahumada, pescado ahumado, aceite de cocina; y" -" como dije antes, cecina, harina de maíz y vino frutal." #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "Interesante..." +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -139922,16 +142158,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "Señora, no debería estar viajando por ahí afuera." #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "Bienvenido, alguacil..." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Bienvenido..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "En realidad, soy nuevo..." +msgid "I heard this place was a refugee center..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -139941,6 +142169,14 @@ msgstr "¿Escuchaste algo del mundo exterior?" msgid "Is there any way I can join your group?" msgstr "¿Hay alguna forma en que me pueda hacer miembro de tu grupo?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "¿Puedo hacer algo por el centro?" @@ -139950,39 +142186,41 @@ msgid "I figured you might be looking for some help..." msgstr "Me supuse que estarías buscando ayuda..." #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." +msgid "Well, I'd better be going. Bye." msgstr "" -"Antes de que digas nada más, estamos llenos. Hace unos días tuvimos un brote" -" debido a la llegada de demasiados nuevos refugiados. Necesitamos " -"desesperadamente suministros y estamos dispuestos a cambiar lo que podamos " -"por ellos. Paga mucho dinero por la cecina, si es que la tienes." #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "No hay descanso para los cansados..." +msgid "Welcome marshal..." +msgstr "Bienvenido, alguacil..." + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Bienvenido..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." -msgstr "" -"Para ser sincero, empezamos con seis autobuses llenos de oficinistas y doñas" -" Rosas... luego del brote de refugiados hace un par de días, terminaron " -"muertos algunos de nuestros más valientes. La única cosa que queremos ahora " -"es comerciar lo suficiente como para mantenernos vivos. No nos importa de " -"dónde sacaste tus suministros o cómo los conseguiste, pero no nos traigas " -"problemas." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "Es igual de malo aquí afuera, si no peor." +msgid "It's just as bad out there, if not worse." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -139998,40 +142236,27 @@ msgstr "" "a los chatarreros tan despiadados, pero algunos de nosotros tuvimos que " "matar a nuestros propios hijos... ni siquiera pienses en intimidarnos." -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "Supongo que es la misma mierda en todos lados..." - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" msgstr "" -"[INT 12] Espera, seis autobuses y refugiados... ¿Cuánta gente todavía tienen" -" apretada aquí?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"Bueno, los refugiados estaban aquí en el primer piso cuando uno de sus " -"grupos intentó meter a un tipo que se estaba muriendo por la plataforma de " -"carga, y terminamos siendo despertados por alaridos y gritos. Unas dos " -"docenas de personas murieron esa noche. Los refugiados que quedaron fueron " -"expulsados el día siguiente y formaron un par de bandas de cartoneros. Diría" -" que tenemos unos decentes veinte hombres y mujeres, pero nuestra verdadera " -"fortaleza son nuestros comerciantes que están acostumbrados a hacer lo que " -"sea necesario para sobrevivir." #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "Supongo que funciona para ti..." +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -140049,10 +142274,6 @@ msgstr "" "muchos terminan haciendo ruido como para atraer a todos en el vecindario. " "Por suerte, no hemos tenido una horda de esas por aquí." -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "Gracias por el consejo." - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -140158,6 +142379,81 @@ msgstr "¿Conocés algo mejor que la provisión de armas raras?" msgid "Was hoping for something more..." msgstr "Estaba esperando algo más..." +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Alguacil..." @@ -140727,8 +143023,53 @@ msgid "Alright, I'll leave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "¿Te puedo ofrecer un recorte?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -141318,6 +143659,10 @@ msgid "" "there." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "Interesante..." + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -141782,10 +144127,30 @@ msgstr " contraataca al %s" msgid "Feint" msgstr "Amague" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "Romper Agarre" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "¡El %s intenta agarrarte, pero rompes su agarre!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "¡El %s intenta agarrar a , pero rompen su agarre!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -142520,11 +144885,13 @@ msgid "Crane Wing" msgstr "Ala de Grulla" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" -msgstr "Levantás tus brazos de manera intimidatoria" +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" +#, python-format +msgid " performs the Crane Wing at %s." msgstr "" #: lang/json/technique_from_json.py @@ -142532,12 +144899,14 @@ msgid "Crane Flap" msgstr "Aleteo de Grulla" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" msgstr "" #: lang/json/technique_from_json.py -msgid " flaps free" -msgstr " aletea y se libera" +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -142586,11 +144955,13 @@ msgid "Snake Slither" msgstr "Serpentear" #: lang/json/technique_from_json.py -msgid "You slither free" -msgstr "Serpenteás y te liberás" +#, python-format +msgid "The %s tries to grab you, but you slither free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" +#, python-format +msgid "The %s tries to grab , but they slither free!" msgstr "" #: lang/json/technique_from_json.py @@ -143286,12 +145657,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -144076,14 +146447,37 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "pared de bareque" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "pared de bareque rota" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "pared de bareque a medio construir" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "pared de madera" @@ -145549,30 +147943,134 @@ msgstr "" msgid "willow tree" msgstr "sauce" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "arce" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "árbol nueces pecanas" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "nogal" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "árbol nueces pecanas muerto" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -145586,10 +148084,30 @@ msgstr "" msgid "brush." msgstr "cepillo." +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "arbusto" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "" @@ -145741,22 +148259,49 @@ msgstr "Es un arbusto ancho de lilas pero sin flores." msgid "tree trunk" msgstr "tocón" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "tocón" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "pared de raíces" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "pared de cera" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "piso de cera" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "valla de madera" @@ -145861,6 +148406,11 @@ msgstr "" msgid "railing" msgstr "pasamanos" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "¡crack!" @@ -145869,6 +148419,11 @@ msgstr "¡crack!" msgid "glass railing" msgstr "" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "" @@ -145881,10 +148436,20 @@ msgstr "¡ker-rash!" msgid "metal railing" msgstr "" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "" @@ -146057,46 +148622,136 @@ msgstr "" msgid "shallow water" msgstr "agua poco profunda" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "agua profunda" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "charco de agua" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "agua cloacal" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "lava" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "arenero" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "tobogán" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "pasamanos" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "tablero" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "surtidor de gasolina" @@ -146114,14 +148769,31 @@ msgstr "" msgid "tank with gasoline" msgstr "tanque con gasolina" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "columna pequeña" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "surtidor de gasolina roto" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -146136,6 +148808,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "surtidor diésel roto" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "cajero automático" @@ -146159,6 +148838,12 @@ msgstr "" msgid "broken generator" msgstr "generador roto" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "misil" @@ -146364,6 +149049,13 @@ msgstr "" msgid "cloning vat" msgstr "tanque de clonación" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "plank" @@ -146372,6 +149064,16 @@ msgstr "plank" msgid "stairs" msgstr "escalera" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "alcantarilla" @@ -146388,22 +149090,68 @@ msgstr "" msgid "ladder" msgstr "escalera de mano" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "pendiente hacia abajo" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "pendiente hacia arriba" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "soga para subir" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "lector de tarjeta" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -146478,54 +149226,121 @@ msgstr "" msgid "elevator" msgstr "ascensor" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "pedestal oscuro" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "pedestal claro" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "piedra roja" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "piedra verde" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "piedra azul" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "suelo rojo" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "suelo verde" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "suelo azul" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "interruptor amarillo" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "interruptor turquesa" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "interruptor púrpura" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "interruptor de cuadros" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -146550,6 +149365,18 @@ msgstr "Alfombra púrpura suave." msgid "linoleum tile" msgstr "baldosa de linóleo" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "pared roja" @@ -146608,10 +149435,22 @@ msgstr "Pared pintada de morado." msgid "stone wall" msgstr "pared de piedra" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "pared de piedra a medio construir" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "pozo de agua cubierto" @@ -146645,33 +149484,64 @@ msgstr "refugio improvisado" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "techo plano" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "" @@ -146699,22 +149569,51 @@ msgstr "" msgid "telecom cabinet" msgstr "cabina de telecomunicación" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "cabina dañada de telecomunicación" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "soporte grande de metal" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "soporte chico de metal" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "disyuntor en aceite de alta tensión" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "¡pam!" @@ -146723,30 +149622,72 @@ msgstr "¡pam!" msgid "small HV oil circuit breaker" msgstr "disyuntor en aceite pequeño de alta tensión" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "dispositivo de distribución grande" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "conmutadores pequeños" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "pararrayos" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "interruptor de desconexión" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "transformador de corriente" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "transformador de potencial" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -146777,6 +149718,11 @@ msgstr "" msgid "bridge pavement" msgstr "pavimento puente" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "¡rotura de hormigón y chirrido de metal!" @@ -146785,22 +149731,61 @@ msgstr "¡rotura de hormigón y chirrido de metal!" msgid "bridge yellow pavement" msgstr "pavimento amarillo puente" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "acera del puente" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "guardarraíl" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "roble negro" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "montículo de arcilla" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "¡splash!" @@ -146809,10 +149794,20 @@ msgstr "¡splash!" msgid "mound of sand" msgstr "montículo de arena" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "cinta transportadora" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "ting." @@ -146821,18 +149816,38 @@ msgstr "ting." msgid "light machinery" msgstr "maquinaria ligera" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "maquinaria pesada" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "maquinaria antigua" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "maquinaria eléctrica" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "escaleras bajas (parte inicial)" @@ -146845,10 +149860,20 @@ msgstr "escaleras bajas (parte final)" msgid "milking machine" msgstr "" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "gravilla" @@ -146865,26 +149890,77 @@ msgstr "" msgid "railroad track" msgstr "vía de ferrocarril" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "suelo pintado encerado" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "" @@ -147041,10 +150117,24 @@ msgstr "" msgid "pine lean-to" msgstr "cobertizo de pino" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "cobertizo de lona" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "tierra calcinada" @@ -147172,10 +150262,6 @@ msgstr "" msgid "smoothing" msgstr "Suavizar" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "Soldar" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "Martillar" @@ -147224,10 +150310,6 @@ msgstr "Destilar" msgid "tree cutting" msgstr "Cortar árbol" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "Cavar" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "Apretar tornillo" @@ -147244,14 +150326,6 @@ msgstr "Destornillar" msgid "fine screw driving" msgstr "Destornillar bien" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "Descuartizar" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "Agujerear" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "Apalancar" @@ -148376,6 +151450,12 @@ msgstr "" "Es un lugar para sentarse, cuyo respaldo se reclina para convertirlo en una " "cama incómoda." +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "dispositivo de rastreo" @@ -152312,10 +155392,14 @@ msgstr "Metes un cartucho en el/la %s." msgid "You refill the %s." msgstr "Has rellenado el %s." -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "Ahí no hay nada para prender fuego." +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "Perdiste el objeto que estabas usando para encender el fuego." @@ -153008,6 +156092,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "Necesitas nicotina." @@ -155209,6 +158298,18 @@ msgstr "Releer el %s no es muy divertido para %s." msgid "Maybe you should find something new to read..." msgstr "Tal vez deberías encontrar algo nuevo para leer..." +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "" + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "Parece que te quedaste dormido/a a pesar de la alarma..." + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "Tienes arcadas, pero tu estómago está vacío." + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "" @@ -155260,6 +158361,10 @@ msgstr "Hay otro vehículo en el medio." msgid "That part of the vehicle is currently unsafe." msgstr "Esa parte del vehículo, actualmente es insegura." +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "¿Quieres zambullirte en el agua?" @@ -155316,6 +158421,10 @@ msgstr "¡Necesitas respirar! (%s para ir hacia la superficie.)" msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "¡Necesitas respirar pero no puedes nadar! ¡Sal del agua, rápido!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "" @@ -155377,6 +158486,38 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "" +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "No puedes tirar con eficacia mientras estás dentro de tu caparazón." + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "Tirar objeto" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "No tienes ningún objeto para tirar." + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "No tienes ese objeto." + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "Eso es demasiado pesado para poder tirarlo." + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "Eso es parte de tu cuerpo, ¡no puedes tirarlo!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "Te concentrás extremadamente, ¡y tu cuerpo obedece!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "No puedes reunir las fuerzas necesarias para tirar nada..." + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -155413,19 +158554,13 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" @@ -156655,6 +159790,11 @@ msgstr "Te parás." msgid " stands up." msgstr " se para." +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "¡El %s se libera de las telarañas!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "¡Te consigues liberarte de las telarañas!" @@ -156667,6 +159807,11 @@ msgstr "¡ consigue liberarse de las telarañas!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "¡Intentas liberarte de las telarañas, pero no puedes!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "¡El %s se escapa de la trampa ligera de lazo!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "¡Te consigues liberarte de la trampa ligera de lazo!" @@ -156679,6 +159824,11 @@ msgstr "¡ consigue liberarse de la trampa ligera de lazo!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "¡Intentas liberarte de la trampa ligera de lazo, pero no puedes!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "¡El %s se escapa de la trampa pesada de lazo!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "¡Te consigues liberarte de la trampa pesada de lazo!" @@ -156691,6 +159841,16 @@ msgstr "¡ consigue liberarse de la trampa pesada de lazo!" msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "¡Intentas liberarte de la trampa pesada de lazo, pero no puedes!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "¡El %s se escapa de la trampa para osos!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "¡Te consigues liberarte de la trampa para oso!" @@ -156727,6 +159887,21 @@ msgstr "¡Te escapás del pozo!" msgid " escapes the pit!" msgstr "¡ se escapa del pozo!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "Ya no estás agarrado." @@ -157026,6 +160201,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "a ti mismo soltando un aullido penetrante!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "a ti mismo gritando muy fuerte!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "a ti mismo gritando!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "¡El sonido de tu voz está significativamente amortiguado!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "Vomitas." + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "Vomitas." + +#: src/character.cpp +msgid " throws up heavily!" +msgstr "¡ vomita mucho!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "¡Vomitas mucho!" + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "No Auto-recogida" @@ -157703,97 +160936,10 @@ msgstr "Ascensor activado. Presione una tecla..." msgid "NEPower Mine(%d:%d) Log" msgstr "Registro de Mina NEPower(%d:%d)" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"NOTA 47:\n" -"Hemos desenterrado una cámara hueca durante nuestra rutina normal de excavación.\n" -"Esto no sería nada fuera de lo normal, excepto por la falla geológica extraña y perfectamente vertical que encontramos.\n" -"Esta falla geológica posee varias concavidades extrañas, las cuales han alarmado\n" -"a los miembros más supersticiosos del equipo; parecen ser de creadas por humanos.\n" -"\n" -"NOTA 48:\n" -"Las concavidades tienen entre 3 y 6 metros de alto, y son largas como la\n" -"falla. Cada una es vagamente de forma humana, pero las proporciones de\n" -"los miembros, el cuello y la cabeza son mayores, todos torcidos y\n" -"enroscados en sí mismos.\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "¿Seguir leyendo?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"NOTA 49:\n" -"Detuvimos las excavaciones en esta área, obviamente, hasta que los arqueólogos\n" -"puedan inspeccionar el lugar. Esto nos atrasará el programa por lo menos una semana.\n" -"Esta estúpida ley de preservación de artefactos hace 50 años que existe,\n" -"y ni siquiera la han derogado a pesar de que la minería es la columna vertebral\n" -"de nuestro economía.\n" -"\n" -"NOTA 52:\n" -"Todavía estamos esperando a los arqueólogos. Hemos hecho una pequeña inspección\n" -"de la falla geológica; nuestro equipo sonoro no alcanza para determinar la profundidad\n" -"de las concavidades. El equipo está puesto en 24 km de profundidad, pero\n" -"no está diseñado para túneles tan angostos, así que resulta difícil saber exactamente\n" -"hasta dónde llegan.\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"NOTA 54:\n" -"Vi a un par de tipos abajo en la cámara con un cincel, rompiendo un pedazo\n" -"de la pared vertical. Estoy mirando para el otro lado. No creo que los\n" -"cabeza de huevo se vayan a dar cuenta de que falta un pedazo. Que se jodan.\n" -"\n" -"NOTA 55:\n" -"Bueno, los arqueólogos están abajo con un par de los muchachos que los\n" -"guían. No son como Indiana Jones, dudo de que hayan estado antes a menos\n" -"de 6 metros. Odio tener que mandar a los muchachos a cuidar a los científicos,\n" -"pero si se lastiman nos van a cerrar la excavación por quién sabe cuánto.\n" -"\n" -"NOTA 58:\n" -"¿Estan llamando a OTRO GRUPO MÁS? Puta madre, ¡solamente es una cueva\n" -"tallada! Ya sé que eso es importante, ¿pero no lo pueden manejar ellos?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "PROYECTO AMIGARA" @@ -157805,28 +160951,10 @@ msgid "" "PERTINENT FOREMAN LOGS WILL BE PREPENDED TO NOTES" msgstr "" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ARCHIVO DAÑADO, PRESIONE UNA TECLA..." -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "" - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--ACCESO PERMITIDO--" @@ -160145,6 +163273,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "Mostrar niveles de categorías de mutación" @@ -160317,6 +163449,10 @@ msgstr "Masculino" msgid "no faction" msgstr "" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -164023,19 +167159,6 @@ msgstr "" "Comida: %15d (kcal)\n" " \n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "" @@ -165612,6 +168735,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "" +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -165889,38 +169024,6 @@ msgstr "para disparar" msgid "Drop where?" msgstr "¿Soltar en dónde?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "No puedes tirar con eficacia mientras estás dentro de tu caparazón." - -#: src/game.cpp -msgid "Throw item" -msgstr "Tirar objeto" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "No tienes ningún objeto para tirar." - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "No tienes ese objeto." - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "Eso es demasiado pesado para poder tirarlo." - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "Eso es parte de tu cuerpo, ¡no puedes tirarlo!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "Te concentrás extremadamente, ¡y tu cuerpo obedece!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "No puedes reunir las fuerzas necesarias para tirar nada..." - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -166232,6 +169335,11 @@ msgid "Really step into %s?" msgstr "¿Seguro? ¿Quieres meterte en %s?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -166239,6 +169347,14 @@ msgstr "" msgid "Can't find grabbed object." msgstr "No se encuentra objeto agarrado." +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -166299,12 +169415,27 @@ msgstr "¡Te lastimaste el pie izquierdo en el %s!" msgid "You hurt your right foot on the %s!" msgstr "¡Te lastimaste el pie derecho en el %s!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "¡Te cortaste tu %1$s con %2$s!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "Empujás el/a %s para abrirte paso." + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -166314,6 +169445,10 @@ msgstr "Desplazas el %s." msgid "There's something here, but you can't see what it is." msgstr "Hay algo aquí, pero no puedes ver lo que es." +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -166358,6 +169493,11 @@ msgstr "Aquí están los controles del vehículo." msgid "%s to drive." msgstr "%s para conducir." +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -167460,11 +170600,6 @@ msgstr "" msgid "There is too much stuff in the way." msgstr "Hay demasiadas cosas en el medio." -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "Empujás el/a %s para abrirte paso." - #: src/gates.cpp msgid "stuff" msgstr "cosa" @@ -167473,6 +170608,11 @@ msgstr "cosa" msgid "No vehicle at grabbed point." msgstr "No hay un vehículo en el lugar de agarre." +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -167962,14 +171102,30 @@ msgstr "Auto-moverse cancelado" msgid "Unknown command: \"%s\" (%ld)" msgstr "Comando desconocido: \"%s\" (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "No puedes abrir cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "No puedes cerrar cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "No puedes destrozar cosas mientras estás dentro de tu caparazón." @@ -167984,27 +171140,51 @@ msgid "You can't move mass quantities while you're in your shell." msgstr "" "No puedes mover grupos de cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "No puedes agarrar cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "No puedes descuartizar mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "" "No puedes espiar por la esquina mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "" @@ -168015,10 +171195,18 @@ msgstr "" msgid "You can't craft while you're in your shell." msgstr "No puedes fabricar mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "No puedes desmontar objetos mientras estás manejando." +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "No puedes construir cosas mientras estás dentro de un vehículo." @@ -168027,6 +171215,10 @@ msgstr "No puedes construir cosas mientras estás dentro de un vehículo." msgid "You can't construct while you're in your shell." msgstr "No puedes construir cosas mientras estás dentro de tu caparazón." +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -168111,6 +171303,7 @@ msgstr "%s es %s ahora." #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -169587,10 +172780,26 @@ msgid "" "Exiting." msgstr "" +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name @@ -169639,6 +172848,26 @@ msgstr "No tienes instalado ningún biónico." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s no tiene instalado ningún biónico." +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "" @@ -175381,6 +178610,11 @@ msgstr "Sacar plato" msgid "Really stop cooking?" msgstr "¿Seguro que quieres dejar de cocinar?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -178831,6 +182065,32 @@ msgstr "" "Este estilo te fuerza a usar golpes desarmados, incluso si estás " "empuñando un arma." +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -178987,10 +182247,6 @@ msgstr "La incomodidad en tu torso te desequilibra." msgid "You can't hit reliably due to your farsightedness." msgstr "No puedes acertarle a nada confiablemente debido a tu hipermetropía." -#: src/melee.cpp -msgid "You feint." -msgstr "Amagas." - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "Fallas y te tropiezas por el ímpetu." @@ -179622,27 +182878,10 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"Beneficios: 6.63€/hora\n" -"Peligro: Mínimo\n" -"Tiempo: 1 hora mínimo\n" -" \n" -"Asigar a uno de tus aliados a trabajo doméstico es una manera segura de enseñarle las habilidades básicas y de generar reputación en el puesto. Eso sí, no esperes mucha recompensa a cambio." - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"Beneficios: 6.63€/hora\n" -"Peligro: Mínimo\n" -"Tiempo: 1 hora mínimo\n" -" \n" -"Registro Laboral:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -181145,16 +184384,6 @@ msgid "The %s tries to grab you as well, but you bat it away!" msgstr "" "¡El %s te intenta agarrar a ti también, pero lo golpeas para evitarlo!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "¡El %s intenta agarrarte, pero rompes su agarre!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "¡El %s intenta agarrar a , pero rompen su agarre!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -182208,6 +185437,11 @@ msgstr "" msgid "Attach bag" msgstr "Conectar bolso" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -182245,6 +185479,54 @@ msgstr "Romper pelota de feromonas" msgid "Milk %s" msgstr "Leche %s" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -182258,6 +185540,11 @@ msgstr "¿Seguro? ¿Matar al zombi esclavo?" msgid "Pet armor" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -182322,6 +185609,11 @@ msgstr "" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -182797,26 +186089,6 @@ msgstr "" msgid "The %s climbs to its feet!" msgstr "¡El %s se pone de pie!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "¡El %s se libera de las telarañas!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "¡El %s se escapa de la trampa ligera de lazo!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "¡El %s se escapa de la trampa pesada de lazo!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "¡El %s se escapa de la trampa para osos!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -183707,7 +186979,7 @@ msgid "activated" msgstr "activado" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -188714,55 +191986,31 @@ msgid " attempts to put out the fire on them!" msgstr "¡ intenta apagar el fuego que tiene encima!" #: src/player.cpp -msgid "a piercing howl!" +msgid "You spur your steed into a gallop." msgstr "" #: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "a ti mismo soltando un aullido penetrante!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "a ti mismo gritando muy fuerte!" +msgid "You start running." +msgstr "Empiezas a correr." #: src/player.cpp -msgid "a loud shout!" +msgid "Your steed is too tired to go faster." msgstr "" #: src/player.cpp -msgid "yourself shout loudly!" -msgstr "a ti mismo gritando!" - -#: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "" +msgid "You're too tired to run." +msgstr "Estás muy cansado para correr." #: src/player.cpp -msgid "an indistinct voice" +msgid "You slow your steed to a walk." msgstr "" #: src/player.cpp -msgid "your muffled shout" +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "¡El sonido de tu voz está significativamente amortiguado!" - -#: src/player.cpp -msgid "You start running." -msgstr "Empiezas a correr." - -#: src/player.cpp -msgid "You're too tired to run." -msgstr "Estás muy cansado para correr." - -#: src/player.cpp -msgid "You start crouching." +msgid "You nudge your steed to a steady trot." msgstr "" #: src/player.cpp @@ -189954,28 +193202,6 @@ msgstr "Tu %s roto/a empieza a sanar." msgid "Your %s has started to mend!" msgstr "¡Tu %s empezó a sanar!" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "Vomitas." - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "Vomitas." - -#: src/player.cpp -msgid " throws up heavily!" -msgstr "¡ vomita mucho!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "¡Vomitas mucho!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "Tienes arcadas, pero tu estómago está vacío." - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -190611,14 +193837,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "Hibernación comenzada." -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "" - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "Parece que te quedaste dormido/a a pesar de la alarma..." - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -190714,6 +193932,32 @@ msgstr "" msgid "Your body strains under the weight!" msgstr "¡Tu cuerpo se esfuerza en mantener tanto peso!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "¡Te lastimas!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "" + #: src/player.cpp msgid "Wielding: " msgstr "Empuñando: " @@ -192068,6 +195312,10 @@ msgstr "¡kerblam!" msgid "none" msgstr "ninguno" +#: src/recipe.cpp +msgid "none" +msgstr "" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -192343,6 +195591,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "Pisó un plástico de burbuja." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "¡Pop!" @@ -192396,6 +195649,11 @@ msgstr "¡Una trampa para osos se cierra en tu pie!" msgid "A bear trap closes on 's foot!" msgstr "¡Una trampa para osos se cierra en el pie de !" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -192414,6 +195672,11 @@ msgstr "¡Pisas una tabla con púas!" msgid " steps on a spiked board!" msgstr "¡ pisa una tabla con púas!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -192432,6 +195695,11 @@ msgstr "¡Pisas un abrojo puntiagudo de metal!" msgid " steps on a sharp metal caltrop!" msgstr "¡ pisa un abrojo puntiagudo de metal!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -192472,6 +195740,16 @@ msgstr "¡Tropiezas con una cuerda de trampa!" msgid " trips over a tripwire!" msgstr "¡ tropieza con una cuerda de trampa!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "¡Detonas una trampa de ballesta!" @@ -192518,6 +195796,11 @@ msgstr "¡Un rayo sale disparado, pero no golpea al %s!" msgid "Kerblam!" msgstr "¡Kerblam!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "¡Detonas una trampa de escopeta!" @@ -192541,6 +195824,11 @@ msgstr "Detonó una trampa de escopeta." msgid "A shotgun fires and hits the %s!" msgstr "¡Una escopeta se dispara y golpea al %s!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "¡Una cuchilla aparece y te golpea en el torso!" @@ -192563,6 +195851,11 @@ msgstr "Detonó una trampa de cuchilla." msgid "Snap!" msgstr "¡Snap!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "Un lazo se cierra en tu pierna." @@ -192581,7 +195874,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "Detonó una trampa ligera de lazo." -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -192715,6 +196012,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "Entró en un disector." +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr "¡ se cae en un pozo!" @@ -192743,14 +196045,15 @@ msgid "" "admirably!" msgstr "" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "¡Te lastimas!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "Aterrizas hábilmente." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "¡Te caes en un pozo con púas!" @@ -192829,6 +196132,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "Se metió en la lava." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "No pudiste sujetarlo..." @@ -192846,6 +196154,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr " se mete en un sumidero, pero logra salir y salvarse." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -194200,6 +197513,11 @@ msgstr "El/la %s está atascado." msgid "The %s's engine emits a sneezing sound." msgstr "El motor de %s emite un sonido como si estornudara." +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -194249,6 +197567,10 @@ msgstr "El %2$s de %1$s atropella el/la %3$s." msgid "The %1$s's %2$s runs over something." msgstr "El %2$s de %1$s atropella algo." +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "" @@ -194814,6 +198136,36 @@ msgid "" " on. The washing machine is being filled with water from vehicle tanks." msgstr "" +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "Examinar vehículo" @@ -194854,6 +198206,10 @@ msgstr "Capturar o liberar criatura" msgid "Load or unload a vehicle" msgstr "Cargar o descargar vehículo" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "" diff --git a/lang/po/hu.po b/lang/po/hu.po index 686c639b2f531..fa288b9317280 100644 --- a/lang/po/hu.po +++ b/lang/po/hu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Daniel Szollosi-Nagy , 2019\n" "Language-Team: Hungarian (https://www.transifex.com/cataclysm-dda-translators/teams/2217/hu/)\n" @@ -1486,6 +1486,15 @@ msgid "" "create a beaded curtain door." msgstr "" +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "" @@ -2538,6 +2547,18 @@ msgid_plural "reloaded .38 Super" msgstr[0] "utántöltött .38 Super" msgstr[1] "utántöltött .38 Super" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "" @@ -2572,7 +2593,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" @@ -2772,6 +2793,17 @@ msgid "" "incapacitating gas." msgstr "40 mm-es könnygázgránát, cselekvésképtelenné tevő gázzal töltve." +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 Magnum FMJ" @@ -2808,6 +2840,17 @@ msgstr "utántöltött .44 Magnum FMJ" msgid "reloaded .44 Magnum" msgstr "utántöltött .44 Magnum" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr ".44 papír kartus" @@ -2899,6 +2942,104 @@ msgstr "" msgid "reloaded .454 Casull" msgstr "utántöltött .454 Casull" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr "" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr "" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr "" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4.6x30mm" @@ -3799,6 +3940,22 @@ msgstr "utántöltött nyilacskás lövedék" msgid "reloaded shotgun slug" msgstr "utántöltött sörétes dumdum" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "acélsörét" @@ -5978,13 +6135,10 @@ msgstr[1] "hulladékfém páncél" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." msgstr "" -"Innen-onnan összeszedett, egyszerű zsinórokkal egymáshoz rögzített " -"fémdarabokból készített páncél. Jó védelmet nyújt, viszont a lazán rögzített" -" alapanyag miatt nem igazán a legpraktikusabb viselet." #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -14134,6 +14288,38 @@ msgstr[1] "fürdőcipő " msgid "A pair of neoprene swimming booties, with individual toes." msgstr "Neoprén úszócipő, külön ujjakkal." +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "" +msgstr[1] "" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -14969,6 +15155,20 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -18034,6 +18234,7 @@ msgstr[0] "" msgstr[1] "" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -18042,7 +18243,8 @@ msgstr[1] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -22319,7 +22521,7 @@ msgstr[1] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" @@ -22786,11 +22988,8 @@ msgstr[1] "nyers tüdődarab" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"Egy állat tüdejének egy része. Szivacsos, rózsaszín, és nagyon gyorsan " -"megromlik. Megfelelően elkészítve finomság is lehet belőle, egyébként " -"ízetlen kötőszövetek rágós masszája lesz." #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -22801,13 +23000,10 @@ msgstr[1] "főtt tüdődarab" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" -"Így elkészítve ez csupán ízetlen kötőszövetek rágós masszája. Semmivel se " -"néz ki jobban, mint amilyen nyersen volt, de legalább az összes parazitát " -"kisütötték belőle." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -28835,7 +29031,7 @@ msgstr[1] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" @@ -34316,6 +34512,29 @@ msgstr[1] "műanyag csésze" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "acélpalack" +msgstr[1] "acélpalack" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Rozsdamentes acél palack 750ml folyadék tárolására." + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "összehajtható műanyag palack" +msgstr[1] "összehajtható műanyag palack" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Puha falú, könnyen tárolható műanyag palack 500 ml folyadék tárolására." + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -34366,17 +34585,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "acélpalack" -msgstr[1] "acélpalack" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Rozsdamentes acél palack 750ml folyadék tárolására." - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -34388,18 +34596,6 @@ msgstr[1] "alufólia tekercs" msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "Félig összegyűrt alumíniumfólia sütéshez és főzéshez." -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "összehajtható műanyag palack" -msgstr[1] "összehajtható műanyag palack" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Puha falú, könnyen tárolható műanyag palack 500 ml folyadék tárolására." - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -35030,6 +35226,10 @@ msgstr[1] "hulla" msgid "A dead body." msgstr "Egy holttest." +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "közeli tűz" @@ -35069,8 +35269,10 @@ msgstr[1] "elszáradt növény" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "Kiszáradt növény. Tűzgyújtásra jó lesz." +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -41785,6 +41987,17 @@ msgstr[1] ".45 ACP töltényhüvely" msgid "An empty casing from a .45 ACP round." msgstr "Egy .45 ACP töltény üres hüvelye." +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -41996,6 +42209,19 @@ msgstr "" " bankjegyet a menekültközpont szabadkereskedőinél élelemre, vízre és egyéb " "szolgáltatásra lehet beváltani." +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -43039,6 +43265,17 @@ msgstr "" "Ez a hevenyészett bajonett csupán egyszerű tüskéből és néhány darab " "zsinórból áll." +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "kő lándzsa" +msgstr[1] "kő lándzsa" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "Éles kőhegyű, szívós farúd." + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -43150,6 +43387,23 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "csajka" +msgstr[1] "csajka" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"Kompakt, katonai stílusú tál és serpenyő, amelyben tűz vagy hordozható " +"kályha felett lehet ételt melegíteni. A szokásos tálaknál és serpenyőknél " +"sekélyebb, és nincs benne a modernebb csajkák melegítőszála." + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -45942,6 +46196,30 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -46067,6 +46345,28 @@ msgstr[1] "" msgid "A small book, containing spells created by a novice magician." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -46716,34 +47016,6 @@ msgid_plural "integral EMP projectors" msgstr[0] "beépített EMP projektor" msgstr[1] "beépített EMP projektor" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "kő lándzsa" -msgstr[1] "kő lándzsa" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "Éles kőhegyű, szívós farúd." - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "csajka" -msgstr[1] "csajka" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"Kompakt, katonai stílusú tál és serpenyő, amelyben tűz vagy hordozható " -"kályha felett lehet ételt melegíteni. A szokásos tálaknál és serpenyőknél " -"sekélyebb, és nincs benne a modernebb csajkák melegítőszála." - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -51007,6 +51279,17 @@ msgstr "További valósághű fegyverek" msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "Még többféle lőszert és valós lőfegyvert ad a játékhoz." +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "" @@ -51116,9 +51399,9 @@ msgstr "forradásos zombi" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." -msgstr "Eltorzult emberi test, bőre egy nagy darab, kérges hegszövetté vált." +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -51396,11 +51679,9 @@ msgstr "kísértet" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "" -"Egy gigantikus árny, amely kaotikusan változtatja alakját és méretét. A " -"talán fejének nevezhető testrészét kettő éles fényű fénygömb található." #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -51465,10 +51746,8 @@ msgstr "rothadtweiler" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." +" chains of pulsing cysts and slime-dribbling ulcers." msgstr "" -"A kutya holttestét szemet csípő savas szag kíséri, az egész testét lüktető " -"fekélyek és nyálkát csöpögtető fekélyek fedik." #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -51477,9 +51756,12 @@ msgstr "szembot" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" #: lang/json/MONSTER_from_json.py @@ -52253,11 +52535,9 @@ msgstr "zombi" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." msgstr "" -"Bicegve mozgó emberi test, olajosan fekete szemében megállíthatatlan harag " -"látszik." #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -53217,11 +53497,9 @@ msgstr "EMP hack" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." msgstr "" -"Automata kamikaze drón. Ebben az ökölnyi nagyságú robotban egy EMP gránát " -"található." #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -53230,11 +53508,9 @@ msgstr "C-4 hack" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." msgstr "" -"Automata kamikaze drón. Ebben az ökölnyi nagyságú robotban némi C-4 " -"található." #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -53243,11 +53519,9 @@ msgstr "villanógránát hack" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." msgstr "" -"Automata kamikaze drón. Ebben az ökölnyi nagyságú robotban egy villanógránát" -" található." #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -53256,11 +53530,9 @@ msgstr "könnygáz hack" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." msgstr "" -"Automata kamikaze drón. Ebben az ökölnyi nagyságú robotban egy könnygáz " -"gránát található." #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -53269,11 +53541,9 @@ msgstr "gránátos hack" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." msgstr "" -"Automata kamikaze drón. Ebben az ökölnyi nagyságú robotban egy gránát " -"található." #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -53282,11 +53552,9 @@ msgstr "manhack" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." msgstr "" -"Automata gyalogság elhárító drón, az ökölnyi nagyságú robotot zizegő pengék " -"veszik körül." #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -53295,11 +53563,9 @@ msgstr "mininukis hack" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "" -"A hagyományos manhack méretének többszöröse, ebben a repülő drónban egy " -"mininuki található. Ha ez célbavett, akkor futás... De gyorsan." #: lang/json/MONSTER_from_json.py msgid "tiny fish" @@ -57873,6 +58139,61 @@ msgstr "" msgid "Evens out damage among your limbs." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "" @@ -57975,6 +58296,50 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -60894,6 +61259,19 @@ msgstr "" "detonációjáig három köröd van. Az elektromágneses impulzus a robotokban okoz" " sebzést és leszívja a bionikus energiát." +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -65553,12 +65931,9 @@ msgstr "Meggyújtod a csőbomba kanócát." #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" -"Ebbe a csődarabba robbanóanyagot töltöttek. A kanóc meggyújtásához használni" -" kell, majd utána három kör múlva felrobban. A kanóc meggyújtásához öngyújtó" -" vagy gyufa szükséges." #: lang/json/TOOL_from_json.py msgid "active pipe bomb" @@ -66482,13 +66857,10 @@ msgstr[1] "saját készítésű félpika" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" -"Saját készítésű, simára smirglizett farúd, amelynek a tetejére egy " -"fémdarabot erősítettek. A jó fogásának és hozzáértő megmunkálásának " -"köszönhetően egy használható, még ha nem is túl hatékony fegyver." #: lang/json/TOOL_from_json.py msgid "spray can" @@ -67866,6 +68238,35 @@ msgid "" "supplies." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" +"Széles kődarab, amely egy helyen nem szilánkos, így biztonsággal lehet " +"kézbefogni. A korai kőkorszag svájci bicskája." + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -68029,6 +68430,21 @@ msgstr "" "Ez egy darab műanyag. Használatával műanyagból készül tárgyakat lehet " "elkészíteni, javítani vagy megerősíteni. Mert ez műanyag!" +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "hexamin tűzhely" +msgstr[1] "hexamin tűzhely" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "" +"Esbit tűzhelyként is ismert, könnyű, összecsukható tűzhely, amelyen hexamin " +"tabletták meggyújtásával lehet főzni." + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -68177,6 +68593,19 @@ msgstr "" "lehet alkalmazni, de főleg a hentesek használják. Túl vékony ahhoz, hogy " "kényelmesen lehessen rajta aludni. Fel van csavarva, és így szállítható." +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "kovakő és acél" +msgstr[1] "kovakő és acél" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -69326,6 +69755,19 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "" +msgstr[1] "" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -69783,21 +70225,6 @@ msgstr "" "Egy teljesen szokásos és ártalmatlan kerti törpe. 100 darab 9mm-es lőszert " "tartalmaz." -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "kovakő és acél" -msgstr[1] "kovakő és acél" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "" -"Ez egy nagy műgonddal kiválasztott kovakő és szénacél tűzgyújtó. " -"Használatával szikra csiholható." - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -69842,21 +70269,6 @@ msgstr "" " a levegő áramlásával. Benne gyújtós parázslik, és lehet vele tábortüzet " "gyújtani." -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "kézi balta" -msgstr[1] "kézi balta" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" -"Széles kődarab, amely egy helyen nem szilánkos, így biztonsággal lehet " -"kézbefogni. A korai kőkorszag svájci bicskája." - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -69920,36 +70332,6 @@ msgstr "" "Egy nagy méretű, lezárt tömlő, amelyben a tej a sajttá válás útján halad, " "miután ecettel és természetes tejoltóval kezelték." -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "hexamin tűzhely" -msgstr[1] "hexamin tűzhely" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "" -"Esbit tűzhelyként is ismert, könnyű, összecsukható tűzhely, amelyen hexamin " -"tabletták meggyújtásával lehet főzni." - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "hevenyészett balta" -msgstr[1] "hevenyészett balta" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "" -"Ez egy bothoz erősített éles acéldarab. Favágásra egészen alkalmas, de egy " -"igazi baltával azért nem veszi fel a versenyt." - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -71283,6 +71665,17 @@ msgstr "" "A saját élőhalott szolgád. A tested vezérlő blob kómában van, és a " "parancsodra vár. Ezzel a tárggyal ébresztheted fel az alattvalót." +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "kerék" @@ -71656,303 +72049,303 @@ msgstr "" "defektet - viszont egyben elképesztően nehéz is." #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "Abbahagyod az újratöltést?" +msgid "reloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "Abbahagyod az olvasást?" +msgid "reading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "Abbahagyod a játékot?" +msgid "playing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "Abbahagyod a várakozást?" +msgid "waiting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "Abbahagyod az elkészítést?" +msgid "crafting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "Abbahagyod a szétszerelést?" +msgid "disassembly" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "Abbahagyod a mészárlást?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "mészárló" #: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "Abbahagyod a terepi kibelezést?" +msgid "field dressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" -msgstr "Abbahagyod a bőr lenyúzását?" +msgid "skinning" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "Abbahagyod a felnegyedelést?" +msgid "quartering" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" +msgid "dismembering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "Abbahagyod a boncolást?" +msgid "dissecting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "Abbahagyod a kitermelést?" +msgid "salvaging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "Abbahagyod a kotorászást?" +msgid "foraging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "Abbahagyod az építkezést?" +msgid "construction" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "Abbahagyod a jármű kezelését?" +msgid "interacting with the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "Abbahagyod a képzést?" +msgid "training" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" -msgstr "Abbahagyod a társadalmi életet?" +msgid "socializing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "Abbahagyod az elsősegélyt?" +msgid "using first aid" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "Abbahagyod a pecázást?" +msgid "fishing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "Abbahagyod a bányászatot?" +msgid "mining" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "Abbahagyod az ásást?" +msgid "burrowing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "Abbahagyod a szétzúzást?" +msgid "smashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" +msgid "cranking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "Abbahagyod a stresszoldást?" +msgid "de-stressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "Abbahagyod a szövetek szétvágását?" +msgid "cutting tissues" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "Abbahagyod a leejtést?" +msgid "dropping" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "Abbahagyod az eltevést?" +msgid "stashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "Abbahagyod a felszedést?" +msgid "picking up" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "Abbahagyod a tárgyak mozgatását?" +msgid "moving items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "Abbahagyod a zsákmány szortírozását?" +msgid "sorting out the loot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "Abbahagyod a talaj szántását?" +msgid "tilling the farm plot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "Abbahagyod a vetőmag ültetését?" +msgid "planting seeds" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "Abbahagyod a betakarítást?" +msgid "harvesting plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "Abbahagyod a talaj műtrágyázását?" +msgid "fertilizing plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "Abbahagyod a leltár kezelését?" +msgid "interacting with inventory" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "Abbahagyod a ruhád igazgatását?" +msgid "fiddling with your clothes" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "Abbahagyod a tűzgyújtást?" +msgid "lighting the fire" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "Abbahagyod a csörlőzést?" +msgid "working the winch" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "Abbahagyod a tároló megtöltését?" +msgid "filling the container" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "Abbahagyod a jármű megpiszkálását?" +msgid "hotwiring the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "Abbahagyod a célzást?" +msgid "aiming" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "Abbahagyod az ATM kezelését?" +msgid "using the ATM" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "Abbahagyod a jármű beindítását?" +msgid "trying to start the vehicle" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "Abbahagyod a hegesztést?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "hegesztő" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "Abbahagyod a feltörést?" +msgid "cracking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "Abbahagyod a szerelést?" +msgid "repairing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "Abbahagyod a javítást?" +msgid "mending" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "Abbahagyod a fegyvermódosítást?" +msgid "modifying gun" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "Abbahagyod a szerszám módosítását?" +msgid "modifying tool" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "Abbahagyod az NPC-vel az interakciót?" +msgid "interacting with the NPC" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "Abbahagyod a romeltakarítást?" +msgid "clearing that rubble" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "Abbahagyod a meditálást?" +msgid "meditating" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "Abbahagyod a mosást?" +msgid "washing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "Abbahagyod a fém szétvágását?" +msgid "cutting the metal" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "Abbahagyod a favágást?" +msgid "chopping down" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "Abbahagyod a fúrást?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "fúró" -#: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "Abbahagyod az ásást?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "ásó" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "Abbahagyod a feltöltést?" +msgid "filling" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "Abbahagyod a borotválkozást?" +msgid "shaving" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "Abbahagyod a hajvágást?" +msgid "cutting your hair" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "Abbahagyod a háziállattal a játékot?" +msgid "playing with your pet" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "Abbahagyod az alvási próbálkozásodat?" +msgid "trying to fall asleep" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" -msgstr "Abbahagyod a kitárazást?" +msgid "unloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" -msgstr "Abbahagyod a programozás felülírását?" +msgid "programming override" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" -msgstr "Abbahagyod a ruha felvevését?" +msgid "putting on items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" +msgid "communing with the trees" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" +msgid "eating" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" +msgid "consuming" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" +msgid "casting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" +msgid "studying" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" +msgid "drinking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" +msgid "using drugs" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" +msgid "using the mind splicer" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" +msgid "hacking console" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -71963,6 +72356,10 @@ msgstr ".700 Nitro Express" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "szög" @@ -74063,6 +74460,10 @@ msgstr "Hevenyészett ágy építése" msgid "Build Straw Bed" msgstr "Szalmaágy építése" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "" @@ -75393,6 +75794,26 @@ msgstr "" "AI jelzés arra, amikor egy szörnyet megütött a játékos. Ha ezt látod, az " "programhiba." +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "Kezes szörnyeteg" @@ -75700,6 +76121,16 @@ msgstr "" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "Összekötözött" @@ -75852,6 +76283,20 @@ msgstr "" msgid "The scream dazes you!" msgstr "A visítás elkábít!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "Ég" @@ -77707,6 +78152,54 @@ msgstr "" msgid "Your Frost Armor melts away." msgstr "" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "Beragadt egy könnyű csapdába" @@ -78316,6 +78809,15 @@ msgstr "" "Még ha nincs is nálad semmi, akkor is jó leszel rabszolgának, vagy friss " "húsnak." +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "" @@ -78535,8 +79037,7 @@ msgstr "Barikád. Az út elbarikádozására." msgid "smash!" msgstr "csörömpölés!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "tompa puffanás." @@ -78591,8 +79092,8 @@ msgid "" "notes for other survivors to read." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "reccs!" @@ -78688,6 +79189,17 @@ msgstr "szalmaágy" msgid "Kinda itches when you lay on it." msgstr "Egy kicsit viszketsz tőle, amikor ráfekszel. " +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "mosdókagyló" @@ -79162,10 +79674,20 @@ msgstr "Hogy mi van benne? Nézz bele!" msgid "canvas wall" msgstr "vászon fal" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "csatt!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "vászon redőny" @@ -79583,6 +80105,16 @@ msgstr "célpont" msgid "A metal shooting target in the rough shape of a human." msgstr "Nagyjából emberi formájú céllövészeti fém céltábla." +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -79600,15 +80132,32 @@ msgid "" "and... delicious?" msgstr "" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "kutyatej virág" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "gyékény" @@ -79620,6 +80169,32 @@ msgid "" "edible." msgstr "" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "tavirózsa levele" @@ -79731,6 +80306,13 @@ msgstr "" msgid "ergometer" msgstr "ergométer" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -79794,6 +80376,13 @@ msgstr "huupp." msgid "canvas floor" msgstr "vászon padló" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -79910,6 +80499,13 @@ msgstr "agyag kemence" msgid "A kiln designed to bake clay pottery and bricks." msgstr "Agyagedények és téglák kisütésére készített kemence." +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "kis szikla" @@ -79945,6 +80541,11 @@ msgstr "És akkor ezt most mégis hogyan szándékoztad elmozdítani?" msgid "stone slab" msgstr "kőlap" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "bilincs" @@ -80790,14 +81391,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "mutálódott kaktusz" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "tatami szőnyeg" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "mutálódott kaktusz" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -81078,8 +81686,7 @@ msgstr "Nem igazi fegyver, ami savtócsákat lő ki." msgid "auto" msgstr "automata" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "puska" @@ -83516,6 +84123,46 @@ msgstr "" "A Taurus Raging Bull egy ötlövetű, .454 Casull kaliberű lövedékhez " "készített, pusztító átütőképességű revolver." +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -84519,6 +85166,14 @@ msgid_plural "fusion blasters" msgstr[0] "" msgstr[1] "" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -86168,6 +86823,18 @@ msgstr "" "és többcélú gyalogsági rakétavető rendszer, amelyet az USA haderői is " "rendszeresítettek." +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -87658,6 +88325,22 @@ msgstr "" "A beépített Leadworks nagy teherbírású cső kifejezetten a hosszú ideig tartó" " tűzharcok számára készült. Növeli a fegyver sebzését és hatótávolságát." +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "" +msgstr[1] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "cső alatti" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -88406,10 +89089,6 @@ msgstr "" "Ezt az egyedileg épített mini lángszórót szinte bármilyen lőfegyverhez fel " "lehet csatolni, ezzel jelentősen megnövelve a fegyver halálosságát." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "cső alatti" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -92797,6 +93476,10 @@ msgstr "Szagtérkép megtekintése" msgid "View Temperature Map" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "Oldalsáv stílus váltása" @@ -92837,6 +93520,10 @@ msgstr "Autom. bányászat ki/be" msgid "Toggle Auto Foraging" msgstr "Autom. guberálás ki/be" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "Akciómenü" @@ -93681,16 +94368,6 @@ msgstr "Centrifuga" msgid "Analyze blood" msgstr "Vérelemzés" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "Csontrakás" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -97167,7 +97844,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" #: lang/json/mission_def_from_json.py @@ -97362,98 +98039,236 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Return Field Data" +msgid "Reach Refugee Center" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" +msgid "Any luck? Bigger ones?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Yes! The home stretch!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" +msgid "Oh man, but we're so close!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." msgstr "" #: lang/json/mission_def_from_json.py @@ -97547,6 +98362,157 @@ msgid "" "guess." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "Rakj rendet a hátsó rakodónál" @@ -97558,14 +98524,9 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"Ha annyira szeretnél segíteni, akkor kipucolhatnád a hátsó rakodóból az " -"élőhalottakat. A kataklizma utána első pár napban nem mertünk kimenni, " -"úgyhogy a halottainkat a zombikkal együtt bedobtuk a lezárt hátsó rakodóba. " -"Az ígéretes akkori vezérünk is elesett... és valami más lett belőle. Öld meg" -" mind, és bizonyosodj meg arról, hogy soha többé nem kelnek fel. Nem tudunk " -"sokat fizetni, de megköszönnénk, ha visszaszereznéd azt a hátsó rakodót." #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -97590,10 +98551,11 @@ msgstr "Lesz még gondunk velük?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." msgstr "" -"Hálásak vagyunk, nem volt jó érzés ennyire közel laki egy ekkora " -"fenyegetéshez." #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -97607,15 +98569,9 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"Ez most egy kicsit macerásabb lesz, mint az előző kérésünk. Egy guberálókból" -" álló csapat tartott felénk, hogy kereskedjenek velünk, de soha sem értek " -"ide. Azt gyanítjuk, hogy egy banda ütött rajtuk, esetleg egy horda kapta el " -"őket. A legutolsó rádióadásuk koordinátáit tudom neked megadni, azon túl nem" -" sok minden mást. Bármi is történt velük, járj a végére és számolj le a " -"fenyegetéssel, hogy a többi guberáló biztonságban juthasson el hozzánk. " -"Fizetésként annyit tudok felajánlani, amit magukkal hoztak." #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -97649,13 +98605,13 @@ msgstr "Prospektus begyűjtése" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"Az újonnan alapított előörsünk a segítségedre szorul. Szükségem lenne az " -"ottani művezető prospektusára, mielőtt további menekülteket küldhetünk abba " -"a mezőgazdasági faluközösségbe. A részletekért beszélj a művezetővel." #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -97672,13 +98628,11 @@ msgstr "Nálad van a prospektus?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." +"you, here's your money." msgstr "" -"Ezzel többeket meg tudunk győzni, hogy ők is fektessenek be a " -"faluközösségbe. Köszönjük!" #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" +msgid "Find 10 solar panels" msgstr "" #: lang/json/mission_def_from_json.py @@ -97686,11 +98640,9 @@ msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -97700,10 +98652,7 @@ msgstr "" "esélyeink." #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." +msgid "Solar panels are pretty common on electric cars and on rooftops." msgstr "" #: lang/json/mission_def_from_json.py @@ -97715,17 +98664,19 @@ msgstr "" " a bővítést." #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" +msgid "Find 100 canning jars" msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" #: lang/json/mission_def_from_json.py @@ -97737,17 +98688,17 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." +" If you reconsider let me know." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." msgstr "" #: lang/json/mission_def_from_json.py @@ -98032,6 +98983,97 @@ msgid "" "when meeting with them. Thank you once again marshal." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "" @@ -107850,6 +108892,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -108034,7 +109238,8 @@ msgstr "" msgid "Beggar" msgstr "Koldus" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "Menekült" @@ -108058,6 +109263,14 @@ msgstr "" msgid "Reading this line is a bug" msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -108293,14 +109506,6 @@ msgstr "" msgid "Tester" msgstr "" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "SZDS" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "FTŐRM" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "Bandita" @@ -108317,6 +109522,14 @@ msgstr "" msgid "officer" msgstr "" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "SZDS" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "FTŐRM" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "koldus" @@ -108365,6 +109578,10 @@ msgstr "Dana Nunez" msgid "Draco Dune" msgstr "" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "" @@ -108393,10 +109610,18 @@ msgstr "" msgid "Pablo Nunez" msgstr "Pablo Nunez" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "Stan Borichenko" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "Vanessa Toby" @@ -108425,6 +109650,10 @@ msgstr "Zsoldos" msgid "the intercom" msgstr "" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "Fodrász" @@ -108861,10 +110090,6 @@ msgstr "faház pincéje" msgid "cabin" msgstr "faház" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "üres telek" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "romos faház" @@ -109192,6 +110417,30 @@ msgstr "" msgid "farm house roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "földút" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "benzinkút" @@ -109394,6 +110643,10 @@ msgstr "szálloda alagsor" msgid "motel" msgstr "motel" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "lakásfelújítási hipermarket bejárata" @@ -109446,6 +110699,10 @@ msgstr "" msgid "dollar store" msgstr "egydolláros bolt" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "LAN központ" @@ -109466,6 +110723,10 @@ msgstr "egydolláros bolt" msgid "daycare center" msgstr "bölcsöde" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "állatfelszerelés bolt" @@ -110174,6 +111435,10 @@ msgstr "temetkezési vállalkozó" msgid "fire station" msgstr "tűzoltóság" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "" @@ -110354,6 +111619,10 @@ msgstr "koncertterem" msgid "gambling hall" msgstr "kaszinó" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "sztriptízbár" @@ -110386,6 +111655,10 @@ msgstr "fitneszterem" msgid "dojo" msgstr "dódzsó" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "magánpark" @@ -110470,10 +111743,6 @@ msgstr "nyilvános mosdó" msgid "roadside foodcart" msgstr "útmenti étel stand" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "földút" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "vasút" @@ -111873,6 +113142,32 @@ msgid "" "at least you have a loyal friend." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -116585,6 +117880,58 @@ msgid "" "serene with the world falling down around you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -121116,6 +122463,10 @@ msgstr "Bizonyos holttestek felboncolásával bionikákat tudsz kinyerni." msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "Ne legyél túl kapzsi. A zsákmány semmi se jelent, ha meghalsz miatta." +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -125105,6 +126456,41 @@ msgid "" " continuing production of PE062 there." msgstr "" +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "" @@ -126034,8 +127420,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -126170,7 +127556,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -132535,6 +133921,10 @@ msgstr "Szeretnék egy kicsit többet megtudni rólad..." msgid "I want you to use this item." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "" @@ -132588,11 +133978,11 @@ msgid "Change your bionic power recharge rules..." msgstr "" #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "Mindegy." @@ -132742,6 +134132,22 @@ msgstr "" msgid "Show me what needs to be done at the camp." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -133840,175 +135246,6 @@ msgstr "" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "Ami azt a küldetést illeti..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "Ami az egyik küldetést illeti..." - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "Ne is figyelj rám..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "Te meg mit keresel itt lenn?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "Mit tudsz nekem mondani erről a létesítményről?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "Mit kell megcsinálni?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "Mennem kell..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "Egész jó ötletnek tűnik..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "" -"Bármit is csináltak biztos jól csinálták, mert még mindig életben vagyunk..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[Küldetés] A százados küldött a frekvenciák listájáért." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "Kell valamilyen segítség?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "Akkor megpróbálom megkeresni a parancsnokot..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -137138,6 +138375,175 @@ msgstr "" msgid "What were you saying before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "Te meg mit keresel itt lenn?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "Mit tudsz nekem mondani erről a létesítményről?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "Mit kell megcsinálni?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "Ami azt a küldetést illeti..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "Ami az egyik küldetést illeti..." + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "Mennem kell..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "Egész jó ötletnek tűnik..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "" +"Bármit is csináltak biztos jól csinálták, mert még mindig életben vagyunk..." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "[Küldetés] A százados küldött a frekvenciák listájáért." + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "Kell valamilyen segítség?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "Akkor megpróbálom megkeresni a parancsnokot..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "Ne is figyelj rám..." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -137163,6 +138569,12 @@ msgstr "" msgid "Please, help me. I need food." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "" @@ -137329,10 +138741,26 @@ msgstr "" msgid "OK, I'll talk to them too." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "" @@ -137345,6 +138773,30 @@ msgstr "" msgid "Are you seriously wearing a dinosaur costume?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -137355,6 +138807,14 @@ msgstr "" msgid "Why cardboard?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "" @@ -137367,6 +138827,27 @@ msgid "" " damage." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -137374,17 +138855,56 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Building a house?" +msgid "You said you were building a house?" msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "Nem." +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "" @@ -137444,10 +138964,6 @@ msgid "" "but I wouldn't say no." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "" @@ -137487,6 +139003,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "" @@ -137497,6 +139018,28 @@ msgid "" "come?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -137516,8 +139059,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -137577,6 +139120,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -137589,6 +139138,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -137613,12 +139173,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137629,7 +139189,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -137671,6 +139231,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -137681,16 +139247,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137705,12 +139295,30 @@ msgstr "" msgid "Sorry, not interested." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " "Help a poor sickly soul out?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "" @@ -137727,6 +139335,25 @@ msgstr "" msgid "Why are you camped out here if they won't let you in?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -137735,6 +139362,10 @@ msgid "" "bug me about every couple months." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -137756,6 +139387,95 @@ msgid "" "dead as a doornail. Or I guess undead." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "" @@ -137768,6 +139488,10 @@ msgstr "" msgid "I couldn't help but notice, you're covered in fur." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -137790,7 +139514,7 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" #: lang/json/talk_topic_from_json.py @@ -137800,6 +139524,68 @@ msgid "" "them for hating it, I hate it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -137808,6 +139594,23 @@ msgid "" "for them, I don't think I can leave." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "" @@ -138070,10 +139873,94 @@ msgstr "" msgid "Why don't we talk about it some other time?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "" @@ -138122,10 +140009,6 @@ msgstr "" msgid "Hey again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -138600,6 +140483,102 @@ msgstr "" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -138640,6 +140619,57 @@ msgstr "" msgid "Sorry to hear that." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "" @@ -138663,17 +140693,142 @@ msgid "Yeah, no. I'm going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." +msgid "" +"Well that's good. If you're going to pull your own weight I guess that's an" +" improvement." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well that's good. If you're going to pull your own weight I guess that's an" -" improvement." +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." +msgid "That's all for now. Can we discuss something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." msgstr "" #: lang/json/talk_topic_from_json.py @@ -138682,8 +140837,8 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" #: lang/json/talk_topic_from_json.py @@ -138692,8 +140847,8 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" #: lang/json/talk_topic_from_json.py @@ -138702,22 +140857,26 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "Miért pont kukoricaliszt, jerky és gyümölcsbor?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" #: lang/json/talk_topic_from_json.py @@ -138725,19 +140884,98 @@ msgid "Are you looking to buy anything else?" msgstr "Valami mást is vásárolnál?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "Hát..." +msgid "Very well... let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "Érdekes..." +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -139062,15 +141300,7 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." +msgid "I heard this place was a refugee center..." msgstr "" #: lang/json/talk_topic_from_json.py @@ -139081,6 +141311,14 @@ msgstr "Hallottál valamit a külvilágról?" msgid "Is there any way I can join your group?" msgstr "Hogyan tudnék csatlakozni a csoportodhoz?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "" @@ -139090,28 +141328,40 @@ msgid "I figured you might be looking for some help..." msgstr "Gondoltam elkelne valamiféle segítség..." #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." +msgid "Well, I'd better be going. Bye." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." +msgid "Welcome marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." +msgid "It's just as bad out there, if not worse." msgstr "" #: lang/json/talk_topic_from_json.py @@ -139123,31 +141373,26 @@ msgid "" " bloody kids... don't even think about strong arming us." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" msgstr "" -"[INT 12] Na várjunk csak... Hat busznyi menekült... Mégis hány embert " -"zsúfoltatok ide be?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." msgstr "" #: lang/json/talk_topic_from_json.py @@ -139160,10 +141405,6 @@ msgid "" "in the neighborhood. Luckily we haven't had a mob like that pass by here." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -139249,6 +141490,81 @@ msgstr "" msgid "Was hoping for something more..." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "" @@ -139767,7 +142083,52 @@ msgid "Alright, I'll leave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." msgstr "" #: lang/json/talk_topic_from_json.py @@ -140271,6 +142632,10 @@ msgid "" "there." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "Érdekes..." + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -140738,10 +143103,30 @@ msgstr " ellentámadást mér %s testére" msgid "Feint" msgstr "Cselfogás" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "Ölelésből kiszabadulás" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -141476,11 +143861,13 @@ msgid "Crane Wing" msgstr "" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" +#, python-format +msgid "You raise your arms intimidatingly at %s." msgstr "" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" +#, python-format +msgid " performs the Crane Wing at %s." msgstr "" #: lang/json/technique_from_json.py @@ -141488,11 +143875,13 @@ msgid "Crane Flap" msgstr "" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" msgstr "" #: lang/json/technique_from_json.py -msgid " flaps free" +#, python-format +msgid "The %s tries to grab , but they flap free!" msgstr "" #: lang/json/technique_from_json.py @@ -141542,11 +143931,13 @@ msgid "Snake Slither" msgstr "" #: lang/json/technique_from_json.py -msgid "You slither free" +#, python-format +msgid "The %s tries to grab you, but you slither free!" msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" +#, python-format +msgid "The %s tries to grab , but they slither free!" msgstr "" #: lang/json/technique_from_json.py @@ -142242,12 +144633,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -142987,14 +145378,37 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "fonott és mázolt fal" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "áttört fonott és mázolt fal" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "félkész fonott és mázolt fal" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "fa fal" @@ -144352,30 +146766,134 @@ msgstr "" msgid "willow tree" msgstr "fűzfa" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "juharfa" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "hikorifa" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "halott hikorifa" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -144389,10 +146907,30 @@ msgstr "" msgid "brush." msgstr "súrlódás." +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "cserje" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "" @@ -144541,22 +147079,49 @@ msgstr "" msgid "tree trunk" msgstr "fatörzs" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "gyökérfal" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "viaszfal" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "viaszpadló" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "faléces kerítés" @@ -144655,6 +147220,11 @@ msgstr "" msgid "railing" msgstr "korlát" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "reccs!" @@ -144663,6 +147233,11 @@ msgstr "reccs!" msgid "glass railing" msgstr "" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "" @@ -144675,10 +147250,20 @@ msgstr "roppanás!" msgid "metal railing" msgstr "" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "" @@ -144851,46 +147436,136 @@ msgstr "" msgid "shallow water" msgstr "sekély víz" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "mélyvíz" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "medence víz" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "szennyvíz" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "láva" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "homokozó" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "csúszda" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "mászóka" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "tábla" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "benzines kút" @@ -144908,14 +147583,31 @@ msgstr "" msgid "tank with gasoline" msgstr "benzines tartály" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "kis oszlop" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "összetört benzines kút" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -144930,6 +147622,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "összetört dízeles kút" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "ATM" @@ -144953,6 +147652,12 @@ msgstr "" msgid "broken generator" msgstr "elromlott generátor" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "rakéta" @@ -145161,6 +147866,13 @@ msgstr "" msgid "cloning vat" msgstr "klónozókád" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "plunk." @@ -145169,6 +147881,16 @@ msgstr "plunk." msgid "stairs" msgstr "lépcső" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "csatornalejárat" @@ -145185,22 +147907,68 @@ msgstr "" msgid "ladder" msgstr "létra" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "lejtő" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "emelkedő" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "felfele vezető kötél" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "kártyaolvasó" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -145275,54 +148043,121 @@ msgstr "" msgid "elevator" msgstr "lift" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "sötét talapzat" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "világos talapzat" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "vörös kő" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "zöld kő" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "kék kő" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "vörös padló" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "zöld padló" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "kék padló" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "sárga kapcsoló" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "ciánkék kapcsoló" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "lila kapcsoló" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "kockás kapcsoló" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -145347,6 +148182,18 @@ msgstr "Soft lila carpet." msgid "linoleum tile" msgstr "linóleum csempe" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "vörös fal" @@ -145405,10 +148252,22 @@ msgstr "Lilára festett fal." msgid "stone wall" msgstr "kőfal" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "félkész kőfal" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "fedett kút" @@ -145446,33 +148305,64 @@ msgstr "rögtönzött menedék" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." -msgstr "A rögtönzött menedék némi védelmet nyújt az időjárás ellen." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." +msgstr "" #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "lapos tető" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "" @@ -145500,22 +148390,51 @@ msgstr "" msgid "telecom cabinet" msgstr "távközlési szekrény" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "sérült távközlési szekrény" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "nagy fém támasz" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "kis fém támasz" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "HV olajos megszakító" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "pukk!" @@ -145524,30 +148443,72 @@ msgstr "pukk!" msgid "small HV oil circuit breaker" msgstr "kis HV olajos megszakító" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "nagy kapcsoló" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "kis kapcsoló" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "villámhárító" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "leválasztó kapcsoló" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "áramátalakító" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "feszültségátalakító" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -145578,6 +148539,11 @@ msgstr "" msgid "bridge pavement" msgstr "híd kopófelület" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "recsegő beton és csikorgó fém!" @@ -145586,22 +148552,61 @@ msgstr "recsegő beton és csikorgó fém!" msgid "bridge yellow pavement" msgstr "sárga híd kopófelület" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "híd járda" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "védőkorlát" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "amerikai tölgyfa" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "agyagkupac" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "csobb!" @@ -145610,10 +148615,20 @@ msgstr "csobb!" msgid "mound of sand" msgstr "homokkupac" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "futószalag" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "ting." @@ -145622,18 +148637,38 @@ msgstr "ting." msgid "light machinery" msgstr "könnyû gépezet" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "nehéz gépezet" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "régi gépezet" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "elektronikus gépezet" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "alacsony lépcső kezdete" @@ -145646,10 +148681,20 @@ msgstr "alacsony lépcső vége" msgid "milking machine" msgstr "fejõgép" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "nagy tartály" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "sóder" @@ -145666,26 +148711,77 @@ msgstr "" msgid "railroad track" msgstr "vasúti sín" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "vasúti talpfa" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "festett viaszpadló" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "vasúti ütköző" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "vasúti átjáró jelzése" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "" @@ -145842,10 +148938,24 @@ msgstr "" msgid "pine lean-to" msgstr "fenyőfa kunyhó" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "ponyva kunyhó" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "felégetett föld" @@ -145973,10 +149083,6 @@ msgstr "" msgid "smoothing" msgstr "simító" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "hegesztő" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "kalapáló" @@ -146025,10 +149131,6 @@ msgstr "desztilláló" msgid "tree cutting" msgstr "favágó" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "ásó" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "csavarozó" @@ -146045,14 +149147,6 @@ msgstr "csavarhúzó" msgid "fine screw driving" msgstr "finom csavarhúzó" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "mészárló" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "fúró" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "feszítõ" @@ -147044,6 +150138,12 @@ msgstr "" "Ide lehet beülni. A hátra hajtható háttámlának köszönhetően kényelmetlen " "ágyként is használható." +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "nyomkövető eszköz" @@ -150948,10 +154048,14 @@ msgstr "Beteszel egy lövedéket a(z) %sba." msgid "You refill the %s." msgstr "Újratöltöd a(z) %st." -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "" +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "Elvesztetted azt a tárgyat, amivel tüzet akartál gyújtani." @@ -151641,6 +154745,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "Valami nikotintartalmút szeretnél." @@ -153822,6 +156931,18 @@ msgstr "" msgid "Maybe you should find something new to read..." msgstr "" +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "" + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "" + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "Öklendezel, de a gyomrod üres." + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "" @@ -153871,6 +156992,10 @@ msgstr "Egy másik jármű van az útban." msgid "That part of the vehicle is currently unsafe." msgstr "A jármű azon része jelenleg nem biztonságos." +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "Beugrasz a vízbe?" @@ -153927,6 +157052,10 @@ msgstr "" msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "" @@ -153988,6 +157117,38 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "A(z) %st ebben az állapotában nem lehet elsütni." +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "A kagylódba bújva nem tudsz hatékonyan dobni." + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "Tárgy eldobása" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "Nincsen elhajítható tárgyad" + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "Nincs nálad az a tárgy." + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "Az túl nehéz ahhoz, hogy elhajíthasd." + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "Az a tested része, nem tudod elhajítani!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "Erősen koncentrálsz, a tested pedig engedelmeskedik!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "Nem tudod annyira összeszedni magad, hogy bármit is elhajíthass." + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -154024,19 +157185,13 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" @@ -155292,6 +158447,11 @@ msgstr "Felállsz." msgid " stands up." msgstr " feláll." +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "Kiszabadítod magadat a hálóból!" @@ -155304,6 +158464,11 @@ msgstr " kiszabadítja magát a hálóból!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "Megpróbálod magadat kiszabadítani a hálóból, de nem sikerül!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "Kiszabadítod magadat a könnyű csapdából." @@ -155316,6 +158481,11 @@ msgstr " kiszabadítja magát a könnyű csapdából!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "" @@ -155328,6 +158498,16 @@ msgstr "" msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "" @@ -155364,6 +158544,21 @@ msgstr "" msgid " escapes the pit!" msgstr "" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "" @@ -155663,6 +158858,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "Hányt." + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "Hányt." + +#: src/character.cpp +msgid " throws up heavily!" +msgstr " hatalmasat okádik!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "Hatalmasat okádsz!" + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "Nincs auto felszedés" @@ -156330,96 +159583,10 @@ msgstr "Lift aktiválva. A folytatáshoz nyomjon egy gombot..." msgid "NEPower Mine(%d:%d) Log" msgstr "NEPower bánya(%d:%d) napló" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"47. BEJEGYZÉS:\n" -"A szokásos bányászati folyamataink során feltártunk egy üreges kamrát. Ez\n" -"önmagában még nem lenne rendkívüli kivéve az abban felfedezett, tökéletesen\n" -"függőleges törésvonal jelenlétét. Ebben a törésvonalban számos furcsa\n" -"bemélyedés található, amelyek felkavarták a babonásabb bányászok lelkét. A\n" -"bemélyedések ugyanis emberi származásúnak tűnnek.\n" -"\n" -"48. BEJEGYZÉS:\n" -"A bemélyedések 3-6 méter magasak, és végig követik a törésvonal irányát.\n" -"Mindegyik bemélyedés nagyjából ember formájú, de a végtagok, nyakak és \n" -"fejek aránya groteszk módon torz, mindegyik furcsa szögben kanyarog.\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "Folytatod az olvasást?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"49. BEJEGYZÉS:\n" -"Természetesen az érintett területen felfüggesztettük a bányászati kitermelést, \n" -"amíg a régészek jobban át nem vizsgálják az furcsaságokat. Ez legalább egy\n" -"héttel késlelteti a kitermelési tervezetet. Ez az ostoba régiségvédelmi törvény\n" -"már 50 éve okoz késedelmet, és szóba sem került a visszavonása annak ellenére,\n" -"hogy a bányászat a gazdaságunk fő hajtóereje.\n" -"\n" -"52. BEJEGYZÉS:\n" -"Még mindig a régészekre várunk. Egy kicsit jobban megvizsgáltuk a törésvonalat.\n" -"Az érzékelőink nem képesek feltárni, hogy az üregek milyen mélységig követik a \n" -"törésvonalat. A berendezéseinket 25 km-es mélységre tervezték ugyan, de nem\n" -"ennyire keskeny vágatok számára, úgyhogy nehéz megmondani, meddig tartanak.\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"54. BEJEGYZÉS:\n" -"Felfigyeltem egy pár kollégára, akik vésővel estek neki a sima falnak. Engem\n" -"nem érdekel, nem mintha tudóskáimnak feltűnne, ha hiányzik valami. Szarok\n" -"rájuk.\n" -"\n" -"55. BEJEGYZÉS:\n" -"Hát, végre befutottak a régészek, és a srácok levezették őket. Nem igazán azok\n" -"az Indiana Jones-féle régészek - szerintem öt méternél lejjebb soha nem járták.\n" -"Utálom, hogy a srácoknak ilyen hülyeségekre megy el az ideje, és bébiszittelni\n" -"kell a tudósokat, de ha azoknak baja lesz, akkor tuti még jobban csúszik minden.\n" -"\n" -"58. BEJEGYZÉS:\n" -"MÉG EGY csapatot hoznak ezek? Basszus, csak a kőbe kapart néhány rajzról van\n" -"szó! Tudom, hogy elvileg ez fontos, de nem igaz már, hogy a mostani csapat nem megy vele semmire!\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "AMIGARA PROJEKT" @@ -156433,37 +159600,10 @@ msgstr "" "%d%d%d HELYSZÍN\n" "A VONATKOZÓ MŰVEZETŐI NAPLÓBEJEGYZÉSEK CSATOLVA" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" -"\n" -"BÁNYAÜZEMI MUNKÁLATOK FELFÜGGESZTVE; VEZÉRLÉS ÁTADVA AZ AMIGARA PROJEKTNEK A\n" -" 2:07B UTASÍTÁS ALAPJÁN\n" -"TÖRÉSVONAL MÉLYSÉGE: 30.09 KM\n" -"TÖRÉSVONAL SÉRÜLÉSE MIATT NEOPOWER BRIGÁD LETARTÓZTATVA A\n" -" 87.08 RENDELET ALAPJÁN ÉS ÁTHELYEZVE A 89-C LABORBA\n" -" KÍSÉRLETI ALANYNAK\n" -"TÖRÉSVONAL MINŐSÉGE NEM SÉRÜLT\n" -"SZTENDERD FÖLDRENGÉSTESZT MEGKEZDHETŐ..." - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "SÉRÜLT ADAT, A FOLYTATÁSHOZ NYOMJON EGY GOMBOT..." -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "A gép gyorsan a helyére rakja és sínbe rögzíti az eltört %set." - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--HOZZÁFÉRÉS ENGEDÉLYEZVE--" @@ -158838,6 +161978,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "Mutáció kategória szintek megjelenítése" @@ -159010,6 +162154,10 @@ msgstr "Férfi" msgid "no faction" msgstr "" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -162625,19 +165773,6 @@ msgid "" " \n" msgstr "" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "" @@ -164248,6 +167383,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "További tüzelő nélkül még %s órán át fog égni." +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -164524,38 +167671,6 @@ msgstr "" msgid "Drop where?" msgstr "Hova ejted le?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "A kagylódba bújva nem tudsz hatékonyan dobni." - -#: src/game.cpp -msgid "Throw item" -msgstr "Tárgy eldobása" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "Nincsen elhajítható tárgyad" - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "Nincs nálad az a tárgy." - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "Az túl nehéz ahhoz, hogy elhajíthasd." - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "Az a tested része, nem tudod elhajítani!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "Erősen koncentrálsz, a tested pedig engedelmeskedik!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "Nem tudod annyira összeszedni magad, hogy bármit is elhajíthass." - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -164886,6 +168001,11 @@ msgid "Really step into %s?" msgstr "Biztosan belelépsz: %s?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -164893,6 +168013,14 @@ msgstr "" msgid "Can't find grabbed object." msgstr "Nem található a megragadott tárgy" +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -164953,12 +168081,27 @@ msgstr "" msgid "You hurt your right foot on the %s!" msgstr "" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "Félretolod a(z) %st." + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -164968,6 +168111,10 @@ msgstr "" msgid "There's something here, but you can't see what it is." msgstr "" +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -165012,6 +168159,11 @@ msgstr "" msgid "%s to drive." msgstr "" +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -166083,11 +169235,6 @@ msgstr "A(z) %s túl nagy ahhoz, hogy csak úgy félretold." msgid "There is too much stuff in the way." msgstr "Túl sok minden van útban." -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "Félretolod a(z) %st." - #: src/gates.cpp msgid "stuff" msgstr "cucc" @@ -166096,6 +169243,11 @@ msgstr "cucc" msgid "No vehicle at grabbed point." msgstr "Nem ragadtál meg járművet." +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -166588,14 +169740,30 @@ msgstr "Auto-mozgás törölve" msgid "Unknown command: \"%s\" (%ld)" msgstr "Ismeretlen parancs: \"%s\" (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat kinyitni." +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat becsukni." +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat szétzúzni." @@ -166608,26 +169776,50 @@ msgstr "A kagylódba bújva nem tudod a környezeted megvizsgálni." msgid "You can't move mass quantities while you're in your shell." msgstr "A kagylódba bújva nem tudsz sok dolgot mozgatni." +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat megragadni." +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat szállítani." +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat lemészárolni." +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "A kagylódba bújva nem tudsz sarok mögül kikukucskálni." +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat egy másik mezőre leejteni." @@ -166637,10 +169829,18 @@ msgstr "A kagylódba bújva nem tudsz dolgokat egy másik mezőre leejteni." msgid "You can't craft while you're in your shell." msgstr "A kagylódba bújva nem tudsz dolgokat készíteni." +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "Vezetés közben nem tudsz tárgyakat szétszedni." +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "Járműben nem kezdhetsz építkezni." @@ -166649,6 +169849,10 @@ msgstr "Járműben nem kezdhetsz építkezni." msgid "You can't construct while you're in your shell." msgstr "A kagylódba bújva nem tudsz építkezni." +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -166731,6 +169935,7 @@ msgstr "" #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -168174,10 +171379,26 @@ msgstr "" "A csatlakoztatott fotelben nem található páciens. A műtét lehetetlen. " "Kilépés." +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name @@ -168228,6 +171449,26 @@ msgstr "Nincsen beépített bionikád." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s testében nincsen beépített bionika." +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "A gép gyorsan a helyére rakja és sínbe rögzíti az eltört %set." + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "" @@ -173927,6 +177168,11 @@ msgstr "" msgid "Really stop cooking?" msgstr "" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -177287,6 +180533,32 @@ msgid "" "weapon." msgstr "" +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -177441,10 +180713,6 @@ msgstr "A törzsed ormótlansága miatt elveszted az egyensúlyodat." msgid "You can't hit reliably due to your farsightedness." msgstr "A távollátásod miatt nem tudsz megbízhatóan ütéseket bevinni." -#: src/melee.cpp -msgid "You feint." -msgstr "Kicselezed." - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "Eltéveszted a célt és a lendülettől megbotlasz." @@ -178075,27 +181343,10 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"Profit: $8/óra\n" -"Veszély: Minimális\n" -"Idő: Minimum 1 óra \n" -" \n" -"Az egyik szövetségesed cselédmunkára rendelésével alapvető készségeket tanulhat, és kapcsolatot építhet az előörssel. Ne számíts azonban túl nagy jutalomra." - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"Profit: $8/óra\n" -"Veszély: Minimális\n" -"Idő: Minimum 1 óra \n" -" \n" -"Munkavégzési beosztás:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -179542,16 +182793,6 @@ msgstr "" msgid "The %s tries to grab you as well, but you bat it away!" msgstr "" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -180551,6 +183792,11 @@ msgstr "" msgid "Attach bag" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -180588,6 +183834,54 @@ msgstr "" msgid "Milk %s" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -180601,6 +183895,11 @@ msgstr "" msgid "Pet armor" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -180664,6 +183963,11 @@ msgstr "" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -181138,26 +184442,6 @@ msgstr "" msgid "The %s climbs to its feet!" msgstr "" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -182044,7 +185328,7 @@ msgid "activated" msgstr "aktiválva" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -187024,55 +190308,31 @@ msgid " attempts to put out the fire on them!" msgstr " megpróbálja kioltani magán a tüzet." #: src/player.cpp -msgid "a piercing howl!" +msgid "You spur your steed into a gallop." msgstr "" #: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "" - -#: src/player.cpp -msgid "a loud shout!" -msgstr "" - -#: src/player.cpp -msgid "yourself shout loudly!" -msgstr "" +msgid "You start running." +msgstr "Elkezdesz futni." #: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" +msgid "Your steed is too tired to go faster." msgstr "" #: src/player.cpp -msgid "an indistinct voice" -msgstr "" +msgid "You're too tired to run." +msgstr "Túl fáradt vagy a futáshoz." #: src/player.cpp -msgid "your muffled shout" +msgid "You slow your steed to a walk." msgstr "" #: src/player.cpp -msgid "The sound of your voice is significantly muffled!" +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "You start running." -msgstr "Elkezdesz futni." - -#: src/player.cpp -msgid "You're too tired to run." -msgstr "Túl fáradt vagy a futáshoz." - -#: src/player.cpp -msgid "You start crouching." +msgid "You nudge your steed to a steady trot." msgstr "" #: src/player.cpp @@ -188258,28 +191518,6 @@ msgstr "Az eltört %s elkezdett begyógyulni." msgid "Your %s has started to mend!" msgstr "A(z) %s elkezdett begyógyulni!" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "Hányt." - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "Hányt." - -#: src/player.cpp -msgid " throws up heavily!" -msgstr " hatalmasat okádik!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "Hatalmasat okádsz!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "Öklendezel, de a gyomrod üres." - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -188910,14 +192148,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "" -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "" - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "" - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -189015,6 +192245,32 @@ msgstr "" msgid "Your body strains under the weight!" msgstr "" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "Megsérültél!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "" + #: src/player.cpp msgid "Wielding: " msgstr "Kezében: " @@ -190359,6 +193615,10 @@ msgstr "" msgid "none" msgstr "semmi" +#: src/recipe.cpp +msgid "none" +msgstr "" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -190636,6 +193896,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "Buborékos fóliára lépett" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "Pukk!" @@ -190689,6 +193954,11 @@ msgstr "Egy medvecsapdába szorul a lábad!" msgid "A bear trap closes on 's foot!" msgstr "Egy medvecsapdába szorul lába!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -190707,6 +193977,11 @@ msgstr "Ráléptél egy tüskés falapra!" msgid " steps on a spiked board!" msgstr " rálép egy tüskés falapra!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -190725,6 +194000,11 @@ msgstr "Ráléptél egy éles fém lábtövisre!" msgid " steps on a sharp metal caltrop!" msgstr " rálép egy éles fém lábtövisre!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -190765,6 +194045,16 @@ msgstr "Megbotlottál egy csapdadrótban!" msgid " trips over a tripwire!" msgstr " megbotlott egy csapdadrótban!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "Beindítottál egy számszeríj csapdát!" @@ -190811,6 +194101,11 @@ msgstr "A kilőtt tüske nem találja el a(z) %st." msgid "Kerblam!" msgstr "Bamm!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "Beindítottál egy sörétes puska csapdát!" @@ -190834,6 +194129,11 @@ msgstr "Beindított egy sörétes puska csapdát." msgid "A shotgun fires and hits the %s!" msgstr "A sörétes puska elsül és eltalálja a(z) %st!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "Lecsap egy penge és belevág a törzsedbe!" @@ -190856,6 +194156,11 @@ msgstr "Beindított egy penge csapdát." msgid "Snap!" msgstr "Csatt!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "Egy csapda zárul a lábadra." @@ -190874,7 +194179,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "Beindított egy könnyű csapdát." -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -191009,6 +194318,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "Belelépett a boncolóba." +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr " beleesett egy gödörbe!" @@ -191037,14 +194351,15 @@ msgid "" "admirably!" msgstr "" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "Megsérültél!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "Ügyesen földet érsz." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "Beleestél egy karókkal kibélelt gödörbe!" @@ -191123,6 +194438,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "Lávába lépett." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "Nem sikerült felcsatolni..." @@ -191140,6 +194460,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr "víznyelõbe lép, de sikerrel biztonságba húzza magát. " +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -192501,6 +195826,11 @@ msgstr "A(z) %s beragadt." msgid "The %s's engine emits a sneezing sound." msgstr "A(z) %s motorjából tüsszögő hang hallattszik." +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -192550,6 +195880,10 @@ msgstr "" msgid "The %1$s's %2$s runs over something." msgstr "" +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "Ennek a járműnek nincsen kormányszerve, nem lehet vele fordulni." @@ -193114,6 +196448,36 @@ msgid "" " on. The washing machine is being filled with water from vehicle tanks." msgstr "" +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "Jármű vizsgálata" @@ -193154,6 +196518,10 @@ msgstr "" msgid "Load or unload a vehicle" msgstr "" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "" diff --git a/lang/po/ja.po b/lang/po/ja.po index 7eccf3fe4d88c..7d6d0ac67aac4 100644 --- a/lang/po/ja.po +++ b/lang/po/ja.po @@ -13,16 +13,16 @@ # xyz , 2019 # nobiruneko , 2019 # zojirushi, 2019 -# TEATIME , 2019 # Brett Dong , 2019 # Ban Kaidou, 2019 +# TEATIME , 2019 # Pigmentblue15, 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" "Last-Translator: Pigmentblue15, 2019\n" "Language-Team: Japanese (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ja/)\n" @@ -1164,7 +1164,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "saltpeter" msgid_plural "saltpeter" -msgstr[0] "硝石" +msgstr[0] "硝酸カリウム" #. ~ Description for saltpeter #: lang/json/AMMO_from_json.py @@ -1172,7 +1172,7 @@ msgid "" "A handful of saltpeter. Sometimes used as a fertilizer, this ubiquitous " "nitrate is the principal constituent of black gunpowder and simple rocket " "propellants, such as rocket candy." -msgstr "ひとかけらの硝石です。化学肥料としても使いますが、主に黒色火薬の原料や、砂糖ロケットのような単純なロケットの推進剤に用いられます。" +msgstr "ひとかけらの硝酸カリウムです。化学肥料としても使いますが、主に黒色火薬の原料や、砂糖ロケットのような単純なロケットの推進剤に用いられます。" #: lang/json/AMMO_from_json.py msgid "niter" @@ -1184,7 +1184,7 @@ msgstr[0] "硝石" msgid "" "A large crystal of niter, the mineral form of potassium nitrate. It can be " "processed into saltpeter." -msgstr "硝酸カリウムが結晶化して作られた、大きな硝石です。砥石に加工することができます。" +msgstr "硝酸カリウムが結晶化して作られた、大きな鉱石です。硝酸カリウムに加工できます。" #: lang/json/AMMO_from_json.py msgid "aluminum sulfate" @@ -1276,7 +1276,7 @@ msgid "" "produced when it burns will quickly clog any firearm, but it could be used " "to make some vicious bombs." msgstr "" -"硝石と炭と硫黄を混合した黒色火薬です。燃焼時に煤が発生し銃を詰まらせてしまうため、現代的な弾薬の製作には向いていませんが、危険な爆弾を作るには良さそうです。" +"硝酸カリウムと炭と硫黄を混合した黒色火薬です。燃焼時に煤が発生し銃を詰まらせてしまうため、現代的な弾薬の製作には向いていませんが、危険な爆弾を作るには良さそうです。" #: lang/json/AMMO_from_json.py msgid "RDX" @@ -1362,6 +1362,15 @@ msgid "" "create a beaded curtain door." msgstr "彫刻できるアクセサリーやビーズ製ドアカーテンの材料に使われる木製のビーズです。" +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "松脂" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "はんだ付け用の溶剤として利用できる、黄色っぽい松脂の塊です。" + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "ボルト(粗製)" @@ -2284,6 +2293,19 @@ msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" msgstr[0] "弾薬(.38口径/スーパー(手詰め))" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "弾薬(.38口径/スペシャル/黒色火薬)" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" +"約13gの鉛製ホローポイント弾頭と約1.5gの黒色火薬を備えた.38口径スペシャル弾です。弾速は通常の.38口径弾よりはるかに劣りますが、強力な制止力を持っています。" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "弾薬(.380口径/ACP FMJ)" @@ -2320,7 +2342,7 @@ msgstr "弾薬(.380口径/ACP +P)" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" @@ -2503,6 +2525,17 @@ msgid "" "incapacitating gas." msgstr "催涙ガスを充填した40mmグレネード弾です。爆発時に強力な無力化ガスが発生します。" +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "弾薬(40mm擲弾/単発弾)" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "強力な単発弾を搭載した40mm弾です。発射時に肩が外れてしまいそうです。" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr "弾薬(.44口径/マグナムFMJ)" @@ -2535,6 +2568,17 @@ msgstr "弾薬(.44口径/マグナムFMJ(手詰め))" msgid "reloaded .44 Magnum" msgstr "弾薬(.44口径/マグナム(手詰め))" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "弾薬(.44口径/マグナム/黒色火薬)" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "約2.5gの黒色火薬と約13gの鉛製セミワッドカッター弾頭を備えた.44口径マグナム弾です。" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr "紙製薬莢(.44口径)" @@ -2615,6 +2659,111 @@ msgstr "" msgid "reloaded .454 Casull" msgstr "弾薬(.454口径/カスール(手詰め))" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "弾薬(.454口径/カスール/黒色火薬)" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "約3gの黒色火薬と約12gの鉛製ホローポイント弾頭を備えた、時代遅れの奇妙な弾薬です。" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr "弾薬(.45-70口径/SP)" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" +"約19.7gのソフトポイント弾頭を備えた.45-70口径ガバメント弾です。現在も使われている中では最も古い弾薬の一つですが、今も大型動物を近距離から狙う目的で愛用されています。" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr "弾薬(.45-70口径/+P貫通弾)" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" +"約19.7gの銅芯を備えた.45-70口径ガバメント+P弾です。理想的な威力はそのままに、厚い皮と骨を貫く最大限の貫通性能を実現しています。" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr "弾薬(.45-70口径/LFNカウボーイ)" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" +"約26.2gの鉛製フラットノーズ弾頭を備えた、アンティーク銃でも安全に使える.45-70口径ガバメント弾です。現代の弾薬よりは劣りますが、それでも十分な威力です。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "弾薬(.45-70/SP(手詰め))" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" +"約19.7gのソフトポイント弾頭を備えた、手詰めの.45-70口径ガバメント弾です。現在も使われている中では最も古い弾薬の一つですが、今も大型動物を近距離から狙う目的で愛用されています。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "弾薬(.45-70口径/+P貫通弾(手詰め))" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" +"約19.7gの銅芯を備えた、手詰めの.45-70口径ガバメント+P弾です。理想的な威力はそのままに、厚い皮と骨を貫く最大限の貫通性能を実現しています。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "弾薬(.45-70口径/LFNカウボーイ(手詰め))" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" +"約26.2gの鉛製フラットノーズ弾頭を備えた、アンティーク銃でも安全に使える手詰めの.45-70口径ガバメント弾です。現代の弾薬よりは劣りますが、それでも十分な威力です。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "弾薬(.45-70口径/黒色火薬(手詰め))" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" +"約26.2gの鉛製フラットノーズ弾頭と元来の仕様通りの黒色火薬を備えた、アンティーク銃でも安全に使える手詰めの.45-70口径ガバメント弾です。現代の弾薬よりは劣りますが、それでも十分な威力です。" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "弾薬(4.6x30mm)" @@ -3383,6 +3532,22 @@ msgstr "弾薬(矢弾(手詰め))" msgid "reloaded shotgun slug" msgstr "弾薬(単発弾(手詰め))" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "弾薬(小ペレット弾/黒色火薬)" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "弾薬(散弾/黒色火薬)" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "弾薬(矢弾/黒色火薬)" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "弾薬(単発弾/黒色火薬)" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "弾薬(散弾)" @@ -5227,11 +5392,10 @@ msgstr[0] "スクラップスーツ" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." -msgstr "" -"鉄くずを紐で簡単に繋ぎ合わせて作った鎧です。それなりの性能はありますが、しっかりと固定されていない鉄板の束で最高の防御力を実現するのは困難です。" +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." +msgstr "鉄くずを紐で簡単に繋ぎ合わせて作った鎧です。ゆるく繋いだ鉄板の束にそれなりの性能はありますが、完璧な装甲とは言えません。" #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -12119,6 +12283,36 @@ msgstr[0] "スイミングブーツ" msgid "A pair of neoprene swimming booties, with individual toes." msgstr "足の指が分かれているネオプレン製のスイミングブーツです。" +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "ローラーシューズ(オフ)" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "ホイールを展開しました。" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "ホイールが付いたスニーカーです。現在ホイールは収納されています。" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "ローラーシューズ(オン)" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "ホイールを収納しました。" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "ホイールが付いたスニーカーです。現在ホイールは展開しています。" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -12898,6 +13092,19 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "魔法の氷で作られた滑りやすい靴です。平らな床では非常に素早く移動できますが、起伏の多い地形では上手く動けません。" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "肉のポーチ" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "無数の小さな触手が生えた、背中に着用する大きな肉の袋です。袋自体が動いて変形し、動作制限を最小限に抑えます。" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -15409,6 +15616,7 @@ msgid_plural "schematics generics" msgstr[0] "汎用開発概要" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -15417,7 +15625,8 @@ msgstr[0] "汎用開発概要" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -19093,7 +19302,7 @@ msgstr[0] "ジン(未発酵)" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "ジュニパーベリーで風味をつけ終えた、未発酵のジンです。蒸留しても、そのまま飲んで酔っても構いません。" @@ -19498,9 +19707,9 @@ msgstr[0] "肺" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"動物から取り出した、ピンク色をしたスポンジ状の肺です。非常に早く腐敗が進みます。適切に調理すれば絶妙な味の料理になりますが、下手な調理では噛み応えのある味のしない肉塊にしかなりません。" +"動物から取り出した、ピンク色のスポンジのような肺です。非常に早く腐敗が進みます。適切に調理すれば絶妙な味の料理になりますが、下手な調理では噛み応えのある味のしない肉塊にしかなりません。" #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -19510,7 +19719,7 @@ msgstr[0] "肺(調理済)" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "適切な調理が施された、何の味もしない灰色の臓器です。調理前より不味そうに見えますが、寄生虫は完全に死滅しています。" @@ -24781,7 +24990,7 @@ msgstr[0] "ジュニパーベリー" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "ジンの素朴な香りの元となる実です。ローズマリーに似た刺激的な味です。" @@ -29145,7 +29354,7 @@ msgstr "公衆衛生総監の警告: 喫煙は肺がん、心臓病、肺気腫 #: lang/json/CONTAINER_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" -msgstr[0] "小型段ボール箱" +msgstr[0] "段ボール箱S" #. ~ Description for small cardboard box #: lang/json/CONTAINER_from_json.py @@ -29155,7 +29364,7 @@ msgstr "小さな段ボール箱です。靴が一足入る程度の寸法です #: lang/json/CONTAINER_from_json.py msgid "cardboard box" msgid_plural "cardboard boxes" -msgstr[0] "段ボール箱" +msgstr[0] "段ボール箱M" #. ~ Description for cardboard box #: lang/json/CONTAINER_from_json.py @@ -29166,7 +29375,7 @@ msgstr "バナナがちょうど入る程度のサイズの、頑丈な段ボー #: lang/json/CONTAINER_from_json.py lang/json/furniture_from_json.py msgid "large cardboard box" msgid_plural "large cardboard boxes" -msgstr[0] "大型段ボール箱" +msgstr[0] "段ボール箱L" #. ~ Description for large cardboard box #: lang/json/CONTAINER_from_json.py @@ -29675,6 +29884,26 @@ msgstr[0] "ボウル(250ml/プラスチック)" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "密閉できる便利な蓋が付いたプラスチック製のボウルです。750mlの容量があります。" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "水筒(750ml/鋼)" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "鋼鉄製の水筒です。750mlの容量があります。" + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "携帯ボトル(500ml)" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "軟質プラスチック製のボトルです。500mlの容量があります。" + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -29719,16 +29948,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "植物を栽培できる特殊な鉢です。快適な環境で植物を育てればたくさんの収穫を得られます。種と共に製作することで植え付けを行います。" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "水筒(750ml/鋼)" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "鋼鉄製の水筒です。750mlの容量があります。" - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -29739,16 +29958,6 @@ msgstr[0] "アルミカットホイル" msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "若干しわくちゃになっているアルミ箔のシートです。料理やパン作りに使用します。" -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "携帯ボトル(500ml)" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "軟質プラスチック製のボトルです。500mlの容量があります。" - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -30314,6 +30523,10 @@ msgstr[0] "死体" msgid "A dead body." msgstr "死体。" +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "動物" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "火の傍" @@ -30349,8 +30562,10 @@ msgstr[0] "枯れた植物" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "枯れた植物です。火を起こすのにちょうど良さそうです。" +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "枯れた植物です。火を起こす、一つにまとめてベッドにするなどの用途があります。" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -36099,6 +36314,16 @@ msgstr[0] "空薬莢(.45口径/ACP)" msgid "An empty casing from a .45 ACP round." msgstr ".45口径ACP弾の空薬莢です。" +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "空薬莢(.45-70口径)" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr ".45-70口径ガバメント弾の空薬莢です。" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -36282,6 +36507,18 @@ msgid "" msgstr "" "自由商人保証紙幣はかつてのアメリカの紙幣に準拠した通貨単位で、「C紙幣」や「マーチ」と呼ばれています。50ドル以上の紙幣には、複雑な意匠と共に自由商人の会計係の署名が記されています。この紙幣は難民センターの自由商人を通じて食料や水、その他のサービスと交換できるようになっています。" +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "ハブ01金貨" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "小さい割には驚くほど重い金貨です。片面には回路の図案、もう片面には「ハブ01通貨」という文字が刻まれています。" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -37221,6 +37458,16 @@ msgid "" "string." msgstr "ただのスパイクと何本かの紐で作られた、その場しのぎの銃剣です。" +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "ストーンスピア" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "鋭い石の穂先を取り付けた木製の槍です。" + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -37320,6 +37567,20 @@ msgid "" msgstr "" "ベニヤ板やOSB、MDFなどの標準的な4×8材です。重く嵩張りますが、様々な建築物の資材として非常に役立ちます。小さなものを造りたいときは適切な大きさに切断する必要があります。" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "飯盒" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"収納性に優れた軍用の鍋と器のセットです。火や携帯ストーブの上で食べ物を加熱調理できます。普通の鍋やフライパンと比べるとより浅く作られており、現代的な調理器具セットと違って加熱機能が組み込まれていません。" + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -39741,6 +40002,28 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "腕と手を、火花を散らす魔法の稲妻で包みます。近接戦闘の際に攻撃と防御に利用できます。" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "触手鞭" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "鋭い骨の刃と尖った突起に覆われた、蠢く長い触手です。" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "骨の槍" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "槍やハルバードに似た、骨から作られた邪悪な武器です。" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -39856,6 +40139,26 @@ msgstr[0] "本(魔法/名もなき呪文書)" msgid "A small book, containing spells created by a novice magician." msgstr "魔術の初心者によって書かれた、呪文などが載っている小さな本です。" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "本(魔法/肉の書)" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "小さな書物です。表紙が鞣した人間の皮膚で覆われているように見えます。" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "本(魔法/木々の書)" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "表紙が樹皮で覆われた書物です。" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -40394,30 +40697,6 @@ msgid "integral EMP projector" msgid_plural "integral EMP projectors" msgstr[0] "内蔵型EMP発射装置" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "ストーンスピア" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "鋭い石の穂先を取り付けた木製の槍です。" - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "飯盒" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"収納性に優れた軍用の鍋と器のセットです。火や携帯ストーブの上で食べ物を加熱調理できます。普通の鍋やフライパンと比べるとより浅く作られており、現代的な調理器具セットと違って加熱機能が組み込まれていません。" - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -44230,6 +44509,17 @@ msgstr "追加 - 派生的な実在の銃器" msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "より多様な弾薬や現実に存在する銃器を追加します。" +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "追加 - 目視アイコン(HitButton_iso)" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "モンスターがプレイヤーを目視した際に態度を示すアイコンを表示します。HitButton isometric用のデザインです。" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "追加 - 目視アイコン+態度" @@ -44338,9 +44628,9 @@ msgstr "負傷ゾンビ" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." -msgstr "ゆがんだ人間の皮膚が分厚く変化し、傷跡は硬く覆われています。" +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." +msgstr "歪んだ人間の皮膚が分厚く変化し、傷跡が硬く覆われています。" #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -44594,7 +44884,7 @@ msgstr "レイス" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "無秩序に形を変える巨大な影です。刺すように輝く二つの目によって、なんとか頭部と思しき場所を判別できます。" @@ -44653,7 +44943,7 @@ msgstr "ロッテンワイラー" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." +" chains of pulsing cysts and slime-dribbling ulcers." msgstr "鼻を突く臭いを漂わせる犬の死体です。脈打つ膿腫と粘液が滴るいぼで全身が覆われています。" #: lang/json/MONSTER_from_json.py @@ -44663,10 +44953,14 @@ msgstr "監視ロボット" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." -msgstr "ホバー駆動する球体型のロボットです。高解像のカメラレンズで周囲の虐殺や暴動をしっかりと記録し、物言わぬ目撃者として働きます。" +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." +msgstr "" +"高解像度カメラレンズとスピーカー、4つの回転翼を備えた無人機です。空中を浮遊し、大虐殺と周囲の騒乱を記録しています。もはや中央機関に報告することはできませんが、どこかに稼働している充電ステーションがあるのか、警報システムの一部は今も機能しているようです。" #: lang/json/MONSTER_from_json.py msgid "nurse bot" @@ -45383,8 +45677,8 @@ msgstr "ゾンビ" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." msgstr "揺れ動きながら歩く人間だったモノは、どろどろとした黒い目にやり場の無い怒りを湛えているように見えます。" #: lang/json/MONSTER_from_json.py @@ -46249,9 +46543,9 @@ msgstr "マンハック(EMP)" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." -msgstr "自動操縦の特攻無人機です。この拳大のロボットはEMPを内蔵しているようです。" +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." +msgstr "4つの回転翼を備えた小さな特攻無人機です。EMP装置を内蔵しているようです。" #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -46260,9 +46554,9 @@ msgstr "マンハック(C4爆弾)" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." -msgstr "自動操縦の特攻無人機です。この拳大のロボットはC4爆弾をいくつか内蔵しているようです。" +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." +msgstr "4つの回転翼を備えた小さな特攻無人機です。複数のC4爆弾を内蔵しているようです。" #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -46271,9 +46565,9 @@ msgstr "マンハック(閃光弾)" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." -msgstr "自動操縦の特攻無人機です。この拳大のロボットは閃光弾を内蔵しているようです。" +msgstr "4つの回転翼を備えた小さな特攻無人機です。閃光弾を内蔵しているようです。" #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -46282,9 +46576,9 @@ msgstr "マンハック(催涙ガス)" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." -msgstr "自動操縦の特攻無人機です。この拳大のロボットは催涙ガスを内蔵しているようです。" +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." +msgstr "4つの回転翼を備えた小さな特攻無人機です。催涙ガスを内蔵しているようです。" #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -46293,9 +46587,9 @@ msgstr "マンハック(手榴弾)" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." -msgstr "自動操縦の特攻無人機です。この拳大のロボットは手榴弾を内蔵しているようです。" +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." +msgstr "4つの回転翼を備えた小さな特攻無人機です。手榴弾を内蔵しているようです。" #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -46304,9 +46598,9 @@ msgstr "マンハック" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." -msgstr "自動操縦の対人用無人機です。拳大のロボットの円周上には刃が取り付けられています。" +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." +msgstr "4つの回転翼を備えた小さな無人対人兵器です。円周上に複数の刃が取り付けられています。" #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -46315,9 +46609,9 @@ msgstr "マンハック(小型原子爆弾)" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." -msgstr "通常の何倍も大きなマンハックです。この空飛ぶ無人機は小型原子爆弾を内蔵しているようです。もしも運悪く標的にされたなら...逃げましょう。" +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." +msgstr "4つの回転翼を備えた通常の何倍も大きなマンハックです。小型原子爆弾を内蔵しているようです。もしも運悪く標的にされたなら...逃げましょう。" #: lang/json/MONSTER_from_json.py msgid "tiny fish" @@ -50581,6 +50875,61 @@ msgstr "ペイン・スプリット" msgid "Evens out damage among your limbs." msgstr "四肢のダメージを均等化します。" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "ビシャス・テンタクル" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "鋭い骨をもち酸を滴らせる凶悪な長い触手を詠唱者の体内から発生させます。触手は強力な遠距離攻撃を繰り出します。" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "グロテスク・エンハンスメント" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "外法によって詠唱者の身体を歪め、能力と強度を高めます。" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "アシディック・スプレー" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "詠唱者の口から敵を溶かすドロドロの酸を円錐状に放出します。口からドロドロを吐き出す姿をイメージして唱えましょう。" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "フレッシュ・ポーチ" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "詠唱者の背中を変形させ、内部にアイテムを保存できる大きな袋を作り出します。" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "コンジャー・ボーンスピア" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "刃で縁取られた邪悪な骨の槍を生成します。" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "メガブラスト" @@ -50683,6 +51032,50 @@ msgstr "効果付与(デバッグ専用)" msgid "Adds an effect to the target" msgstr "標的に効果を付与します。" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "ベジテイティブ・グラスプ" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "地面から飛び出した根や蔓で敵を掴み、動きを鈍くして多少のダメージを与えます。" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "ルート・ストライク" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "地面から槍のように根が飛び出し、円内の敵を突き刺します。" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "ウッデン・シャフト" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "手から硬い木の枝を生み出して高速で射出し、敵に突き刺します。" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "ネイチャーズ・ボウ" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "本体が消えるまでは無限に矢を発射できる木製の弓を生成します。" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "ストーンフィスト" @@ -53224,6 +53617,18 @@ msgid "" msgstr "" "低インダクタンスコンデンサバンクから単ループアンテナに通電して電磁パルスを発生させる手榴弾です。使用するとピンを引いて発動させます。爆発するとロボットや生物工学的な要素を持つ対象にダメージを与える電磁パルスを周囲に発生させます。爆発まで3ターンの時間が掛かります。" +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "鞍" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "騎乗に適した飼い慣らされた動物に装着できる鞍です。" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -57197,10 +57602,10 @@ msgstr "パイプ爆弾の導火線に火をつけました。" #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" -"爆発物が詰め込まれたパイプです。使用すると火をつけますが、ライターやマッチが必要です。爆発するまで3ターンの猶予があるので、その間に距離を取りましょう。" +"爆発物が詰め込まれたパイプです。使用すると火をつけますが、ライターやマッチが必要です。爆発するまで5ターンの猶予があるので、その間に距離を取りましょう。" #: lang/json/TOOL_from_json.py msgid "active pipe bomb" @@ -57965,11 +58370,11 @@ msgstr[0] "手製槍" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" -"滑らかな木製の棒の先端に尖った金属を束ねて縛り付けた、自作の短めの槍です。機能的な持ち手が付いたまともな作りをしており、有効とまでは言えませんが、実用に足る武器です。" +"滑らかな木製の棒の先端に金属製のスパイクを縛り付けた、自作の短い槍です。機能的な持ち手が付いたまともな作りをしており、有効とまでは言えませんが、実用に足る武器です。" #: lang/json/TOOL_from_json.py msgid "spray can" @@ -58572,7 +58977,7 @@ msgid "" " smokescreen - if you lit the narrow end, you should be able to throw it " "before the flame reaches the broad end." msgstr "" -"砂糖と硝石を混ぜて加熱し、出てきた液体を詰めて作った洋ナシ型のロケットキャンディーです。この液体はロケットの燃料だけでなく、煙幕としての役割も果たします。導火線に火を点けて、引火するまでに投げることで飛ばせます。" +"砂糖と硝酸カリウムを混ぜて加熱し、出てきた液体を詰めて作った洋ナシ型のロケットキャンディーです。この液体はロケットの燃料だけでなく、煙幕としての役割も果たします。導火線に火を点けて、引火するまでに投げることで飛ばせます。" #: lang/json/TOOL_from_json.py msgid "burning rocket candy" @@ -59148,6 +59553,32 @@ msgid "" msgstr "" "パレットに満載された質素な泥製の煉瓦です。人間が命を危険に晒している間に、一週間かけてじっくり乾燥していました。分解するとパレットと煉瓦を入手できます。" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "手斧(石)" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "幅広の石の片側を鋭く砥ぎ、反対側は持ち手としてそのままにしてあります。多くの機能を備えた旧石器時代の十徳ナイフです。" + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "手斧(金属)" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" +"片側が鋭く成形された鋼鉄の塊です。まずまずの使い心地ですが、本物の斧とは比較になりません。まずまずの使い心地ですが、本物の斧とは比較になりません。" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -59294,6 +59725,18 @@ msgid "" "reinforce plastic items." msgstr "プラスチックの欠片です。プラスチック製品の製作、修復や補強に使えます。" +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "ヘキサミンストーブ" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "エスビットストーブとも呼ばれる、軽量で折り畳める携帯調理用コンロです。小さなヘキサミンのタブレットを燃料とします。" + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -59420,6 +59863,18 @@ msgid "" msgstr "" "広げればレジャーシートの代わりになる、繊維質を織り合わせて作った大きなシートです。血液が染みないため、死体を解体する際に真価を発揮します。快適な寝具として使うには薄すぎます。丸めて持ち運びやすい状態になっています。" +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "火打道具" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "マグネシウム製の棒と炭素鋼の火打ち金です。火花を飛ばして着火します。" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -60447,6 +60902,18 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "ファイアボールを失敗せずに撃てる、古典的な杖です。熟練のケルビニストであれば、より効率的に呪文を詠唱できます。" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "マジック・ミサイルの杖" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "マジック・ミサイルを失敗せずに撃てる、古典的な杖です。熟練の魔法使いであれば、より効率的に呪文を詠唱できます。" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -60817,18 +61284,6 @@ msgid "" " 9mm ammo." msgstr "完全に無害な普通のガーディアンノームです。9mm弾薬を100発装填できます。" -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "火打道具" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "厳選した硬い火打ち石と、高炭素鋼の火打金です。火花を飛ばして火を起こします。" - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -60867,18 +61322,6 @@ msgid "" msgstr "" "火口を収納する小さな容器です。空気の供給量を調整するための小さな穴がいくつか空いています。中で火口がくすぶっています。いつでもキャンプファイヤーができます。" -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "手斧(石)" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "幅広の石の片側を鋭く砥ぎ、反対側は持ち手としてそのままにしてあります。多くの機能を備えた旧石器時代の十徳ナイフです。" - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -60931,30 +61374,6 @@ msgid "" "become a crude form of cheese, having had vinegar and natural rennet added." msgstr "乳を詰めて密封した大きな革の水筒です。酢と天然レンネットを加えて凝結を進行させています。凝結が終わるとチーズの原型である凝乳になります。" -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "ヘキサミンストーブ" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "エスビットストーブとも呼ばれる、軽量で折り畳める携帯調理用コンロです。小さなヘキサミンのタブレットを燃料とします。" - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "簡易斧" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "木に鋭利な金属片を添えた斧の代用品です。まずまずの使い心地ですが、本物の斧とは比較になりません。" - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -62047,6 +62466,17 @@ msgid "" "of coma, awaiting your orders. Use this item to wake up the minion." msgstr "あなただけのゾンビの下僕です。その体を操っているブロブは休眠状態であなたの命令を待っています。使用することで下僕を目覚めさせます。" +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "くびき付きハーネス" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "車輪がついた車両に動物を繋いで牽引させるための棒とハーネスです。" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "ホイール" @@ -62380,304 +62810,304 @@ msgstr "" "短い鋼鉄製の履帯を繋げたものが、連動して回転する小さなタイヤによって固定されています。装甲人員運搬車や装甲車両に付いているキャタピラと同じもののようです。パンクする危険性が無く、通常のタイヤよりはるかに丈夫ですが、その分重量は非常に重くなっています。" #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr " 装填を中断しますか?" +msgid "reloading" +msgstr "装填" #: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "読書を中断しますか?" +msgid "reading" +msgstr "読書" #: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr " プレイを中断しますか?" +msgid "playing" +msgstr "娯楽" #: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr " 待機を中断しますか?" +msgid "waiting" +msgstr "待機" #: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "製作を中断しますか?" +msgid "crafting" +msgstr "製作" #: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr " 分解を中断しますか?" +msgid "disassembly" +msgstr "分解" -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr " 解体を中断しますか?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "解体" #: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "内臓摘出を中断しますか?" +msgid "field dressing" +msgstr "内蔵摘出" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" -msgstr "皮剥を中断しますか?" +msgid "skinning" +msgstr "皮剥" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "部位解体を中断しますか?" +msgid "quartering" +msgstr "部位解体" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" -msgstr "切断を中断しますか?" +msgid "dismembering" +msgstr "切断" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "精密解体を中断しますか?" +msgid "dissecting" +msgstr "精密解体" #: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "回収を中断しますか?" +msgid "salvaging" +msgstr "回収" #: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr " 採集を中断しますか?" +msgid "foraging" +msgstr "採集" #: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr " 建設を中断しますか?" +msgid "construction" +msgstr "建設" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "車両に関する作業を中断しますか?" +msgid "interacting with the vehicle" +msgstr "車両操作" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "訓練を中断しますか?" +msgid "training" +msgstr "訓練" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" -msgstr "交流を中断しますか?" +msgid "socializing" +msgstr "交流" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr " 応急手当を中断しますか?" +msgid "using first aid" +msgstr " 応急手当" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr " 釣りを中断しますか?" +msgid "fishing" +msgstr "釣り" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "掘削を中断しますか?" +msgid "mining" +msgstr " 採掘" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr " 穴掘りを中断しますか?" +msgid "burrowing" +msgstr "穴掘り" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr " 破砕を中断しますか?" +msgid "smashing" +msgstr "粉砕" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" -msgstr "手回し充電を中断しますか?" +msgid "cranking" +msgstr "手回し充電" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr " ストレス解消を中断しますか?" +msgid "de-stressing" +msgstr " ストレス解消" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr " 組織切断を中断しますか?" +msgid "cutting tissues" +msgstr " 組織切断" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr " 投下を中断しますか?" +msgid "dropping" +msgstr " 投下" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr " 収納を中断しますか?" +msgid "stashing" +msgstr " 収納" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr " 拾得を中止しますか?" +msgid "picking up" +msgstr " 拾得" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr " アイテムの移動を中断しますか?" +msgid "moving items" +msgstr " アイテム移動" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "アイテムの分類を中断しますか?" +msgid "sorting out the loot" +msgstr "アイテム分類" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "農地の耕耘を中断しますか?" +msgid "tilling the farm plot" +msgstr "耕作" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "種まきを中断しますか?" +msgid "planting seeds" +msgstr "播種" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "収穫を中断しますか?" +msgid "harvesting plots" +msgstr "収穫" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "施肥を中断しますか?" +msgid "fertilizing plots" +msgstr "施肥" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "所持品の整理を中断しますか?" +msgid "interacting with inventory" +msgstr "所持品整理" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr " 衣服の修繕を中断しますか?" +msgid "fiddling with your clothes" +msgstr " 衣服修繕" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr " 着火を中断しますか?" +msgid "lighting the fire" +msgstr " 着火" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr " 巻き上げ機の動作を中断しますか?" +msgid "working the winch" +msgstr " 巻き上げ" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr " 容器への充填を中断しますか?" +msgid "filling the container" +msgstr " 容器充填" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr " 車両のエンジン始動を中断しますか?" +msgid "hotwiring the vehicle" +msgstr " 車両エンジン始動" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr " 狙いを付けるのを中断しますか?" +msgid "aiming" +msgstr "照準" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr " ATMの使用を中断しますか?" +msgid "using the ATM" +msgstr " ATM使用" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr " 車両制御を中断しますか?" +msgid "trying to start the vehicle" +msgstr " 車両制御" -#: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr " 溶接を中断しますか?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "溶接" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "金庫破りを中断しますか?" +msgid "cracking" +msgstr "クラッキング" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "修復を中断しますか?" +msgid "repairing" +msgstr "修復" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "修理を中断しますか?" +msgid "mending" +msgstr "修理" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "銃器の改造を中断しますか?" +msgid "modifying gun" +msgstr "銃器改造" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "工具の改造を中断しますか?" +msgid "modifying tool" +msgstr "工具改造" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "NPCとの会話を中断しますか?" +msgid "interacting with the NPC" +msgstr "会話" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "瓦礫の除去を中断しますか?" +msgid "clearing that rubble" +msgstr "瓦礫除去" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "瞑想を中断しますか?" +msgid "meditating" +msgstr "瞑想" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "洗濯を中断しますか?" +msgid "washing" +msgstr "洗濯" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "金属の切断を中断しますか?" +msgid "cutting the metal" +msgstr "金属切断" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "切り倒すのを中止しますか?" +msgid "chopping down" +msgstr "伐採" -#: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "穿孔を中断しますか?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "穿孔" -#: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "穴掘りを中断しますか?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "穴掘" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "穴埋めを中断しますか?" +msgid "filling" +msgstr "穴埋め" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "顔剃りを中断しますか?" +msgid "shaving" +msgstr "顔剃り" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "散髪を中断しますか?" +msgid "cutting your hair" +msgstr "散髪" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "ペットとの触れ合いを中断しますか?" +msgid "playing with your pet" +msgstr "ペットとの触れ合い" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "睡眠を中断しますか?" +msgid "trying to fall asleep" +msgstr "睡眠" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" -msgstr "抜き取りを中断しますか?" +msgid "unloading" +msgstr "抜き取り" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" -msgstr "プログラムの上書きを中断しますか?" +msgid "programming override" +msgstr "プログラム上書き" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" -msgstr " アイテムの着用を中断しますか?" +msgid "putting on items" +msgstr " アイテム着用" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" -msgstr "木々との交信を中断しますか?" +msgid "communing with the trees" +msgstr "木々との交信" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" -msgstr "食事を中断しますか?" +msgid "eating" +msgstr "食事" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" -msgstr "摂取を中断しますか?" +msgid "consuming" +msgstr "摂取" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" -msgstr "詠唱を中断しますか?" +msgid "casting" +msgstr "詠唱" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" -msgstr "習得を中断しますか?" +msgid "studying" +msgstr "習得" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" -msgstr "摂取を中断しますか?" +msgid "drinking" +msgstr "飲む" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" -msgstr "薬物の使用を中断しますか?" +msgid "using drugs" +msgstr "薬物使用" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" -msgstr "精神接続キットの使用を中断しますか?" +msgid "using the mind splicer" +msgstr "精神接続キット使用" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" -msgstr "コンソールのハッキングを中断しますか?" +msgid "hacking console" +msgstr "ハッキング" #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" @@ -62687,6 +63117,10 @@ msgstr ".70口径ニトロ・エクスプレス弾" msgid ".50 BMG" msgstr ".50口径BMG弾" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr ".45-70口径弾" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "釘" @@ -64621,6 +65055,10 @@ msgstr "簡易ベッドを設置する" msgid "Build Straw Bed" msgstr "藁ベッドを設置する" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "枯れ草の山を設置する" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "ベッドを作って設置する" @@ -65847,6 +66285,26 @@ msgid "" "AI tag for when monsters are hit by player. This is a bug if you have it." msgstr "モンスターがプレイヤーに攻撃された時のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "騎乗" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "モンスターが騎乗されている時のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "車両接続" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "車両に繋がれているモンスターのAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "従順なモンスター" @@ -66120,6 +66578,16 @@ msgstr "装甲" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "装甲を身に着けている生物用のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "鞍装着" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "モンスターが鞍を装着している時のAIタグです。プレイヤーにこのタグが付いている時はバグが発生しています。" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "拘束" @@ -66263,6 +66731,20 @@ msgstr "目に見えて動揺しています。周囲を見ようとしてもな msgid "The scream dazes you!" msgstr "突然の金切声に呆然としています!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "騎乗" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "動物に騎乗しています。" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "動物に騎乗しました。" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "炎上" @@ -67028,7 +67510,7 @@ msgstr "皮膚(虫)" #: lang/json/effects_from_json.py msgid "" "You stop to scratch yourself frequently; high INT helps you resist the urge." -msgstr "頻繁に自身を掻き毟る為に動きを止めています; 知性が高いと衝動を抑え易くなります。" +msgstr "頻繁に動きを止めて身体を掻きむしるってしまいます。知性が高いほど衝動を抑えられる可能性が高まります。" #. ~ Apply message for effect(s) 'Itchy skin, Writhing skin, Bugs in skin'. #: lang/json/effects_from_json.py @@ -67356,7 +67838,7 @@ msgstr "眩暈がしました。" #: lang/json/effects_from_json.py msgid "You can't look away from the faultline..." -msgstr "断層線から目が離せない..." +msgstr "断層線から目を逸らせません..." #: lang/json/effects_from_json.py msgid "Feared" @@ -68086,6 +68568,54 @@ msgstr "身体が氷の鎧で保護されています。" msgid "Your Frost Armor melts away." msgstr "氷の鎧は溶けてなくなりました。" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "異常発達した筋肉が震え、四肢は伸び、目は緑色に輝いています。" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "身体が急速に元に戻りました。" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "根や蔓が敵に絡みついています。" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "根や蔓が敵に絡みつき、動きを鈍くしています!" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "根や蔓が朽ちました。" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "刺突根" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "根が地面を割って表れ、敵を突き刺しました!" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "酸の爆発" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "酸が飛び散りました。" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "くくり罠に掛かった" @@ -68762,6 +69292,15 @@ msgid "" msgstr "" "周辺地域最大の規模を誇るギャング団、つまり組織化された無法者や盗賊の群れです。彼らの主な狩猟対象は他の生存者です。たとえ獲物が丸裸でも奴隷や食肉として活用されるでしょう。" +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "変異ハチ" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "変異したハチは全てを憎んでいます。" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "神の集い" @@ -68971,8 +69510,7 @@ msgstr "道を封鎖するバリケードです。" msgid "smash!" msgstr "ガチャン!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "ドン。" @@ -69027,8 +69565,8 @@ msgid "" "notes for other survivors to read." msgstr "様々な情報が張り出された、大きなコルクボードの掲示板です。他の生存者が読めるように、メモが何枚か貼り付けてあります。" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "バリバリッ!" @@ -69124,6 +69662,17 @@ msgstr "藁ベッド" msgid "Kinda itches when you lay on it." msgstr "寝ころぶと少しむずむずします。" +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "枯れ草の山" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "積み上げられた枯れ草です。快適さや暖かさを気にしないなら、ベッドとして使えます。" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "流し台" @@ -69595,10 +70144,20 @@ msgstr "何が出るかな?覗いてみよう!" msgid "canvas wall" msgstr "壁(帆布)" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "伸び縮みする防水性の布で作られた壁です。" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "ピシッ!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "伸び縮みする頑丈な防水性の布で作られた壁です。" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "垂れ幕(帆布)" @@ -70016,6 +70575,16 @@ msgstr "標的" msgid "A metal shooting target in the rough shape of a human." msgstr "人間のような形をした、金属製の射撃用標的です。" +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "一般的なブルーベルの花です。かわいいですね。" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "沢山の花びらが重なった丸い花が咲いています。" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -70033,15 +70602,32 @@ msgid "" "and... delicious?" msgstr "真菌花とよく似ていますが、根本が鮮やかな青緑色に色づいています。濃厚な香りを放っていますが...なんだか美味しそうですね?" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "黄色い花をつける一般的な雑草です。灰色の綿毛が付いた種を風に乗って飛ばします。" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "あぁ、美味しいカモミールティーが飲みたいですね。" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "上向きの杯のような明るく鮮やかな花を咲かせます。" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "ハツユキソウの花" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "密集した葉の中で黄緑色の花が咲いています。" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "ガマ" @@ -70053,6 +70639,32 @@ msgid "" "edible." msgstr "一年中採取できて食べられる部位も多い、有用な植物です。" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "中央部が黒く丸い黄色の花です。オックスアイデージーとも呼ばれます。" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "色とりどりのかわいらしい花です。" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "淡水の水面に咲く美しい花です。古くから様々な東洋文化と関連しています。" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "中央部が黒ずんだ大きな花を咲かせる、背の高い草です。栄養価の高い種子をたくさん実らせます。" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "スイレンの葉" @@ -70164,6 +70776,13 @@ msgstr "" msgid "ergometer" msgstr "エルゴメーター" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "ボートを漕ぐ運動を行う器具です。電力が来ておらず、トレーニングの役には立ちませんが、内部には使える電子部品が入っているかもしれません。" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -70227,6 +70846,13 @@ msgstr "ドンッ。" msgid "canvas floor" msgstr "床(帆布)" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "伸び縮みする防水性の布で作られた床です。テント内の清潔を保ちます。" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -70335,6 +70961,13 @@ msgstr "陶芸窯" msgid "A kiln designed to bake clay pottery and bricks." msgstr "陶器や煉瓦を焼くための窯です。" +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "折り畳める短い梯子です。屋上に登る際や、通行者の足止めをしたい時に役立ちます。" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "岩(小)" @@ -70370,6 +71003,11 @@ msgstr "どうやって移動すればいいのでしょうか?" msgid "stone slab" msgstr "石板" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "頑丈な石で作られた平坦な厚板です。" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "手枷" @@ -71212,14 +71850,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "製作するために片付けておいた場所です。作業台や手に装備した状態での製作作業よりは時間がかかりますが、簡単に用意できます。" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "変異したサボテン" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "畳" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "伝統的な和室の床材として使われるマットの一種です。" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "変異したサボテン" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -71499,8 +72144,7 @@ msgstr "酸溜まりを発射するフェイクアイテムです。" msgid "auto" msgstr "オート" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "ライフル" @@ -73486,6 +74130,46 @@ msgid "" "has impressive stopping power." msgstr ".454カスール弾を使用する5連発リボルバーです。その名に恥じない絶大な制止力を発揮します。" +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "ライフル(.45-70口径/マーリン1895SBL)" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" +".45-70口径ガバメント弾に対応した、持ち運びやすく威力も高いレバーアクションライフルです。グリズリー、ヘラジカ、恐竜などの大型動物に対する防衛用として、自然保護区のガイド向けに設計されました。" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "ハンドガン(.45-70口径/マグナムリサーチBFR)" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" +"大型のシングルアクションリボルバーです。.45-70口径弾はピストルの短い銃身内でかなり速度を落としますが、それでも威力の面で他の大型マグナムハンドガンと競合できます。" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "ライフル(.45-70口径/1874シャープス)" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" +"バッファローなどの大型動物の狩猟目的で19世紀後半に使われていた、アンティークものの.45-70口径単発ライフルです。当時も非常に正確で強力な銃でしたが、この銃は現代の無煙火薬にも対応しています。" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -74294,6 +74978,14 @@ msgid "fusion blaster" msgid_plural "fusion blasters" msgstr[0] "フュージョンブラスター" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "単発" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "3連" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -75631,6 +76323,17 @@ msgid "" "reusable, multi-role recoilless rifle commonly used by the US military." msgstr "一人で携行・運用でき、再利用可能な砲身を備えた、様々な用途に対応する無反動砲です。アメリカ軍を含む世界中の軍隊で採用されています。" +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "ウッドボウ" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "頑丈で柔軟な木に凝った装飾が施された、魔法の力を秘めた弓です。弓を引き絞ると対応する木の矢が生成されます。" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -76883,6 +77586,21 @@ msgid "" "shooting. Increases damage output and weapon range." msgstr "長期間の使用に耐えるLeadworks社製の内蔵型銃身です。威力と射程距離が向上します。" +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "パワーショット" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "フュージョンブラスターの最大充填モード用疑似アイテムです。" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "アンダーバレル" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -77509,10 +78227,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "おおよその銃器に取り付けられる、特製の縮小版火炎放射器です。殺傷能力を大幅に拡張します。" -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "アンダーバレル" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -81572,6 +82286,10 @@ msgstr "嗅覚マップ" msgid "View Temperature Map" msgstr "気温マップを見る" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "可視性マップ表示" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "切替/サイドバー形式" @@ -81612,6 +82330,10 @@ msgstr "切替/自動掘削" msgid "Toggle Auto Foraging" msgstr "切替/自動採集" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "切替/自動拾得" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "行動メニュー" @@ -82456,16 +83178,6 @@ msgstr "遠心分離装置" msgid "Analyze blood" msgstr "血液を分析する" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "接骨治療" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -85723,8 +86435,8 @@ msgid "" msgstr "そうか、他の人に頼んでみるよ。沢山の銃も置いてあるのに残念だ..." #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." -msgstr "頭の良い人なら、ハッキングできるかもしれないな。" +msgid "You look like a resourceful sort, maybe you can hack it or something." +msgstr "君は頭が良さそうだし、ハッキングできるかもしれないな。" #: lang/json/mission_def_from_json.py msgid "Got the photo? Should've been in my gun safe." @@ -85924,104 +86636,242 @@ msgid "" msgstr "これで調査が必要な信号を指揮官に報告できるな。" #: lang/json/mission_def_from_json.py -msgid "Return Field Data" -msgstr "実地データを回収する" +msgid "Reach Refugee Center" +msgstr "避難センターへ向かう" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." +msgstr "ディノ・デイブにダクトテープを渡す" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." -msgstr "" -"いや、私が言ったのは...[*通信装置から籠った声が聞こえてくる*]/nああ、あなたの出番が来たようだ。これは危険な仕事で、死ぬ可能性もある。だがもし成功したら、あなたにここのリソースへの制限付きアクセス権限を与えよう。" +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "これは良い、とても良いぞ。他に、足りないものは、そう、貼り合わせるものか。ライトサイドとダークサイドを、囲むんだ。" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "力を貸してくれ!" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "ああ、友よ、ありがとう。後悔はさせないよ。" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "そう言われるとは思わなかったな。" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "気をつけろ、奴らも同じものを探しているぞ。" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "...え?" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "ああ、素晴らしい、素晴らしいよ!" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "ああ、なんてことだ。奴らが全部食べてしまったに違いない。" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." +msgstr "ディノ・デイブに段ボール箱Sを渡す" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." +msgstr "小さな仕事からこなすか?小さな物を守るための小さな箱が必要だ。持ってきてくれ。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" -"最近、研究員の一人が試作ロボットの実地テストをすると言って研究所を出ていった。そいつはそれ以来戻って来ないし、何の音沙汰もない。テストをしていた場所を調べて、彼女と試作ロボットを連れ帰ってきてほしいんだ。" +"小さな仕事からこなすか?小さな物を守るための小さな箱が必要だ。持ってきてくれ。たくさん欲しい。小さな物、分かるか?ええっと...そうだな...40個くらい欲しいかな?" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." -msgstr "協力ありがとう。幸運を祈る。" +msgid "Got the little ones yet?" +msgstr "小さな箱はあった?" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." -msgstr "私たちの助けが欲しくなっても知らないからな。" +msgid "" +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" +msgstr "これは良い、とても良いぞ。他に、足りないものは、そう、貼り合わせるものか。ライトサイドとダークサイドを、囲むんだ。力を貸してくれ!" + +#: lang/json/mission_def_from_json.py +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "そこら中にある...けど、そのままの状態で持ってきてくれるかな?" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" +msgstr "ディノ・デイブに段ボール箱Mを渡す" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"Ten bigger ones now please. The list doesn't lie. You've done so well." +msgstr "さっきより大きい奴を10個持ってきてくれ。リストは嘘をつかない。君はできる奴だ。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." +msgstr "さっきより大きい奴を10個持ってきてくれ。リストは嘘をつかない。君はできる奴だ。リストに載っている物は他にもあるが、仕事の半分は済んだよ。" + +#: lang/json/mission_def_from_json.py +msgid "Any luck? Bigger ones?" +msgstr "あるだろ?さっきより大きい奴だよ?" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "すごく幸せだ!" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" +msgstr "ディノ・デイブにビニールシートを渡す" + +#: lang/json/mission_def_from_json.py +msgid "" +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." +msgstr "ここに家を作るなら必要ないものだけど、奴らに追い出されるかもしれないから、念のためビニールの奴が必要かもな。" + +#: lang/json/mission_def_from_json.py +msgid "" +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." msgstr "" -"もしロボットが起動したままなら、絶対に真正面から戦おうとするな。間違いなく殺される。プラド博士はEMP手榴弾を持っていったから、それでロボットを停止させられる。" +"ここに家を作るなら必要ないものだけど、奴らに追い出されるかもしれないから、念のためビニールの奴が必要かもしれない。砂男はビニール越しに臭いを嗅ぎ取れるからあまり好きじゃないんだけどな。段ボールが一番強いんだ。とにかく、ビニールシートが必要だ。" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" -msgstr "仕事は済んだか?" +msgid "We're almost there, now." +msgstr "さあ、もうすぐ完成だ。" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." +msgstr "こういう物は工具店や材木置き場に保管してある。" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." -msgstr "データしかサルベージできなかったのは残念だが、それでも回収してくれて助かったよ。" +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "この仕事を君に任せるのは嫌な予感がする、危険だ。何か見つけたか?" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." -msgstr "本当に役立たずだな..." +msgid "Nice, this will do perfectly!" +msgstr "よし、これで完璧だ!" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" -msgstr "死者の精神を取り出す" +msgid "Oh, that's too bad." +msgstr "ああ、残念だよ。" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" +msgstr "ディノ・デイブに段ボール箱Lを渡す" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." -msgstr "" -"ポータルの暴走が始まると、政府はXEDRAの重要職員に避難命令を出し、救援部隊を送り出した。避難者には私たちAI研究チームの責任者もいたんだ。救援部隊は、彼が初期の混乱の中で死亡したことを確認したが、死体と記憶装置のCBMが無傷なら、貴重な知識を吸い出せるかもしれない。彼の死体があったという場所へ行き、記憶データのコピーを作り、持ってきてもらいたいんだ。" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" +msgstr "これが君に頼む最後の仕事だ。他の部品は自力で集めてきた。段ボール箱に囲まれていれば簡単さ。大きな段ボール箱を5つ持ってきてもらえるかな?" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." -msgstr "忘れないで、抽出は指示通り「正確に」やってくれ。そうしないとCBMが自己破壊してしまう。" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." +msgstr "" +"これが君に頼む最後の仕事だ。他の部品は自力で集めてきた。段ボール箱に囲まれていれば簡単さ。大きな段ボール箱を5つ持ってきてもらえるかな?すごく大きな段ボール箱だ。必要なものはほとんど揃った。" + +#: lang/json/mission_def_from_json.py +msgid "Yes! The home stretch!" +msgstr "よし!ゴールは目前だ!" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, but we're so close!" +msgstr "何てことだ、もう少しだったのに!" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "荷物を保管する場所を探してみよう。" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "最後の段ボール箱はあったか?" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." -msgstr "ああ、この要求は特殊なものだというのは認識している。気が変わったら戻ってきてくれ。" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "素晴らしい!君こそが真の英雄だ。すぐに設置場所を見繕ってくるよ。" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "止めろ!嘘だ、そんな、こんなことになるなんて..." + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "ファティマに本(一般/コーラン)を渡す" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "コーランを探すのを手伝ってもらえないだろうか。" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" msgstr "" -"記憶装置がどんな見た目かは知っているか?黒褐色で、飲み薬くらいのサイズで、脳漿の最前部に入っている。眼球にピンセットを差し込んで、ゆっくり慎重に動かすんだ..." +"こんなことを尋ねるのも申し訳ないが、聞いてくれ。私は聖典の類を読むのにまったく慣れていないんだ。金曜日はいつもモスクへ行って、一日5回祈っていたが、聖典を自分で読むことは滅多になかった。私は良いイスラム教徒ではないのだろうが、こんな経験をしてからは、コーランを手元に置きたいと心から思うようになったんだ。これは神の教えに触れ直すいい機会なんじゃないかな?" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" -msgstr "見つかったか?" +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "ありがとう。少しでもお礼を渡せるよう準備しておくよ。" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." -msgstr "感謝の気持ちとお礼を送るよ。" +msgid "That's okay. Thanks for offering." +msgstr "分かった。話を聞いてくれてありがとう。" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "避難センターへ向かう" +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "聖書ほどは見かけないが、大抵の図書館や書店にはあるだろう。翻訳版を持ってきてくれよ。私はアラビア語を読めないからね!" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" +"本当にありがとう。手元に置いておけるだけで、すごく心が安らいだ気がするよ。私も雑用をいくつかこなして、お礼の品を用意した。さあどうぞ。豪華じゃないけど、役に立つといいな。" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "そんな嘘をついて何になる?" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "分かった。とにかく古い本があれば心安らかに過ごせるだろうと思っただけだ。" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -86117,6 +86967,164 @@ msgid "" "guess." msgstr "ううん。思っていたほど上手くは行かないようだ。最初からやり直しだな。" +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "5個の救急箱を見つける" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" +"入口には医者がいて、金さえ払えば治療してもらえるが...ここの人間は、ほとんどの金を食事に使うことになる。道具さえあれば、私は基本的な切り傷や打ち身程度なら処置できるんだ。救急箱を持ってきてくれ。5つあれば、しばらくは無事に過ごせるだろう。" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "本当にありがとう。簡単な仕事だが、すごく助かるよ。" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "分かった。自分たちだけでどうにかしよう。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "自宅の浴室に救急箱を置いている人は多いだろうな。全部が略奪されてはいないはずだ。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" +"本当にありがとう。それと、他の人にも君の活躍を話して、感謝の気持ちとして皆で金を集めたんだ。大金じゃないが、きっと役立つはず...「マーチ」と呼ばれる、ここだけで通じる金だ。店で商品と交換してもらえる。" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "ホェンにプロザックを6瓶分渡す" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "また助けが必要だ..." + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" +"私が薬を処方するべきではないと思うが、睡眠のことで困っている人がたくさんいるんだ。抗うつ剤を何錠か持ってきてくれたら、ライサーと私が適切に薬を渡せるから患者も金に困らずに済む。3か月分...だいたい6瓶あれば、しばらくは問題なく過ごせるだろう。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "プロザックはごく一般的な薬だ。家の棚や薬局で見つかるだろう。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "本当にありがとう。それと、他の人にも君の活躍を話して、感謝の気持ちとして皆で金を集めたんだ。君には随分お世話になってるからな。" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "ヴァネッサに簡易散髪キットを渡す" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "道具が揃っていれば、美容師の仕事ができるんだけどな。" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" +"避難する時は、散髪用の道具を持っていこうなんて思ってもみなかった。散髪キットがあれば、ここにいる人達の髪を切ってあげられるんだけどな。もし持ってきてくれたら、無料で散髪してあげるよ。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "いいね、ありがとう。私も人の役に立ちたいし、これでむさ苦しい人達を見なくて済むね。" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "それじゃあ、手持ち無沙汰でじっとしてるしかないな。" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" +"最低限のものでいい。ハサミ、小さな鏡、布切れと、清潔に保管できる革製のポーチがセットになっている奴だ。他に必要なものは避難所で手に入れるよ。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "よし、これはきっと役に立つな。このハサミなら、髪の毛を長くしたり染色したりすらできそうだ。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "本当に?*ハサミ*すら見つけられないのか?出かける時に靴ひもを結ぶことすらできないんじゃないか?" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "50個のガラス瓶(3L)を見つける" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "ちょっと手伝ってほしいことがある。" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" +"聞いてくれ。もし密封できる瓶があれば、乾物だけじゃなく缶詰も入れられるよう食料貯蔵庫を拡張できると思ってな。大きい食料を保存するなら、もっと大きな瓶が必要だ。容量3Lのガラス瓶を50個持ってきてもらえないか?2個につきC紙幣を1枚支払おう。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" +"ありがとう。仲間と小規模の事業を始めたら、君やほかのスカベンジャーからもっと少ない個数の瓶も引き取るようにするよ。下準備としてはこれで十分だ。" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "しかたがない。他の仕入れ先を探すことにするよ。" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "食料雑貨店に家屋の台所、探す場所はたくさんある。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "わぁ、思っていたよりも随分たくさん瓶があるな。ありがとう。報酬をどうぞ。" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "瓶はどこへ消えたんだろうな..." + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "建物裏手の掃除" @@ -86128,9 +87136,10 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"もし本当に協力してくれるなら、建物の裏側を占拠しているゾンビどもを一掃して欲しい。大変動が始まった頃、あそこに死人や倒したゾンビを投げ込んでおいたのが失敗だった。頼れるリーダーもその時倒れて...違う何かになってしまった。やつらを殲滅し、二度と立ち上がれないようにしてくれ。大した報酬は払えないがこの建物の一角を奪還できれば我々としては大いに助かるよ。" +"もし本当に協力してくれるなら、建物の裏側を占拠しているゾンビどもを一掃して欲しい。大変動が始まった頃、あそこに死人や倒したゾンビを投げ込んでおいたのが失敗だった。頼れるリーダーもその時倒れて...違う何かに変わってしまった。やつらを殲滅し、二度と立ち上がれないようにしてくれ。大した報酬はないが、私たちのグループ内で流通している通貨でなら支払える。成功したらこの建物の一角を何かに利用できるな。" #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -86152,8 +87161,12 @@ msgstr "悩みを解決してくれたかい?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." -msgstr "ありがとう、あの拠点に近すぎる脅威は悩みの種だったんだ。" +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." +msgstr "" +"ありがとう、家の近所に脅威が潜んでいるというのは、心が休まらないものだからな。これが我々の内部で流通している紙幣だ。労働を請け負った者にこれを支払い、物資と引き換えられる仕組みになっている。センター内での取引用の通貨として価値があるものだ。現時点では使わないで取っておいた方がよさそうだな。" #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -86167,9 +87180,10 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"前の仕事よりさらに難しい要求になる。最近、我々と取引をするためにここへ向かっていたスカベンジャー達の一行が消息を断つ事件が起きている。これを調査して欲しい。恐らく盗賊団かゾンビの群れに捕まってしまったんだろう。最後に通信があった地点の座標を教えよう。実際の状況がどのようなものであれ、スカベンジャーたちが安全に行き来できるよう、脅威に対処してくれ。彼らのもたらしてくれる物資こそが一番の報酬となるだろう。" +"前の仕事よりさらに難しい要求になる。最近、我々と取引をするためにここへ向かっていたスカベンジャー達の一行が消息を断つ事件が起きている。これを調査して欲しい。恐らく盗賊団かゾンビの群れに捕まってしまったんだろう。最後に通信があった地点の座標を教えよう。実際の状況がどのようなものであれ、スカベンジャーたちが安全に行き来できるよう、脅威に対処してくれ。彼らのもたらす物資と、私たちがグループ内で使っていて取引に利用できるC紙幣30枚が報酬だ。" #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -86196,11 +87210,14 @@ msgstr "本(一般/大農園発起書) を受け取る" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"新たな拠点が君の助けを必要としている。追加の労働者を送る前に、現場にいる親方から拠点建設の発起書を受け取ってきて欲しい。より詳しい話は親方から聞いてくれ。" +"最近、安全な場所で食料を確保する拠点を開拓するため、腕の立つ者たちを送り出したんだ。新たな拠点は君の助けを必要としている。追加で労働者を送る前に、現場にいる親方から拠点建設の発起書を受け取ってきて欲しい。より細かな仕事内容については、親方に聞いてみてくれ。発起書を持ってきたら、報酬としてC紙幣を50枚渡そう。" #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -86217,36 +87234,31 @@ msgstr "発起書は持ってきたか?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." -msgstr "これで他の連中も農場への投資に納得するだろう。助かったよ。" +"you, here's your money." +msgstr "これで他の連中も農場への投資に納得するだろう。助かったよ。これが報酬だ。" #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" -msgstr "25個の原子力燃料電池を探す" +msgid "Find 10 solar panels" +msgstr "10個のソーラーパネルを持ってくる" #: lang/json/mission_def_from_json.py msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" -"ここに新たなインフラを整備するなら、新たな発電システムを用意する必要がある...厄介なことに、今の私たちの生活はRTGと呼ばれる発電設備に依存しているんだ。もちろん、発電機を地下で稼働するのは現実的じゃない。大変動の前に軍が実験兵器用の高密度エネルギー電池のようなものを使っていたそうだ。これを電力問題の一時的な解決に使おうと思っている。これから先よりたくさんの電力を使うなら、原子力燃料電池のコアを再利用して、より沢山のRTGを構築すればいいとインテリの奴が言っていたんだ。これは大規模な仕事になるぞ。" +"ここに新たなインフラを整備するなら、新たな発電システムを用意する必要がある...厄介なことに、今の私たちの生活はRTGと呼ばれる発電設備に依存しているんだ。もちろん、発電機を地下で稼働するのは現実的じゃない。広くて平らな屋上があるから、太陽光発電で今の発電設備を補えるだろうな。報酬は奮発するから、ソーラーパネルを10枚持ってきてくれないか?" #: lang/json/mission_def_from_json.py msgid "If you can do this for us our survival options would vastly increase." msgstr "もしこれを達成してくれれば生存の可能性は格段に上がるだろうね。" #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." -msgstr "大した手助けはできないよ。何せ原子力燃料電池なんて見た事もないからね...こんなことを言っている内は、私もまだまだ勉強不足だな。" +msgid "Solar panels are pretty common on electric cars and on rooftops." +msgstr "ソーラーパネルは電気自動車や屋上に設置されているのをよく見かけるな。" #: lang/json/mission_def_from_json.py msgid "" @@ -86255,19 +87267,21 @@ msgid "" msgstr "素晴らしい、十分な礼はできないが、また持ってきてくれるとすごく助かるよ。" #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" -msgstr "40個の缶詰食料を探す" +msgid "Find 100 canning jars" +msgstr "100個のガラス瓶(500ml)を探す" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" -"毎日の配給食料は確保できたが、それも一時しのぎに過ぎない。外へ出られない状況になれば、貯蔵している食料はほんの数日しか持たないだろう。もっと備蓄食料が必要だ。長持ちさせたいから、缶詰に入っているものが良いだろうな。40個ほど持ってきてもらえれば、後は自分たちだけで何とかやっていけるだろう。" +"毎日の配給食料は確保できたが、それも一時しのぎに過ぎない。外へ出られない状況になれば、食料はほんの数日しか持たないだろう。もっと備蓄食料が必要だ。拠点のお陰で肉や野菜も少しずつ入ってくるが、長持ちさせる方法を考えなくては。瓶詰のやり方をよく知っている人もいるし、密閉できる瓶さえたくさんあれば、冬に向けて肉の塩漬けや酢漬けを作って置けるだろう。瓶を100個持ってきてくれたら、報酬をたっぷり支払おう。" #: lang/json/mission_def_from_json.py msgid "" @@ -86278,18 +87292,19 @@ msgstr "この心配事が解決できれば、私の肩の荷も降りるとい #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." +" If you reconsider let me know." msgstr "しばらくは大丈夫だろうが、こんな心配が続けば私も参ってしまう。気が変わったら言ってくれ。" -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." -msgstr "食料雑貨店に家屋の台所、探す場所はたくさんある。" - #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." -msgstr "心配事が一つ減ったよ。協力に感謝する。" +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." +msgstr "" +"これで心配事が一つ解決したよ。君のような人が味方でいてくれて助かるな。マーチ25枚が報酬だ。もっとガラス瓶があるなら、仲買人が買い取るよ。ただし、今回のような大金は支払えないから、もう少し安い値段だ。実は、仲買人が君に頼みたい仕事があると言っていた。もしもっと働きたいなら、彼らの詰め所へ行ってみてはどうだろう。" #: lang/json/mission_def_from_json.py msgid "" @@ -86425,7 +87440,7 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "So glad for your help." -msgstr "本当に助かるよ。" +msgstr "お役に立てて嬉しいよ。" #: lang/json/mission_def_from_json.py msgid "" @@ -86587,6 +87602,102 @@ msgid "" msgstr "" "執行官の働きにはいつも感心しきりだ。我々は先ごろ、ある作戦地域に展開している部隊からのメッセージを受信した。正確な座標は不明だが、彼らは地下施設を確保しており、救援が必要な状態に陥っているらしい。付近に墜落跡があるポンプ場ということ以外は、場所に関する情報がない。そこの司令官に接触すれば、きっと君の能力を買ってくれるに違いない。部隊と接触するときは執行官バッジの着用を忘れるな。今回もよろしく頼むぞ、執行官。" +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "実地データを回収する" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" +"いや、私が言ったのは...[*通信装置から籠った声が聞こえてくる*]/nああ、あなたの出番が来たようだ。これは危険な仕事で、死ぬ可能性もある。だがもし成功したら、あなたにここのリソースへの制限付きアクセス権限を与えよう。" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" +"最近、研究員の一人が試作ロボットの実地テストをすると言って研究所を出ていった。そいつはそれ以来戻って来ないし、何の音沙汰もない。テストをしていた場所を調べて、彼女と試作ロボットを連れ帰ってきてほしいんだ。" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "協力ありがとう。幸運を祈る。" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "私たちの助けが欲しくなっても知らないからな。" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" +"もしロボットが起動したままなら、絶対に真正面から戦おうとするな。間違いなく殺される。プラド博士はEMP手榴弾を持っていったから、それでロボットを停止させられる。" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "仕事は済んだか?" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "データしかサルベージできなかったのは残念だが、それでも回収してくれて助かったよ。" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "本当に役立たずだな..." + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "死者の精神を取り出す" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" +"ポータルの暴走が始まると、政府はXEDRAの重要職員に避難命令を出し、救援部隊を送り出した。避難者には私たちAI研究チームの責任者もいたんだ。救援部隊は、彼が初期の混乱の中で死亡したことを確認したが、死体と記憶装置のCBMが無傷なら、貴重な知識を吸い出せるかもしれない。彼の死体があったという場所へ行き、記憶データのコピーを作り、持ってきてもらいたいんだ。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "忘れないで、抽出は指示通り「正確に」やってくれ。そうしないとCBMが自己破壊してしまう。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "ああ、この要求は特殊なものだというのは認識している。気が変わったら戻ってきてくれ。" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" +"記憶装置がどんな見た目かは知っているか?黒褐色で、飲み薬くらいのサイズで、脳漿の最前部に入っている。眼球にピンセットを差し込んで、ゆっくり慎重に動かすんだ..." + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "見つかったか?" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "感謝の気持ちとお礼を送るよ。" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "2個の蒸留器を作る" @@ -95607,6 +96718,168 @@ msgid "" msgstr "" "ドルイドは、自然界での忠誠の掟と転生、特に植物の死と復活に重点を置いています。強力なドルイドは人類と並ぶほどの世界への影響力を持っています。" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "マナ貯蔵力上昇(レベル1)" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "体内に溜めておけるマナの量が平均より多少高くなっています。" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "マナ貯蔵力上昇(レベル2)" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "体内に溜めておけるマナの量が平均より高くなっています。" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "マナ貯蔵力上昇(レベル3)" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "体内に溜めておけるマナの量が平均より大幅に高くなっています。" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "マナ貯蔵力低下(レベル1)" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "体内に溜めておけるマナの量が平均より多少低くなっています。" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "マナ貯蔵力低下(レベル2)" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "体内に溜めておけるマナの量が平均より低くなっています。" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "マナ貯蔵力低下(レベル3)" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "体内に溜めておけるマナの量が平均より大幅に低くなっています。" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "マナ回復力上昇(レベル1)" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "マナの回復速度が通常より多少上昇します。" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "マナ回復力上昇(レベル2)" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "マナの回復速度が通常より上昇します。" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "マナ回復力上昇(レベル3" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "マナの回復速度が通常より大幅に上昇します。" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "マナ回復力低下(レベル1)" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "マナの回復速度が通常より多少低下します。" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "マナ回復力低下(レベル2)" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "マナの回復速度が通常より低下します。" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "マナ回復力低下(レベル3)" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "マナの回復速度が通常より大幅に低下します。" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "マナ効率上昇(レベル1)" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "利用できるマナの量が体内に貯蔵している分より多少増加します。" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "マナ効率上昇(レベル2)" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "利用できるマナの量が体内に貯蔵している分より増加します。" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "マナ効率上昇(レベル3)" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "利用できるマナの量が体内に貯蔵している分より大幅に増加します。" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "マナ効率低下(レベル1)" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "利用できるマナの量が体内に貯蔵している分より低下します。" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "マナ効率低下(レベル2)" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "マナ効率低下(レベル3)" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -95789,7 +97062,8 @@ msgstr "かつては警官だったが、今はただの生存者だ。" msgid "Beggar" msgstr "乞食" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "避難者" @@ -95813,6 +97087,14 @@ msgstr "通信装置" msgid "Reading this line is a bug" msgstr "この文章が見えている場合はバグが発生しています。" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "隊商指揮者" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "私は隊商のオーナーだ。" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -96048,14 +97330,6 @@ msgstr "ラプトルの変異原を探しているんだ...この世界はもは msgid "Tester" msgstr "テスター" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "大尉" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "一等軍曹" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "盗賊" @@ -96072,6 +97346,14 @@ msgstr "シェフ" msgid "officer" msgstr "警官" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "大尉" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "一等軍曹" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "乞食" @@ -96120,6 +97402,10 @@ msgstr "ダナ ヌーニェス" msgid "Draco Dune" msgstr "ドラコ デューン" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "ファティマ アル ジャディル" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "ギャリー ビルヌーブ" @@ -96148,10 +97434,18 @@ msgstr "マンガルプリート シン" msgid "Pablo Nunez" msgstr "パブロ ヌーニェス" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "ライサー ジョニー" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "スタン ボリシェンコ" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "ホェン トラン" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "ヴァネッサ トビー" @@ -96180,6 +97474,10 @@ msgstr "傭兵" msgid "the intercom" msgstr "通信装置" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "自由商人" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "理髪師" @@ -96627,10 +97925,6 @@ msgstr "山小屋(地下室)" msgid "cabin" msgstr "山小屋" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "更地" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "荒れ果てた小屋" @@ -96958,6 +98252,30 @@ msgstr "農場家屋(2階)" msgid "farm house roof" msgstr "農場家屋(屋上)" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "未舗装道路" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "サイロ" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "大学共用棟" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "大学共用棟(屋上)" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "大学講堂" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "大学講堂(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "ガソリンスタンド" @@ -97160,6 +98478,10 @@ msgstr "ホテル(地下室)" msgid "motel" msgstr "モーテル" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "モーテル(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "大型ホームセンター - 入口" @@ -97212,6 +98534,10 @@ msgstr "アイスクリーム屋(屋上)" msgid "dollar store" msgstr "1ドルショップ" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "1ドルショップ(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "ネットカフェ" @@ -97232,6 +98558,10 @@ msgstr "リサイクルショップ" msgid "daycare center" msgstr "保育園" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "保育園(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "ペット用品店" @@ -97940,6 +99270,10 @@ msgstr "葬儀場" msgid "fire station" msgstr "消防署" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "消防署(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "ホームレス支援施設" @@ -98120,6 +99454,10 @@ msgstr "ライブハウス" msgid "gambling hall" msgstr "賭博場" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "賭博場(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "ストリップ劇場" @@ -98152,6 +99490,10 @@ msgstr "スポーツジム" msgid "dojo" msgstr "道場" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "道場(屋上)" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "私設公園" @@ -98236,10 +99578,6 @@ msgstr "公衆トイレ" msgid "roadside foodcart" msgstr "軽食店" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "未舗装道路" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "鉄道線路" @@ -99523,6 +100861,32 @@ msgid "" msgstr "" "忠犬と協力して麻薬密輸業者を逮捕する仕事に人生を捧げていました。世界が崩壊し、もはやそんな仕事はなくなりました。しかし少なくとも、傍らには忠実な友がいます。" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "愛猫家" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "誰もが死んでしまったのでしょうか?いや、気にすることはありません...ネコさえいれば、他の友人は不要です!" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "愛猫家" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "誰もが死んでしまったのでしょうか?いや、気にすることはありません...ネコさえいれば、他の友人は不要です!" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -103790,6 +105154,58 @@ msgid "" "serene with the world falling down around you." msgstr "魔法使いになれると書かれたカラフルなパンフレットを見つけました。世界が崩壊し始めたというのに、妙にのどかな話です。" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "放火癖のケルビニスト" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "全身全霊をかけて炎を愛していました。心の奥底に内なる炎を発見し、それをこの世に行使せんとしています。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "放火癖のケルビニスト" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "全身全霊をかけて炎を愛していました。心の奥底に内なる炎を発見し、それをこの世に行使せんとしています。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "ドルイド" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "古くからのドルイド僧の仲間は大変動と共に消えました。今こそ自然が栄える時です。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "ドルイド" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "古くからのドルイド僧の仲間は大変動と共に消えました。今こそ自然が栄える時です。" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -107838,6 +109254,10 @@ msgstr "特定のモンスターの死体を解剖すると生体部品が入手 msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "欲張り過ぎは止めましょう。死んでしまっては戦利品も役に立ちません。" +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "床で眠るのは辛いですか?枯れた植物を集めてみましょう。" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -111951,6 +113371,60 @@ msgid "" msgstr "" "XE037による復活の速度は最早手の打ちようがないレベルに達しました。既に現状で運用可能な警察組織や軍の戦力による駆除速度を圧倒しています。現場に出動した全てのチームは既に交戦済であり、そのうちいくつかとは連絡が取れない状況が続いています。この状況に対して、サベージ博士はVAULTと呼ばれる大規模な地下シェルターへの戦略的再配置と、PE062の継続生産に関する協力の提案を決定しました。" +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" +"ログ47:\n" +"定期採掘中に、空洞を掘り当てた。ここまでならよくある事だが、その地点の断層線が完全に垂直になっているのは珍しい。断層にはいくつか奇妙な凹みがあった。人間が造ったもののように見えるらしく、迷信深い作業員は気味悪がっている。\n" +"ログ48:\n" +"凹みは3~6メートルほどの高さで、断層の端まで並んでる。一つ一つの形はどこか人間に似ているが、手足や首に当たる部分が異様に長く、ねじれている。" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" +"ログ49:\n" +"考古学者による調査が終了するまで、この地区での採掘作業は中止することになった。遅れを取り戻すのに最低でも1週間はかかるだろう。このバカげた遺跡保護法は50年前に施行されたものだ。採掘のお陰でやっと飯を食えているこっちの事情も考えて欲しいものだ。\n" +"ログ52:\n" +"未だに考古学調査待ち。こちらでも断層線に関して軽く調べてみた。手持ちの装置では亀裂の深さを測定できそうにない。24キロと表示されてはいるが、このような狭いトンネルの測定用ではないので、正確な値が出ているのか分からない。" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" +"ログ54:\n" +"2人の男がタガネを持って調査区画に下りて行った。断層の一部を削るらしい。どうなろうと見て見ぬふりをするつもりだが、あのインテリどもは岩を微塵も削れないで帰ってくるだろうな。いい気味だ。\n" +"ログ55:\n" +"考古学者が先日の2人組とガイドをつれて下っていった。あいつらにインディー・ジョーンズの真似は無理だろう。6メートルも降りられるかどうか。科学者のお守りなんてやりたくもないが、もし中で怪我でもされたら、採掘場が閉鎖されてしまう。\n" +"ログ58\n" +"どこから作業員を入れたんだ?この空洞は人為的なものだ!大発見だとは思うが、あいつらでどうにか出来るものなのだろうか?" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" +"鉱山作戦の中断: 命令2:07Bに基づき、監督権は阿彌殻計画に移譲された。\n" +"測定により、断層線の深度は30.09kmであることが判明した。\n" +"発見された断層線の損傷: NEPower社の鉱山作業員は規定87.08違反として拘束し、被験体として89-C研究所に移送した。\n" +"断層線の損傷は許容範囲である。\n" +"標準的な振動テストを開始する..." + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "これはサイン・スニペット・システムのテストです" @@ -112862,8 +114336,8 @@ msgstr "頭のおかしな科学者に会ったことがある。彼女はジャ #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -113009,7 +114483,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -119432,6 +120906,10 @@ msgstr "君についてもう少し詳しく知りたい..." msgid "I want you to use this item." msgstr "このアイテムを使ってくれ。" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "現在の行動について話そう。" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "このアイテムを持ってくれ。" @@ -119466,7 +120944,7 @@ msgstr "あなたへの指示について教えてくれ。" #: lang/json/talk_topic_from_json.py msgid "Let's talk about faction camps." -msgstr "拠点について話そう" +msgstr "拠点について話そう。" #: lang/json/talk_topic_from_json.py msgid "Change your engagement rules..." @@ -119485,11 +120963,11 @@ msgid "Change your bionic power recharge rules..." msgstr "CBM充電規則を変更..." #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "何でもない。" @@ -119639,6 +121117,22 @@ msgstr "その場に留まってくれ。" msgid "Show me what needs to be done at the camp." msgstr "拠点でやるべきことを教えてくれ。" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "私は現在は何の行動もしていない。" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "続けてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "現在の行動を中断してくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "付近にあるこれらのアイテムを分類してくれ。" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "...ザザザザ...了解、指定された場所へ向かう、どうぞ。" @@ -120750,177 +122244,6 @@ msgstr "悪いけど、気が変わった。" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "こんなうさん臭いカルトに参加できるか!勝手に食ってくたばっちまえ!" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "任務について..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "任務のひとつについて..." - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "やあ、執行官。" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "執行官、悪いですが今はお話できません。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "私はここの担当者ではないよ、執行官。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "ご質問は上の者にどうぞ、執行官。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "よう... ここで何してるんだ。" - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "こっちをジロジロ見るな。ここには何も無いよ。" - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "何が欲しいのか知らんが他を当たりな。" - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "よお旦那。" - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "お前、自分の能力に自信があるなら、新人採用の担当を探してみたらどうだ。" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "お嬢さん。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "お嬢さん、俺と一緒に居たほうが安全だとは思わないか?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "お構いなく..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "執行官、手伝いに来てくれたんだな。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "執行官、どうやってここまで来たのか知らんが、身動きが取れるうちにここを脱出した方がいいぞ。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "執行官、どうやってここまで来たのか知らんが、身動きが取れるうちにここを脱出した方がいいぞ。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "こんな所で何をしているんだ?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "この施設について教えてくれるか?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "何をすればいい?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "じゃあな..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" -"中隊の生き残りを率いて、この施設を再制圧する作戦を実行しているところだ。我々は合計20名ほどの部隊で進入し、ただちにこの制御室を制圧した。そしてこの階と下の階にあるの重要な設備に隊員を向かわせた。上手く行けば、この巨大な施設を地域レベルの作戦行動の恒久的な拠点として利用できる。重要なのは、地上の避難民をここで受け入れることができれば、避難民の対応に忙殺されている者を現状回復要員に回せるということだ。" - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "いい計画だと思う..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"この施設は世界規模の戦争に備えるべく、安全な避難所として建設された。もしまともに機能していれば、この強固な地下施設全体で数千人の人々が数年間暮らせるはずだった。だが電力システムが損傷したか、動作不良を起こしたかで、凄まじい致命的な放射線バーストを放ったのだ。それから数分後、地下2階から下にいた人々はことごとく死亡した。放射線障害でやられる前に下階への通路を封鎖したために、この階はなんとか無事だったようだ。他に記録から分かることは、大量の水が勢いよく下階へ流れ込んでしまった、ということだな。" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "何にせよ彼らはそうせざるを得ない。我々が生きているんだからな。" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "執行官、こんなところで会うとは驚いた。" - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "あなたにここでの指揮権は無い... 他に行く場所があるのでは?" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "あなたにここでの指揮権は無い... 他に行く場所があるのでは?" - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[任務] 大尉から、君から周波数表を受け取るよう言われた。" - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "助けが必要か?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "もう行かないと。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "我々は外部通信中継装置を守っている。私から言えることは限られているので... 質問があるなら隊の司令を探してくれ。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "隊長とやらを探すとするよ..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" -"大尉が使いを送ってくれるのを待っていた。これが目当ての品だ。このままでは周波数しか分からないし、通信内容のほとんどはここの設備を修理するか交換しないと解読できない。万が一施設を放棄しなければならなくなった時、連邦の機密を守り完全な通信網を保つための手続きとして、暗号化装置は破壊されるんだ。ほんの少しでもメッセージ内容を取り出せれば良いのだが。" - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "やあ、私の他にも長く生き延びている人間がいるとはな!" @@ -124227,6 +125550,177 @@ msgstr "" msgid "What were you saying before that?" msgstr "前の話をもう一度聞かせてもらえないかな?" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "執行官、手伝いに来てくれたんだな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "執行官、どうやってここまで来たのか知らんが、身動きが取れるうちにここを脱出した方がいいぞ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "執行官、どうやってここまで来たのか知らんが、身動きが取れるうちにここを脱出した方がいいぞ。" + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "こんな所で何をしているんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "この施設について教えてくれるか?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "何をすればいい?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "任務について..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "任務のひとつについて..." + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "じゃあな..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" +"中隊の生き残りを率いて、この施設を再制圧する作戦を実行しているところだ。我々は合計20名ほどの部隊で進入し、ただちにこの制御室を制圧した。そしてこの階と下の階にあるの重要な設備に隊員を向かわせた。上手く行けば、この巨大な施設を地域レベルの作戦行動の恒久的な拠点として利用できる。重要なのは、地上の避難民をここで受け入れることができれば、避難民の対応に忙殺されている者を現状回復要員に回せるということだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "いい計画だと思う..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" +"この施設は世界規模の戦争に備えるべく、安全な避難所として建設された。もしまともに機能していれば、この強固な地下施設全体で数千人の人々が数年間暮らせるはずだった。だが電力システムが損傷したか、動作不良を起こしたかで、凄まじい致命的な放射線バーストを放ったのだ。それから数分後、地下2階から下にいた人々はことごとく死亡した。放射線障害でやられる前に下階への通路を封鎖したために、この階はなんとか無事だったようだ。他に記録から分かることは、大量の水が勢いよく下階へ流れ込んでしまった、ということだな。" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "何にせよ彼らはそうせざるを得ない。我々が生きているんだからな。" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "執行官、こんなところで会うとは驚いた。" + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "あなたにここでの指揮権は無い... 他に行く場所があるのでは?" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "あなたにここでの指揮権は無い... 他に行く場所があるのでは?" + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "[任務] 大尉から、君から周波数表を受け取るよう言われた。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "助けが必要か?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "もう行かないと。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "我々は外部通信中継装置を守っている。私から言えることは限られているので... 質問があるなら隊の司令を探してくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "隊長とやらを探すとするよ..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" +"大尉が使いを送ってくれるのを待っていた。これが目当ての品だ。このままでは周波数しか分からないし、通信内容のほとんどはここの設備を修理するか交換しないと解読できない。万が一施設を放棄しなければならなくなった時、連邦の機密を守り完全な通信網を保つための手続きとして、暗号化装置は破壊されるんだ。ほんの少しでもメッセージ内容を取り出せれば良いのだが。" + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "やあ、執行官。" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "執行官、悪いですが今はお話できません。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "私はここの担当者ではないよ、執行官。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "ご質問は上の者にどうぞ、執行官。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "よう... ここで何してるんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "こっちをジロジロ見るな。ここには何も無いよ。" + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "何が欲しいのか知らんが他を当たりな。" + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "よお旦那。" + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "お前、自分の能力に自信があるなら、新人採用の担当を探してみたらどうだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "お嬢さん。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "お嬢さん、俺と一緒に居たほうが安全だとは思わないか?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "お構いなく..." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -124252,6 +125746,12 @@ msgstr "頼む、助けてくれ。食料が必要なんだ。執行官なんだ msgid "Please, help me. I need food." msgstr "頼む、助けてくれ。食料が必要なんだ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "他の人と話したが、皆喜んでついてくると言っていた。あなたも参加しないか?" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "やあ、そうだな、食べ物を渡せるかもしれない。確認してみよう。" @@ -124426,10 +125926,26 @@ msgstr "分かった。とりあえずは、他の話をしよう。" msgid "OK, I'll talk to them too." msgstr "分かった。彼らを説得してみる。" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "わかったよ!さあ行こう。" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "段ボールの事は話したっけ?君、段ボール持ってる?" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "あなたの買い物リストについて..." + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "他に何かできる事はあるか?" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "これからその段ボール箱をどうするつもりだ?" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "段ボール?" @@ -124442,6 +125958,30 @@ msgstr "どうしてこんな所に座っているんだ?" msgid "Are you seriously wearing a dinosaur costume?" msgstr "その恐竜の着ぐるみは何かの冗談か?" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "何か食べる物が必要か?" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "それはありがたい。ぜひいただくよ。いいね、すごく良い。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "ああ、すごくお腹が空いていたけど、奴らは大抵の食べ物に毒を入れているからな。君はそんなことしないって信じているよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "他のことを聞いてもいいか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "毒が入ってるものは、砂っぽいからすぐ分かる。でもこれは大丈夫だ。ありがとう。" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -124452,6 +125992,14 @@ msgstr "段ボールで家を建てているんだ。眠りの精には好かれ msgid "Why cardboard?" msgstr "どうして段ボールなんだ?" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "砂男とは何だ?" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "段ボールが必要か?" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "もうそろそろ行かないと..." @@ -124465,6 +126013,28 @@ msgid "" msgstr "" "たくさん手に入るからな。それにゾンビ除けになる。段ボールのお陰で今まで無事だったんだ。ゾンビの核から放射されるベータ線を段ボールが反射してくれる。そうやってダメージを防いでいるんだ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "そんな質問か?ああもちろん、段ボールがあるなら、ここの、買い物リストに載ってる全部が欲しい。譲ってくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "リストには何が必要と書いてあるんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" +"誰か知らないなら、絶対に教えられないよ。奴は皆に話しかけるから、奴のことを知らない者は、信用できない。私の仕事を手伝ってくれるなら別だけどね。" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "...前の話をもう一度聞かせてもらえないかな?" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -124472,17 +126042,57 @@ msgid "" msgstr "あの臆病者どもは私を恐れているんだ。私を拠点内に入れようとしない。だから私は自分で家を建てる。もちろん奴らは絶対に中に入れてやらない。" #: lang/json/talk_topic_from_json.py -msgid "Building a house?" -msgstr "家を建てている?" +msgid "You said you were building a house?" +msgstr "確か家を建てていると言っていたな?" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "いいえ。" +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "その...着ている服について聞きたい。どうしてそんな恰好なんだ?" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "段ボールの話は何だっけ?" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "君は私の格好について尋ねてきたが、私は君の格好について尋ねたりしない。私たちは時に、自分自身を守るために隠れなければならないんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" +"そうだな...欲しいものは全部揃ったが、他の人は去ってしまったし、ここに聖域を作ることは禁止されたんだ。私が安らげる場所を探すのを手伝ってくれないか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "もちろん!組み立て終わるまで少し時間がかかる。ありがとう。君は何度も私を助けてくれた。お陰で、ここで生き延びられそうだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "どうしてここに留まるんだ?私と一緒に来て、手伝ってほしいんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "そうだな。分かった、役に立ててうれしいよ。また後で。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "嫌だ!せっかく準備が整ったのに。ここを出て行かないよ、まだその時じゃない。全部揃ったんだ!" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "失せろ、クソったれ。" @@ -124543,10 +126153,6 @@ msgid "" "but I wouldn't say no." msgstr "実は、ここの所ずっと腹が減っているんだ。施しを受けるのは好きじゃないが、背に腹は代えられない。" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "他のことを聞いてもいいか?" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "ありがとう。本当に感謝している。" @@ -124588,6 +126194,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "人種が原因でそんな扱いを受けたと思っているのか?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "それでは、あなたはここの奥にあるという部屋に避難していたってことか?" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "どうしてここに留まり続けるんだ?" @@ -124598,6 +126209,29 @@ msgid "" "come?" msgstr "外に自分の拠点を作っているんだ。入るのに事務手続きは必要ない。一緒に来るか?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" +"ああそうだ、酷い状況だったよ。私も含め病気やケガがある人達は、何時間も「手続き」を待っていた。その時男が一人死んだが、皆は眠っているだけだと思っていた。死んだはずの男が立ち上がったからパニックが起こり、部屋の中で銃を撃った奴もいた。ほんの数分で、犠牲者は増えた。どこかのバカが「集団感染」だと叫び、私たちを閉じ込めようとした。生存者を外に出すよう警備員を説得するのは骨が折れたよ。警備員のジェイソンは信用に値する奴だった。生存者をゾンビと一緒に閉じ込めてしまったと気づいた時、彼は自分も死んでゾンビになる覚悟を決め、私たちが逃げる時間を稼いだんだ。あれは...たぶん私の人生で遭遇したこれ以上ない真の善行だろう。彼は自分の過ちを認め、それを償うために囮になったんだ。尊敬するよ。だが、もちろん今は、彼もゾンビだ。クソッ、素敵な記憶を思い出させてくれてありがとうよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "申し訳ない。以前言っていた話をもう一度聞かせてもらえないかな?" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -124618,11 +126252,11 @@ msgstr "まぁ、人種差別も原因の一つかもしれないが...あなた #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" -"何とも親切な申し出だが、私をよく見ろ。旅ができるような人間じゃない。松の実としおれたルバーブを食べてダイエットして、ようやく標準体重の22kgオーバーで済んでいたんだ。それに、血を見ると叫び声を上げるし震えが止まらなくなる。" +"何とも親切な申し出だが、私をよく見ろ。旅ができるような人間じゃない。松の実としおれたルバーブを食べてダイエットして、ようやく標準体重の22kgオーバーで済んでいたんだ。それに、血を見ると叫び声を上げてしまうし震えが止まらなくなる。" #: lang/json/talk_topic_from_json.py msgid "" @@ -124683,6 +126317,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "魅力的な申し出だけど、住む場所を提供してくれる赤の他人をどれだけ信用したものか分からない。おかしな奴だと思ってるだろ。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "おいおい。私はあなたにイカレたキノコを持ってきてあげたんだし、もう赤の他人じゃないだろう?" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -124695,6 +126335,18 @@ msgid "" "you, it's just that I don't really trust you." msgstr "前にも言ったが、悪いけど、できないよ。あんたが信頼できない訳じゃないが、心から信じられるとは言えない。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" +"畜生、そう言うだろうなと思ってたんだ。よし、あんたは私がすぐ拠点の仲間に加わると思っているだろう。だが、まずは顕微鏡を用意して、すぐに研究に取り掛かれるようにしないとダメだ。これは世紀の大発見の第一歩かもしれん。ああ、それと、もちろん拠点にはここにいる友人たちの居場所も用意してもらわないと困る。この要望は予想通りかもしれんがな。友人たちを説得したら、私も加わろう。簡単な仕事だ、あいつらは人が良いからな。" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -124720,12 +126372,12 @@ msgstr "前に言っていた話は何だったかな?" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" "あぁ、あぁ、本当にワクワクする仕事さ。確かに、私は素晴らしい象牙の塔で学問を修め、菌類学の博士号を取得した。菌糸形成におけるシグナル伝達経路についての論文を書き" "、博士になってからは根茎による植物-" @@ -124739,7 +126391,7 @@ msgstr "真菌ゾンビを知っているか?" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -124785,6 +126437,12 @@ msgid "" msgstr "" "もし組織片を持ってきたら、あんたの愉快なキャンプ遠征隊に参加するよ。それと、ゾンビのことを調べる研究室の建設も手伝おう。多分大丈夫だとは思うが、危険だと思ったら、胞子を形成しない個体を選んだ方がいい。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "さあね、科学的関心が満たされることか?別に何も持ってこなくても、私は困らない。見ての通り、ここらには興味深いものがたくさんあるからな。" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "ちょうど真菌の組織片を持っていたんだ。" @@ -124795,18 +126453,47 @@ msgstr "分かった、そろそろ行くよ。また後でお目当ての物を #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." msgstr "" -"ほほぉう。ほうほうほう。まったく興味深い。見ろ、ここは網状組織だが、担子器が拡張して柄を形成しているようだ...しかし、実際に見てみると、今まで私が見てきたものと全く異なる繊維質だ。この種には運動性があるのだろうか?よし、あんたは私がすぐ拠点の仲間に加わると思っているだろう。だが、まずは顕微鏡を用意して、すぐに研究に取り掛かれるようにしないとダメだ。これは世紀の大発見の第一歩かもしれん。ああ、それと、もちろん拠点にはここにいる友人たちの居場所も用意してもらわないと困る。この要望は予想通りかもしれんがな。友人たちを説得したら、私も加わろう。簡単な仕事だ、あいつらは人が良いからな。" +"ほほぉう。ほうほうほう。まったく興味深い。見ろ、ここは網状組織だが、担子器が拡張して柄を形成しているようだ...しかし、実際に見てみると、今まで私が見てきたものと全く異なる繊維質だ。この種には運動性があるのだろうか?\n" +"\n" +"よし、あんたは私がすぐ拠点の仲間に加わると思っているだろう。だが、まずは顕微鏡を用意して、すぐに研究に取り掛かれるようにしないとダメだ。これは世紀の大発見の第一歩かもしれん。ああ、それと、もちろん拠点にはここにいる友人たちの居場所も用意してもらわないと困る。この要望は予想通りかもしれんがな。友人たちを説得したら、私も加わろう。簡単な仕事だ、あいつらは人が良いからな。" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "すばらしい!できる限りのことをやってみるよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" +"ほほぉう。ほうほうほう。まったく興味深い。見ろ、ここは網状組織だが、担子器が拡張して柄を形成しているようだ...しかし、実際に見てみると、今まで私が見てきたものと全く異なる繊維質だ。この種には運動性があるのだろうか?\n" +"\n" +"悪かったよ。これは一日中観察してしまいそうだ。あんたには借りを、いや、大きな借りを返すべきだ。お礼が必要だな。あんたが太った物乞い女から謝礼を受け取りたいなら、また話してくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "嬉しいね。何か謝礼が欲しいと思ったら、また言うよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "良いね。行こう。イカレたキノコをもっと観察したい。" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "できる限りのことをやってみるよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." +msgstr "友よ、食べ物をまた持ってきてくれて助かるよ。" #: lang/json/talk_topic_from_json.py msgid "Hey, are you a big fan of survival of the fittest?" @@ -124820,12 +126507,30 @@ msgstr "どうしてそんな事を聞くんだ?" msgid "Sorry, not interested." msgstr "悪いけど、興味ないね。" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "ごきげんよう、調子はどう?" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "ごきげんよう。悪いけどもう行くよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "ああ、いつも通りさ。死にたくなるまでここに座って、デイブとトランプで遊ぶんだ。" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " "Help a poor sickly soul out?" msgstr "私は自分が適者じゃないと分かっているから、餓死するまでここでじっとしてるんだ。貧しく病弱な人間を助けてもらえないか?" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "助けになればいいんだけど...何か食べる物が必要か?" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "何か困っているのか?" @@ -124842,6 +126547,25 @@ msgstr "体調が悪いのに、どうやってここまで来たんだ?" msgid "Why are you camped out here if they won't let you in?" msgstr "中に入れてもらえないにしても、どうしてここで寝泊りしているんだ?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "それは素晴らしい提案だ。本当に親切な人だな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "おいおい!本当に親切な人だな?気持ちだけで十分だよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "世界には今も君みたいな人がいると分かって嬉しいよ。" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "何をしようとしているんだ?" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -124851,6 +126575,10 @@ msgid "" msgstr "" "喘息、糖尿病、関節炎。全部に困ってる!糖尿病は定期的な食事ができなくなって以来、それほど問題にはなっていない。いや、問題になっていないと思いたい。チョコバーを食べるのは我慢できていたけれど、大体2か月に一回は病院で血液検査をしなければいけないのが面倒だったな。" +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "今の状況を楽しめているようだな。" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -124874,6 +126602,101 @@ msgid "" msgstr "" "十分運が良いだろ。屋根も明かりもあるし、暖も取れる。ゾンビが現れても警備の人が助けてくれる。そんなに悪くないよ。もし外へ出たら、屋根も明かりもない状態で食べ物を探さなきゃならない...使い古しの釘みたいにボロボロになってるだろうね。あるいは、動く死人の仲間入りかな。" +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" +"他にどうしろって言うんだ?配られた手札で勝負するしかない。私は地球上で最も愛する2人を失い、3人目には見限られた。もう世界は終わったも同然さ。ちっぽけな私を残して、どこかへ行ってしまった。知っての通り、妻を亡くしてからはとても孤独だった。でもここで友人ができた。腹は減ってるが、仲間はいる。リーナは数学と科学を教えてくれるし、ルオは今まで会った人の中で一番賢い...博士号も持っているそうだ。ユウスケはここで私に勝てる唯一のポーカープレイヤーだ。それから、デイブは、ええと、デイブはデイブだな。もっと言いたいことはあるが、よく聞いてくれ。確かにはみ出し物かもしれないが、私たちは無価値じゃないんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" +"ああ、昔は屋根葺き職人をしていたが、2006年頃に転落して背中を悪くしてね。他の大工仕事もやってみたが、どうも不向きだった。妻は私がやっていた簡単な仕事を引き継いで家計を支えてくれたが、2016年に脳卒中を起こしてからは、できる仕事を何でもこなしながら、貯金を切り崩して生活していたよ。の数日前、銀行から、その時住んでいた安くて小さなトレーラーハウスを差し押さえると通知が来たんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "子供はいなかったのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "私と一緒に来ないか?取引に強い人はきっと役に立つし、ここで無駄な時間を過ごしているよりはいい。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" +"自分の拠点を作っているんだ。ここよりもマシな場所だし、定期的に食事もとれる。大きな仕事を引き受けられないとしても、取り引きの経験を持っているなら歓迎されるよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" +"ああ、2人いたよ。双子だった。娘はフェンタニルを飲み始めてすぐオーバードーズで死んだ。その後息子は家族と縁を切った。娘の葬式にすら来なかった。息子を責めることはできない。家族全員が取り乱していたからね。知っている限りでは、息子は孫とどこか安全なところに隠れている。ここ最近は、便りがないのが良い便りだよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "そんな提案をしてくれるとは、親切な人だな。でも、私は膝が悪いし、放浪生活には耐えられそうにない。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" +"君にとっては良い話だろうな。じゃあこうしよう。もし君がデイブの問題を解決できたら、私もここで気の毒な友人たちを見守る必要がなくなるから、一緒に行くよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "デイブは問題を解決したようだ。一緒に来てもらえるかな?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" +"そうか...正直なところ、デイブを何とかできるとは思っていなかったんだが、君は見事やりとげ、私はしっぺ返しを食らったわけだ!気の毒な人のため真摯になって行動したんだな。ええと、実は...君からの提案については、あまり真剣には考えていなかったんだ。でも、他の人達を説得して連れ出せたら、私も一緒に行こう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "おや。意外なことだが、約束は守ろう。一緒に行くよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "さあ行こう。" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "ちょっと、そこの君。" @@ -124886,6 +126709,10 @@ msgstr "こんな所で何をしている?" msgid "I couldn't help but notice, you're covered in fur." msgstr "思わず目についたが、ずいぶん暖かそうな毛皮だな。" +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "何か食べ物を譲ろうか?" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -124908,7 +126735,7 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" "自分で家を建てるよりは安全だろう。必要になったら出掛けて食料を探すさ。ここを汚さず使い、ゾンビが来た時に自分の役割を果たせる限り、臨時の護衛として置いてもらえるんだ。だが、他の居座り組の所に食料を持っていったら良い顔はされなかった...きっと徐々に飢えさせるつもりだ。全員の腹を十分満たすことはできないが、せめて体調が悪くならない程度の食料は確保できた。結局ここの人達は、私を追い出す言い訳を探しているんだろうな。" @@ -124920,6 +126747,72 @@ msgid "" msgstr "" "気味が悪いだろ?ムダ毛みたいなものだ。大変動からしばらく経って、至る所から生え始めた。原因は分からない。嫌だからと言って怒っても仕方がない、まぁ、嫌だけど。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "私の分は大丈夫だ。漁ってきた中で、腐りそうなものをたくさん食べている。食べ物が余ってるなら、友人たちに分けてやってくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" +"面白い話はないよ。商業学校でコンピューター技師の勉強をしていたんだ。これはあまり便利な技能じゃないが、子供の頃はボーイスカウトの模範生だった。色々な植物や探索活動を学んだことは、かなり役に立ってるよ。" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "あなたの家族はどうしているんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" +"あまり考えたくない話題だな。子供の頃に住んでいたロードアイランドにいるよ。州知事がおかしくなって連邦脱退を宣言してからは、何の連絡もない。通信回線が切れたからね。現地の状況を知っている人にはまだ会っていないけど、期待はしないようにしてるよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "実家に戻らないのか?" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "ロードアイランドで何があったのか、詳しく教えてくれないか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" +"ここで立ち往生しているのと同じ理由さ...道中は危険すぎる。海岸線までのゾンビがうろつく約160キロの道のりを、徒歩だぞ?、勘弁してくれよ。無事に行けたとしても、海岸からブロック島までどうやって渡るんだ?親父が退職してからそこへ引っ越したんだけど、フェリーはきっと動いていないだろう。もしたどり着けたとしても、家で何が待ってるか分からない。それが一番恐ろしいよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" +"知らないのか?知事が狂って、他の人達も同じように狂っていったんだ。ある日知事が、物騒な民兵や支持者たちを伴って現れ、クーデターを宣言した。政府機能を完全に引き継ぎ、反対者を殺し、たくさんの支持者たちを島に移住させた。彼らの大半が大変動を乗り切って主導権を握ってるなんて噂もあるが、とても信じられないよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "地元に戻って家族を探すつもりなのか?" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -124929,6 +126822,23 @@ msgid "" msgstr "" "そうだな、親切な申し出も、全身から生えてる毛についてしつこく尋ねたりしなかったことも嬉しく思ってるよ。でも、私はこの騒がしい居座り組達に対して、ある種の責任を感じるようになってしまったんだ。私が物資を渡せる唯一の人間である限り、ここを去ろうとは思わない。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "あなたの友人たち全員と話した。デイブ以外は、一緒に行ってもいいと言ってくれた。あなたはどうだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "へぇ。あの3人にそんな危ない橋を渡らせるなんて、すごいな...かなり苦労しただろう。よし、一緒に行こう。皆を集めてここを出発するんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "そうだな。行こう。" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "こんにちは。" @@ -125193,10 +127103,102 @@ msgstr "あなたはどうなんだ、話を聞かせて?" msgid "Why don't we talk about it some other time?" msgstr "何故そんな話をしなければならんのだ?" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "調子はどうだ?" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "どうやってこのセンターにたどり着いたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "何か手伝えることはあるか?" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "また会ったな。" +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "無事なようで安心したよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "おや、どうも。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "おっ、よぉ、新顔だな。私はファティマだ。ここには立ち寄っただけだよな?新たな出会いは嬉しいけど、ベッドはもうないよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "こちらこそよろしく、ファティマ。私はただの通りすがりだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "やあ、ファティマ。調子はどう?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "悪いけど、今は話せない。" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "それなら良かった。何か手伝うことはある?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "ああ、知っての通り、異常はないよ。見知らぬ人同士なるべく関わらず、上手く暮らしてるよ。順調、順調。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" +"の前は、学校で溶接を勉強し終わって、就職活動を始めようとしたところだった。マサチューセッツの商業学校でムスリムの女子生徒として過ごすのは楽しかったよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "溶接は珍しい職業に思えるけど、何か理由があるのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" +"聞いたら驚くと思うよ!金工はイスラム教徒の伝統的な工芸の一つなんだけど、それが理由ではないんだ。私は伝統とは正反対の女子だからね。両親もあまり伝統的じゃないけど、祖父母は本当に古風で厳格なんだ。姉が同性愛者だって告白したんだけど、祖父母のせいで大変だったんだよ。ママとパパは黙っておくべきだっていったけど、姉はそれが嫌だったみたい。私は機械いじりが大好きで、祖父母が両親に嫌味を言ってる頃、私は不道徳だって言われたくなくて素敵な男の人と結婚した。でも、どれだけ嫌な顔をされても良いから、好きな仕事には就こうと思ったんだ。結果的には良い選択だった。祖父母は怒ったけど、私は溶接が好きだからね。一人で自分の作品を眺めたり、金属屑を集めてどんな有用なものに作り替えようか考えたりするのが好きなんだ。作品が完璧に組み立てられた時は最高だよ。それだけで満ち足りた気分になる。\n" +"\n" +"私は...祖父母がきっと無事でいると信じてる。二人とも古風で、考え方も私と合わないけど、家族だし、小さい頃の素敵な思い出もある。以来、神について以前より深く考えるようになった。祖父母の考えには決して同意できないけど、そんな考えに至った理由は前より理解できるようになった。方法は滅茶苦茶だったけど、祖父母は神との関係を家族全員で共有したかったんだろうな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" +"避難警報が鳴り始めた時は、バーリントンにいる両親を訪ねるために、バス停にいたんだ。世間の事情にはちょっと疎かったから、暴動がどれだけ激化してるかなんて気付かなかった。到着したバスは避難用車両に転用されていて、それに乗ってここに着いた。その...私は生まれた頃からあまり信心深い方じゃなかったけど、こんな事があってからは神について深く考えるようになった。神の助けがあって生き延びられたんだと思って感謝してるよ。状況は今も厳しいけど、きっと何とかなると思う。\n" +"\n" +"さて、私が乗ったバスは2番目に到着したみたいで、スタッフがトリアージや治療の準備をしていた。私はホェンと一緒に、負傷者を介助して回ってた。そこでちょっと厄介な事があって...トリアージと処置を受けた女の人が、ええと、センターに入れてもらえる特定の、その、肌の色についてコンプレックスを持っていたんだ。彼女は他の人と一緒になって、「書類」を紛失されたって訴えてた。私たちは介助の手伝いをしてたから、中へ入れるようスタッフに取り計らってもらえた。でも、列に並んだ時点で階下にはもうスペースがなかったから、ここに留まっているんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" +"緊張してる。自分の技能を活かせる仕事が見つかるか、静かに祈る場所があれば、もう少し穏やかに過ごせるんだけどね。公共のスペースで祈るのはちょっと照れ臭いんだ。ジェニーが私の技能を役立てられるプロジェクトがあるって話してくれたけど、外に出るのはどうしても緊張するな。" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "ああ、こんにちは。" @@ -125245,10 +127247,6 @@ msgstr "やあ。" msgid "Hey again." msgstr "やあ、また会ったな。" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "おや、どうも。" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -125744,6 +127742,107 @@ msgstr "やぁパブロ、ごきげんよう。悪いけどもう行くよ。" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "やあパブロ、会えて嬉しいよ。そろそろ行かないと。" +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "どうやってここへ来たんだ?新顔なんて珍しいな。" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "話す必要があるのか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "やあ。初めて会う人だな。私はライサー、皆からはライと呼ばれているよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "はじめまして、ライ。" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "やあ、ライ。調子はどう?" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "それで、どうしてここへ?新顔なんて珍しいな。" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "ただの好奇心旺盛な放浪者だよ。調子はどうだ?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "どうにか元気にやっている、と思いたいな。気にかけてくれてありがとう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" +"長い、長い話だ。実はこの辺じゃなくて、カナダ西部の郊外から来た。ニューイングランドへは前から行きたいと思っていたから、休暇に出かけたんだ。私は確かに避難者だがアメリカ国民ではないので、階下へは連れて行ってもらえなかった。嫌な話だが、仕方ない。実を言うと、家族や友人の状況が分からなくて、何とかしようとしている最中なんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "あなたについて聞きたい。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "あなたの家族について聞きたい。" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "あなたの友人について聞きたい。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" +"実はカウンセラーをしていて、友人のギトサンの下で働いていたんだ。非常に辛い経験をした様々な患者の精神を回復させ、依存症を治療してきた。ゾンビが自分の子供を食べる程ではないが、それと似たような心の傷を治すんだ。地獄のどん底のような経験をした人もいる。" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "なるほど、話せてよかったよ。私はそろそろ行かないと。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" +"友人の名はギトサンだ。私たちはスキーナ川の流れるブリティッシュコロンビア州北西部から来た。私自身の出身はヘイゼルトンという地区だ。とても美しい場所だよ。そびえる山々、ほどほどに茂った木々...そういう沿岸湿地の森が好きだって言うのも、旅行へ来た理由だ。他にも韓国とスロバキアに同じ理由で素晴らしい景色を見に行った。ちょっとした森林観光の専門家だな?でも、もう一度故郷の森を見られるか分からないというのは、辛いものだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" +"母と父はヘーゼルトンに戻って、祖母と兄と一緒に住んでいる。兄は子供の頃にバカな事をして頭を強く打って以来、自分一人では生活できないんだ。娘は16歳で、名前はエンジェルだ。旅行に連れてくるべきじゃなかったな。ああ神よ、娘が無事なのか、それとも死んでしまったのか、考えるだけで胸が張り裂けそうだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" +"ここの人達はギリギリの状態だ。これまでも精神的外傷をたくさん見てきたが、これは最悪と言っていい状況だ。誰もがすべてを失い、それに加えて悪夢のような出来事に遭遇している。皆が平気を装っているが、助けがなければ、近いうちに崩壊するだろう。" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -125784,6 +127883,59 @@ msgstr "ごめん、色々と大変なことがあってね。今はそっとし msgid "Sorry to hear that." msgstr "それは気の毒に。" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "こんにちは。新顔かな、会えて嬉しいよ。私の名前はホェンだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "こちらこそよろしく、ホェン。" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "やあ、ホェン。ちょっといいかな?" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "ただの旅人だよ。ちょっと質問してもいいか?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "話ならいつでも歓迎だ。ここはかなり退屈だからな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" +"私は救急救命士だった。最悪の場面を何度も乗り越えて、ここにいる。あの状況は、とても言葉じゃ説明できない。移動に介助が必要な人たちの世話をするために、成り行きでバスに乗ったんだ。確か腕の骨折だったかな。それが避難センターに到着した最初のバスだった。それで、酷い頭部裂傷の患者を治療してる間、ある女が処理中だった私の書類を「失くした」。その事について騒ぎ立てなかったら、私もあの気の毒な人たちと同じくロビーに締め出されていただろうな。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" +"大丈夫だと思うよ。この状況が長続きしない限りね。でも、かなり厳しいのは確かだ。あまり長くここで暮らしていれば、皆の頭もおかしくなってくるだろうな。" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "散髪をお願いします。" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "ううん、ちょっと髪型をかえてもらえるかな?" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "ううん、ちょっと顔剃りをしてもらえるかな?" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "ああ、戻ってきたのか。" @@ -125806,10 +127958,6 @@ msgstr "やあ、ヴァネッサ。調子はどう?" msgid "Yeah, no. I'm going." msgstr "ああ、何でもない。もう行くよ。" -#: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." -msgstr "また今度、お元気で。" - #: lang/json/talk_topic_from_json.py msgid "" "Well that's good. If you're going to pull your own weight I guess that's an" @@ -125817,8 +127965,140 @@ msgid "" msgstr "良い感じだよ。あんたが自分の仕事を十分にこなしてくれるなら、更に良くなるだろうね。" #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "取引かい?" +msgid "" +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "特に何もないよ。実際、厳しいけどね。こんな貧民街みたいな場所でたくさんの見知らぬ人と過ごし、座って手を見つめてることしかできない。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "このふざけた状態になる前の話はしたくないんだ。慰めは必要ない。私は美容師、それだけで十分な個人情報じゃない?" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "散髪してもらえるかな?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" +"さてと、私は2ダースもの見知らぬ人が住む煉瓦造りの劣悪な建物で立ち往生しており、世界中で死人がうろつき、周りに十分な食料はない。少なくとも私は忙しく働いていられるし、マーチに余裕が出たら十分な食料も確保できる。人間は散髪が好きだからね。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" +"皮肉を込めた言い方と、皮肉をたっぷり込めた言い方、どっちがいい?私は2ダースもの見知らぬ人が住む煉瓦造りの劣悪な建物で立ち往生しており、世界中で死人がうろつき、周りに十分な食料はない。このクソな状況を理解できないの?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" +"散髪が必要なのは見ればわかるけど、ハサミを最後に使ったのは、ゾンビの顔に突き刺した時なんだよね。それで髪は切りたくないんだ。きちんと散髪の準備をするのを手伝ってもらえないかな?" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "何を手伝えばいいんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "もちろん、まかせて。散髪は6マーチ、顔剃りは3マーチだけど、大丈夫?" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "散髪をしてほしい。" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "顔剃りをしてほしい。" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "そういえば、無料で散髪してくれるって言ったことは、覚えてる?" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "ちょっと高すぎるよ。さっきの話は何だったかな?" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "ちょっと高すぎるよ。そろそろ行かないと。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "私は食料の配達のためにここにいるんだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "ガラス瓶を買い取って欲しいんだけど?" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "私に頼みたい仕事があると聞いたんだけど?" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "この字が書いてある紙での取り引きは何なんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "ここに留まっている避難者は少し不満があるようだ。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "ロビーにいる物乞い達のことを知っているか?" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "この建物の閉鎖された区画は何なんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "建物の裏手の区画は掃除したが、今後あそこで何をするつもりなんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "農園についてもっと教えてくれ。" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "もう行くよ。さようなら!" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "私は何を手伝えばいい?" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "素晴らしい。何を持ってきたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "これで全部だ。他のことを聞いてもいいか?" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "これで全部だ。そろそろ行くよ。" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "ああ、ガラス瓶(500ml)、ガラス瓶(3L)を買い取るよ。" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -125826,10 +128106,10 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"私はここの備蓄食料を管理している。ここに到着したときの混乱の中で略奪が起こって、多くの食料が持ち出されてしまったんだ。残されたものでやり繰りしつつ、物資を充実させていくつもりだ。湿気の多い地下では腐敗が速いしカビも活発だから、保存がきく食品を優先して集めている。例えばコーンミール、ジャーキー、果実酒なんかがそうだな。" +"私は備蓄食料の監視をしている。ここに到着したときの混乱の中で略奪が起こって、多くの食料が持ち出されてしまったんだ。残されたものでやり繰りしつつ、物資を充実させていくつもりだ。新鮮な肉や野菜は継続して供給できるようになったから、コーンミール、ジャーキー、果実酒を優先して集めている。" #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -125837,10 +128117,10 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"私はここの備蓄食料を管理している。ここに到着したときの混乱の中で略奪が起こって、多くの食料が持ち出されてしまったんだ。残されたものでやり繰りしつつ、物資を充実させていくつもりだ。湿気の多い地下では腐敗が速いしカビも活発だから、保存がきく食品を優先して集めている。例えばコーンミール、ジャーキー、果実酒なんかがそうだな。" +"私は備蓄食料の監視をしている。ここに到着したときの混乱の中で略奪が起こって、多くの食料が持ち出されてしまったんだ。残されたものでやり繰りしつつ、物資を充実させていくつもりだ。新鮮な肉や野菜は継続して供給できるようになったから、コーンミール、ジャーキー、果実酒を優先して集めている。" #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -125848,44 +128128,134 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"私はここの備蓄食料を管理している。ここに到着したときの混乱の中で略奪が起こって、多くの食料が持ち出されてしまったんだ。残されたものでやり繰りしつつ、物資を充実させていくつもりだ。湿気の多い地下では腐敗が速いしカビも活発だから、保存がきく食品を優先して集めている。例えばコーンミール、ジャーキー、果実酒なんかがそうだな。" +"私は備蓄食料の監視をしている。ここに到着したときの混乱の中で略奪が起こって、多くの食料が持ち出されてしまったんだ。残されたものでやり繰りしつつ、物資を充実させていくつもりだ。新鮮な肉や野菜は継続して供給できるようになったから、コーンミール、ジャーキー、果実酒を優先して集めている。" #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "なぜコーンミールと、ジャーキーと、果実酒なんだ?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "わかったけど、「あなたは誰だ」って言うのは、「あなたの事を教えて欲しい」って意味だ。" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" -"この3品目は十分な量の自家製造が比較的容易だし腐敗しない、そのうえ嵩張らない。だからここに持ってきたら私が割増金を出そう。缶詰等の他の食品はフロントの商人に買い取ってもらえ。ここには農家が数人と狩人が一人いて、栄養分の確保を計画しているところだが、更なる物資が得られるならいつでも受け付けているぞ。" +"この3品目は大量に自家製造しやすい上、腐りにくい。地元の農家と数人のハンターも、栄養価の高い食料を提供すると言っているが、物資は常に多ければ多いほどいい。物資は一度にたくさん取り引きするほど安くなるものだが、ここに持ってくれば割増金も付けて買い取ろう。缶詰や他の食品はフロントの商人と取り引きしてくれ。" #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "他に何か集めてるものはある?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "なるほど..." +msgid "Very well... let's talk about something else." +msgstr "よく分かった...他の事について話そう。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "悪いが、友人を作りにきている訳じゃないんだ。仕事に戻らせてくれ。" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." -msgstr "ここで受け付けている食品は、ビール、砂糖、穀粉、燻製肉、燻製魚、調理油、それと先に言ったジャーキー、コーンミール、果実酒だな。" +msgstr "" +"ここで受け付けている食品は、ビール、砂糖、穀粉、燻製肉、燻製魚、ドライフルーツ、乾燥野菜、調理油、塩や酢などの調味料、それと先に言ったジャーキー、コーンミール、果実酒だな。" #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "なるほどね..." +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" +"「自由商人保証紙幣」と言うものだ。私たちはここに到着してすぐに、取り引き対象となる実際の品物やサービスと同等の価値を示すものとして、貨幣を使うことを決めた。数日でシステムを創り上げ、現在は現金として扱えるまでになった。共同体内での食料やその他の提供品と労働力などのサービスの取り引きに使われているが、かつては定期的な取り引きがある供給業者、つまり私たちを信頼している業者との取り引きで使っていたものだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" +"ああ、状況は厳しい。ここへ最初に来たときは監督者が誰もおらず、私たちが世話できる以上の人員を受け入れることになった。事態がいくらか収集して我々が小さなグループを形成した頃には、落ち着く場所も確保できない避難民たちが全員階上で順番を待っていた。多少の空間は用意したが、理想には程遠い。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "そうしよう。どんな手を使って彼らに退去を認めさせたのか知らないが、自由商人も私自身も、感謝しているよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" +"いくら事態が片付いても、全員分のベッドも足りないし、物資も不十分だ。耐えるしかない。私たちもできる限りのことはしている...少なくとも避難場所は提供した。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" +"そうだな、階下にも部屋があるが、これ以上の人数を収容できないから立ち入り禁止だ。あとは、最初に集合場所として使っていた区画がある。そこは...色々と不味い。区画を片付けてくれた者には報酬を出すと商人が言っているそうだ。自殺願望でもあるなら商人に聞いてみるといい。" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "その区画は何が不味いんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" +"ここに到着した時は、ちゃんとした組織が出来上がっていなかった。一番早く到着した者たちの内何人かでトリアージシステムを構築し、病人やケガ人は待機を余儀なくされていた。むごい話だが、十分なスペースは確保できていなかった。それに加えて、当時は死人がゾンビに変わる原因も分かっていなかったから、感染症に罹った者を隔離する方針を立てていた。数人がその場で死に、事態は急変した。その時はジェーコブという男が全体の責任者として動いていた。トリアージエリアから撤退せざるを得なくなった時、彼は全員が逃げたか確認するために最後まで残っていた。大きな犠牲だ。" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "ありがとう。他のことを聞いてもいいか?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "ありがとう。今の所、あの区画については何の計画も立てていない。あそこが片付けば、ここの住人に方針を決めてもらうつもりだ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" +"あちらも順調なようで何よりだ。ここの避難民の一人が、農場で働いていたそうだ。なるべく早く彼や他の労働者を送りたい。彼らがここを養うのに十分な食料を供給できるようになり、いずれは他のコミュニティとも取り引きができるようになるまで大きくなって欲しいと考えている。" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -126049,7 +128419,7 @@ msgstr "取引しよう!" #: lang/json/talk_topic_from_json.py msgid "Is there anything I can do to help?" -msgstr "何か出来ることはあるか?" +msgstr "何かできることはあるか?" #: lang/json/talk_topic_from_json.py msgid "Thanks! I will be on my way." @@ -126214,16 +128584,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "お嬢さん、外をうろつくは止めた方が身の為だよ。" #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "ようこそ、執行官..." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "ようこそ..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "新入りです..." +msgid "I heard this place was a refugee center..." +msgstr "ここが避難センターだと聞いたんだが..." #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -126233,6 +128595,14 @@ msgstr "外の世界について何か聞いていないか?" msgid "Is there any way I can join your group?" msgstr "あなたの組織に参加する方法はあるか?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "ここの物乞い達はどうしたんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "物乞いの問題を解決してきた。" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "避難センターのために何かできる?" @@ -126242,31 +128612,43 @@ msgid "I figured you might be looking for some help..." msgstr "人手が必要なようだな..." #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." -msgstr "" -"なんと言われようがここは満員なんだ。今にも溢れ返りそうなほどの避難民のために、物資を必死こいて掻き集めているところだ。ジャーキーが余っているなら買うぞ。" +msgid "Well, I'd better be going. Bye." +msgstr "ええと、そろそろ行くよ。さようなら。" #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "貧乏暇無しということか..." +msgid "Welcome marshal..." +msgstr "ようこそ、執行官..." + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "ようこそ..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" +"なんと言われようがここは満員なんだ。これ以上の避難民を受け入れられるスペースも食料もない。とにかく物資が必要だ。取り引きにも応じている。ジャーキーが余っているなら買うぞ。ジャーキーのためなら幾らでも支払う。詳しくは奥にいる仲買人と話してくれ。" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"実をいうと、我々は初め6台のバスが満員になる程の、会社員とその妻子の集まりだった...避難を始めてから2日ぐらいで勇敢な者たちはみな死んでしまったがな。今必要なのは生き延びるための物資の取引をここで行うことだけだ。お前の持ち物がどこでどうやって手に入れたものかは知らんが、厄介事は持ち込んでくれるなよ。" +"実をいうと、最初は我々は6台のバスが満員になる程の、会社員とその親子の集まりだった...大量の人員を選別するためにできる事は全てやった。生存する可能性が高い人を優先して避難させたんだ。残酷だが、それが唯一の選択肢だった。今の望みは、ここで生き延びるための物資を取り引きすることだけだ...避難シェルターのコンピュータで住所を知った人がここを訪れ続けるが、それも見捨てなければならない。でも、私たちの持ち物と交換に生き延びるための糧を得られることが分かったんだ。この方法をビジネスモデルに変えるつもりだ。お前の持ち物がどこでどうやって手に入れたものかは知らんが、厄介事は持ち込んでくれるなよ。" #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "そうだったか、気の毒に。" +msgid "It's just as bad out there, if not worse." +msgstr "どこも大変なんだな。" #: lang/json/talk_topic_from_json.py msgid "" @@ -126278,31 +128660,29 @@ msgid "" msgstr "" "申し訳ないことだが、ここの住人が上手くやっていくためには閉鎖的にならざるを得ないんだ。地下にいる警備員たちは、もし誰かが降りて来たらすかさず撃てという指示を受けている。スカベンジャーの誰もがひどい奴だとは思わないが、ここには子供を殺された人もいるんだ...暴力沙汰を起こそうなんて思わないでくれよ。" -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "どこも酷い状況なんだな..." - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" -msgstr "[知性 12] 待った、バス6台ぶんの避難者... ここは今どれだけの避難民を抱えているんだ?" +msgstr "[知性 10] 待った、バス6台ぶんの避難者... ここは今どれだけの避難民を抱えているんだ?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"避難民はここの1階に集められていた。だがある一団が敵の目を盗んで、瀕死の男を搬入口から運び込もうとしていたとき、あたりが悲鳴に包まれたんだ。その夜は2ダースほどの死人が出た。残りの避難民も翌日には屍肉を食らう何かの群れに変貌してしまっていた。ここで生き残ったのは20人ぐらいか。私たちが生存できるのはサバイバル技術に長けたビジネスパートナーたちのお陰さ。" +"階下に数十人だ。スペースを確保する見通しが立つまでは、このフロアにも17人以上が滞在している。混乱の中で段取りが上手く行かず、何人かが命を落とした。それが引き金になって、更に被害が拡大した。あれは最悪だったよ。" #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "上手くやっているな..." +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" +"ええと、他の人もそうだろうけど、ここに来るまであったことは話したくないんだ。皆が死んじまって、起き上がって、殺して、また起き上がる。前は小さな店を経営していたから、ここでもこんな仕事をしているんだ...私が話せることはこのくらいかな。さあ、仕事に戻らせてくれ。" #: lang/json/talk_topic_from_json.py msgid "" @@ -126316,10 +128696,6 @@ msgstr "" "混乱が起こってから、ニューヨーク中心部のシラキュース市へ突入を試みたと言っていた男がいた。だが都心部に辿り着く前に、戦車をも止めるほどの動く死体の群れに阻まれて、慌てて逃げてきたそうだ。少なくとも数千体はいたらしい。もし協力して、大きな音で引き付けるようなことができれば上手くいったかもしれないな?" " 幸運にも我々はここへ来る道中そんなことには遭遇しなかったが。" -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "いいことを聞いたよ。ありがとう。" - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -126407,6 +128783,86 @@ msgstr "随分と装備が充実しているみたいだな?" msgid "Was hoping for something more..." msgstr "何か他の話は..." +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" +"彼らも避難したがっていたが、もう満員でスペースも物資も余っていないんだ。大抵の人は断ると他の避難所を探しに出て行くんだが、彼らは...そうしなかった。彼らにも居住スペースを提供したいが、安全が確保できないんだ。問題が解決するまでは、混乱を引き起こさないという約束で、ここに泊まらせている。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "もし私が物乞いたちをここから退去させたら、何か報酬をもらえないかな?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" +"衛生面でリスクもあることだし、分けてやれる物資は少ないが、ここで流通している通貨なら支払える。危害を加えずに全員を退去させたら、報酬を出そう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" +"気の毒な物乞いたちを安全な場所へ避難させるとは、素晴らしい活躍だったな。お手柄だよ。ロビーを空けてくれた事には感謝するが、しばらく安堵感に浸っていたいから、用事があるなら後にしてくれ。彼らも別の場所で活躍していることだろう。段ボールの奴が出て行かなかったのは残念だが、彼は放っておいても大人しいからな。" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "報酬はどうなったんだ?" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "お役に立てて嬉しいよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "そうだったな。正式な仕事ではないが、私たちは公正に判断する。物乞いに新しい家を見つけた報酬として、5マーチ渡そう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" +"自分の農園へ帰る途中だった者がいたんだが、乗っていたチャーターバスが避難用の車両に転用されて、そのまま避難センターへ来てしまったんだ。組織の再編成も一段落したから、彼には農園に戻って私たちの物資の供給源となってもらい、見返りとして労働力を提供することにした。このシステムはかなり上手くいって、仕事に必要なスキルをもっている避難民は、ほとんどが農園に移っているよ。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "それで、物乞いや2階で待機している他の避難者が生活できるスペースは確保できたのか?" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "教えてくれてありがとう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" +"残念ながら、無理だ。農園へ行った人の大部分は2階で待機していた避難民だ。安全な寝床を待つよりもリスクが少ないからな。地下から出ていったのはほんの少しだし、元から混雑した状態だったからな。もっとたくさんの人が太陽や新鮮な空気、重労働を求めて牧場に向かってくれるといいが...知ってるだろうが、みんなゾンビの大群に襲われるのが怖いんだ。" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "執行官..." @@ -126931,8 +129387,54 @@ msgid "Alright, I'll leave" msgstr "わかった、もう行くよ。" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "さっぱりしていくかい?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "まだ外には無法者がうろついてる。執行官、あなたの仕事は多い..." + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "執行官、何か欲しいものがありますか?" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "ああ、連邦執行官か。乙だねぇ。" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "取り引きするかい?" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "お気を付けて、スカベンジャー。" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "取り引きしよう。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "私は私の仕事を続け、あなたはあなたの仕事を続ける。執行官、これは公正な取り引きでしょう?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" +"私たちは、研究所の近くにあるハンターや農家のコミュニティから食料の供給を受けてきた。路上は危険だが、金になる物はあるし、都市部でガラクタを集めて回るよりもいい。" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "では、おたっしゃで。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "髪の手入れに興味がある?6マーチで散髪、3マーチで顔剃りだよ。カラーリングや整髪もやってるよ。" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -127117,7 +129619,7 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Oh." -msgstr "そうか。" +msgstr "うーん。" #: lang/json/talk_topic_from_json.py msgid "You mind?" @@ -127447,6 +129949,10 @@ msgid "" msgstr "" "まさか...まぁ、少しは手を加えたが。ここを見つけた当時は、本当に修理できるのかってぐらい酷い状態だった。空いてる部屋はしばらく使っていてもいいが、独占はするなよ。この辺にいるスカベンジャーは君だけじゃないからな。" +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "なるほどね..." + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -127455,7 +129961,7 @@ msgstr "ただの幸運なスカベンジャーだよ。宝の山に囲まれて #: lang/json/talk_topic_from_json.py msgid "I see..." -msgstr "まあね..." +msgstr "なるほど..." #: lang/json/talk_topic_from_json.py msgid "" @@ -127475,7 +129981,7 @@ msgstr "そうだろうな。君みたいなスカベンジャーにとって消 #: lang/json/talk_topic_from_json.py msgid "Alright..." -msgstr "なるほど..." +msgstr "分かった..." #: lang/json/talk_topic_from_json.py msgid "Not at the moment, check back later perhaps." @@ -127483,7 +129989,7 @@ msgstr "今の所は何もないな、また今度寄ってくれ。" #: lang/json/talk_topic_from_json.py msgid "Sure..." -msgstr "分かった..." +msgstr "そうか..." #: lang/json/talk_topic_from_json.py msgid "Are you part of the rescue team?" @@ -127908,10 +130414,30 @@ msgstr "は%sにカウンター攻撃を繰り出しました。" msgid "Feint" msgstr "フェイント" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "%sにフェイントを仕掛けました。" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "は%sにフェイントを仕掛けました。" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "掴み外し" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "%sが掴みかかろうとしましたが、振りほどきました!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "に%sが掴みかかろうとしましたが、振りほどきました!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -128646,24 +131172,28 @@ msgid "Crane Wing" msgstr "鶴の威嚇" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" -msgstr "腕を振り上げて威嚇しました。" +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "腕を振り上げて%sを威嚇しました。" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" -msgstr "は腕を翼のように振り上げました。" +#, python-format +msgid " performs the Crane Wing at %s." +msgstr "は%sに向けて翼のように腕を振り上げました。" #: lang/json/technique_from_json.py msgid "Crane Flap" msgstr "鶴の飛翔" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" -msgstr "腕を振り下ろして拘束から脱しました。" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" +msgstr "%sが掴みかかろうとしましたが、腕を振って拘束を逃れました!" #: lang/json/technique_from_json.py -msgid " flaps free" -msgstr "は腕を振り下ろして拘束から脱しました。" +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "は%sに掴まれそうになりましたが、腕を振るって逃れました!" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -128712,12 +131242,14 @@ msgid "Snake Slither" msgstr "蛇の湾曲" #: lang/json/technique_from_json.py -msgid "You slither free" -msgstr "身を捩って拘束を解きました。" +#, python-format +msgid "The %s tries to grab you, but you slither free!" +msgstr "%sが掴みかかろうとしましたが、するりと抜け出しました。" #: lang/json/technique_from_json.py -msgid " slithers free" -msgstr "は身を捩って拘束を解きました。" +#, python-format +msgid "The %s tries to grab , but they slither free!" +msgstr "は%sに掴まれそうになりましたが、するりと抜け出しました!" #: lang/json/technique_from_json.py msgid "Snake Strike" @@ -129420,13 +131952,13 @@ msgstr "旋回脚" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" -msgstr "%sに回転蹴りを繰り出しました。" +msgid "The %s tries to grab you, but you kick free and spin around!" +msgstr "%sが掴みかかろうとしましたが、回転と共に蹴りを繰り出して逃れました!" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" -msgstr "は%sに回転蹴りを繰り出しました。" +msgid "The %s tries to grab , but they kick free and spin around!" +msgstr "は%sに掴まれそうになりましたが、回転と共に蹴りを繰り出して逃れました!" #: lang/json/technique_from_json.py msgid "displace and counter" @@ -130172,14 +132704,37 @@ msgstr "木材に釘を丁寧に打ち付けてしっかり固定した、上品 msgid "wattle-and-daub wall" msgstr "壁(荒打漆喰)" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "木で組んだ格子に湿った土、粘土、砂、動物の糞、藁を混ぜたものを塗り付けて作った、比較的原始的な壁です。" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "壊れた壁(荒打漆喰)" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "荒打漆喰の壁が破壊され、ほとんど枠だけが残った状態でかろうじて立っています。" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "建設途中の壁(荒打漆喰)" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "この荒打漆喰の壁は所々木の格子が見える状態になっており、格子や壁土を更に追加して完成させる必要があります。" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "壁(木)" @@ -131581,45 +134136,176 @@ msgstr "" msgid "willow tree" msgstr "ヤナギの木" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "長く細い葉がカーテンのように垂れ下がった、ヤナギ属の大きな落葉樹です。樹皮を剥がして採取できます。適切な道具を使えば切り倒せます。" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" +"長く細い葉がカーテンのように垂れ下がった、ヤナギ属の大きな落葉樹です。樹皮は既に剥がされており、再び採取できるほど成長していません。適切な道具を使えば切り倒せます。" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "カエデの木" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" +"5本の突起をもつ独特の形状の葉が生えた、カエデ属の大きな落葉樹です。幹を穿孔してメープルシロップを採取できます。適切な道具を使えば切り倒せます。" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" +"5本の突起をもつ独特の形状の葉が生えた、カエデ属の大きな落葉樹です。幹の穴に管が押し込まれており、メープルシロップを採取できる状態です。適切な道具を使えば切り倒せます。" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "ヒッコリーの木" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "ペカン属の背の高い落葉樹です。よく見るとヒッコリーナッツがいくつか実っており、採取できそうです。適切な道具を使えば切り倒せます。" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "ペカン属の背の高い落葉樹です。成熟したヒッコリーナッツは全て摘み取られてしまったようです。適切な道具を使えば切り倒せます。" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "ピスタチオの木" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" +"カイノキ属の落葉樹です。この地域の固有種ではなく、植樹された木のようです。よく見るとピスタチオがいくつか実っており、採取できそうです。適切な道具を使えば切り倒せます。" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" +"カイノキ属の落葉樹です。この地域の固有種ではなく、植樹された木のようです。成熟したピスタチオは全て摘み取られてしまったようです。適切な道具を使えば切り倒せます。" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "アーモンドの木" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" +"スモモ属の落葉樹です。この地域の固有種ではなく、植樹された木のようです。よく見ると新鮮なアーモンドがいくつか実っており、採取できそうです。適切な道具を使えば切り倒せます。" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" +"スモモ属の落葉樹です。この地域の固有種ではなく、植樹された木のようです。成熟したアーモンドは全て摘み取られてしまったようです。適切な道具を使えば切り倒せます。" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "ペカンの木" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "ペカン属の背の高い落葉樹です。よく見るとペカンの実がいくつか実っており、採取できそうです。適切な道具を使えば切り倒せます。" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "ペカン属の背の高い落葉樹です。成熟したペカンの実は全て摘み取られてしまったようです。適切な道具を使えば切り倒せます。" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "枯れたヒッコリーの木" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "ペカン属の背の高い落葉樹です。枯れてやせ細った木からは何も採取できそうにありません。適切な道具を使えば切り倒せます。" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" "Small plants and shrubs that decorate the forest. An observant forager " "could obtain edible plants, acorns, eggs, and mushrooms from it." -msgstr "森を彩る小さな草木です。注意深く探せば食べられる植物やどんぐり、卵、キノコなどを得られるでしょう。" +msgstr "森を彩る小さな草木です。注意深く探せば食べられる植物やドングリ、卵、キノコなどを採集できそうです。" #: lang/json/terrain_from_json.py msgid "brush." msgstr "ガサッ。" +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "森を彩る小さな草木です。既に漁られており、役に立ちそうなものは採集できません。" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "森を彩る小さな草木です。既に漁られており、役に立ちそうなものは採集できません。霜に覆われています。" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "低木" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "小型の低木です。" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "ラッカセイの茂み" @@ -131768,22 +134454,49 @@ msgstr "大きく育ったライラックの茂みです。花は一つも残っ msgid "tree trunk" msgstr "木の幹" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "伐採された木の幹の一部です。適切な道具を使えば丸太を切り出せます。" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "切り株" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "伐採された後の、木の切り株です。" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "壁(根)" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "根で覆われた土壁です。" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "壁(蜜蝋)" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "壁全体が蝋で作られています。" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "床(蜜蝋)" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "床全体が蝋で作られています。" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "柵(棒杭)" @@ -131882,6 +134595,11 @@ msgstr "何でもない、ロープで作られた障壁です。通行禁止を msgid "railing" msgstr "手すり" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "木製の手すりです。" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "メリッ!" @@ -131890,6 +134608,11 @@ msgstr "メリッ!" msgid "glass railing" msgstr "手すり(ガラス)" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "ガラス製の手すりです。" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "[ガラスが割れる大きな音!]" @@ -131902,10 +134625,20 @@ msgstr "ガッシャーン!" msgid "metal railing" msgstr "手すり(金属)" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "金属製の手すりです。" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "手すり(コンクリート)" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "コンクリート製の手すりです。" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "軒樋" @@ -132081,46 +134814,138 @@ msgstr "" msgid "shallow water" msgstr "浅水域" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "それほど水深が深くない水域です。水密性のある容器を使えば、水を汲み入れられます。そのまま飲むのは危険です。" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "深水域" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "底が見えないほど深い水域です。水密性のある容器を使えば、水を汲み入れられます。そのまま飲むのは危険です。" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "浅い流水" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" +"それほど水深が深くない、流れのある水域です。水密性のある容器を使えば、水を汲み入れられます。澱んだ水よりはマシでしょうが、やはりそのまま飲むのは危険です。" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "深い流水" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" +"水深が深い、流れのある水域です。水密性のある容器を使えば、水を汲み入れられます。澱んだ水よりはマシでしょうが、やはりそのまま飲むのは危険です。" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "それほど水深が深くない水域です。水密性のある容器を使えば、塩水を汲み入れられます。" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "底が見えないほど深い水域です。水密性のある容器を使えば、塩水を汲み入れられます。" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "プールの水" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "深いプールの水です。監視員が見当たらないので、決して泳いではいけません。モンスターに食べられてしまったのかもしれませんね。" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "下水" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "うげっ。下水が流れています。あえて言う必要はないでしょうが、そのまま飲むのは危険です。" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "溶岩" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "溶融した岩石や金属で構成された、光を発する非常に熱い液体です。溶岩ステーキという珍味が名物の地域があるそうですよ。" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "砂場" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "子供用の砂場です。シラミの個体数はかなり減少したと思われるので、心配する必要はありません。" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "滑り台" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "子供用の滑り台です。大人には狭すぎて楽しく滑れません。" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "ジャングルジム" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "子供がぶら下がって腕を鍛えたり楽しんだりする、ジャングルジムの一部です。" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "バックボード" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "バスケットボール用のバックボードです。" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "給油ポンプ" @@ -132139,14 +134964,31 @@ msgstr "" msgid "tank with gasoline" msgstr "ガソリンタンク" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "ガソリンを満載したタンクです。" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "細い柱" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "小型の支柱です。" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "破壊された給油ポンプ" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "危ない!給油ポンプは壊れており、価値ある液体を汲み出せない状態です。" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -132162,6 +135004,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "破壊された軽油ポンプ" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "このポンプからは一滴のディーゼル燃料も出てきません。どこかの野蛮人がイライラを解消するために壊したのでしょうか。" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "ATM" @@ -132185,6 +135034,12 @@ msgstr "重大機能不全警報、自爆装置を起動します。良い一日 msgid "broken generator" msgstr "壊れた発電機" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "この発電機は壊れており、発電能力はありません。" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "ミサイル" @@ -132391,6 +135246,13 @@ msgstr "コンクリート製の柱です。" msgid "cloning vat" msgstr "培養槽" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "溶液で満たされた培養槽です。恐らくは、人間やその他の生物のクローンを成長させるために使っていたのでしょう。" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "ドンッ。" @@ -132399,6 +135261,16 @@ msgstr "ドンッ。" msgid "stairs" msgstr "階段" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "階下へと続く階段です。" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "上階へと続く階段です。" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "マンホール" @@ -132415,22 +135287,69 @@ msgstr "マンホールです。重い鉄の蓋は、下水と雨水が自由に msgid "ladder" msgstr "梯子" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "上方に伸びた梯子です。" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "下方に伸びた梯子です。" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "下り坂" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "下り坂の斜面です。" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "上り坂" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "上り坂の斜面です。" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "垂れ下がっているロープ" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "登れそうなロープです。" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "ただのマンホールのふたです。" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "通信装置のパネルです。退屈な時や誰かを怖がらせたい時、あるいは単に通信装置を介して会話をしたい時に使いましょう。" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "カードリーダー" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" +"スマートカードの読み取り装置です。科学のシンボルとして良く知られている、中に原子が入ったフラスコのシンボルが描かれています。まるで古いSF映画に登場する壊れたロボットのように、真っ赤なLEDライトが点滅してます。機械なんて怖くないと思うなら、科学者のIDカードを挿入してみましょう。" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -132508,54 +135427,121 @@ msgstr "エレベーターの操作パネルです。稼働していません。 msgid "elevator" msgstr "エレベーター" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "エレベーターの内部です。" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "闇の台座" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "判読できない古代の象形文字で覆われた、黒っぽい石造りの台座です。嫌な予感がします。" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "光の台座" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "判読できない古代の象形文字で覆われた、白っぽい石造りの台座です。" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "岩(赤)" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "赤色の石です。" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "岩(緑)" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "緑色の石です。" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "岩(青)" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "青色の石です。" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "床(赤)" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "赤色の床です。" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "床(緑)" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "緑色の床です。" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "床(青)" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "青色の床です。" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "スイッチ(黄色)" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "黄色のスイッチです。押してみますか?" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "スイッチ(シアン)" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "シアン色のスイッチです。押してみますか?" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "スイッチ(紫)" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "紫色のスイッチです。押してみますか?" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "スイッチ(格子縞)" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "市松模様のスイッチです。押してみますか?" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -132580,6 +135566,18 @@ msgstr "紫色の柔らかい絨毯です。" msgid "linoleum tile" msgstr "リノリウムタイル" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "ゴムのような丈夫な素材で作られた、シンプルな白色の床です。" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "ゴムのような丈夫な素材で作られた、灰色の床です。" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "壁(赤)" @@ -132638,10 +135636,22 @@ msgstr "紫色に塗られた壁です。" msgid "stone wall" msgstr "壁(石)" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "頑丈な石の壁です。" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "建設途中の壁(石)" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "建設途中の頑丈な石の壁です。完成させるには、更に作業を進める必要があります。" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "閉鎖井戸" @@ -132675,33 +135685,64 @@ msgstr "簡易シェルター" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." -msgstr "防護性能に乏しい簡易的なシェルターです。" +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." +msgstr "防護性能に乏しい簡易的なシェルターです。避難用や、焚き火の雨よけとして使います。" #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "平屋根" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "平坦な灰色の屋根です。" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "平屋根(防水紙)" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "タール紙で覆われた、平坦な灰色の屋根です。" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "平屋根(板葺)" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "木製の板で覆われた、平坦な屋根です。" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "屋根(藁)" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "藁で作られた屋根です。" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "平屋根(金属)" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "板金製の平坦な屋根です。" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "平屋根(タイル)" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "タイルが敷き詰められた、平坦な屋根です。" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "天窓" @@ -132730,22 +135771,51 @@ msgstr "" msgid "telecom cabinet" msgstr "電気通信機器収納棚" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "電気通信機器がたくさん入った棚です。電源は切れており、分解すれば有用な電子機器が入手できるかもしれません。" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "損傷した電気通信機器収納棚" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "損傷した電気通信機器収納棚です。分解すれば有用な電子機器やガラクタを入手できるかもしれません。" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "大型金属柱" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "頑丈な金属製の支柱です。" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "小型金属柱" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "金属製の支柱です。" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "HV油遮断器" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "アークを消滅させるために油を用いる回路遮断器です。" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "パン!" @@ -132754,30 +135824,72 @@ msgstr "パン!" msgid "small HV oil circuit breaker" msgstr "小型HV油遮断器" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "アークを消滅させるために油を用いる小型の回路遮断器です。" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "大型開閉装置" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "ブレーカースイッチ、ヒューズ、ゲージを備えた開閉装置のパネルです。" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "小型開閉装置" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "ブレーカースイッチ、ヒューズ、ゲージを備えた開閉装置の小型パネルです。" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "避雷器" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "意図的に落雷の電流を流して地面へ逃がすことで、電気系統の絶縁体や導体を保護する装置です。" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "断路器" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "整備中の電気系統に電流が流れないようにする装置です。" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "変流器" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "電圧を変換する装置です。" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "計器用変圧器" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "特殊な変圧器です。" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -132808,6 +135920,11 @@ msgstr "河川橋" msgid "bridge pavement" msgstr "道路(橋)" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "金属とコンクリートで作られた橋です。" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "[コンクリートや金属の破砕音]" @@ -132816,22 +135933,63 @@ msgstr "[コンクリートや金属の破砕音]" msgid "bridge yellow pavement" msgstr "車線(橋)" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "金属とコンクリートで作られた橋です。黄色に塗られています。" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "歩道(橋)" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "コンクリート製の橋の歩道です。" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "ガードレール" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "金属製の手すりです。道路外への落下や侵入を防ぐために設置されています。" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "ブラックジャックオークの木" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" +"黒い樹皮が長方形に割れて裂け目がオレンジ色になっている、コナラ属の落葉樹です。よく見ると樹皮を剥がして採取できそうです。適切な道具を使えば切り倒せます。" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" +"黒い樹皮が長方形に割れて裂け目がオレンジ色になっている、コナラ属の落葉樹です。樹皮は既に剥がされており、再び採取できるほど成長していません。適切な道具を使えば切り倒せます。" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "粘土の山" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "粘土質の土の山です。" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "バシャッ!" @@ -132840,10 +135998,20 @@ msgstr "バシャッ!" msgid "mound of sand" msgstr "砂の山" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "砂の山です。" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "ベルトコンベア" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "物を輸送するコンベアベルトです。" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "カチン。" @@ -132852,18 +136020,38 @@ msgstr "カチン。" msgid "light machinery" msgstr "軽機械" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "様々な軽機械です。分解すれば部品が入手できます。" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "重機械" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "様々な重機械です。分解すれば部品が入手できます。" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "古い機械" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "様々な古い機械です。分解すれば部品が入手できます。" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "電子機械" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "様々な電子機器です。分解すれば部品が入手できます。" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "緩やかな階段" @@ -132876,10 +136064,20 @@ msgstr "緩やかな階段(終点)" msgid "milking machine" msgstr "搾乳機" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "乳牛の乳を搾る酪農用の機械です。" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "バルクタンク" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "大容量の巨大なタンクです。" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "砂利" @@ -132897,26 +136095,78 @@ msgstr "" msgid "railroad track" msgstr "鉄道レール" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "この上を列車が進みます。大変動に直面し、使われることなく置きっ放しになっています。" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "枕木" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "レールを支える枕木です。" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "この上を列車が進みます。大変動に直面し、使われることなく置きっ放しになっています。枕木がレールを支えています。" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "ワックスを塗った床" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "ワックスを塗った床です。" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "金属製のバックボードです。" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "車止め" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "列車の線路上にある小さな車止めです。線路の終点、もしくは「立入禁止」区域を表しています。" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "踏切警報機" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" +"列車が接近すると光と騒音を発し、人間が線路を横切ってミンチになるのを防ぎます。ただし、今は他の理由で人間がミンチになるため意味がありません。" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "踏切警標" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "踏切がある事を表す交通標識ですが、列車が走っていなければ意味がありません。" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "貯蔵穴" @@ -133077,10 +136327,24 @@ msgstr "屋根を支え、招かれざる客を退けるのに十分な頑丈さ msgid "pine lean-to" msgstr "差掛小屋(松材)" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "松葉の屋根が付いた小さなシェルターです。避難用や、焚き火の雨よけとして使います。" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "差掛小屋(防水シート)" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "防水シートで覆われた小さなシェルターです。避難用や、焚き火の雨よけとして使います。" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "焦土" @@ -133208,10 +136472,6 @@ msgstr "麻酔" msgid "smoothing" msgstr "平滑化" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "溶接" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "打込" @@ -133260,10 +136520,6 @@ msgstr "蒸留" msgid "tree cutting" msgstr "伐採" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "穴掘" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "ボルト締緩" @@ -133280,14 +136536,6 @@ msgstr "ネジ締緩" msgid "fine screw driving" msgstr "精密ネジ締緩" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "解体" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "穿孔" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "こじ開け" @@ -134285,6 +137533,12 @@ msgid "" "A place to sit, and the backrest reclines to make it an uncomfortable bed." msgstr "座るための設備ですが、背もたれを倒せば不格好なベッドにもなります。" +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "牽引能力をもった動物に取り付けると、車両を牽引できるようになります。" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "追跡装置" @@ -138179,10 +141433,14 @@ msgstr "%sに弾薬を込めました。" msgid "You refill the %s." msgstr "%sを補充しました。" -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "火をつけられそうな物がありません。" +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "このアイテムを起動するには火口が必要です。" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "火を起こすために使っていたアイテムを失いました。" @@ -138857,6 +142115,11 @@ msgstr "%sは運搬元のタイルに到達できません。カートを取り msgid "%s sorted out every item possible." msgstr "%sは分類可能なすべてのアイテムを並べました。" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "%sを中断しますか?" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "ニコチンが必要だ。" @@ -140788,7 +144051,7 @@ msgstr "運転しながら読書する馬鹿はいません!" #: src/avatar.cpp msgid "What's the point of studying? (Your morale is too low!)" -msgstr "何で学ばないといけないの?(意欲が低過ぎます!)" +msgstr "学習なんて何の意味がある?(意欲が低過ぎます!)" #: src/avatar.cpp #, c-format @@ -141040,6 +144303,18 @@ msgstr "%sを再び読むのは%sにとって面白くなさそうです。" msgid "Maybe you should find something new to read..." msgstr "脳が新しい読み物を求めています..." +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "体内アラームに気づかず眠り続けたようです..." + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "アラームに気づかず眠り続けたようです..." + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "嘔吐しようとしましたが、胃の中は空っぽです。" + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "殻にこもっているため動けません。移動するには殻から出てください。" @@ -141089,6 +144364,10 @@ msgstr "その経路には他の車両が存在します。" msgid "That part of the vehicle is currently unsafe." msgstr "現在、車両の一部分が危険な状態です。" +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "騎乗している動物が水を嫌がっています!" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "水中に飛び込みますか?" @@ -141145,6 +144424,10 @@ msgstr "息継ぎが必要だ! (%sで水面へ)" msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "息継ぎが必要ですが、泳げません!早く陸地に上がりましょう!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "騎乗中は車両に乗車できません。" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "範囲内に敵対的なモンスターがいません。1ターンその場に留まって待ちます。" @@ -141202,6 +144485,38 @@ msgstr "この武器を使うには、テーブル、畝、割れた窓など適 msgid "The %s can't be fired in its current state." msgstr "%sは現在の状態では起動できません。" +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "殻の中から投擲はできません。" + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "投げるアイテムを選択" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "投擲できるアイテムを何も持っていません。" + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "そのアイテムを所持していません。" + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "投げるには重過ぎます。" + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "それは身体の一部なので、投げられませんよ!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "精神を強く集中し、体を動かしました!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "投擲する気力が湧きません..." + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -141238,7 +144553,7 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" "メモ:\n" @@ -141250,22 +144565,10 @@ msgstr "" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" -"メモ:\n" -"%s\n" -"\n" -"使用スキル: %s\n" -"難易度: %d\n" -"%s \n" -"危険度: なし\n" +"難易度: なし\n" "時間: %s\n" #: src/basecamp.cpp @@ -142467,6 +145770,11 @@ msgstr "立ち上がりました。" msgid " stands up." msgstr "は立ち上がりました。" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "%sがクモの巣から自由になりました!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "クモの巣を払って、自由になりました!" @@ -142479,6 +145787,11 @@ msgstr "はクモの巣を払って、自由になりました!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "クモの巣を払おうとしましたが、上手く払えませんでした!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "%sはくくり罠を外して、自由になりました!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "くくり罠を外して、自由になりました!" @@ -142491,6 +145804,11 @@ msgstr "はくくり罠を外して、自由になりました!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "くくり罠を外そうとしましたが、上手く外せませんでした!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "%sは強化くくり罠を外して、自由になりました!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "強化くくり罠を外して、自由になりました!" @@ -142503,6 +145821,16 @@ msgstr "は強化くくり罠を外して、自由になりました! msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "強化くくり罠を外そうとしましたが、上手く外せませんでした!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "%sはトラバサミを外して、自由になりました!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "%sはトラバサミから逃れようとしましたが、上手く外れません!" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "トラバサミを外して、自由になりました!" @@ -142539,6 +145867,21 @@ msgstr "穴から脱出しました!" msgid " escapes the pit!" msgstr "は穴から脱出しました!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "%sは拘束から逃れようとしましたが、失敗しました!" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "%sは拘束を振りほどきました!" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "%sから引き剥がされました!" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "既に拘束されていません。" @@ -142836,6 +146179,64 @@ msgstr "ACTIVE_EXERCISE" msgid "EXTRA_EXERCISE" msgstr "EXTRA_EXERCISE" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "[耳をつんざく咆哮!]" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "けたたましく吠えました!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "[大きな叫び声!]" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "絶叫しました!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "[けたたましい叫び声!]" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "大声で叫びました!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "あなたの声はほとんど聞こえません!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "[不明瞭な声]" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "[こもった叫び声]" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "あなたの声は非常に小さく聞こえます!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "嘔吐しました。" + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "嘔吐しました。" + +#: src/character.cpp +msgid " throws up heavily!" +msgstr "は激しく嘔吐しました!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "激しく嘔吐しました!" + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "自動拾得から除外" @@ -143497,104 +146898,10 @@ msgstr "エレベーターを起動しました。何かキーを押して下さ msgid "NEPower Mine(%d:%d) Log" msgstr "NEPower社 鉱山(%d:%d) ログ" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"ログ47:\n" -"定期採掘中に、空洞を掘り当てた。\n" -"ここまでならよくある事だが、その地点の断層線は珍しい\n" -"ことに完全に垂直になっていた。\n" -"断層にはいくつか奇妙な凹みがあった。人間が造ったもの\n" -"のように見えるらしく、迷信深い作業員は気味悪がってい\n" -"る。\n" -"\n" -"\n" -"ログ48:\n" -"凹みは3~6メートルほどの高さで、断層の端まで並んでい\n" -"る。\n" -"一つ一つの形はどこか人間に似ているが、手足や首に当た\n" -"る部分は異様に長く、ねじれている。\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "続きを読みますか?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"ログ49:\n" -"考古学者による調査が終了するまで、この地区での採掘作\n" -"業は中止することになった。\n" -"遅れを取り戻すのに最低1週間はかかるだろう。\n" -"このバカげた遺跡保護法は50年前に施行されたものだ。\n" -"こっちは採掘のお陰でやっと飯を食えているというのも分\n" -"からないのか。\n" -"\n" -"ログ52:\n" -"未だに考古学調査待ち。\n" -"こちらでも断層線に関して軽く調べてみた。\n" -"手持ちの装置では亀裂の深さを測定できそうにない。\n" -"24キロと表示されてはいるが、このような狭いトンネルの\n" -"測定用ではないので、正確かどうか分からない。\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"ログ54:\n" -"2人の男がタガネを持って調査区画に下りて行った。断層の\n" -"一部分を削るらしい。どうなろうと見て見ぬふりをするつも\n" -"りだが、あのインテリどもは岩を微塵も削れないで帰ってく\n" -"るだろうな。いい気味だ。\n" -"\n" -"ログ55:\n" -"考古学者が先日の2人組とガイドをつれて下っていった。あ\n" -"いつらにインディー・ジョーンズの真似は無理だろう。6メ\n" -"ートルも降りられるかどうか。科学者のお守りをするのは勘\n" -"弁してほしいが、もし中で怪我でもされたら、採掘場は閉鎖\n" -"になるだろう。\n" -"\n" -"ログ58\n" -"どこからか作業員が入り込んでいるのか?まさか空洞内に\n" -"彫刻が見つかるとは!大発見だとは思うが、あいつらでどう\n" -"にか出来るものなのだろうか?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "阿彌殻計画" @@ -143608,36 +146915,10 @@ msgstr "" "サイト %d%d%d\n" "関連する現場監督のログがメモに追加されました。" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" -"\n" -"鉱山作戦中断:\n" -"午前2時7分、阿彌殻計画を実行に移す際に緊急事態が発生した。\n" -"発見された断層線を探測した結果、30.09Kmに及ぶ深さの亀裂が生じていた。\n" -"この件に関して、NEPower社の鉱山作業員を規定87.08違反によって拘束し、\n" -"被験体として89-C研究所に移送した。\n" -"\n" -"断層線の亀裂は、標準的な振動テストを中止する程の損傷ではない..." - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ファイルが破損しています、何かキーを押して下さい..." -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "機械が素早く動き、折れた%sを固定しました。" - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--アクセス承認--" @@ -145969,6 +149250,10 @@ msgstr "表示 - 臭跡マップ" msgid "Toggle display temperature" msgstr "表示 - 気温" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "表示 - 視認性" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "表示 - 変異カテゴリーレベル" @@ -146145,6 +149430,10 @@ msgstr "男性" msgid "no faction" msgstr "派閥なし" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "通貨なし" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -150020,27 +153309,6 @@ msgstr "" "食料: %15d (kcal)\n" " \n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" -"メモ:\n" -"%s\n" -" \n" -"適用スキル: %s\n" -"難易度: %d\n" -"%s \n" -"危険: なし\n" -"時間: %s\n" - #: src/faction_camp.cpp #, c-format msgid "" @@ -151629,6 +154897,18 @@ msgstr "焚き木が十分にくべられており、そのままでも1日は msgid "Without extra fuel it will burn for %s." msgstr "焚き木を追加しなくても%sは燃え続けそうです。" +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "騎乗中にその行動はできません。" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "騎乗中は車両を操作できません。" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "騎乗中はコンソールを操作できません。" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -151905,38 +155185,6 @@ msgstr "射撃" msgid "Drop where?" msgstr "どこに落としますか?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "殻の中から投擲はできません。" - -#: src/game.cpp -msgid "Throw item" -msgstr "投げるアイテムを選択" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "投擲できるアイテムを何も持っていません。" - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "そのアイテムを所持していません。" - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "投げるには重過ぎます。" - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "それは身体の一部なので、投げられませんよ!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "精神を強く集中し、体を動かしました!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "投擲する気力が湧きません..." - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -152248,6 +155496,11 @@ msgid "Really step into %s?" msgstr "本当に%sに踏み込みますか?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "%sはそちらへ向かうのを拒否しています!" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "掴んでいたものを離しました。" @@ -152255,6 +155508,14 @@ msgstr "掴んでいたものを離しました。" msgid "Can't find grabbed object." msgstr "掴めるものがありません。" +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "騎乗中は車両に乗車できません。" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "騎乗中は障害物を通り抜けられません。" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -152315,12 +155576,27 @@ msgstr "%sで左足に怪我をしました!" msgid "You hurt your right foot on the %s!" msgstr "%sで右足に怪我をしました!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "%sは切られました!" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "%2$sで%1$sに怪我をしました!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "%sを押し退けました。" + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "%sを押し退けるスペースがありません。" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -152330,6 +155606,10 @@ msgstr "%sを押し退けました。" msgid "There's something here, but you can't see what it is." msgstr "何かありますが、よく見えません。" +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "何かありますが、騎乗中は手が届きません。" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -152372,6 +155652,11 @@ msgstr "車両の制御装置があります。" msgid "%s to drive." msgstr "%sで運転します。" +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "車両制御装置かありますが、騎乗中は手が届きません。" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -153445,11 +156730,6 @@ msgstr "%sは大きすぎて押し退けられません。" msgid "There is too much stuff in the way." msgstr "そこには物が多すぎます。" -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "%sを押し退けました。" - #: src/gates.cpp msgid "stuff" msgstr "アイテム" @@ -153458,6 +156738,11 @@ msgstr "アイテム" msgid "No vehicle at grabbed point." msgstr "掴んだ場所に車両がありません。" +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "%sが車両に繋がれている間は、車両を動かせません!" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -153945,14 +157230,30 @@ msgstr "自動移動を取り消しました。" msgid "Unknown command: \"%s\" (%ld)" msgstr "不明なコマンド: \"%s\" (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "騎乗中は階段を下りられません。" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "騎乗中は階段を登れません。" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "殻の中で何かを開けることはできません。" +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "騎乗中は開けません。" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "殻の中で何かを閉じることはできません。" +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "騎乗中は閉じられません。" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "殻の中で何かを叩くことはできません。" @@ -153963,28 +157264,52 @@ msgstr "殻の中で周囲を見ることはできません。" #: src/handle_action.cpp msgid "You can't move mass quantities while you're in your shell." -msgstr "殻の中で物を移動させることはできません。" +msgstr "殻の中ではアイテムを一括移動できません。" + +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "騎乗中はアイテムを一括移動できません。" #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "殻の中から何かを拾得することはできません。" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "騎乗中はアイテムを拾えません。" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "殻の中で何かを掴むことはできません。" +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "騎乗中は何も掴めません。" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." -msgstr "殻の中からはアイテムを一括移動できません。" +msgstr "殻の中からは足元のアイテムを一括移動できません。" + +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "騎乗中は足元のアイテムを一括移動できません。" #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "殻の中で死体を解体することはできません。" +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "騎乗中は解体できません。" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "殻の中で角を覗きこむことはできません。" +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "騎乗中は角を覗きこむことはできません。" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "殻の中からアイテムを落とすことはできません。" @@ -153994,10 +157319,18 @@ msgstr "殻の中からアイテムを落とすことはできません。" msgid "You can't craft while you're in your shell." msgstr "殻の中で製作することはできません。" +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "騎乗中は製作できません。" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "運転中は分解できません。" +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "騎乗中は分解できません。" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "車両内では建設できません。" @@ -154006,6 +157339,10 @@ msgstr "車両内では建設できません。" msgid "You can't construct while you're in your shell." msgstr "殻の中で建設することはできません。" +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "騎乗中は建設できません。" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -154088,6 +157425,7 @@ msgstr "現在%sは%sです。" #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -155522,11 +158860,27 @@ msgid "" "Exiting." msgstr "接続されている診察台に患者が見つかりません。手術が不可能です。操作を終了します。" +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "オートドクMk.XI ステータス: オンライン 手術を選択してください" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "移植するCBMを選択してください" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "摘出するCBMを選択してください" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "骨折箇所を固定する" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." -msgstr "オートドクを使用するには最低でも1個の麻酔キットが必要です。" +"any bionic manipulation." +msgstr "オートドクでCBM手術を実行するには最低でも1個の麻酔キットが必要です。" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name #: src/iexamine.cpp @@ -155574,6 +158928,26 @@ msgstr "CBMが体内に一つもありません。" msgid "%1$s doesn't have any bionics installed." msgstr "CBMが%1$sの体内に一つもありません。" +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "機械が素早く動き、折れた%sを固定しました。" + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "機械が手際よく動き、骨折したの%sを固定しました。" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "固定が必要な部位がありません。" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "%1$sには固定が必要な部位がありません。" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "この製粉機には既に穀粉が入っています。" @@ -161159,6 +164533,11 @@ msgstr "料理を取り出す" msgid "Really stop cooking?" msgstr "本当に調理を止めますか?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "%sの保存に適した容器を持っていません。" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -164507,6 +167886,32 @@ msgid "" "weapon." msgstr "このスタイルを選択すると、武器を装備した状態でも必ず素手で攻撃します" +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "CBM: 合金メッキ - 腕を移植するとアームブロックが可能になります" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "素手格闘%sアームブロックが可能になります" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "CBM: 合金メッキ - 脚を移植するとレッグブロックが可能になります" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "素手格闘%sレッグブロックが可能になります" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -164659,10 +168064,6 @@ msgstr "胴体の着衣が邪魔になり、バランスを崩しました。" msgid "You can't hit reliably due to your farsightedness." msgstr "遠視でよく見えないため、確実な命中は期待できません。" -#: src/melee.cpp -msgid "You feint." -msgstr "フェイントを仕掛けました。" - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "攻撃を外した勢いでよろめきました。" @@ -165296,27 +168697,17 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"利益: $8/時間\n" -"危険: 極低\n" -"時間: 1時間~\n" -"\n" -"仲間を単純作業労働に割り当てます。基礎的なスキルを安全に身に付けさせ、拠点における評判を高めます。報酬はあまり期待しない方が良さそうです。" - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"収益: $8/時間\n" +"利益: $8/時間\n" "危険: 極低\n" "時間: 1時間~\n" "\n" -"単純労働者名簿: \n" +"仲間を単純作業労働に割り当てます。安全に基礎的なスキルを身に付けさせ、拠点における評判を高めます。報酬はあまり期待しない方が良さそうです。\n" +"\n" +"参加者:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -166773,16 +170164,6 @@ msgstr "%sがに掴み掛かりましたが、咄嗟に回避しまし msgid "The %s tries to grab you as well, but you bat it away!" msgstr "%sが掴みかかろうとしましたが、打ち払いました!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "%sが掴みかかろうとしましたが、振りほどきました!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "に%sが掴みかかろうとしましたが、振りほどきました!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -167782,6 +171163,11 @@ msgstr "防具以外のアイテムを外す" msgid "Attach bag" msgstr "バッグを取り付ける" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "%sの車両接続ハーネスを外す" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -167819,6 +171205,54 @@ msgstr "フェロモンボールを潰す" msgid "Milk %s" msgstr "%sから搾乳する" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "%sに鞍を取り付ける" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "%sから鞍を外す" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "%sに鞍を取り付ける方法が分かりません" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "%sに騎乗する" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "%sは騎乗できません" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "%sは小さすぎて体重を支えられません" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "騎乗の知識がありません" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "重すぎて%sに騎乗できません" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "鞍なしで騎乗できるほど熟練していません" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "鞍は取り付けましたが、%sに騎乗する方法は分かりません" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -167832,6 +171266,11 @@ msgstr "本当に奴隷ゾンビを殺しますか?" msgid "Pet armor" msgstr "ペット防具" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "%sの車両接続ハーネスを外しました。" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -167895,6 +171334,11 @@ msgstr "%1$sは%2$sに対して重すぎます。" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "%1$sを%2$sに着せて、防御力を高めました。" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "%sを車両から外しました。" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -168369,26 +171813,6 @@ msgstr "体内に毒を注入されたようです!" msgid "The %s climbs to its feet!" msgstr "%sがよろよろと起き上がりました!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "%sがクモの巣から自由になりました!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "%sはくくり罠を外して、自由になりました!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "%sは強化くくり罠を外して、自由になりました!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "%sはトラバサミを外して、自由になりました!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -168402,7 +171826,7 @@ msgstr "%sは穴から脱出しました!" #: src/monster.cpp #, c-format msgid "The %s breaks free from the grab!" -msgstr "%sは相手の掴みを振りほどきました!" +msgstr "%sは拘束を振りほどきました!" #: src/monster.cpp msgid "hummmmm." @@ -169254,7 +172678,7 @@ msgid "activated" msgstr "有効" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "ペット:" #: src/newcharacter.cpp @@ -169787,35 +173211,35 @@ msgstr "削除済み" #: src/npc.cpp msgid "Is trying to kill you." -msgstr "あなたに殺意を抱いている。" +msgstr "あなたに殺意を抱いています。" #: src/npc.cpp msgid "Is trying to flee from you." -msgstr "あなたから逃走している。" +msgstr "あなたから逃走しています。" #: src/npc.cpp msgid "Is your friend." -msgstr "あなたと友好関係にある。" +msgstr "あなたと友好関係にあります。" #: src/npc.cpp msgid "Is following you." -msgstr "あなたに追従している。" +msgstr "あなたに追従しています。" #: src/npc.cpp msgid "Is guiding you." -msgstr "あなたを先導している。" +msgstr "あなたを先導しています。" #: src/npc.cpp msgid "Will try to kill you or flee from you if you reveal yourself." -msgstr "あなたが近づけば殺そうか逃げようとしている。" +msgstr "あなたが近づけば殺そうか逃げようとしています。" #: src/npc.cpp msgid "Is neutral." -msgstr "中立的である。" +msgstr "中立的です。" #: src/npc.cpp msgid "Is still innocent and killing them will be considered murder." -msgstr "無害であり、もし殺せば罪の意識を感じる。" +msgstr "無害であり、もし殺せば罪の意識を感じます。" #: src/npc.cpp msgid "He " @@ -174078,57 +177502,33 @@ msgid " attempts to put out the fire on them!" msgstr "は火を消そうとして失敗しました!" #: src/player.cpp -msgid "a piercing howl!" -msgstr "[耳をつんざく咆哮!]" - -#: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "けたたましく吠えました!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "[大きな叫び声!]" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "絶叫しました!" - -#: src/player.cpp -msgid "a loud shout!" -msgstr "[けたたましい叫び声!]" - -#: src/player.cpp -msgid "yourself shout loudly!" -msgstr "大声で叫びました!" - -#: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "あなたの声はほとんど聞こえません!" - -#: src/player.cpp -msgid "an indistinct voice" -msgstr "[不明瞭な声]" - -#: src/player.cpp -msgid "your muffled shout" -msgstr "[こもった叫び声]" - -#: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "あなたの声は非常に小さく聞こえます!" +msgid "You spur your steed into a gallop." +msgstr "動物に刺激を与えて速度を上げました。" #: src/player.cpp msgid "You start running." msgstr "走り始めました。" +#: src/player.cpp +msgid "Your steed is too tired to go faster." +msgstr "動物が疲れているため速度を上げられません。" + #: src/player.cpp msgid "You're too tired to run." msgstr "疲れ過ぎて走れません。" +#: src/player.cpp +msgid "You slow your steed to a walk." +msgstr "動物をなだめて速度を落としました。" + #: src/player.cpp msgid "You start crouching." msgstr "屈んで歩き始めました。" +#: src/player.cpp +msgid "You nudge your steed to a steady trot." +msgstr "動物に刺激を与えて少しだけ速度を上げました。" + #: src/player.cpp msgid "You start walking." msgstr "立ち上がって歩き始めました。" @@ -175309,28 +178709,6 @@ msgstr "%sが治り始めました。" msgid "Your %s has started to mend!" msgstr "%sの治癒が始まりました!" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "嘔吐しました。" - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "嘔吐しました。" - -#: src/player.cpp -msgid " throws up heavily!" -msgstr "は激しく嘔吐しました!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "激しく嘔吐しました!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "嘔吐しようとしましたが、胃の中は空っぽです。" - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -175953,14 +179331,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "冬眠に入りました。" -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "体内アラームに気づかず眠り続けたようです..." - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "アラームに気づかず眠り続けたようです..." - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -176055,6 +179425,32 @@ msgstr "足下のアイテムの一括移動を無効化しました。" msgid "Your body strains under the weight!" msgstr "身体が重荷に悲鳴を上げました。" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "騎乗していた動物から落ちました!" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "怪我をしました!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "騎乗していた動物から落ちました。" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "騎乗していた動物から落ちました。" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "どこに降りますか?" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "その場所には降りられません!" + #: src/player.cpp msgid "Wielding: " msgstr "装備: " @@ -177371,6 +180767,10 @@ msgstr "ダァン!" msgid "none" msgstr "なし" +#: src/recipe.cpp +msgid "none" +msgstr "なし" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -177638,6 +181038,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "気泡シートを踏みました。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "%sは気泡シートを踏みました!" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "プチッ!" @@ -177676,12 +181081,12 @@ msgstr "バチン!" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Caught by a beartrap." -msgstr "トラバサミに捕まった。" +msgstr "トラバサミに挟まれました。" #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Caught by a beartrap." -msgstr "トラバサミに捕まった。" +msgstr "トラバサミに挟まれました。" #: src/trapfunc.cpp msgid "A bear trap closes on your foot!" @@ -177691,6 +181096,11 @@ msgstr "トラバサミがガシッと足を挟み込みました!" msgid "A bear trap closes on 's foot!" msgstr "トラバサミがガシッとの足を挟み込みました!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "%sはトラバサミに挟まれました。" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -177709,6 +181119,11 @@ msgstr "棘が付いた板を踏みました!" msgid " steps on a spiked board!" msgstr "は棘が付いた板を踏みました!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "%sは棘が付いた板を踏みました!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -177727,6 +181142,11 @@ msgstr "鋭い鉄菱を踏みました!" msgid " steps on a sharp metal caltrop!" msgstr "は鋭い鉄菱を踏みました!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "%sは鋭い鉄菱を踏みました!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -177767,6 +181187,16 @@ msgstr "仕掛け線に躓きました!" msgid " trips over a tripwire!" msgstr "は仕掛け線に躓きました!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "%sは仕掛け線に躓きました!" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "%sはクロスボウの罠を作動させました!" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "クロスボウの罠を作動させました!" @@ -177813,6 +181243,11 @@ msgstr "ボルトが発射されましたが、%sには命中しませんでし msgid "Kerblam!" msgstr "ダァン!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "%sはショットガンの罠を作動させました!" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "ショットガンの罠を作動させました!" @@ -177836,6 +181271,11 @@ msgstr "ショットガンの罠を作動させました。" msgid "A shotgun fires and hits the %s!" msgstr "ショットガンの弾が%sに命中しました!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "刃が弧を描きながら動き、%sを切り裂きました!" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "刃が弧を描きながら動き、胴体を切り裂きました!" @@ -177858,6 +181298,11 @@ msgstr "刃の罠を作動させました。" msgid "Snap!" msgstr "パチン!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "%sの脚にくくり罠が絡まりました!" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "くくり罠に引っ掛かり、足に絡まりました。" @@ -177876,7 +181321,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "くくり罠を作動させました。" -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "%sの脚にくくり罠が絡まりました。" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -178010,6 +181459,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "解剖器具に足を踏み入れた。" +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "床から電子ビームが放射され、%sをすぱっと切り裂きました!" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr "は穴に落ちました!" @@ -178038,14 +181492,15 @@ msgid "" "admirably!" msgstr "地面に激しく叩きつけられましたが、緩衝装置が衝撃を吸収しました!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "怪我をしました!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "ひらりと着地しました。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "%sは穴に落ちました!" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "串刺し穴に落ちました!" @@ -178124,6 +181579,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "溶岩に足を踏み入れました。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "%sは溶岩で火傷を負いました!" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "取り付けに失敗しました..." @@ -178141,6 +181601,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr "は陥没穴に踏み込みましたが、なんとか安全に体を引き上げました。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "%sは陥没穴に落下しました!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -179492,6 +182957,11 @@ msgstr "%sが動きません。" msgid "The %s's engine emits a sneezing sound." msgstr "%sのエンジンはくしゃみのような音を発しています。" +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "%sの速度では%sと歩調が合いません。" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -179541,6 +183011,10 @@ msgstr "%1$sの%2$sが%3$sを轢きました。" msgid "The %1$s's %2$s runs over something." msgstr "%1$sの%2$sが何かを轢きました。" +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "動物がいない状態では牽引用車両を操縦できません。" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "車両にステアリングがないため、このままでは曲がることができません。" @@ -179793,7 +183267,7 @@ msgstr "配線を繋いでエンジンをかける" #: src/vehicle_use.cpp #, c-format msgid "Trigger the %s's Alarm?" -msgstr "%sのアラームを鳴らしますか?" +msgstr "%sの警報装置を作動させますか?" #: src/vehicle_use.cpp msgid "You leave the controls alone." @@ -180102,6 +183576,36 @@ msgid "" " on. The washing machine is being filled with water from vehicle tanks." msgstr "洗濯機に洗剤を入れ、ふたを閉めて電源を入れました。車両のタンク内の水が洗濯機に注がれています。" +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "どの動物に車両接続ハーネスを付けますか?" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "%sと%sを車両接続ハーネスで繋ぎました。" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "%sを解放しました。" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "この動物は友好的ではありません!" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "この動物は車両接続ハーネスを付けられません。" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "車両接続ハーネスが塞がれています。" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "そこには動物がいません。" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "車両を調べる" @@ -180142,6 +183646,10 @@ msgstr "動物を捕獲/解放" msgid "Load or unload a vehicle" msgstr "車両を載せる/降ろす" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "車両接続ハーネスを付ける" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "播種機に種を装填する" diff --git a/lang/po/ko.po b/lang/po/ko.po index f02232aa990ef..a07a12d2fcae9 100644 --- a/lang/po/ko.po +++ b/lang/po/ko.po @@ -9,16 +9,16 @@ # 탯새 , 2019 # T itan , 2019 # fenjo , 2019 -# Vlasov Vitaly , 2019 # Brett Dong , 2019 +# Vlasov Vitaly , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Brett Dong , 2019\n" +"Last-Translator: Vlasov Vitaly , 2019\n" "Language-Team: Korean (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1377,6 +1377,15 @@ msgid "" "create a beaded curtain door." msgstr "" +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "" @@ -2321,6 +2330,18 @@ msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" msgstr[0] ".38 Super (재생)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "" @@ -2355,7 +2376,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" @@ -2540,6 +2561,17 @@ msgid "" "incapacitating gas." msgstr "최루가스가 탑재된 40mm 유탄. 터지면서 강력한 무력화 가스를 분사합니다." +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 magnum FMJ" @@ -2573,6 +2605,17 @@ msgstr ".44 Magnum FMJ (재생)" msgid "reloaded .44 Magnum" msgstr ".44 Magnum (재생)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr ".44 종이 화약포" @@ -2657,6 +2700,104 @@ msgstr "" msgid "reloaded .454 Casull" msgstr ".454 Casull (재생)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr "" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr "" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr "" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4.6x30mm" @@ -3454,6 +3595,22 @@ msgstr "플레쉐트탄 (재생)" msgid "reloaded shotgun slug" msgstr "슬러그탄 (재생)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "00 shot" @@ -5344,10 +5501,10 @@ msgstr[0] "고철 갑옷" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." -msgstr "고철을 간단한 줄로 묶어서 만든 갑옷 세트. 꽤 상당한 방어력을 주지만, 고철판을 엮어둔 수준이라 입기 편하지는 않습니다." +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -12309,6 +12466,36 @@ msgstr[0] "잠수용 신발" msgid "A pair of neoprene swimming booties, with individual toes." msgstr "발가락 부분이 나뉘어진 네오프렌 잠수용 신발 한 쌍." +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -13065,6 +13252,19 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -15671,6 +15871,7 @@ msgid_plural "schematics generics" msgstr[0] "" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -15679,7 +15880,8 @@ msgstr[0] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -19382,7 +19584,7 @@ msgstr[0] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" @@ -19786,10 +19988,8 @@ msgstr[0] "생 폐 조각" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"동물에서 꺼낸 폐의 한 부분. 구멍이 많고 선홍빛을 띠고 빨리 상한다. 제대로 요리하면 별미로 먹을 수 있겠지만, 그렇지 않다면 아무 " -"맛도 않나는 질긴 고기덩어리 맛이 날겁니다." #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -19799,7 +19999,7 @@ msgstr[0] "폐 조각(요리됨)" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" @@ -25126,7 +25326,7 @@ msgstr[0] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" @@ -30016,6 +30216,26 @@ msgstr[0] "플라스틱 그릇" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "강철 병" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "스테인리스강 물병. 750ml의 액체를 담을 수 있다." + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "접이식 플라스틱 병" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "보관이 용이한 연질 플라스틱 병. 500ml의 액체를 담을 수 있다." + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -30060,16 +30280,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "강철 병" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "스테인리스강 물병. 750ml의 액체를 담을 수 있다." - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -30080,16 +30290,6 @@ msgstr[0] "알루미늄 호일" msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "반쯤 구겨진 알루미늄 호일. 요리나 제빵에 사용할 수 있다." -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "접이식 플라스틱 병" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "보관이 용이한 연질 플라스틱 병. 500ml의 액체를 담을 수 있다." - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -30650,6 +30850,10 @@ msgstr[0] "시체" msgid "A dead body." msgstr "시체." +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "근처에 피워진 불" @@ -30685,8 +30889,10 @@ msgstr[0] "시든 식물" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "죽은 식물. 불 붙이는데 쓰기 좋다." +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -36446,6 +36652,16 @@ msgstr[0] ".45 ACP 탄피" msgid "An empty casing from a .45 ACP round." msgstr ".45 ACP탄의 빈 탄피." +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -36628,6 +36844,18 @@ msgid "" "Merchants in the Refugee Center." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -37565,6 +37793,16 @@ msgid "" "string." msgstr "단순한 고철 침을 끈으로 고정시켜서 만든 급조 총검." +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "돌창" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "날카로운 돌 촉이 달린 튼튼한 나무 막대." + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -37663,6 +37901,21 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "구형 반합" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"불이나 휴대용 버너 등으로 음식을 데울 수 있게 만들어진 군대식 휴대용 반합. 일반적인 냄비나 그릇보다 깊이가 얕고, 현대식 반합과 " +"다르게 발열장치가 포함되어있지 않다." + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -40087,6 +40340,28 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -40202,6 +40477,26 @@ msgstr[0] "" msgid "A small book, containing spells created by a novice magician." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -40738,31 +41033,6 @@ msgid "integral EMP projector" msgid_plural "integral EMP projectors" msgstr[0] "" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "돌창" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "날카로운 돌 촉이 달린 튼튼한 나무 막대." - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "구형 반합" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"불이나 휴대용 버너 등으로 음식을 데울 수 있게 만들어진 군대식 휴대용 반합. 일반적인 냄비나 그릇보다 깊이가 얕고, 현대식 반합과 " -"다르게 발열장치가 포함되어있지 않다." - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -44571,6 +44841,17 @@ msgstr "더 많은 현실적인 총기들" msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "자잘한 탄약 종류와 실존 총기를 더 많이 추가합니다." +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "" @@ -44677,9 +44958,9 @@ msgstr "흉터 좀비" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." -msgstr "변형된 인간 시체로, 피부를 뒤덮은 흉터 조직이 피부를 두껍게 변화시켰습니다." +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -44935,9 +45216,9 @@ msgstr "유령" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." -msgstr "무질서하게 모양과 크기를 바꾸는 거대한 그림자로, 이것의 머리라고 밖에 말할 수 없는 두 개의 빛의 구체가 특징입니다." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -44995,8 +45276,8 @@ msgstr "부패된 로트와일러" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." -msgstr "톡 쏘는 불쾌한 악취를 풍기는 개의 사체. 일련의 꿈틀대는 물혹과 점액이 뚝뚝 떨어지는 염증이 몸 전체를 덮고 있습니다." +" chains of pulsing cysts and slime-dribbling ulcers." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -45005,9 +45286,12 @@ msgstr "아이봇" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" #: lang/json/MONSTER_from_json.py @@ -45735,9 +46019,9 @@ msgstr "좀비" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." -msgstr "천천히 비틀거리며 움직이는 인간 시체입니다. 번들거리는 검은 눈을 통해서 끝없는 분노를 볼 수 있습니다." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -46610,9 +46894,9 @@ msgstr "EMP 맨핵" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." -msgstr "자폭형 자동화 드론. 내부에 EMP 수류탄이 들어있는 주먹 크기의 로봇이다." +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -46621,9 +46905,9 @@ msgstr "C-4 맨핵" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." -msgstr "자폭형 자동화 드론. 내부에 C-4 폭탄이 들어있는 주먹 크기의 로봇이다." +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -46632,9 +46916,9 @@ msgstr "섬광탄 맨핵" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." -msgstr "자폭형 자동화 드론. 내부에 섬광탄이 들어있는 주먹 크기의 로봇이다." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -46643,9 +46927,9 @@ msgstr "최루탄 맨핵" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." -msgstr "자폭형 자동화 드론. 내부에 최루탄이 들어있는 주먹 크기의 로봇이다." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -46654,9 +46938,9 @@ msgstr "수류탄 맨핵" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." -msgstr "자폭형 자동화 드론. 내부에 수류탄이 들어있는 주먹 크기의 로봇이다." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -46665,9 +46949,9 @@ msgstr "맨핵" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." -msgstr "대인용 자동화 드론. 윙윙 돌아가는 칼날이 덮인 주먹 크기의 로봇이다." +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -46676,8 +46960,8 @@ msgstr "소형핵 맨핵" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "" #: lang/json/MONSTER_from_json.py @@ -50862,6 +51146,61 @@ msgstr "" msgid "Evens out damage among your limbs." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "" @@ -50964,6 +51303,50 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -53517,6 +53900,18 @@ msgid "" "EMP field that damages robots and drains bionic energy." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -57559,8 +57954,8 @@ msgstr "파이프 폭탄의 도화선에 불을 붙였다." #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" #: lang/json/TOOL_from_json.py @@ -58342,12 +58737,10 @@ msgstr[0] "" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" -"매끈한 나무막대 끝부분에 다듬은 금속조각을 붙인 직접 만든 짧은 창. 무기로 쓰기에는 투박하지만 사용하기 쉽게 인체 공학적인 디자인으로 " -"설계되었다" #: lang/json/TOOL_from_json.py msgid "spray can" @@ -59512,6 +59905,31 @@ msgid "" "supplies." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -59656,6 +60074,18 @@ msgid "" "reinforce plastic items." msgstr "플라스틱 조각. 플라스틱 재질의 물건을 만들거나, 수리하거나, 강화하는데 사용할 수 있다." +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "헥사민 조리기구" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "에스빗 스토브라고 알려진 이 가벼운 접이식 스토브는 헥사민 판을 연료로 사용합니다." + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -59779,6 +60209,18 @@ msgid "" "used as a comfortable sleeping place. It's rolled and ready for carrying." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "부싯돌과 강철" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -60790,6 +61232,18 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -61142,18 +61596,6 @@ msgid "" " 9mm ammo." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "부싯돌과 강철" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "공들여 선별한 부싯돌과 탄소강으로 만든 불 붙이는 기구. 사용하면 불꽃을 튀겨 불을 붙입니다." - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -61190,18 +61632,6 @@ msgid "" "used to start a campfire." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "주먹도끼" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -61254,30 +61684,6 @@ msgid "" "become a crude form of cheese, having had vinegar and natural rennet added." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "헥사민 조리기구" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "에스빗 스토브라고 알려진 이 가벼운 접이식 스토브는 헥사민 판을 연료로 사용합니다." - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "간이 도끼" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "날카롭게 간 강철토막을 막대에 붙인 것입니다. 도끼로 쓰기에 충분하지만 진짜 도끼와는 비교할 수 없습니다." - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -62344,6 +62750,17 @@ msgstr "" "당신만의 언데드 하인입니다. 덩어리가 신체를 조종해서 식물인간 상태로 유지하며 당신의 명령을 기다리는 중입니다. 사용하면 하인을 " "소생시킵니다." +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "바퀴" @@ -62667,303 +63084,303 @@ msgid "" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr " 장전을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr " 독서를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "플레이를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "대기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "제작을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr " 분해를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr " 시체 해체를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" +msgid "reloading" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" +msgid "reading" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" +msgid "playing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" +msgid "waiting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "해부하는 것을 멈춥니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "폐품 수거를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr " 채집을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr " 건설을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "차량 작업을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr " 훈련을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop socializing?" +msgid "crafting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr " 응급처치를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr " 낚시를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr " 채광을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "굴파기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "부수기를 멈춥니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop cranking?" +msgid "disassembly" msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "스트레스 해소를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "자르기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr " 버리기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "물건 보관을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "줍기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr " 물건 옮기기를 중단합니까?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "도축" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" +msgid "field dressing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" +msgid "skinning" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "씨뿌리기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" +msgid "quartering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" +msgid "dismembering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "소지 물품 정리를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "의류 착용/해제를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr " 불 붙이기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "윈치 사용을 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr " 채우기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr " 합선시키기를 중단합니까?" - -#: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr " 조준을 중단합니까?" +msgid "dissecting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr " ATM 사용을 중단합니까?" +msgid "salvaging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr " 시동 걸기를 중단합니까?" +msgid "foraging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr " 용접을 중단합니까?" +msgid "construction" +msgstr "건설" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "금고 따기를 중단합니까?" +msgid "interacting with the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr " 수리를 중단합니까?" +msgid "training" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "엔진 수리를 중단합니까?" +msgid "socializing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "총기 개조를 중단합니까?" +msgid "using first aid" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "도구 개조를 중단합니까?" +msgid "fishing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "NPC와 상호작용을 중단합니까?" +msgid "mining" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "잔해물을 정리를 중단합니까?" +msgid "burrowing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "명상을 중단합니까?" +msgid "smashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "세탁을 중단합니까?" +msgid "cranking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "금속 절단을 중단합니까?" +msgid "de-stressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "벌목을 중단합니까?" +msgid "cutting tissues" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "구멍 뚫기를 중단합니까?" +msgid "dropping" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop digging?" +msgid "stashing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" +msgid "picking up" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" +msgid "moving items" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" +msgid "sorting out the loot" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" +msgid "tilling the farm plot" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" +msgid "planting seeds" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" +msgid "harvesting plots" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" +msgid "fertilizing plots" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" +msgid "interacting with inventory" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" +msgid "fiddling with your clothes" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" +msgid "lighting the fire" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" +msgid "working the winch" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" +msgid "filling the container" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" +msgid "hotwiring the vehicle" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" +msgid "aiming" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" +msgid "using the ATM" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" +msgid "trying to start the vehicle" +msgstr "" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "용접" + +#: lang/json/activity_type_from_json.py +msgid "cracking" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "repairing" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "mending" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "modifying gun" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "modifying tool" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "interacting with the NPC" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "clearing that rubble" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "meditating" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "washing" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "cutting the metal" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "chopping down" +msgstr "" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "구멍 뚫기" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "땅파기" + +#: lang/json/activity_type_from_json.py +msgid "filling" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "shaving" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "cutting your hair" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "playing with your pet" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "trying to fall asleep" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "unloading" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "programming override" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "putting on items" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "communing with the trees" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "eating" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "consuming" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "casting" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "studying" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "drinking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" +msgid "using drugs" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "using the mind splicer" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "hacking console" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -62974,6 +63391,10 @@ msgstr ".700 Nitro Express" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "못" @@ -64890,6 +65311,10 @@ msgstr "간이 침대 만들기" msgid "Build Straw Bed" msgstr "짚 침대 만들기" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "" @@ -66118,6 +66543,26 @@ msgid "" msgstr "" "AI tag for when monsters are hit by player. This is a bug if you have it." +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "Docile Monster" @@ -66405,6 +66850,16 @@ msgstr "" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "Tied Up" @@ -66549,6 +67004,20 @@ msgstr "눈에 띄게 동요한 상태여서, 주변에서 벌어지는 일에 msgid "The scream dazes you!" msgstr "비명 소리를 듣고 망연자실하였다!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "불이 붙음" @@ -68362,6 +68831,54 @@ msgstr "" msgid "Your Frost Armor melts away." msgstr "" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "가는 올가미에 걸림" @@ -68955,6 +69472,15 @@ msgstr "" "다른 생존자들을 희생양으로 삼는 깡패와 약탈자가 모인 거대한 갱 집단입니다. 당신이 아무것도 가지고 있지 않더라도 그들은 언제나 노예와 " "신선한 고기를 필요로 합니다." +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "" @@ -69163,8 +69689,7 @@ msgstr "" msgid "smash!" msgstr "쾅!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "쿵." @@ -69219,8 +69744,8 @@ msgid "" "notes for other survivors to read." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "우지끈!" @@ -69316,6 +69841,17 @@ msgstr "짚 침대" msgid "Kinda itches when you lay on it." msgstr "" +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "싱크대" @@ -69786,10 +70322,20 @@ msgstr "" msgid "canvas wall" msgstr "캔버스 벽" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "찰싹!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "캔버스 덮개" @@ -70206,6 +70752,16 @@ msgstr "목표" msgid "A metal shooting target in the rough shape of a human." msgstr "" +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -70223,15 +70779,32 @@ msgid "" "and... delicious?" msgstr "" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "부들" @@ -70243,6 +70816,32 @@ msgid "" "edible." msgstr "" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "" @@ -70352,6 +70951,13 @@ msgstr "" msgid "ergometer" msgstr "에르고미터" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -70415,6 +71021,13 @@ msgstr "퍽." msgid "canvas floor" msgstr "캔버스 바닥" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -70522,6 +71135,13 @@ msgstr "점토 가마" msgid "A kiln designed to bake clay pottery and bricks." msgstr "" +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "작은 바위" @@ -70557,6 +71177,11 @@ msgstr "" msgid "stone slab" msgstr "석재 평판" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "족쇄" @@ -71391,14 +72016,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "변이된 선인장" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "다다미" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "변이된 선인장" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -71678,8 +72310,7 @@ msgstr "" msgid "auto" msgstr "완전자동" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "소총" @@ -73713,6 +74344,43 @@ msgstr "" "타우러스 레이징 불(Taurus Raging Bull)은 .454 Casull 탄을 사용하는 5연발 리볼버입니다. 이 총은 강력한 " "저지력을 가지고 있습니다." +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -74520,6 +75188,14 @@ msgid "fusion blaster" msgid_plural "fusion blasters" msgstr[0] "퓨전 블래스터" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -75857,6 +76533,17 @@ msgid "" "reusable, multi-role recoilless rifle commonly used by the US military." msgstr "" +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -77091,6 +77778,21 @@ msgid "" "shooting. Increases damage output and weapon range." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "총열하단" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -77707,10 +78409,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "이 맞춤형 소형 화염방사기는 화기의 살상력을 높이기 위해 거의 모든 종류의 화기에 장착할 수 있도록 만들어졌습니다." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "총열하단" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -81760,6 +82458,10 @@ msgstr "냄새 지도 보기" msgid "View Temperature Map" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "사이드바 스타일 전환" @@ -81800,6 +82502,10 @@ msgstr "" msgid "Toggle Auto Foraging" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "행동 메뉴" @@ -82644,16 +83350,6 @@ msgstr "원심 분리기" msgid "Analyze blood" msgstr "혈액 분석" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -85944,7 +86640,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" #: lang/json/mission_def_from_json.py @@ -86142,99 +86838,237 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Return Field Data" +msgid "Reach Refugee Center" +msgstr "피난시설에 도달" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" +msgid "Any luck? Bigger ones?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Yes! The home stretch!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "피난시설에 도달" +msgid "Oh man, but we're so close!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -86327,6 +87161,157 @@ msgid "" "guess." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "격리구 소탕" @@ -86338,12 +87323,9 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"정말로 우리 일을 도와주고 싶다면, 격리구에 있는 좀비들을 없애줄 수 있겠어? 대재앙이 일어난 첫 날 동안 밖에 나가기 두려워서 우리가 " -"죽인 좀비와 시체들을 격리구에 가둬버렸거든. 그 때 우리의 리더가 쓰러지더니... 무언가 다른 것으로 변해버렸더군. 좀비들을 모두 죽여서" -" 좀비들이 다시는 우리를 귀찮게 하지 않도록 만들어줘. 딱히 보상을 많이 줄 수 없지만 격리된 구역을 복구하는 데에는 도움을 줄 수 있을" -" 거야." #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -86365,8 +87347,11 @@ msgstr "이제 좀비들이 우릴 괴롭히지 않겠지?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." -msgstr "집 근처에 좀비들 때문에 신경쇠약에 걸릴 뻔했는데 고마워!" +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -86380,11 +87365,9 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"이번에는 저번에 부탁했던 것보다는 조금 더 복잡해. 우리는 최근에 우리와 거래할 수색꾼 일행들의 소식이 없어서 조사 좀 했으면 좋겠어." -" 우리는 수색꾼들이 도적이나 좀비들에게 습격을 받았다고 생각해. 수색꾼들이 마지막으로 라디오 메시지를 보냈던 좌표를 알려줄게. " -"위협요소로부터 안전하게 수색꾼들을 보호해줘. 보상은 수색꾼들이 들고 온 물건을 나눠주는 걸로 하면 되겠지? 부탁해." #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -86413,12 +87396,13 @@ msgstr "안내서 회수하기" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"우리가 새 전초기지를 짓고 있는데 너가 도와줄 수가 있어. 피난민들을 농업 협동조합으로 보내는데 감독관의 안내서를 받아야 되거든. " -"감독관한테 가서 구체적으로 해야 할 일들이 무엇인지 알아봐." #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -86435,11 +87419,11 @@ msgstr "계획서를 가져왔나요?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." +"you, here's your money." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" +msgid "Find 10 solar panels" msgstr "" #: lang/json/mission_def_from_json.py @@ -86447,11 +87431,9 @@ msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -86459,10 +87441,7 @@ msgid "If you can do this for us our survival options would vastly increase." msgstr "" #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." +msgid "Solar panels are pretty common on electric cars and on rooftops." msgstr "" #: lang/json/mission_def_from_json.py @@ -86472,17 +87451,19 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" +msgid "Find 100 canning jars" msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" #: lang/json/mission_def_from_json.py @@ -86494,17 +87475,17 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." +" If you reconsider let me know." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." msgstr "" #: lang/json/mission_def_from_json.py @@ -86791,6 +87772,97 @@ msgid "" "when meeting with them. Thank you once again marshal." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "증류기 2개 제작" @@ -95823,6 +96895,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -96005,7 +97239,8 @@ msgstr "" msgid "Beggar" msgstr "거지" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "피난민" @@ -96029,6 +97264,14 @@ msgstr "" msgid "Reading this line is a bug" msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -96264,14 +97507,6 @@ msgstr "" msgid "Tester" msgstr "" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "대위" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "중사" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "약탈자" @@ -96288,6 +97523,14 @@ msgstr "" msgid "officer" msgstr "" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "대위" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "중사" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "거지" @@ -96336,6 +97579,10 @@ msgstr "" msgid "Draco Dune" msgstr "" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "" @@ -96364,10 +97611,18 @@ msgstr "" msgid "Pablo Nunez" msgstr "" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "" @@ -96396,6 +97651,10 @@ msgstr "용병" msgid "the intercom" msgstr "" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "이발사" @@ -96832,10 +98091,6 @@ msgstr "오두막 지하실" msgid "cabin" msgstr "오두막" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "골재 야적지" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "오두막 폐허" @@ -97163,6 +98418,30 @@ msgstr "" msgid "farm house roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "주유소" @@ -97365,6 +98644,10 @@ msgstr "호텔 지하" msgid "motel" msgstr "모텔" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "대형 생활용품점 입구" @@ -97417,6 +98700,10 @@ msgstr "" msgid "dollar store" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "" @@ -97437,6 +98724,10 @@ msgstr "중고품 할인 판매점" msgid "daycare center" msgstr "탁아소" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "애완동물용품점" @@ -98145,6 +99436,10 @@ msgstr "영안실" msgid "fire station" msgstr "소방서" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "" @@ -98325,6 +99620,10 @@ msgstr "" msgid "gambling hall" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "" @@ -98357,6 +99656,10 @@ msgstr "헬스장" msgid "dojo" msgstr "도장" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "개인 공원" @@ -98441,10 +99744,6 @@ msgstr "공중 세면장" msgid "roadside foodcart" msgstr "노점상" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "" @@ -99786,6 +101085,32 @@ msgid "" "at least you have a loyal friend." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -104168,6 +105493,58 @@ msgid "" "serene with the world falling down around you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -108291,6 +109668,10 @@ msgstr "바이오닉을 얻을 수 있을 것 같은 시체는 해부해서 바 msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "" +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -112335,6 +113716,41 @@ msgstr "" "적대적인 개체와 조우했고 대부분은 완전히 교신이 끊겼다. 새비지 박사는 볼트로 알려진 지하 복합단지로 피신하고 PE062를 지속적으로 " "생산할 것을 제안했다." +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "" @@ -113293,8 +114709,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -113429,7 +114845,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -119784,6 +121200,10 @@ msgstr "너에 대해 조금 더 알고싶어." msgid "I want you to use this item." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "" @@ -119837,11 +121257,11 @@ msgid "Change your bionic power recharge rules..." msgstr "" #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "아무것도 하지 않음." @@ -119991,6 +121411,22 @@ msgstr "" msgid "Show me what needs to be done at the camp." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -121085,178 +122521,6 @@ msgstr "" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "임무에 대해서..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "임무 중 하나에 대해서..." - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "선생님." - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "부인." - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "신경쓰지마..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "이 아래에서 뭐하는 중이야?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "이 시설에 대해 알려줄 수 있어?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "뭐 해야할 거라도 있나?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "이만 가보도록 하지..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "괜찮은 계획 같군..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"이 시설은 세계 대전 중 피난처로 쓰려는 목적으로 만들어졌어. 볼트는 모든 시설이 가동 중이고 충분한 통지가 있으면 몇 년동안 수천 명의" -" 사람들을 수용할 수 있어. 안타깝게도, 전력 시스템이 피해를 입었거나 사보타주를 당해서 단 한 번의 엄청 강력한 방사능 파를 방출했어." -" 이 재앙은 몇 분 동안 지속되었고 2층과 아래 층에 있는 대부분의 사람이 죽었어. 이 층에서 일하고 있었던 사람은 방사능 피해로 죽기 " -"전에 아래 층으로 가는 길을 봉인할 수 있었어. 남은 유일한 다른 기록은 모든 수압이 낮은 수준으로 떨어졌다는 거야." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "보안관님, 여기서 뵙게 되어 놀랍네요." - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "여기 계시면 안 됩니다... 나가셔야 합니다." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "여기 계시면 안 됩니다... 나가셔야 합니다." - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[임무] 캡틴이 주파수 목록을 받아오라고 보냈어." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "도움이 필요한가?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "그럼 당신 지휘관을 찾아보도록 하지..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -124386,6 +125650,178 @@ msgstr "" msgid "What were you saying before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "이 아래에서 뭐하는 중이야?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "이 시설에 대해 알려줄 수 있어?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "뭐 해야할 거라도 있나?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "임무에 대해서..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "임무 중 하나에 대해서..." + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "이만 가보도록 하지..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "괜찮은 계획 같군..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" +"이 시설은 세계 대전 중 피난처로 쓰려는 목적으로 만들어졌어. 볼트는 모든 시설이 가동 중이고 충분한 통지가 있으면 몇 년동안 수천 명의" +" 사람들을 수용할 수 있어. 안타깝게도, 전력 시스템이 피해를 입었거나 사보타주를 당해서 단 한 번의 엄청 강력한 방사능 파를 방출했어." +" 이 재앙은 몇 분 동안 지속되었고 2층과 아래 층에 있는 대부분의 사람이 죽었어. 이 층에서 일하고 있었던 사람은 방사능 피해로 죽기 " +"전에 아래 층으로 가는 길을 봉인할 수 있었어. 남은 유일한 다른 기록은 모든 수압이 낮은 수준으로 떨어졌다는 거야." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "보안관님, 여기서 뵙게 되어 놀랍네요." + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "여기 계시면 안 됩니다... 나가셔야 합니다." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "여기 계시면 안 됩니다... 나가셔야 합니다." + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "[임무] 캡틴이 주파수 목록을 받아오라고 보냈어." + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "도움이 필요한가?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "그럼 당신 지휘관을 찾아보도록 하지..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "선생님." + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "부인." + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "신경쓰지마..." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -124411,6 +125847,12 @@ msgstr "" msgid "Please, help me. I need food." msgstr "제발 도와주세요. 음식 좀 나눠주세요." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "" @@ -124579,10 +126021,26 @@ msgstr "" msgid "OK, I'll talk to them too." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "" @@ -124595,6 +126053,30 @@ msgstr "" msgid "Are you seriously wearing a dinosaur costume?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -124605,6 +126087,14 @@ msgstr "" msgid "Why cardboard?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "" @@ -124617,6 +126107,27 @@ msgid "" " damage." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -124624,17 +126135,56 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Building a house?" +msgid "You said you were building a house?" msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "아니오." +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "" @@ -124694,10 +126244,6 @@ msgid "" "but I wouldn't say no." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "" @@ -124737,6 +126283,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "" @@ -124747,6 +126298,28 @@ msgid "" "come?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -124766,8 +126339,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -124827,6 +126400,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -124839,6 +126418,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -124863,12 +126453,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124879,7 +126469,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -124921,6 +126511,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -124931,16 +126527,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124955,12 +126575,30 @@ msgstr "그걸 묻는 목적이 뭐지?" msgid "Sorry, not interested." msgstr "미안, 관심없어." +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " "Help a poor sickly soul out?" msgstr "왜냐하면 난 정말 살아남지 못할 것 같거든. 그래서 죽을 때까지 여기에 처박혀있어. 불쌍하고 아픈 영혼을 구원해주지 않을래?" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "너한테 무슨일이 일어난거야?" @@ -124977,6 +126615,25 @@ msgstr "" msgid "Why are you camped out here if they won't let you in?" msgstr "사람들이 들여보내주지 않는데 왜 여기서 살고 있는거야?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -124985,6 +126642,10 @@ msgid "" "bug me about every couple months." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -125007,6 +126668,95 @@ msgid "" "dead as a doornail. Or I guess undead." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "안녕, 친구." @@ -125019,6 +126769,10 @@ msgstr "여기서 뭐하고 있는거야?" msgid "I couldn't help but notice, you're covered in fur." msgstr "너무 거슬려서 말인데, 너 지금 털로 뒤덮여 있어." +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -125043,7 +126797,7 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" #: lang/json/talk_topic_from_json.py @@ -125055,6 +126809,68 @@ msgstr "" "정말 역겹지? 대재앙이 일어난 이후 몸 구석구석에 털이 나기 시작했어. 무슨 이유때문인지 모르겠고 이것들만 보고 있으면 느낌이 꼭 배 " "밑에 자라는 음모같다니까. 정말 짜증나 죽겠어." +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -125063,6 +126879,23 @@ msgid "" "for them, I don't think I can leave." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "" @@ -125325,10 +127158,94 @@ msgstr "" msgid "Why don't we talk about it some other time?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "" @@ -125377,10 +127294,6 @@ msgstr "" msgid "Hey again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -125855,6 +127768,102 @@ msgstr "" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -125895,6 +127904,57 @@ msgstr "" msgid "Sorry to hear that." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "" @@ -125918,18 +127978,143 @@ msgid "Yeah, no. I'm going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." +msgid "" +"Well that's good. If you're going to pull your own weight I guess that's an" +" improvement." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well that's good. If you're going to pull your own weight I guess that's an" -" improvement." +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "너가 거래할 목적으로 왔으면 좋겠는데." +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -125937,12 +128122,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"나는 식량을 관리하는 일을 맡고 있어. 우리가 여기에 처음 정착해서 어수선할 때 수많은 약탈이 일어나서 많은 음식을 빼앗겼어. 나는 남은" -" 음식을 관리하고, 또 생필품을 얻을 수 있는 일은 모두 다 했어. 습기가 많은 곳에서는 곰팡이나 부패가 생기지 않게 해야되기 때문에 " -"옥수수 가루, 육포, 과일주 같은 부패하지 않는 음식만 우선으로 보관하고 있어." #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -125950,12 +128132,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"나는 식량을 관리하는 일을 맡고 있어. 우리가 여기에 처음 정착해서 어수선할 때 수많은 약탈이 일어나서 많은 음식을 빼앗겼어. 나는 남은" -" 음식을 관리하고, 또 생필품을 얻을 수 있는 일은 모두 다 했어. 습기가 많은 곳에서는 곰팡이나 부패가 생기지 않게 해야되기 때문에 " -"옥수수 가루, 육포, 과일주 같은 부패하지 않는 음식만 우선으로 보관하고 있어." #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -125963,49 +128142,125 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"나는 식량을 관리하는 일을 맡고 있어. 우리가 여기에 처음 정착해서 어수선할 때 수많은 약탈이 일어나서 많은 음식을 빼앗겼어. 나는 남은" -" 음식을 관리하고, 또 생필품을 얻을 수 있는 일은 모두 다 했어. 습기가 많은 곳에서는 곰팡이나 부패가 생기지 않게 해야되기 때문에 " -"옥수수 가루, 육포, 과일주 같은 부패하지 않는 음식만 우선으로 보관하고 있어." #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "왜 하필이면 옥수수 가루, 육포, 과일주를 우선으로 보관해?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" -"내가 말한 3가지 전부 쉽게 대량으로 생산할 수 있고 잘 상하지도 않거든. 우리한테는 영양이 풍부한 식재료를 제공하는 농부와 사냥꾼이 " -"있어. 우리는 항상 더 많이 식재료를 공급해주는 사람이 필요해. 농부나 사냥꾼이 제공하는 식재료는 대량으로 비교적 싼 물건이기 때문에 " -"네가 가진 물건을 좀 더 비싸게 사 줄 수도 있어. 통조림과 다른 음식들은 입구 쪽에 있는 상인이 팔고 있을 거야." #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "혹시 나한테서 구매하고 싶은 것이 있니?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "좋아..." +msgid "Very well... let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." msgstr "" -"사실 난 술, 설탕, 밀가루, 훈제 고기, 훈제 생선, 식용유를 받고 아까 말했다시피 육포,옥수수 가루, 과일주만 받고 있어." #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "흥미롭군..." +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -126338,16 +128593,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "부인, 밖으로 나가시면 위험합니다." #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "환영합니다 보안관님..." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "어서오라구..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "난 새로온 사람인데..." +msgid "I heard this place was a refugee center..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -126357,6 +128604,14 @@ msgstr "바깥소식 좀 들은 거 있어?" msgid "Is there any way I can join your group?" msgstr "당신네 그룹에 들어갈 방법이 있어?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "내가 이 센터를 위해 할수 있는 일이 있을까?" @@ -126366,34 +128621,41 @@ msgid "I figured you might be looking for some help..." msgstr "뭔가 도와줄게 없나 물어볼 것 같았지..." #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." +msgid "Well, I'd better be going. Bye." msgstr "" -"네가 무슨 말을 하든지 간에, 우리는 더 이상 받아줄 수 없어. 며칠 전에 너무 많은 생존자를 들여보내서, 폭동까지 겪었거든. 우리는 " -"정말 생필품이 필요하고 생필품을 얻기 위해 거래를 하고 있어. 만약에 네가 육포라도 가지고 있다면, 비싼가격에 살게." #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "피곤한 사람이 몸 누일 곳도 없구만..." +msgid "Welcome marshal..." +msgstr "환영합니다 보안관님..." + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "어서오라구..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"솔직히 말하자면, 우리는 아이들 교육에 적극적인 부모들과 사무실 직원들을 버스 6대에 태워서 피난을 시작했어... 난민이 되어버린 후 " -"어제나 그저께는 많은 용감한 사람들이 죽어 나갔어. 우리가 원하는 것은 오직 충분한 거래를 통해 여기서 살아남는 것뿐이야. 너가 가진 " -"물건이 어디에서 왔는지 어떻게 얻었는지는 상관 안 하지만, 문제만큼은 일으키지 말아줘." #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "바깥이라고 낫지도 않지만 말이지." +msgid "It's just as bad out there, if not worse." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -126407,30 +128669,27 @@ msgstr "" "쏘도록 명령받고 있거든. 그 스캐빈져들이 아무리 무도하게 굴었다지만 왜 우리 쪽 사람들이 우리네 개새끼들을 죽여야 했는 지는 나도 " "모르겠다니까... 아무튼 우리한테 한 방 먹이려는 생각은 하지도 마. " -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" -msgstr "[INT 12] 잠깐, 버스 6대와 피난처라... 얼마나 많은 사람들을 여기에 밀어 넣은거지?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "이게 효과가 있길 바래..." +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -126442,10 +128701,6 @@ msgid "" "in the neighborhood. Luckily we haven't had a mob like that pass by here." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "조언 고맙군." - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -126531,6 +128786,81 @@ msgstr "" msgid "Was hoping for something more..." msgstr "뭔가 더 있길 바랬는데..." +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "보안관님..." @@ -127059,7 +129389,52 @@ msgid "Alright, I'll leave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." msgstr "" #: lang/json/talk_topic_from_json.py @@ -127567,6 +129942,10 @@ msgid "" "there." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "흥미롭군..." + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -128028,10 +130407,30 @@ msgstr "이(가) %s에게 반격했다." msgid "Feint" msgstr "페인트 모션" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "잡기 풀기" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "%s이(가) 붙잡으려 했지만, 벗어났다!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "%s이(가) 을(를) 붙잡으려 했지만, 벗어났다!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -128766,11 +131165,13 @@ msgid "Crane Wing" msgstr "학의 날개" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" +#, python-format +msgid "You raise your arms intimidatingly at %s." msgstr "" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" +#, python-format +msgid " performs the Crane Wing at %s." msgstr "" #: lang/json/technique_from_json.py @@ -128778,11 +131179,13 @@ msgid "Crane Flap" msgstr "학의 날갯짓" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" msgstr "" #: lang/json/technique_from_json.py -msgid " flaps free" +#, python-format +msgid "The %s tries to grab , but they flap free!" msgstr "" #: lang/json/technique_from_json.py @@ -128832,11 +131235,13 @@ msgid "Snake Slither" msgstr "뱀의 움직임" #: lang/json/technique_from_json.py -msgid "You slither free" +#, python-format +msgid "The %s tries to grab you, but you slither free!" msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" +#, python-format +msgid "The %s tries to grab , but they slither free!" msgstr "" #: lang/json/technique_from_json.py @@ -129532,12 +131937,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -130277,14 +132682,37 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "초벽" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "부서진 초벽" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "반쯤 만든 초벽" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "나무 벽" @@ -131642,30 +134070,134 @@ msgstr "" msgid "willow tree" msgstr "버드나무" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "단풍나무" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "히코리 나무" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "죽은 히코리 나무" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -131677,10 +134209,30 @@ msgstr "" msgid "brush." msgstr "스윽." +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "관목" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "" @@ -131829,22 +134381,49 @@ msgstr "" msgid "tree trunk" msgstr "나무 줄기" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "뿌리 벽" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "밀랍 벽" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "밀랍 바닥" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "울타리" @@ -131943,6 +134522,11 @@ msgstr "" msgid "railing" msgstr "난간" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "콰직!" @@ -131951,6 +134535,11 @@ msgstr "콰직!" msgid "glass railing" msgstr "" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "" @@ -131963,10 +134552,20 @@ msgstr "쨍-그랑!" msgid "metal railing" msgstr "" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "" @@ -132139,46 +134738,136 @@ msgstr "" msgid "shallow water" msgstr "얕은 물" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "깊은 물" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "물 웅덩이" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "하수" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "용암" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "모래상자" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "미끄럼틀" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "정글짐" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "농구골대" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "휘발유 펌프" @@ -132196,14 +134885,31 @@ msgstr "" msgid "tank with gasoline" msgstr "휘발유 탱크" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "작은 기둥" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "박살난 가스 펌프" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -132218,6 +134924,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "박살난 경유 펌프" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "ATM" @@ -132240,6 +134953,12 @@ msgstr "치명적인 손상 감지. 자폭 기능이 작동되었습니다. 좋 msgid "broken generator" msgstr "고장난 발전기" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "미사일" @@ -132443,6 +135162,13 @@ msgstr "" msgid "cloning vat" msgstr "복제용 원통" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "쿵." @@ -132451,6 +135177,16 @@ msgstr "쿵." msgid "stairs" msgstr "계단" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "맨홀" @@ -132467,22 +135203,68 @@ msgstr "" msgid "ladder" msgstr "사다리" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "내리막길" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "오르막길" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "위로 올라가는 밧줄" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "카드 인식기" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -132557,54 +135339,121 @@ msgstr "" msgid "elevator" msgstr "엘리베이터" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "짙은 받침대" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "밝은 받침대" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "적색 돌" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "녹색 돌" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "청색 돌" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "적색 바닥" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "녹색 바닥" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "청색 바닥" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "노란색 스위치" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "청록색 스위치" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "보라색 스위치" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "체크무늬 버튼" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -132629,6 +135478,18 @@ msgstr "부드러운 보라색 카펫" msgid "linoleum tile" msgstr "리놀륨 타일" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "빨간색 벽" @@ -132687,10 +135548,22 @@ msgstr "보라색 벽" msgid "stone wall" msgstr "돌벽" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "반쯤 만든 돌벽" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "폐쇄된 우물" @@ -132724,33 +135597,64 @@ msgstr "임시 피난처" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "평평한 지붕" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "" @@ -132778,22 +135682,51 @@ msgstr "" msgid "telecom cabinet" msgstr "통신장비 보관함" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "손상된 통신장비 보관함" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "대형 금속 지지대" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "소형 금속 지지대" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "고압 유압 차단기" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "빵!" @@ -132802,30 +135735,72 @@ msgstr "빵!" msgid "small HV oil circuit breaker" msgstr "소형 고압 유압 차단기" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "대형 개폐기" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "소형 개폐기" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "피뢰기" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "단로기" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "변류기" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "계기용 변압기" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -132856,6 +135831,11 @@ msgstr "" msgid "bridge pavement" msgstr "도로-다리" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "콘크리트가 깨지고 금속이 긁히는 소리!" @@ -132864,22 +135844,61 @@ msgstr "콘크리트가 깨지고 금속이 긁히는 소리!" msgid "bridge yellow pavement" msgstr "중앙선-다리" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "인도-다리" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "가드레일" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "블랙잭 오크" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "점토더미" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "첨벙!" @@ -132888,10 +135907,20 @@ msgstr "첨벙!" msgid "mound of sand" msgstr "모래더미" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "컨베이어 벨트" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "딸랑." @@ -132900,18 +135929,38 @@ msgstr "딸랑." msgid "light machinery" msgstr "가벼운 기계" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "무거운 기계" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "낡은 기계" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "전자 기계" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "완만한 계단 (시작점)" @@ -132924,10 +135973,20 @@ msgstr "완만한 계단 (끝부분)" msgid "milking machine" msgstr "착유기" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "벌크 탱크" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "자갈" @@ -132944,26 +136003,77 @@ msgstr "" msgid "railroad track" msgstr "선로" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "침목" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "페인트/왁스칠한 바닥" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "" @@ -133120,10 +136230,24 @@ msgstr "" msgid "pine lean-to" msgstr "소나무 피난처" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "방수포 피난처" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "초토화된 땅" @@ -133251,10 +136375,6 @@ msgstr "" msgid "smoothing" msgstr "미장" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "용접" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "망치" @@ -133303,10 +136423,6 @@ msgstr "증류" msgid "tree cutting" msgstr "벌목" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "땅파기" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "볼트 돌리기" @@ -133323,14 +136439,6 @@ msgstr "나사 돌리기" msgid "fine screw driving" msgstr "정밀 나사 돌리기" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "도축" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "구멍 뚫기" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "지레" @@ -134384,6 +137492,12 @@ msgid "" "A place to sit, and the backrest reclines to make it an uncomfortable bed." msgstr "" +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "추적장치" @@ -138239,10 +141353,14 @@ msgstr "%s에 카트리지를 넣었다." msgid "You refill the %s." msgstr "%s에 채워넣었다." -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "그곳에는 태울만한 것이 없다." +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "불 켜는데 쓰려고 했던 물건을 잃어버렸다." @@ -138915,6 +142033,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "니코틴이 필요하다." @@ -141063,6 +144186,18 @@ msgstr "%s이(가) %s에겐 별로 재미가 없다." msgid "Maybe you should find something new to read..." msgstr "다른 읽을거리를 찾아 보는게 좋을 것 같다..." +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "내부 알람을 듣지 못하고 잠을 잔 모양이다..." + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "알람 소리를 듣지 못하고 잠을 잔 모양이다..." + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "구역질을 했지만, 배가 비어있다." + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "껍질 안에 든 상태로는 움직일 수 없다. 움직이려면 비활성화시켜야 한다." @@ -141112,6 +144247,10 @@ msgstr "길에 다른 차량이 있습니다." msgid "That part of the vehicle is currently unsafe." msgstr "이 부품은 현재 안전하지 않다." +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "물속으로 들어가시겠습니까?" @@ -141168,6 +144307,10 @@ msgstr "숨을 쉬어야 한다! (수면까지 %s)" msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "숨을 쉬어야 하지만 수영을 할 수 없다! 뭍으로 올라가야 한다. 서둘러라!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "사거리 내에 적 없음. 턴 넘김." @@ -141225,6 +144368,38 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "" +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "" + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "물품 투척" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "던질 것이 없다." + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "그런 물품은 가지고 있지 않다." + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "던지기엔 너무 무겁다." + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "자신의 몸은 던질 수 없다!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "" + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -141261,19 +144436,13 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" @@ -142471,6 +145640,11 @@ msgstr "일어섰습니다." msgid " stands up." msgstr "이(가) 일어섰습니다." +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "%s이(가) 거미줄에서 빠져나왔다!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "거미줄에서 빠져나왔습니다!" @@ -142483,6 +145657,11 @@ msgstr "이(가) 거미줄에서 빠져나왔습니다!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "거미줄에서 빠져나가려고 했지만, 벗어날 수 없었습니다!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "%s이(가) 가는 올가미에서 빠져나왔다!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "가는 올가미에서 빠져나왔습니다!" @@ -142495,6 +145674,11 @@ msgstr "이(가) 가는 올가미에서 빠져나왔습니다!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "가는 올가미에서 빠져나가려고 했지만, 벗어날 수 없었습니다!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "%s이(가) 굵은 올가미에서 빠져나왔다!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "굵은 올가미에서 빠져나왔습니다!" @@ -142507,6 +145691,16 @@ msgstr "이(가) 굵은 올가미에서 빠져나왔습니다!" msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "굵은 올가미에서 빠져나가려고 했지만, 벗어날 수 없었습니다!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "%s가 곰 덫에서 탈출했다!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "곰 덫에서 빠져나왔습니다!" @@ -142543,6 +145737,21 @@ msgstr "구덩이에서 빠져나왔습니다!" msgid " escapes the pit!" msgstr "이(가) 구덩이에서 빠져나왔습니다!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "벗어났다." @@ -142840,6 +146049,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "찢는듯한 소리로 울부짖었다!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "시끄럽게 비명을 질렀다!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "아주 크게 고함을 질렀다!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "내 목소리가 거의 완전히 막혀 들리지 않는다!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "내 목소리가 상당히 막혀 들리지 않는다!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "토했다." + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "토했다." + +#: src/character.cpp +msgid " throws up heavily!" +msgstr "이(가) 심하게 구역질을 했다!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "심하게 구역질을 했다!" + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "자동 줍기 금지" @@ -143500,92 +146767,10 @@ msgstr "엘리베이터 작동. 아무 키나 눌러주세요..." msgid "NEPower Mine(%d:%d) Log" msgstr "NE전력 광산(%d:%d) 운영기록" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"기록 47:\n" -"일상적인 채광 중에 텅 빈 공간을 발견했다.\n" -"완벽하게 수직의 단층이라는 것 말고는, 별다른 이상은 없었다.\n" -"단층에는 인간이 새긴 것 같은 이상한 조각이 몇개 새겨져 있어서\n" -"이상한걸 잘 믿는 직원들이 무서워했다.\n" -"\n" -"기록 48:\n" -"이 조각은 3에서 6미터 정도의 높이에, 넓이로는 단층 전체를 차지하고 있다.\n" -"각각의 조각은 인간의 형태처럼 보이지만, 팔, 다리, 목과 머리의 비율이\n" -"굉장히 길고, 모두들 뒤틀린 채 웅크린 모양을 하고 있다.\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "계속 읽으시겠습니까?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"기록 49:\n" -"채광 작업이 중지됐다. 말하지 않아도 알겠지만 고고학자들이 이 구역을 자세히\n" -"조사하는 걸 끝낼 때까지 채광 작업이 재개될 일은 없을 것이다.\n" -"덕분에 일정이 적어도 일주일은 늦어지게 생겼다. 이 빌어먹을 유물 보존 법률은\n" -"지난 50년 동안 시행되어왔는데 아직도 사라질 기미가 안 보인다. 이 채광\n" -"작업은 우리나라의 중추나 마찬가지인데 말이다.\n" -"\n" -"기록 52:\n" -"여전히 고고학자들을 기다리고 있는 중이다. 우리 나름대로 간단하게 저 단층선을 조사해봤지만, 우리가 가진 심도 측정기로는 저 오목한 부분이 얼마나 깊은지 측정할 수 없었다. 우리가 가진 장비는 15미터까지 측정할 수 있긴 하지만, 저렇게 비좁은 굴을 측정하기 위해 만들어진 장비는 아니어서 고고학자들이 얼마나 멀리까지 들어갔는지 정확히는 알 수 없었다.\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"기록 54:\n" -"몇 명이 끌을 들고 그 방에 내려가서, 벽의 조각을 떼어왔다.\n" -"나는 눈감아주기로 했다. 그 학자 나부랭이들이 쪼가리 하나\n" -"떼왔다고 그걸 알아차릴 것 같지는 않다. 엿이나 먹으라지.\n" -"\n" -"기록 55:\n" -"음, 고고학자들이 내려갔고 우리 애들이 2명 정도 가이드로 같이 내려갔다.\n" -"확실히 인디아나 존스 같은 놈들은 아니다. 6미터 이상 내려가본 적이나 있을지\n" -"모르겠다. 과학자들 뒤치닥거리는 해주기 싫지만, 그놈들이 어디 다치기라도\n" -"하면 채광을 다시 시작할 날이 언제가 될지 모를테니 말이다.\n" -"\n" -"기록 58:\n" -"다른 동료를 데리고 왔다고? 세상에, 저건 그냥 조각일 뿐이야! 뭔진 몰라도 대단한 \n" -"것인지는 알겠지만, 아 제발... 그냥 지금 있는 놈들 만으로도 할 수 있는거 아닌가?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "아미가라 프로젝트" @@ -143597,28 +146782,10 @@ msgid "" "PERTINENT FOREMAN LOGS WILL BE PREPENDED TO NOTES" msgstr "" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "파일이 손상되었습니다. 아무 키나 눌러주세요..." -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "" - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--접근 승인--" @@ -145866,6 +149033,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "변이 카테고리 단계 보기" @@ -146038,6 +149209,10 @@ msgstr "남성" msgid "no faction" msgstr "" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -149650,19 +152825,6 @@ msgstr "" "음식: %15d(kcal)\n" "\n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "" @@ -151214,6 +154376,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "" +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -151490,38 +154664,6 @@ msgstr "발사하기" msgid "Drop where?" msgstr "어디에 떨어트립니까?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "" - -#: src/game.cpp -msgid "Throw item" -msgstr "물품 투척" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "던질 것이 없다." - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "그런 물품은 가지고 있지 않다." - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "던지기엔 너무 무겁다." - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "자신의 몸은 던질 수 없다!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "" - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -151827,6 +154969,11 @@ msgid "Really step into %s?" msgstr "정말로 %s에 발을 내딛습니까?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -151834,6 +154981,14 @@ msgstr "" msgid "Can't find grabbed object." msgstr "잡은 물체를 찾을 수 없다." +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -151894,12 +155049,27 @@ msgstr "%s 위에서 왼발을 다쳤다!" msgid "You hurt your right foot on the %s!" msgstr "%s 위에서 오른발을 다쳤다!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "%2$s에 %1$s을(를) 베였다!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "%s을(를) 바깥으로 밀어냈다." + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -151909,6 +155079,10 @@ msgstr "%s와(과) 자리를 바꾸었다." msgid "There's something here, but you can't see what it is." msgstr "무언가 있는데, 뭔지 볼 수 없다." +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -151951,6 +155125,11 @@ msgstr "이 칸에는 차량 조종장치가 있다." msgid "%s to drive." msgstr "%s 키로 운전." +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -153024,11 +156203,6 @@ msgstr "%s은(는) 너무 커서 밀어낼 수 없다." msgid "There is too much stuff in the way." msgstr "그곳에는 물건이 너무 많다." -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "%s을(를) 바깥으로 밀어냈다." - #: src/gates.cpp msgid "stuff" msgstr "물건" @@ -153037,6 +156211,11 @@ msgstr "물건" msgid "No vehicle at grabbed point." msgstr "그곳에 차량이 없다." +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -153524,14 +156703,30 @@ msgstr "자동이동 취소됨" msgid "Unknown command: \"%s\" (%ld)" msgstr "한영키 전환 필요: \"%s\" (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "껍질 안에 있는 동안엔 뭔가 열 수 없다." +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "껍질 안에 있는 동안엔 뭔가 닫을 수 없다." +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "껍질 안에 있는 동안엔 뭔가 때릴 수 없다." @@ -153544,26 +156739,50 @@ msgstr "껍질 안에 있는 동안엔 주변을 확인할 수 없다." msgid "You can't move mass quantities while you're in your shell." msgstr "껍질 안에 있는 동안엔 물건을 많이 옮길 수 없다." +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "껍질 안에 있는 동안엔 뭔가 잡을 수 없다." +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "껍질 안에 있는 동안엔 도축할 수 없다." +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "껍질 안에 있는 동안엔 몰래 내다보기를 할 수 없다." +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "" @@ -153573,10 +156792,18 @@ msgstr "" msgid "You can't craft while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "운전 중에는 물건을 분해할 수 없습니다." +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "차량 안에서는 건설할 수 없습니다." @@ -153585,6 +156812,10 @@ msgstr "차량 안에서는 건설할 수 없습니다." msgid "You can't construct while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -153667,6 +156898,7 @@ msgstr "" #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -155094,10 +158326,26 @@ msgid "" "Exiting." msgstr "" +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name @@ -155146,6 +158394,26 @@ msgstr "설치된 바이오닉이 없다." msgid "%1$s doesn't have any bionics installed." msgstr "" +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "" @@ -160728,6 +163996,11 @@ msgstr "요리 꺼내기" msgid "Really stop cooking?" msgstr "정말로 요리를 그만둘까요?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -164076,6 +167349,32 @@ msgid "" "weapon." msgstr "" +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -164228,10 +167527,6 @@ msgstr "상체 방해도 때문에 균형을 잃었다." msgid "You can't hit reliably due to your farsightedness." msgstr "원시 때문에 안정적으로 공격할 수 없다." -#: src/melee.cpp -msgid "You feint." -msgstr "페인트를 썼다." - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "빗맞추는 바람에 넘어졌다." @@ -164860,27 +168155,10 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"수입: $8/시간\n" -"위험: 최저\n" -"소요: 최소 1시간\n" -" \n" -"동료 한 명에게 단순노동 작업을 시켜서 안전하게 기술을 익히며 전초기지의 명성을 쌓습니다. 많은 보상을 기대하진 마십시오." - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"수입: $8/시간\n" -"위험: 최저\n" -"소요: 최소 1시간\n" -" \n" -"노역 명단:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -166324,16 +169602,6 @@ msgstr "%s이(가) 을(를) 잡으려 했지만, 피했다!" msgid "The %s tries to grab you as well, but you bat it away!" msgstr "%s이(가) 붙잡으려 했지만, 쳐내버렸다!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "%s이(가) 붙잡으려 했지만, 벗어났다!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "%s이(가) 을(를) 붙잡으려 했지만, 벗어났다!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -167335,6 +170603,11 @@ msgstr "" msgid "Attach bag" msgstr "가방 메게 하기" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -167372,6 +170645,54 @@ msgstr "페로몬 볼 찢기" msgid "Milk %s" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -167385,6 +170706,11 @@ msgstr "정말로 노예 좀비를 죽이겠습니까?" msgid "Pet armor" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -167448,6 +170774,11 @@ msgstr "" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -167922,26 +171253,6 @@ msgstr "몸에 독이 퍼지는 것을 느꼈다!" msgid "The %s climbs to its feet!" msgstr "%s이(가) 일어났다!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "%s이(가) 거미줄에서 빠져나왔다!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "%s이(가) 가는 올가미에서 빠져나왔다!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "%s이(가) 굵은 올가미에서 빠져나왔다!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "%s가 곰 덫에서 탈출했다!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -168810,7 +172121,7 @@ msgid "activated" msgstr "활성화됨" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -173610,55 +176921,31 @@ msgid " attempts to put out the fire on them!" msgstr "이(가) 몸에 붙은 불을 끄려고 했다!" #: src/player.cpp -msgid "a piercing howl!" +msgid "You spur your steed into a gallop." msgstr "" #: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "찢는듯한 소리로 울부짖었다!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "시끄럽게 비명을 질렀다!" +msgid "You start running." +msgstr "달리기 시작했다." #: src/player.cpp -msgid "a loud shout!" +msgid "Your steed is too tired to go faster." msgstr "" #: src/player.cpp -msgid "yourself shout loudly!" -msgstr "아주 크게 고함을 질렀다!" - -#: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "내 목소리가 거의 완전히 막혀 들리지 않는다!" +msgid "You're too tired to run." +msgstr "너무 지쳐서 달릴 수 없다." #: src/player.cpp -msgid "an indistinct voice" +msgid "You slow your steed to a walk." msgstr "" #: src/player.cpp -msgid "your muffled shout" +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "내 목소리가 상당히 막혀 들리지 않는다!" - -#: src/player.cpp -msgid "You start running." -msgstr "달리기 시작했다." - -#: src/player.cpp -msgid "You're too tired to run." -msgstr "너무 지쳐서 달릴 수 없다." - -#: src/player.cpp -msgid "You start crouching." +msgid "You nudge your steed to a steady trot." msgstr "" #: src/player.cpp @@ -174840,28 +178127,6 @@ msgstr "부서진 %s이(가) 다시 붙기 시작했다." msgid "Your %s has started to mend!" msgstr "%s이(가) 재생되기 시작했다!" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "토했다." - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "토했다." - -#: src/player.cpp -msgid " throws up heavily!" -msgstr "이(가) 심하게 구역질을 했다!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "심하게 구역질을 했다!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "구역질을 했지만, 배가 비어있다." - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -175484,14 +178749,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "겨울잠에 접어든다." -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "내부 알람을 듣지 못하고 잠을 잔 모양이다..." - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "알람 소리를 듣지 못하고 잠을 잔 모양이다..." - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -175586,6 +178843,32 @@ msgstr "끌고 다니는 것을 멈췄다." msgid "Your body strains under the weight!" msgstr "짐이 너무 무겁다!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "착지를 잘못해 다쳤다!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "" + #: src/player.cpp msgid "Wielding: " msgstr "들고 있는 것: " @@ -176908,6 +180191,10 @@ msgstr "쿠와앙!" msgid "none" msgstr "없음" +#: src/recipe.cpp +msgid "none" +msgstr "" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -177176,6 +180463,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "뽁뽁이 포장지를 밟았다." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "뽁!" @@ -177229,6 +180521,11 @@ msgstr "곰 덫에 걸렸다!" msgid "A bear trap closes on 's foot!" msgstr "이(가) 곰 덫에 걸렸다!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -177247,6 +180544,11 @@ msgstr "못 박힌 판자를 밟았다!" msgid " steps on a spiked board!" msgstr "이(가) 못 박힌 판자를 밟았다!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -177265,6 +180567,11 @@ msgstr "날카로운 마름쇠를 밟았다!" msgid " steps on a sharp metal caltrop!" msgstr "이(가) 날카로운 마름쇠를 밟았다!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -177305,6 +180612,16 @@ msgstr "인계철선을 건드렸다!" msgid " trips over a tripwire!" msgstr "이(가) 인계철선을 건드렸다!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "쇠뇌 덫을 작동시켰다!" @@ -177351,6 +180668,11 @@ msgstr "볼트가 발사됐지만, %s을(를) 빗맞췄다." msgid "Kerblam!" msgstr "파앙!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "산탄총 덫을 작동시켰다!" @@ -177374,6 +180696,11 @@ msgstr "산탄총 덫을 작동시켰다." msgid "A shotgun fires and hits the %s!" msgstr "산탄총이 발사되어 %s의 몸에 맞았다!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "칼날이 튀어나와 몸통을 베었다!" @@ -177396,6 +180723,11 @@ msgstr "칼날 덫을 작동시켰다." msgid "Snap!" msgstr "철컥!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "올가미가 다리에 걸렸다." @@ -177414,7 +180746,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "가는 올가미를 작동시켰다." -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -177548,6 +180884,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "광선 분해기를 밟았다." +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr "이(가) 구덩이에 빠졌다!" @@ -177576,14 +180917,15 @@ msgid "" "admirably!" msgstr "땅에 세게 부딪혔지만, 충격 흡수기가 충격을 잘 흡수했다!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "착지를 잘못해 다쳤다!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "민첩하게 착지했다." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "가시 구덩이에 떨어졌다!" @@ -177662,6 +181004,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "용암 속으로 들어갔다." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "붙잡는데 실패했다..." @@ -177679,6 +181026,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr "이(가) 싱크홀에 빠질뻔했지만, 안전하게 빠져나오는데 성공했다." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -179020,6 +182372,11 @@ msgstr "%s은(는) 걸려 있다." msgid "The %s's engine emits a sneezing sound." msgstr "%s의 엔진에서 취익거리는 소리가 났다." +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -179069,6 +182426,10 @@ msgstr "%1$s의 %2$s 부분이 %3$s을(를) 치어 넘었다." msgid "The %1$s's %2$s runs over something." msgstr "%1$s의 %2$s이(가) 뭔가를 치어 넘었다." +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "조종 장치가 설치되어 있지 않아서 시동을 걸 수 없다." @@ -179630,6 +182991,36 @@ msgid "" " on. The washing machine is being filled with water from vehicle tanks." msgstr "세탁기에 세제를 약간 쏟아붓고 뚜껑을 닫은 뒤 전원을 켰다. 이내 차량 탱크의 물이 세탁기를 가득 채웠다." +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "차량 조사" @@ -179670,6 +183061,10 @@ msgstr "" msgid "Load or unload a vehicle" msgstr "" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "" diff --git a/lang/po/pl.po b/lang/po/pl.po index cd8827609447f..f13867f9ef38b 100644 --- a/lang/po/pl.po +++ b/lang/po/pl.po @@ -6,17 +6,17 @@ # Radomir Kozłowski , 2018 # Artur Gromek , 2019 # Chris Bittner , 2019 -# Ewa Cichosz , 2019 # Brett Dong , 2019 # Aleksander Sienkiewicz , 2019 +# Ewa Cichosz , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Aleksander Sienkiewicz , 2019\n" +"Last-Translator: Ewa Cichosz , 2019\n" "Language-Team: Polish (https://www.transifex.com/cataclysm-dda-translators/teams/2217/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -146,7 +146,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "plutonium fuel cell" -msgstr "" +msgstr "ogniwo paliwowe z plutonu" #. ~ Description for plutonium fuel cell #: lang/json/AMMO_from_json.py @@ -157,6 +157,12 @@ msgid "" "conventional means: expended cells had to be sent to a central reprocessing " "facility that almost certainly doesn't exist anymore." msgstr "" +"To nie jest ogniwo paliwowe ani nuklearne, ale nazwa przylgnęła. " +"Wykorzystuje pluton-244 jako katalizator do stabilizacji skomplikowanego " +"nanokomponentu, który może przechowywać ogromne ilości energii. Niestety, " +"nie można go ładować konwencjonalnymi metodami: zużyte ogniwa musiały być " +"wysyłane do centralnego zakładu przetwarzania, który prawie na pewno już nie" +" istnieje." #: lang/json/AMMO_from_json.py lang/json/ammunition_type_from_json.py msgid "plutonium slurry" @@ -1042,6 +1048,10 @@ msgid "" "intended for use in specialized medical equipment, and can't be administered" " manually. You can reload an anesthesia kit with it." msgstr "" +"Różnorodność potężnych leków hipnotycznych, przeciwbólowych i stymulujących." +" Jest przeznaczony do użytku w specjalistycznym sprzęcie medycznym i nie " +"można go podawać ręcznie. Możesz nim ponownie załadować zestaw do " +"znieczulenia." #: lang/json/AMMO_from_json.py msgid "sulfur" @@ -1657,6 +1667,17 @@ msgstr "" "To jest drewniany koralik. Może być użyty do wytworzenia biżuterii lub drzwi" " z koralików." +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "kalafonia" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" +"Jest to kawałek żółtawej żywicy nadający się do stosowania jako topnik do " +"lutowania." + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "surowy drewniany bełt" @@ -2758,6 +2779,18 @@ msgstr[1] "zregenerowany .38 Super" msgstr[2] "zregenerowany .38 Super" msgstr[3] "zregenerowany .38 Super" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "" @@ -2796,7 +2829,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" @@ -3011,6 +3044,17 @@ msgstr "" "40 milimetrowy granat wypełniony gazem łzawiącym. Wybucha kłębem wysoce " "obezwładniającego gazu." +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 Magnum, pełnopłaszczowy" @@ -3048,6 +3092,17 @@ msgstr "zregenerowany .44 Magnum, pełnopłaszczowy" msgid "reloaded .44 Magnum" msgstr "zregenerowany .44 Magnum" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr ".44 gilzy" @@ -3137,6 +3192,104 @@ msgstr "" msgid "reloaded .454 Casull" msgstr "zregenerowany .454 Casull" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr "" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr "" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr "" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4.6x30mm" @@ -4045,6 +4198,22 @@ msgstr "regenerowany nabój strzałkowy" msgid "reloaded shotgun slug" msgstr "zregenerowana breneka" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "loftka" @@ -6453,13 +6622,10 @@ msgstr[3] "pancerz złomiarza" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." msgstr "" -"Zestaw zbroi z połączonych sznurkami kawałków metalowego złomu. Zapewnia " -"przyzwoitą ochronę, ale ta luźna kolekcja płyt nie jest najwygodniejszym " -"wyborem." #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -6623,16 +6789,18 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "doctor badge" msgid_plural "doctor badges" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "plakietka lekarska" +msgstr[1] "plakietki lekarskie" +msgstr[2] "plakietek lekarskich" +msgstr[3] "plakietek lekarskich" #. ~ Description for doctor badge #: lang/json/ARMOR_from_json.py msgid "" "A plastic name tag marking the wearer as a real doctor of the medical kind." msgstr "" +"Plastikowy identyfikator oznaczający noszącego jako prawdziwego lekarza " +"medycznego." #: lang/json/ARMOR_from_json.py msgid "balaclava" @@ -15824,6 +15992,42 @@ msgstr[3] "buty pływackie" msgid "A pair of neoprene swimming booties, with individual toes." msgstr "Neoprenowe buty pływackie z rozdzielonymi palcami." +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -16794,6 +16998,22 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -20294,6 +20514,7 @@ msgstr[2] "" msgstr[3] "" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -20302,7 +20523,8 @@ msgstr[3] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -25146,7 +25368,7 @@ msgstr[3] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" @@ -25653,11 +25875,8 @@ msgstr[3] "kawałki surowych płuc" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" -"Porcja płuc ze zwierzęcia. Gąbczaste i różowe, i szybko się psują. Mogą być " -"przysmakiem jeśli odpowiednio przyrządzone - ale źle przyrządzone są " -"gumiastym kawałkiem niesmacznej tkanki łącznej." #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -25670,13 +25889,10 @@ msgstr[3] "gotowane kawałki płuc" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" -"Przyrządzone w ten sposób, są gumiastą szarawą masą niesmacznej tkanki " -"łącznej. Nie wyglądają na smaczniejsze od surowych, ale przynajmniej " -"pasożyty się wygotowały." #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -32117,7 +32333,7 @@ msgstr[3] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" @@ -38236,6 +38452,34 @@ msgstr[3] "plastikowa miska" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "stalowa butelka" +msgstr[1] "stalowa butelka" +msgstr[2] "stalowa butelka" +msgstr[3] "stalowa butelka" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Butelka z nierdzewnej stali, która pomieści 750 ml płynu." + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "składana plastikowa butelka" +msgstr[1] "składana plastikowa butelka" +msgstr[2] "składana plastikowa butelka" +msgstr[3] "składana plastikowa butelka" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Elastyczna plastikowa butelka dla łatwego składowania, mieści pół litra " +"płynu." + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -38297,19 +38541,6 @@ msgstr "" " dla maksymalnej wydajności. Może być wykonana z różnymi nasionami, aby je " "posadzić." -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "stalowa butelka" -msgstr[1] "stalowa butelka" -msgstr[2] "stalowa butelka" -msgstr[3] "stalowa butelka" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Butelka z nierdzewnej stali, która pomieści 750 ml płynu." - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -38324,21 +38555,6 @@ msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "" "Lekko pogięty arkusz folii aluminiowej używanej do pieczenia i gotowania." -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "składana plastikowa butelka" -msgstr[1] "składana plastikowa butelka" -msgstr[2] "składana plastikowa butelka" -msgstr[3] "składana plastikowa butelka" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Elastyczna plastikowa butelka dla łatwego składowania, mieści pół litra " -"płynu." - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -39039,6 +39255,10 @@ msgstr[3] "ciała" msgid "A dead body." msgstr "Martwe ciało." +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "pobliski ogień" @@ -39082,8 +39302,10 @@ msgstr[3] "wyschnięte rośliny" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "Martwa roślina. Dobra na podpałkę." +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -46739,6 +46961,19 @@ msgstr[3] "łuski .45 ACP" msgid "An empty casing from a .45 ACP round." msgstr "Pusta łuska z naboju .45 ACP." +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -46977,6 +47212,21 @@ msgstr "" "skarbnika Wolnych Kupców. Nota stanowi, że jest ona wymienna na żywność, " "wodę i inne usługi u Wolnych Kupców w Centrum Uchodźców." +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -48165,6 +48415,19 @@ msgstr "" "Improwizowana wersja bagnetu, złożona jedynie z ostrego pręta i kawałka " "sznurka." +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "kamienna włócznia" +msgstr[1] "kamienna włócznia" +msgstr[2] "kamienna włócznia" +msgstr[3] "kamienna włócznia" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "Sztywny drewniany pal z osadzonym kamiennym ostrzem." + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -48292,6 +48555,26 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "menażka" +msgstr[1] "menażka" +msgstr[2] "menażka" +msgstr[3] "menażka" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"Kompaktowa wojskowa metalowa menażka łącząca funkcję rondla i płaskiego " +"pojemnika, opracowana do grzania żywności nad ogniem lub przenośną kuchenką." +" Płytsza niż właściwy rondel czy garnek, i brakuje jej zintegrowanych " +"elementów grzejnych znanych ze współczesnych menażek." + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -51503,6 +51786,34 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -51648,6 +51959,32 @@ msgstr[3] "" msgid "A small book, containing spells created by a novice magician." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -52414,39 +52751,6 @@ msgstr[1] "zintegrowany generator EMP" msgstr[2] "zintegrowany generator EMP" msgstr[3] "zintegrowany generator EMP" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "kamienna włócznia" -msgstr[1] "kamienna włócznia" -msgstr[2] "kamienna włócznia" -msgstr[3] "kamienna włócznia" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "Sztywny drewniany pal z osadzonym kamiennym ostrzem." - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "menażka" -msgstr[1] "menażka" -msgstr[2] "menażka" -msgstr[3] "menażka" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"Kompaktowa wojskowa metalowa menażka łącząca funkcję rondla i płaskiego " -"pojemnika, opracowana do grzania żywności nad ogniem lub przenośną kuchenką." -" Płytsza niż właściwy rondel czy garnek, i brakuje jej zintegrowanych " -"elementów grzejnych znanych ze współczesnych menażek." - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -56872,6 +57176,17 @@ msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "" "Dodaje więcej zamiennych typów amunicji i więcej prawdziwej broni palnej." +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "" @@ -56983,11 +57298,9 @@ msgstr "zabliźniony zombie" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." msgstr "" -"Zdeformowane ludzkie ciało, którego skóra przeobraziła się w grubą " -"zrogowaciałą warstwę z tkanki bliznowatej." #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -57284,12 +57597,9 @@ msgstr "upiór" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "" -"Gigantyczny cień, którego kształt i objętość zmieniają się chaotycznie, z " -"dwoma przeszywającymi kulami światła wieńczącymi coś co może być opisane " -"tylko jako jego głowa." #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -57355,10 +57665,8 @@ msgstr "rot-weiler" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." +" chains of pulsing cysts and slime-dribbling ulcers." msgstr "" -"Gryzący zapach towarzyszy tym psim zwłokom. Całe jego ciało pokrywają serie " -"pulsujących cyst i sączących ropę wrzodów." #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -57367,13 +57675,13 @@ msgstr "okobot" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" -"Zasilany fuzją dron latający, złożony z wysokiej rozdzielczości soczewek " -"fotograficznych i głośnika. Ten sferyczny robot unosi się nad ziemią, " -"dokumentując rzeź i chaos, które go otaczają." #: lang/json/MONSTER_from_json.py msgid "nurse bot" @@ -58222,11 +58530,9 @@ msgstr "zombie" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." msgstr "" -"Ludzki ciało, zataczające się w ruchu, z niepohamowanym gniewem widocznym w " -"jego oleistych czarnych oczach." #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -59233,11 +59539,9 @@ msgstr "młynek EMP" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." msgstr "" -"Automatyczny dron bojowy kamikaze wielkości dłoni z zamontowanym wewnątrz, " -"jak się zdaje, granatem EMP." #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -59246,11 +59550,9 @@ msgstr "młynek C-4" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." msgstr "" -"Automatyczny dron bojowy kamikaze wielkości dłoni, z zamontowanym wewnątrz, " -"jak się zdaje, materiałem wybuchowym C-4." #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -59259,11 +59561,9 @@ msgstr "młynek ogłuszający" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." msgstr "" -"Automatyczny dron bojowy kamikaze wielkości dłoni, z zamontowanym wewnątrz, " -"jak się zdaje, granatem ogłuszającym." #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -59272,11 +59572,9 @@ msgstr "młynek z gazem łzawiącym" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." msgstr "" -"Automatyczny dron bojowy kamikaze wielkości dłoni, z zamontowanym wewnątrz, " -"jak się zdaje, kanistrem z gazem łzawiącym." #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -59285,11 +59583,9 @@ msgstr "młynek-granat" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." msgstr "" -"Automatyczny dron bojowy kamikaze wielkości dłoni, z zamontowanym wewnątrz, " -"jak się zdaje, granatem odłamkowym." #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -59298,11 +59594,9 @@ msgstr "młynek" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." msgstr "" -"Automatyczny dron bojowy do zwalczania siły ludzkiej. Latający robot " -"wielkości pięści otoczony ostrymi wirującymi ostrzami." #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -59311,56 +59605,54 @@ msgstr "młynek miniatomówka" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "" -"Kilka razy większy od zwykłego młynka, ten latający dron wygląda na nośnik " -"miniatomówki. Jeśli cię namierza... uciekaj!" #: lang/json/MONSTER_from_json.py msgid "tiny fish" -msgstr "" +msgstr "maleńka ryba" #. ~ Description for tiny fish #: lang/json/MONSTER_from_json.py msgid "A tiny fish." -msgstr "" +msgstr "Maleńka ryba." #: lang/json/MONSTER_from_json.py msgid "small fish" -msgstr "" +msgstr "mała ryba" #. ~ Description for small fish #: lang/json/MONSTER_from_json.py msgid "A small fish." -msgstr "" +msgstr "Mała ryba." #: lang/json/MONSTER_from_json.py msgid "medium fish" -msgstr "" +msgstr "średnia ryba" #. ~ Description for medium fish #: lang/json/MONSTER_from_json.py msgid "A medium fish." -msgstr "" +msgstr "Średnia ryba." #: lang/json/MONSTER_from_json.py msgid "large fish" -msgstr "" +msgstr "duża ryba" #. ~ Description for large fish #: lang/json/MONSTER_from_json.py msgid "A large fish." -msgstr "" +msgstr "Duża ryba" #: lang/json/MONSTER_from_json.py msgid "huge fish" -msgstr "" +msgstr "olbrzymia ryba" #. ~ Description for huge fish #: lang/json/MONSTER_from_json.py msgid "A huge fish." -msgstr "" +msgstr "Olbrzymia ryba." #: lang/json/MONSTER_from_json.py msgid "trout" @@ -59372,10 +59664,12 @@ msgid "" "A Trout. A fish made popular by father-son fishing trips, Except for the " "part where you have to gut it." msgstr "" +"Pstrąg. Popularna ryba na wycieczkach ojciec plus syn. Może z wyjątkiem " +"momentu gdy trzeba ją wypatroszyć." #: lang/json/MONSTER_from_json.py msgid "brown trout" -msgstr "" +msgstr "pstrąg potokowy" #. ~ Description for brown trout #: lang/json/MONSTER_from_json.py @@ -59383,10 +59677,12 @@ msgid "" "A Brown Trout. A fish made popular by father-son fishing trips, Except for " "the part where you have to gut it." msgstr "" +"Pstrąg potokowy. Popularna ryba na wycieczkach ojciec plus syn. Może z " +"wyjątkiem momentu gdy trzeba ją wypatroszyć." #: lang/json/MONSTER_from_json.py msgid "brook trout" -msgstr "" +msgstr "pstrąg źródlany" #. ~ Description for brook trout #: lang/json/MONSTER_from_json.py @@ -59394,10 +59690,12 @@ msgid "" "A Brook Trout. A fish made popular by father-son fishing trips, Except for " "the part where you have to gut it." msgstr "" +"Pstrąg źródlany. Popularna ryba na wycieczkach ojciec plus syn. Może z " +"wyjątkiem momentu gdy trzeba ją wypatroszyć." #: lang/json/MONSTER_from_json.py msgid "lake trout" -msgstr "" +msgstr "palia jeziorowa" #. ~ Description for lake trout #: lang/json/MONSTER_from_json.py @@ -59405,10 +59703,12 @@ msgid "" "A Lake trout. A fish made popular by father-son fishing trips, Except for " "the part where you have to gut it." msgstr "" +"Palia jeziorowa. Popularna ryba na wycieczkach ojciec plus syn. Może z " +"wyjątkiem momentu gdy trzeba ją wypatroszyć." #: lang/json/MONSTER_from_json.py msgid "rainbow trout" -msgstr "" +msgstr "pstrąg tęczowy" #. ~ Description for rainbow trout #: lang/json/MONSTER_from_json.py @@ -59416,10 +59716,12 @@ msgid "" "A Rainbow Trout. A fish made popular by father-son fishing trips, Except " "for the part where you have to gut it." msgstr "" +"Pstrąg tęczowy. Popularna ryba na wycieczkach ojciec plus syn. Może z " +"wyjątkiem momentu gdy trzeba ją wypatroszyć." #: lang/json/MONSTER_from_json.py msgid "steelhead trout" -msgstr "" +msgstr "pstrąg stalowogłowy" #. ~ Description for steelhead trout #: lang/json/MONSTER_from_json.py @@ -59427,6 +59729,8 @@ msgid "" "A Steelhead Trout. A fish made popular by father-son fishing trips, Except " "for the part where you have to gut it." msgstr "" +"Pstrąg stalowogłowy. Popularna ryba na wycieczkach ojciec plus syn. Może z " +"wyjątkiem momentu gdy trzeba ją wypatroszyć." #: lang/json/MONSTER_from_json.py msgid "salmon" @@ -59437,35 +59741,36 @@ msgstr "łosoś" msgid "" "An Atlantic Salmon. A very fatty, nutritious fish. Tastes great smoked." msgstr "" +"Łosoś atlantycki. Bardzo tłusta, pożywna ryba. Doskonała po uwędzeniu." #: lang/json/MONSTER_from_json.py msgid "kokanee salmon" -msgstr "" +msgstr "ryba nerka" #. ~ Description for kokanee salmon #: lang/json/MONSTER_from_json.py msgid "" "A Kokanee Salmon. A very fatty, nutritious fish. Tastes great smoked." -msgstr "" +msgstr "Nerka. Bardzo tłusta, pożywna ryba. Doskonała po uwędzeniu." #: lang/json/MONSTER_from_json.py msgid "chinook salmon" -msgstr "" +msgstr "łosoś czawycza" #. ~ Description for chinook salmon #: lang/json/MONSTER_from_json.py msgid "" "A Chinook Salmon. A very fatty, nutritious fish. Tastes great smoked." -msgstr "" +msgstr "Łosoś czawycza. Bardzo tłusta, pożywna ryba. Doskonała po uwędzeniu." #: lang/json/MONSTER_from_json.py msgid "coho salmon" -msgstr "" +msgstr "ryba kiżucz" #. ~ Description for coho salmon #: lang/json/MONSTER_from_json.py msgid "A Coho Salmon. A very fatty, nutritious fish. Tastes great smoked." -msgstr "" +msgstr "Kiżucz. Bardzo tłusta, pożywna ryba. Doskonała po uwędzeniu." #: lang/json/MONSTER_from_json.py msgid "whitefish" @@ -59487,7 +59792,7 @@ msgstr "bass wielkogębowy" #. ~ Description for largemouth bass #: lang/json/MONSTER_from_json.py msgid "A Largemouth Bass. Very popular with sports fishermen." -msgstr "" +msgstr "Bass wielkogębowy. Bardzo popularna ryba wśród wędkarzy sportowych." #: lang/json/MONSTER_from_json.py msgid "smallmouth bass" @@ -59499,6 +59804,8 @@ msgid "" "A Smallmouth Bass. Being intolerant to pollution in the water, smallmouth " "bass are a good indicator of how clean it is." msgstr "" +"Bass małogębowy. Nie toleruje zanieczyszczeń w wodzie, więc jest dobrym " +"wskaźnikiem jej czystości." #: lang/json/MONSTER_from_json.py msgid "striped bass" @@ -59510,10 +59817,12 @@ msgid "" "A Striped Bass. Mostly a salt water fish, they migrate to fresher water to " "spawn." msgstr "" +"Skalnik prążkowany. Jest w zasadzie rybą słonowodną ale migruje do słodkiej " +"wody w okresie tarła." #: lang/json/MONSTER_from_json.py msgid "white bass" -msgstr "" +msgstr "bass biały" #. ~ Description for white bass #: lang/json/MONSTER_from_json.py @@ -59521,6 +59830,8 @@ msgid "" "A White Bass. Common to the region, a slab-sided and spiny-rayed little " "fish." msgstr "" +"Rokiel biały. Powszechna w rejonie ryba o płaskim boku i kolczastej płetwie " +"górnej." #: lang/json/MONSTER_from_json.py msgid "perch" @@ -64183,6 +64494,61 @@ msgstr "" msgid "Evens out damage among your limbs." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "" @@ -64285,6 +64651,50 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -67495,6 +67905,21 @@ msgstr "" "miał trzy tury zanim zdetonuje, tworząc pole elektromagnetyczne uszkadzające" " roboty i drenujące bioniczną energię." +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -72615,12 +73040,9 @@ msgstr "Odpalasz lont na bombie rurowej." #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" -"To odcinek rury napełniony materiałem wybuchowym. Użyj by odpalić lont, co " -"da ci trzy tury by od niej uciec zanim wybuchnie. Potrzebujesz zapalniczki " -"lub zapałek by to zrobić." #: lang/json/TOOL_from_json.py msgid "active pipe bomb" @@ -73645,14 +74067,10 @@ msgstr[3] "prowizoryczne piki" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" -"Krótka pika będąca wytworem rąk własnych z gładkiego drewnianego uchwytu, na" -" końcu którego umocowano i osadzono kształty metalowy koniec. Funkcjonalny " -"uchwyt i przyzwoita konstrukcja sprawiają że jest użyteczną, a wręcz " -"efektywną bronią." #: lang/json/TOOL_from_json.py msgid "spray can" @@ -75185,6 +75603,39 @@ msgid "" "supplies." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" +"Szeroki kawałek zaostrzonego kamienia, którego jeden brzeg pozostawiono " +"nienaruszony dla bezpiecznego chwytu ręką. Paleolityczny scyzoryk." + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -75371,6 +75822,23 @@ msgstr "" "To kawałek plastiku. Możesz go użyć do produkcji, naprawy, lub wzmocnienia " "plastikowych rzeczy." +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "kuchenka urotropinowa" +msgstr[1] "kuchenka urotropinowa" +msgstr[2] "kuchenka urotropinowa" +msgstr[3] "kuchenka urotropinowa" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "" +"To lekka składana kuchenka zaprojektowana do gotowania na tabletkach " +"urotropiny, znana też jako kuchenka typu Esbit." + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -75540,6 +76008,21 @@ msgstr "" "jej użyć jako komfortowego miejsca do snu. Jest zwinięta i gotowa do " "przenoszenia." +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "zestaw hubka i krzesiwo" +msgstr[1] "zestaw hubka i krzesiwo" +msgstr[2] "zestaw hubka i krzesiwo" +msgstr[3] "zestaw hubka i krzesiwo" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -76825,6 +77308,21 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -77339,23 +77837,6 @@ msgstr "" "Zwykły i całkowicie niegroźny gnom ogrodowy. Przechowuje do 100 pocisków " "kalibru 9 mm." -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "zestaw hubka i krzesiwo" -msgstr[1] "zestaw hubka i krzesiwo" -msgstr[2] "zestaw hubka i krzesiwo" -msgstr[3] "zestaw hubka i krzesiwo" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "" -"To wyselekcjonowany kawałek krzemienia i stali węglowej tworzące zestaw do " -"skrzesania ognia. Użyj by skrzesać ogień." - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -77404,23 +77885,6 @@ msgstr "" "kontrolowany dopływ powietrza.Ogień tli się wewnątrz i może być użyty do " "rozpalenia ogniska." -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "krzemienna siekiera" -msgstr[1] "krzemienna siekiera" -msgstr[2] "krzemienna siekiera" -msgstr[3] "krzemienna siekiera" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" -"Szeroki kawałek zaostrzonego kamienia, którego jeden brzeg pozostawiono " -"nienaruszony dla bezpiecznego chwytu ręką. Paleolityczny scyzoryk." - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -77490,40 +77954,6 @@ msgstr "" "Duży zamknięty bukłak wypełniony mlekiem które przechodzi proces do zostania" " toporną formą sera, przez dodanie octu lub podpuszczki." -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "kuchenka urotropinowa" -msgstr[1] "kuchenka urotropinowa" -msgstr[2] "kuchenka urotropinowa" -msgstr[3] "kuchenka urotropinowa" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "" -"To lekka składana kuchenka zaprojektowana do gotowania na tabletkach " -"urotropiny, znana też jako kuchenka typu Esbit." - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "improwizowana siekiera" -msgstr[1] "improwizowana siekiera" -msgstr[2] "improwizowana siekiera" -msgstr[3] "improwizowana siekiera" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "" -"To zaostrzony kawał stali przywiązany do kija. Ujdzie jako siekiera, ale nie" -" równa się z prawdziwą." - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -79011,6 +79441,17 @@ msgstr "" "Twój własny sługa zombie. Glut kontrolujący jego ciało jest w stanie " "śpiączki, oczekując na twoje rozkazy. Użyj by obudzić sługę." +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "koło" @@ -79393,303 +79834,303 @@ msgstr "" "ekstremalnie ciężka." #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "Przestać przeładowywać?" +msgid "reloading" +msgstr "przeładowuje" #: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "Przestać czytać?" +msgid "reading" +msgstr "czyta" #: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "Przestać grać na instrumencie?" +msgid "playing" +msgstr "gra" #: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "Przestać czekać?" +msgid "waiting" +msgstr "czeka" #: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "Przestać wytwarzać?" +msgid "crafting" +msgstr "wytwarza" #: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "Przestać demontować?" +msgid "disassembly" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "Przestać ciąć mięso?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "rzeźnicki" #: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "Przestać patroszyć?" +msgid "field dressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" -msgstr "Przestać oskórowywać?" +msgid "skinning" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "Przestać ćwiartować?" +msgid "quartering" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" +msgid "dismembering" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "Zaprzestać sekcji zwłok?" +msgid "dissecting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "Przestać odzyskiwać?" +msgid "salvaging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "Przestać zbierać?" +msgid "foraging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "Przestać budować?" +msgid "construction" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "Przestać manipulować pojazdem?" +msgid "interacting with the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "Przestać trenować?" +msgid "training" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" -msgstr "Przestać rozmawiać towarzysko?" +msgid "socializing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "Przestać stosować pierwszą pomoc?" +msgid "using first aid" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "Przestać łowić ryby?" +msgid "fishing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "Przestać kopać w ziemi?" +msgid "mining" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "Przestać przekopywać?" +msgid "burrowing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "Przestać uderzać?" +msgid "smashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" +msgid "cranking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "Przestać odstresowywać się?" +msgid "de-stressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "Przestać ciąć tkanki?" +msgid "cutting tissues" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "Przestać upuszczać?" +msgid "dropping" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "Przestać chomikować?" +msgid "stashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "Przestać podnosić?" +msgid "picking up" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "Przestać przemieszczać przedmioty?" +msgid "moving items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "Przestać sortować zdobycze?" +msgid "sorting out the loot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "Przestać kopać grządki?" +msgid "tilling the farm plot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "Przestać sadzić nasiona?" +msgid "planting seeds" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "Przestać zbierać plony?" +msgid "harvesting plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "Przestać nawozić pole?" +msgid "fertilizing plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "Przestać manipulować ekwipunkiem?" +msgid "interacting with inventory" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "Przestać manipulować ubraniami?" +msgid "fiddling with your clothes" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "Przestać rozpalać ogień?" +msgid "lighting the fire" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "Przestać pracować korbą?" +msgid "working the winch" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "Przestać napełniać pojemnik?" +msgid "filling the container" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "Przestać spinać pojazd na krótko?" +msgid "hotwiring the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "Przestać celować?" +msgid "aiming" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "Przestać używać bankomatu?" +msgid "using the ATM" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "Przestać prób rozruchu pojazdu?" +msgid "trying to start the vehicle" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "Przestać spawać?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "spawajacy" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "Przestać łupać?" +msgid "cracking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "Przestać naprawiać?" +msgid "repairing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "Przestać łatać?" +msgid "mending" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "Przestać modyfikować broń?" +msgid "modifying gun" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "Przestać modyfikować narzędzie?" +msgid "modifying tool" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "Przestać interakcji z NPC?" +msgid "interacting with the NPC" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "Przestać przerzucać ten gruz?" +msgid "clearing that rubble" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "Przestać medytować?" +msgid "meditating" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "Przestać myć?" +msgid "washing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "Przestać ciąć metal?" +msgid "cutting the metal" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "Przestać ścinać?" +msgid "chopping down" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "Przestać wiercić?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "wiercący" -#: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "Przestać kopać?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "kopiacy" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "Przestać zasypywać?" +msgid "filling" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "Przestać się golić?" +msgid "shaving" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "Przestać się strzyc?" +msgid "cutting your hair" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "Przestać bawić się ze zwierzakiem?" +msgid "playing with your pet" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "Zaprzestać prób zaśnięcia?" +msgid "trying to fall asleep" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" -msgstr "Przestać rozładowywać?" +msgid "unloading" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" -msgstr "Przestać programować obejście?" +msgid "programming override" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" -msgstr "Przestać ubierać przedmioty?" +msgid "putting on items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" +msgid "communing with the trees" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" +msgid "eating" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" +msgid "consuming" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" +msgid "casting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" +msgid "studying" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" +msgid "drinking" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" +msgid "using drugs" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" +msgid "using the mind splicer" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" +msgid "hacking console" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -79700,6 +80141,10 @@ msgstr ".700 Nitro Express" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "gwoździe" @@ -81835,6 +82280,10 @@ msgstr "Zbuduj Prowizoryczne Łóżko" msgid "Build Straw Bed" msgstr "Zbuduj Siennik" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "Zbuduj Łóżko od Podstaw" @@ -83128,6 +83577,26 @@ msgstr "" "Znacznik SI na okoliczność trafienia potwora przez gracza. Jeśli go masz to " "znaczy że to bug." +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "Udomowiony Potwór" @@ -83436,6 +83905,16 @@ msgstr "" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "Związany" @@ -83584,6 +84063,20 @@ msgstr "" msgid "The scream dazes you!" msgstr "Krzyk cię oszołamia!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "Palisz Się" @@ -85439,6 +85932,54 @@ msgstr "" msgid "Your Frost Armor melts away." msgstr "" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "Złapany w lekkie wnyki" @@ -86277,6 +86818,15 @@ msgstr "" "Nawet jak nie masz sprzętu, to zawsze jest wzięcie na niewolników lub świeże" " mięso." +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "" @@ -86501,8 +87051,7 @@ msgstr "Barykada drogowa. Do blokowania dróg." msgid "smash!" msgstr "smash!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "whump." @@ -86557,8 +87106,8 @@ msgid "" "notes for other survivors to read." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "crunch!" @@ -86654,6 +87203,17 @@ msgstr "siennik" msgid "Kinda itches when you lay on it." msgstr "Trochę swędzi gdy się na nim kładziesz." +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "zlew" @@ -87128,10 +87688,20 @@ msgstr "Co jest w środku? Zajrzyj!" msgid "canvas wall" msgstr "płócienna ściana" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "slap!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "płócienna klapa" @@ -87554,6 +88124,16 @@ msgstr "tarcza celownicza" msgid "A metal shooting target in the rough shape of a human." msgstr "Metalowa tarcza celownicza z grubsza w kształcie człowieka." +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -87571,15 +88151,32 @@ msgid "" "and... delicious?" msgstr "" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "kwiat wilczomleczu" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "pałka wodna" @@ -87591,6 +88188,32 @@ msgid "" "edible." msgstr "" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "lilia wodna" @@ -87702,6 +88325,13 @@ msgstr "" msgid "ergometer" msgstr "ergometr" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -87766,6 +88396,13 @@ msgstr "whud." msgid "canvas floor" msgstr "płócienna podłoga" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -87883,6 +88520,13 @@ msgstr "gliniany piec" msgid "A kiln designed to bake clay pottery and bricks." msgstr "Piec opracowany do wypalania ceramiki i cegieł." +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "mały głaz" @@ -87922,6 +88566,11 @@ msgstr "No i jak zamierzasz to przenieść?" msgid "stone slab" msgstr "kamienna płyta" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "kajdany" @@ -88772,14 +89421,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "zmutowany kaktus" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "mata tatami" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "zmutowany kaktus" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -89062,8 +89718,7 @@ msgstr "Fałszywa spluwa strzelająca globulkami kwasu." msgid "auto" msgstr "automatyczny" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "karabin" @@ -91814,6 +92469,52 @@ msgstr "" "Taurus Raging Bull to 5-strzałowy rewolwer w kalibrze .454 Casull. Ma " "imponującą siłę obalającą." +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -92927,6 +93628,14 @@ msgstr[1] "blaster fuzyjny" msgstr[2] "blaster fuzyjny" msgstr[3] "blaster fuzyjny" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -94774,6 +95483,20 @@ msgstr "" "ludzkich, wielokrotnego użytku, o wielu zastosowaniach, popularne w siłach " "zbrojnych USA." +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -96554,6 +97277,24 @@ msgstr "" "Zintegrowana wytrzymała lufa Leadworks, zaprojektowania specjalnie do " "długiego strzelania. Zwiększa obrażenia i zasięg broni." +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "podlufowe" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -97404,10 +98145,6 @@ msgstr "" "Ten produkowany na zamówienie miniaturowy miotacz ognia można przyłączyć do " "niema każdej broni palnej, znacznie zwiększając jej zabójczość." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "podlufowe" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -102112,6 +102849,10 @@ msgstr "Wyświetl Mapę Zapachów" msgid "View Temperature Map" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "Przełącz Styl Bocznego Paska" @@ -102152,6 +102893,10 @@ msgstr "Przełącz Automatyczne Kopanie Ziemi" msgid "Toggle Auto Foraging" msgstr "Przełącz Automatyczne Zbieractwo" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "Menu Akcji" @@ -102998,16 +103743,6 @@ msgstr "Centryfuga" msgid "Analyze blood" msgstr "Analizuj krew" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "Nastawianie Kości" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -106538,7 +107273,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" #: lang/json/mission_def_from_json.py @@ -106786,99 +107521,237 @@ msgstr "" "zbadania." #: lang/json/mission_def_from_json.py -msgid "Return Field Data" +msgid "Reach Refugee Center" +msgstr "Idź do Centrum Uchodźców" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" +msgid "Any luck? Bigger ones?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Yes! The home stretch!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "Idź do Centrum Uchodźców" +msgid "Oh man, but we're so close!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -106995,6 +107868,157 @@ msgid "" msgstr "" "Huh. To nie zadziała tak jak myślałem. Z powrotem do deski kreślarskiej." +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "Oczyść Boczną Zatokę" @@ -107006,15 +108030,9 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"Jeśli faktycznie chcesz pomóc, to potrzebujemy twojego wsparcia w " -"oczyszczaniu zmarłych w tylnym skrzydle budynku. Bojąc się wychodzić na " -"zewnątrz w pierwszych dniach kataklizmu wyrzucaliśmy naszych zmarłych i " -"zabitych zombie do odciętego tylnego skrzydła. Nawet nasz obiecujący wówczas" -" przywódca poległ... i zmienił się w coś innego. Zabij ich wszystkich, nie " -"pozwól by dalej nas nękali. Nie możemy wiele zapłacić, ale pomoże to nam " -"odzyskać skrzydło." #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -107037,8 +108055,11 @@ msgstr "Czy nadal będą nas nękać?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." -msgstr "Dziękuje, obecność takiego zagrożenia obok domu szargała mi nerwy." +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -107052,15 +108073,9 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"To trochę bardziej angażujące niż poprzednia sprawa. Ostatnio zaginęła " -"drużyna zbieraczy, która przybywała tu handlować, i chcemy żebyś to zbadał. " -"Zasadniczo podejrzewamy grupę bandytów, lub hordę która ich zaskoczyła " -"znienacka. Mogę ci podać koordynaty ich ostatnich sygnałów radiowych, ale " -"niewiele ponad to. W każdym razie pozbądź się zagrożenia żeby zbieracze " -"mieli zapewnione relatywnie bezpieczne przejście. Najlepszą nagrodę którą " -"mogę zaoferować to prawa do zapasów, które nieśli." #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -107092,14 +108107,13 @@ msgstr "Odzyskaj Prospekt" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"Nowy posterunek który założyliśmy chętnie skorzysta z twojej pomocy. " -"Potrzebuję żebyś zdobył prospekt przodownika pracy zanim zaczniemy wysyłać " -"dodatkowych uchodźców do gminy rolniczej. Skonsultuj się z przodownikiem " -"żeby dostać bardziej szczegółowe zadania." #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -107116,13 +108130,11 @@ msgstr "Czy masz prospekt?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." +"you, here's your money." msgstr "" -"Mają to będziemy w stanie przekonać innych do zainwestowania w gminę. " -"Dziękuję." #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" +msgid "Find 10 solar panels" msgstr "" #: lang/json/mission_def_from_json.py @@ -107130,11 +108142,9 @@ msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -107144,10 +108154,7 @@ msgstr "" "ogromnie wzrosną." #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." +msgid "Solar panels are pretty common on electric cars and on rooftops." msgstr "" #: lang/json/mission_def_from_json.py @@ -107159,17 +108166,19 @@ msgstr "" "dzięki twoim staraniom." #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" -msgstr "Znajdź 40 Puszek z Żywnością" +msgid "Find 100 canning jars" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" #: lang/json/mission_def_from_json.py @@ -107181,17 +108190,17 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." +" If you reconsider let me know." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." msgstr "" #: lang/json/mission_def_from_json.py @@ -107564,6 +108573,97 @@ msgstr "" "nosić odznaki jak wyjdziesz im naprzeciw. Jeszcze raz wyrazy wdzięczności " "marszalu." +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "Zbuduj 2 Destylarnie" @@ -117681,6 +118781,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -117865,7 +119127,8 @@ msgstr "Byłem kiedyś policjantem, ale teraz jestem tylko ocalałym." msgid "Beggar" msgstr "Żebrak" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "Uchodźca" @@ -117889,6 +119152,14 @@ msgstr "" msgid "Reading this line is a bug" msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -118168,14 +119439,6 @@ msgstr "" msgid "Tester" msgstr "Tester" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "Przewoźnik" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "SFC" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "Bandyta" @@ -118192,6 +119455,14 @@ msgstr "kucharz" msgid "officer" msgstr "oficer" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "Przewoźnik" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "SFC" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "żebrak" @@ -118240,6 +119511,10 @@ msgstr "Dana Nunez" msgid "Draco Dune" msgstr "Draco Dune" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "Garry Villeneuve" @@ -118268,10 +119543,18 @@ msgstr "Mangalpreet Singh" msgid "Pablo Nunez" msgstr "Pablo Nunez" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "Stan Borichenko" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "Vanessa Toby" @@ -118300,6 +119583,10 @@ msgstr "Najemnik" msgid "the intercom" msgstr "" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "Fryzjer" @@ -118765,10 +120052,6 @@ msgstr "piwnica chaty" msgid "cabin" msgstr "chata" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "parcela" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "zrujnowana chata" @@ -119096,6 +120379,30 @@ msgstr "gospodarstwo rolnicze 2-gie piętro" msgid "farm house roof" msgstr "dach gospodarstwa rolniczego" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "droga polna" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "stacja benzynowa" @@ -119298,6 +120605,10 @@ msgstr "piwnice hotelu" msgid "motel" msgstr "motel" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "wejście hipermarketu budowlanego" @@ -119350,6 +120661,10 @@ msgstr "dach lodziarni" msgid "dollar store" msgstr "sklep \"wszystko za dolara\"" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "Centrum LAN" @@ -119370,6 +120685,10 @@ msgstr "lumpex" msgid "daycare center" msgstr "centrum dziennej opieki" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "sklep zwierzęcy" @@ -120078,6 +121397,10 @@ msgstr "kostnica" msgid "fire station" msgstr "posterunek straży pożarnej" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "schronisko dla bezdomnych" @@ -120258,6 +121581,10 @@ msgstr "miejsce muzyczne" msgid "gambling hall" msgstr "sala gier hazardowych" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "klub ze striptizem" @@ -120290,6 +121617,10 @@ msgstr "sale fitness" msgid "dojo" msgstr "dojo" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "prywatny park" @@ -120374,10 +121705,6 @@ msgstr "łaźnia publiczna" msgid "roadside foodcart" msgstr "przydrożne stoisko z żywnością" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "droga polna" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "tory kolejowe" @@ -121787,6 +123114,32 @@ msgid "" "at least you have a loyal friend." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -126542,6 +127895,58 @@ msgid "" "serene with the world falling down around you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -131096,6 +132501,10 @@ msgstr "Z niektórych ciał można wydobyć bionikę podczas sekcji zwłok." msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "Nie bądź zbyt chciwy. Łup nie ma znaczenia gdy jesteś martwy." +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -136070,6 +137479,41 @@ msgstr "" "komunikacji. Dr. Okrutny zaproponował strategiczną dyslokację do podziemnego" " kompleksu zwanego Schronem, i kontynuację produkcji PE062 tamże." +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "To jest test systemu urywków tekstów na znakach" @@ -137190,8 +138634,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -137329,7 +138773,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -143803,6 +145247,10 @@ msgstr "Chciałbym się dowiedzieć o tobie czegoś więcej..." msgid "I want you to use this item." msgstr "Chcę żebyś użył tego przedmiotu." +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "Weź ten przedmiot." @@ -143856,11 +145304,11 @@ msgid "Change your bionic power recharge rules..." msgstr "" #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "Nieważne." @@ -144010,6 +145458,22 @@ msgstr "Zostań na swojej obecnej pozycji." msgid "Show me what needs to be done at the camp." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -145141,207 +146605,6 @@ msgstr "" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "A'propos misji..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "Jeśli chodzi o jedno z tych zadań..." - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Witaj marszalu." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Marszalu, obawiam się że nie mogę teraz rozmawiać." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "Ja tu nie dowodzę, marszalu." - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "Mam polecenie odsyłać wszelkie pytania do mojego dowództwa, marszalu." - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "Hej, obywatelu... nie jestem pewien czy powinieneś tu być." - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "Powinieneś pilnować własnego nosa, nic tu nie ma do oglądania." - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "Jak czegoś chcesz to pogadaj z kimś innym." - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "Sir." - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "Koleś, jak dajesz radę ogarniać, to powinieneś się zaciągnąć." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Pani." - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Hej panienko, nie sądzisz że będzie bezpieczniej jak się będziesz trzymać ze" -" mną?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "Mną się nie przejmuj..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Marszalu, mam nadzieję że jesteś tu by nas wesprzeć." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "" -"Sir, nie wiem jak u licha się tu Pan dostał ale jeśli ma Pan choć trochę " -"oleju w głowie to zabierze się Pan stąd puki może." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Psze Pani, nie wiem jak u licha się tu Pani dostała ale jeśli ma Pani choć " -"trochę oleju w głowie to zabierze się Pani stąd puki może." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "Co robisz tu na dole?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "Co mi możesz powiedzieć o tym obiekcie?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "Co potrzebujesz żeby było zrobione?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "Muszę już iść..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" -"Dowodzę tym co zostało z mojej kompanii, na misji odbicia tej placówki. " -"Weszliśmy do kompleksu w dwunastu i natychmiast ruszyliśmy zabezpieczyć ten " -"tu pokój sterowania. Stąd oddelegowałem ludzi do zabezpieczenia kluczowych " -"systemów na tym poziomie i poziomach poniżej. Sukces w oczyszczeniu tego " -"miejsca pozwoli na założenie tu stałej placówki działań w regionie. Co ważne" -" pozwoli przekierować ruch uchodźców z przepełnionych ośrodków i uwolni " -"nasze siły do kolejnych misji odzyskiwania." - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "Wygląda na niezły plan..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"Ten obiekt powstał by zapewnić bezpieczne schronienie na wypadek globalnego " -"konfliktu. Schron może utrzymać kilka tysięcy ludzi prze kilka lat jeżeli " -"wszystkie systemy działają poprawnie i zostanie wydane stosowne " -"powiadomienie. Niestety system zasilania został uszkodzony lub sabotowany w " -"którymś miejscu i uwolnił pojedynczy ekstremalnie zabójczy wybuch " -"promieniowania. To katastrofalne zdarzenie trwało kilka minut i skutkowało " -"śmiercią większości ludzi na 2-gim poziomie i niżej. Pracujący na tym " -"poziomie zdołali zapieczętować drogi dostępowe na niższe poziomy zanim " -"poddali się chorobie popromiennej. Jedyna inna rzecz, o której wspominają " -"logi to przekierowanie całego ciśnienia wody na niższe poziomy." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "Cokolwiek zrobili musiało zadziałać, bo wciąż żyjemy..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Marszalu, jestem poniekąd zdziwiony twoją tu obecnością." - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "Sir, nie jest Pan upoważniony by tu być... powinieneś odejść." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "Psze Pani, nie jest Pani upoważniona by tu być... powinnaś odejść." - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[MISJA] Kapitan wysłał mnie żebym wziął od ciebie listę obecności." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "Potrzebujesz pomocy?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "Powinienem iść" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "" -"Zabezpieczamy zewnętrzne urządzenia komunikacyjne dla tego obiektu. Jestem " -"raczej ograniczony w tym co mogę powiedzieć.. znajdź mojego dowódcę jeżeli " -"masz pytania." - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "Spróbuję znaleźć waszego dowódcę..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" -"Spodziewałem się, że kapitan wyśle gońca. Tu jest lista, której szukasz. To " -"co możemy stad zidentyfikować to częstotliwości które mają sygnał. Wiele " -"sygnałów jest nieczytelnych bez naprawiania, lub wymiany, tutejszego " -"sprzętu. Kiedy obiekt uległ naporowi, standardowa procedura obejmowała " -"zniszczenie sprzętu szyfrującego, by zabezpieczyć tajemnice federalne i " -"zapewnić integralność systemów łączności. Liczymy na to, że nadawanie " -"czystym tekstem będzie mimo tego uchwytne." - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -149500,6 +150763,207 @@ msgstr "" msgid "What were you saying before that?" msgstr "O czym to mówiłeś wcześniej?" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "Marszalu, mam nadzieję że jesteś tu by nas wesprzeć." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "" +"Sir, nie wiem jak u licha się tu Pan dostał ale jeśli ma Pan choć trochę " +"oleju w głowie to zabierze się Pan stąd puki może." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Psze Pani, nie wiem jak u licha się tu Pani dostała ale jeśli ma Pani choć " +"trochę oleju w głowie to zabierze się Pani stąd puki może." + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "Co robisz tu na dole?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "Co mi możesz powiedzieć o tym obiekcie?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "Co potrzebujesz żeby było zrobione?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "A'propos misji..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "Jeśli chodzi o jedno z tych zadań..." + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "Muszę już iść..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" +"Dowodzę tym co zostało z mojej kompanii, na misji odbicia tej placówki. " +"Weszliśmy do kompleksu w dwunastu i natychmiast ruszyliśmy zabezpieczyć ten " +"tu pokój sterowania. Stąd oddelegowałem ludzi do zabezpieczenia kluczowych " +"systemów na tym poziomie i poziomach poniżej. Sukces w oczyszczeniu tego " +"miejsca pozwoli na założenie tu stałej placówki działań w regionie. Co ważne" +" pozwoli przekierować ruch uchodźców z przepełnionych ośrodków i uwolni " +"nasze siły do kolejnych misji odzyskiwania." + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "Wygląda na niezły plan..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" +"Ten obiekt powstał by zapewnić bezpieczne schronienie na wypadek globalnego " +"konfliktu. Schron może utrzymać kilka tysięcy ludzi prze kilka lat jeżeli " +"wszystkie systemy działają poprawnie i zostanie wydane stosowne " +"powiadomienie. Niestety system zasilania został uszkodzony lub sabotowany w " +"którymś miejscu i uwolnił pojedynczy ekstremalnie zabójczy wybuch " +"promieniowania. To katastrofalne zdarzenie trwało kilka minut i skutkowało " +"śmiercią większości ludzi na 2-gim poziomie i niżej. Pracujący na tym " +"poziomie zdołali zapieczętować drogi dostępowe na niższe poziomy zanim " +"poddali się chorobie popromiennej. Jedyna inna rzecz, o której wspominają " +"logi to przekierowanie całego ciśnienia wody na niższe poziomy." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "Cokolwiek zrobili musiało zadziałać, bo wciąż żyjemy..." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Marszalu, jestem poniekąd zdziwiony twoją tu obecnością." + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "Sir, nie jest Pan upoważniony by tu być... powinieneś odejść." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "Psze Pani, nie jest Pani upoważniona by tu być... powinnaś odejść." + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "[MISJA] Kapitan wysłał mnie żebym wziął od ciebie listę obecności." + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "Potrzebujesz pomocy?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "Powinienem iść" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "" +"Zabezpieczamy zewnętrzne urządzenia komunikacyjne dla tego obiektu. Jestem " +"raczej ograniczony w tym co mogę powiedzieć.. znajdź mojego dowódcę jeżeli " +"masz pytania." + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "Spróbuję znaleźć waszego dowódcę..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" +"Spodziewałem się, że kapitan wyśle gońca. Tu jest lista, której szukasz. To " +"co możemy stad zidentyfikować to częstotliwości które mają sygnał. Wiele " +"sygnałów jest nieczytelnych bez naprawiania, lub wymiany, tutejszego " +"sprzętu. Kiedy obiekt uległ naporowi, standardowa procedura obejmowała " +"zniszczenie sprzętu szyfrującego, by zabezpieczyć tajemnice federalne i " +"zapewnić integralność systemów łączności. Liczymy na to, że nadawanie " +"czystym tekstem będzie mimo tego uchwytne." + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Witaj marszalu." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Marszalu, obawiam się że nie mogę teraz rozmawiać." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "Ja tu nie dowodzę, marszalu." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "Mam polecenie odsyłać wszelkie pytania do mojego dowództwa, marszalu." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "Hej, obywatelu... nie jestem pewien czy powinieneś tu być." + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "Powinieneś pilnować własnego nosa, nic tu nie ma do oglądania." + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "Jak czegoś chcesz to pogadaj z kimś innym." + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "Sir." + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "Koleś, jak dajesz radę ogarniać, to powinieneś się zaciągnąć." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "Pani." + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Hej panienko, nie sądzisz że będzie bezpieczniej jak się będziesz trzymać ze" +" mną?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "Mną się nie przejmuj..." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -149527,6 +150991,12 @@ msgstr "" msgid "Please, help me. I need food." msgstr "Proszę pomóż mi, potrzebuję żywności." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "" @@ -149705,10 +151175,26 @@ msgstr "" msgid "OK, I'll talk to them too." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "Czy mówiłem ci już o kartonie przyjacielu? Czy masz może jakiś?" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "Karton?" @@ -149721,6 +151207,30 @@ msgstr "Czemu tu przesiadujesz?" msgid "Are you seriously wearing a dinosaur costume?" msgstr "Na serio nosisz ten kostium dinozaura?" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -149733,6 +151243,14 @@ msgstr "" msgid "Why cardboard?" msgstr "Czemu karton?" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "Myślę, że muszę już iść." @@ -149748,6 +151266,27 @@ msgstr "" "dotąd. Promienie beta promieniują z centrum zombie, więc uderzają w karton i" " nie mogą go przebić. Odbicie może zapobiec dalszym obrażeniom." +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -149757,17 +151296,56 @@ msgstr "" "nowy dom i ich też nie wpuszczę." #: lang/json/talk_topic_from_json.py -msgid "Building a house?" -msgstr "Zbudować dom?" +msgid "You said you were building a house?" +msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "Nie." +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "O co chodziło z tym kartonem?" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "" @@ -149827,10 +151405,6 @@ msgid "" "but I wouldn't say no." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "" @@ -149874,6 +151448,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "" @@ -149884,6 +151463,28 @@ msgid "" "come?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -149903,8 +151504,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -149964,6 +151565,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -149976,6 +151583,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -150000,12 +151618,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -150016,7 +151634,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -150058,6 +151676,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -150068,16 +151692,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -150092,6 +151740,20 @@ msgstr "Czemu pytasz?" msgid "Sorry, not interested." msgstr "Wybacz, nie jestem zainteresowany." +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " @@ -150100,6 +151762,10 @@ msgstr "" "Bo ja, to pewne, do najlepszych nie należę, więc posiedzę tu aż umrę z " "głodu. Pomożesz biednej duszy w potrzebie?" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "Co z tobą nie tak?" @@ -150116,6 +151782,25 @@ msgstr "Jak się tu w ogóle dostałeś jak jesteś taki chory?" msgid "Why are you camped out here if they won't let you in?" msgstr "Czemu tu obozujesz skoro cię nie wpuszczą?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -150128,6 +151813,10 @@ msgstr "" " nie ujawnia się. Nie żebym mógł zrobić, jak mu tam było, ten test krwi o " "który lekarze upominali się raz na kilka miesięcy." +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -150158,6 +151847,95 @@ msgstr "" "nic z tych rzeczy a i tak musiałbym poszukiwać żarcia. Więc byłbym sztywny " "jak grobowa deska. Albo w zasadzie nieumarły." +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "Witaj, przyjacielu." @@ -150170,6 +151948,10 @@ msgstr "Co ty tu robisz?" msgid "I couldn't help but notice, you're covered in fur." msgstr "Nie sposób nie zauważyć, że pokrywa cię futro." +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -150196,16 +151978,8 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" -"To bezpieczniejsze niż zorganizowanie własnego miejsca. Wybywam na " -"poszukiwania jak potrzebuję. Puki dbamy o porządek i robimy swoje jak " -"nadchodzą zombie, pozwalają nam tu pomieszkiwać, jako dodatkowa ochrona. Nie" -" podoba im się natomiast, że przynoszę żywność dla pozostałych lokatorów... " -"Myślę że chcieliby nas powoli zagłodzić, i choć nie napełnię wszystkim " -"żołądków, to zdołam przynieść na tyle by utrzymać tych gości w jako takiej " -"kondycji. Podejrzewam, że w końcu znajdą wymówkę by mnie stąd w końcu " -"wywalić." #: lang/json/talk_topic_from_json.py msgid "" @@ -150217,6 +151991,68 @@ msgstr "" "kataklizmie. Nie mam pojęcia co to spowodowało. Nie mam im za złe, że ich " "nienawidzą, sam ich nienawidzę." +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -150229,6 +152065,23 @@ msgstr "" "tą zgraję dzikich lokatorów. Dopóki jestem jedyny, który zapewnia im " "przetrwanie, nie sądzę abym mógł ot tak odejść." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "Hej tam." @@ -150499,10 +152352,94 @@ msgstr "A co z Tobą, jaka jest Twoja historia?" msgid "Why don't we talk about it some other time?" msgstr "Może porozmawiamy o tym innym razem?" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "Witaj ponownie." +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "Cóż, witaj." @@ -150551,10 +152488,6 @@ msgstr "Cześć." msgid "Hey again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -151152,6 +153085,102 @@ msgstr "Cześć Pablo, mimo cię spotkać. Ale muszę już iść." msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "Cześć Pablo, wzajemnie, dobrze cię widzieć. Jednakże muszę iść." +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -151194,6 +153223,57 @@ msgstr "Wybacz, spotkały mnie ciężkie rzeczy. Proszę, daj mi trochę czasu. msgid "Sorry to hear that." msgstr "Przykro to słyszeć." +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "Oh, jesteś z powrotem. " @@ -151218,10 +153298,6 @@ msgstr "Cześć Vanessa. Co tam?" msgid "Yeah, no. I'm going." msgstr "Tak, nie. Idę." -#: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." -msgstr "Do zobaczenia, słońce." - #: lang/json/talk_topic_from_json.py msgid "" "Well that's good. If you're going to pull your own weight I guess that's an" @@ -151231,8 +153307,137 @@ msgstr "" "postęp." #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Liczę że jesteś tu by handlować." +msgid "" +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -151240,14 +153445,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Nadzoruję zapasy żywności dla centrum. Było sporo grabieży podczas paniki " -"kiedy tu przybyliśmy, więc większość naszej żywności została zabrana. " -"Zarządzam tym co nam pozostało i robię wszystko by uzupełniać stan zapasów. " -"Gnicie i pleśń są bardziej dokuczliwe w wilgotnej piwnicy więc priorytetem " -"jest trwała żywność jak mąka kukurydziana, suszone mięso i wino owocowe." #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -151255,14 +153455,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Nadzoruję zapasy żywności dla centrum. Było sporo grabieży podczas paniki " -"kiedy tu przybyliśmy, więc większość naszej żywności została zabrana. " -"Zarządzam tym co nam pozostało i robię wszystko by uzupełniać stan zapasów. " -"Gnicie i pleśń są bardziej dokuczliwe w wilgotnej piwnicy więc priorytetem " -"jest trwała żywność jak mąka kukurydziana, suszone mięso i wino owocowe." #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -151270,56 +153465,125 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Nadzoruję zapasy żywności dla centrum. Było sporo grabieży podczas paniki " -"kiedy tu przybyliśmy, więc większość naszej żywności została zabrana. " -"Zarządzam tym co nam pozostało i robię wszystko by uzupełniać stan zapasów. " -"Gnicie i pleśń są bardziej dokuczliwe w wilgotnej piwnicy więc priorytetem " -"jest trwała żywność jak mąka kukurydziana, suszone mięso i wino owocowe." #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "Czemu kaszka kukurydziana, suszone mięso i wino owocowe?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" -"Wszystkie trzy są produkowane miejscowo w znaczących ilościach i są trwałe. " -"Mamy lokalnego rolnika lub dwóch, i kilku typków od myślistwa którzy czynią " -"starania by zapewnić nam pożywne zapasy. Zawsze jednak potrzebujemy więcej " -"zapasów. Ponieważ te rzeczy są raczej tanie w hurcie mogę ci zapłacić bonus " -"za to co masz ze sobą. Puszkowana żywność i inne jadalne rzeczy są " -"specjalnością handlarza na froncie." #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "Czy chcesz kupić coś jeszcze?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "Bardzo dobrze..." +msgid "Very well... let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." msgstr "" -"De facto przyjmuje sporo innych jadalnych rzeczy: piwo, cukier, mąka, " -"wędzone mięso i wędzone ryby, olej do smażenia; i jak już wspomniałem " -"wcześniej, suszone mięso, mączkę kukurydzianą i wino owocowe." #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "Interesujące..." +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -151679,16 +153943,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "Psze pani, naprawdę nie powinna pani podróżować tam na zewnątrz." #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "Witaj marszalu..." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Witaj..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "Tak naprawdę to jestem tu nowy..." +msgid "I heard this place was a refugee center..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -151698,6 +153954,14 @@ msgstr "Słyszałeś coś o świecie na zewnątrz?" msgid "Is there any way I can join your group?" msgstr "Jest jakiś sposób abym mógł dołączyć do waszej grupy?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "Co mogę zrobić dla centrum?" @@ -151707,38 +153971,41 @@ msgid "I figured you might be looking for some help..." msgstr "Wydawało mi się że możesz szukać pomocy..." #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." +msgid "Well, I'd better be going. Bye." msgstr "" -"Zanim cokolwiek powiesz, jesteśmy w komplecie i nie przyjmujemy. Parę dni " -"temu mieliśmy tu wybuch epidemii, bo wpuściliśmy za dużo nowych uchodźców. " -"Za to desperacko potrzebujemy zaopatrzenia i wymienimy się czym tylko możemy" -" w zamian. Płacimy twardą walutą za suszone mięso jak masz jakieś na zbyciu." #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "Nie ma odpoczynku dla utrudzonych..." +msgid "Welcome marshal..." +msgstr "Witaj marszalu..." + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Witaj..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"Będę szczery, rozpoczęliśmy z sześcioma autobusami pełnych korposzczurów i " -"nadwrażliwych mamusiek... po incydencie z uchodźcami co odważniejsi z naszej" -" grupy skończyli martwi. Jedyne co teraz chcemy to rozkręcić w tym miejscu " -"wystarczająco dużo handlu by przeżyć. Nie obchodzi mnie od kogo masz towar i" -" jak go zdobyłeś, byle byś nie sprawiał kłopotów." #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "Jest tu równie źle, jeśli nie gorzej." +msgid "It's just as bad out there, if not worse." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151755,39 +154022,27 @@ msgstr "" "pozabijać nasze cholerne dzieciaki... więc nawet nie myśl żeby brać nas " "siłą." -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "Najwyraźniej gówno wybiło wszędzie..." - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" msgstr "" -"[INT 12] Wait, sześć autobusów i uchodźcy... ilu ludzi masz nadal tu " -"upchanych?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"Więc uchodźcy zatrzymali się tu na pierwszym piętrze, kiedy jedna z ich grup" -" spróbowała przemycić półżywego faceta przez rampę załadunkową, i w " -"rezultacie pobudziły nas wrzaski i krzyki. Koło tuzina ludzi umarło tej " -"nocy. Reszta uchodźców została wygnana o świcie i odeszli tworząc jedną z " -"grup zbieraczy. Powiedziałbym że mamy tu nadal z dwudziestu dobrych mężczyzn" -" i kobiet, ale prawdziwa wartość leży we wszystkich naszych partnerach " -"handlowych, którzy przyzwyczaili się robić wszystko by przetrwać." #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "Pewnie wam się to sprawdza.." +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -151805,10 +154060,6 @@ msgstr "" "kupy to tak nahałasują, że ściągną do siebie całe sąsiedztwo. Szczęśliwie " "tędy taka horda nie przechodziła." -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "Dzięki za poradę." - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -151913,6 +154164,81 @@ msgstr "Słyszałeś o czym lepszym niż dziwny skład broni?" msgid "Was hoping for something more..." msgstr "Liczyłem na coś więcej..." +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Marszalu..." @@ -152517,8 +154843,53 @@ msgid "Alright, I'll leave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "Może zainteresuję cię przycięciem?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -153108,6 +155479,10 @@ msgstr "" " pokoju na razie, tylko go nie uświń. Nie jesteś jedynym zbieraczem w tych " "okolicach." +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "Interesujące..." + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -153576,10 +155951,30 @@ msgstr " kontratakuje %s" msgid "Feint" msgstr "Zmyłka" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "Przełamanie Chwytu" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "%s próbuje cię schwytać, ale przełamujesz chwyt!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "%s próbuje schwytać , ale przełamuje chwyt!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -154314,24 +156709,28 @@ msgid "Crane Wing" msgstr "Skrzydło Żurawia" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" -msgstr "Unosisz groźnie ramiona" +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" -msgstr " wykonuje Skrzydło Żurawia" +#, python-format +msgid " performs the Crane Wing at %s." +msgstr "" #: lang/json/technique_from_json.py msgid "Crane Flap" msgstr "Machnięcie Żurawia" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" -msgstr "Machasz ramionami i uwalniasz się" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " flaps free" -msgstr " uwalnia się wymachiwaniem" +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -154380,12 +156779,14 @@ msgid "Snake Slither" msgstr "Pełzanie Węża" #: lang/json/technique_from_json.py -msgid "You slither free" -msgstr "Pełzasz swobodnie" +#, python-format +msgid "The %s tries to grab you, but you slither free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" -msgstr " pełza swobodnie" +#, python-format +msgid "The %s tries to grab , but they slither free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Snake Strike" @@ -155080,12 +157481,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -155945,14 +158346,37 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "ściana z wikliny i gliny" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "zniszczona ściana z wikliny i gliny" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "nieukończona ściana z wikliny i gliny" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "drewniana ściana" @@ -157628,30 +160052,134 @@ msgstr "" msgid "willow tree" msgstr "wierzba" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "klon" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "orzesznik" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "drzewo pistacjowe" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "drzewo migdałowe" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "drzewo leszczyny" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "martwy orzesznik" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -157665,10 +160193,30 @@ msgstr "" msgid "brush." msgstr "zarośla" +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "krzaki" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "orzacha podziemna" @@ -157820,22 +160368,49 @@ msgstr "Rozłożysty krzew bzu, który obecnie nie kwitnie." msgid "tree trunk" msgstr "pień drzewa" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "pień drzewa" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "ściana korzeni" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "ściana wosku" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "woskowa podłoga" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "ogrodzenie z palików" @@ -157943,6 +160518,11 @@ msgstr "" msgid "railing" msgstr "balustrada" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "crack!" @@ -157951,6 +160531,11 @@ msgstr "crack!" msgid "glass railing" msgstr "" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "" @@ -157963,10 +160548,20 @@ msgstr "ker-rash!" msgid "metal railing" msgstr "" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "" @@ -158139,46 +160734,136 @@ msgstr "" msgid "shallow water" msgstr "płytka woda" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "głęboka woda" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "płynąca płytka woda" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "płynąca głęboka woda" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "woda w basenie" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "ściek" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "lawa" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "piaskownica" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "osuwisko" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "małpi gaj" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "tablica do kosza" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "dystrybutor benzyny" @@ -158196,14 +160881,31 @@ msgstr "" msgid "tank with gasoline" msgstr "zbiornik z benzyną" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "mała kolumna" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "rozbity dystrybutor benzyny" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -158218,6 +160920,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "rozbity dystrybutor diesla" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "bankomat" @@ -158241,6 +160950,12 @@ msgstr "" msgid "broken generator" msgstr "uszkodzony generator" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "rakieta" @@ -158453,6 +161168,13 @@ msgstr "Betonowa kolumna." msgid "cloning vat" msgstr "kadź do klonowania" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "plunk." @@ -158461,6 +161183,16 @@ msgstr "plunk." msgid "stairs" msgstr "schody" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "studzienka" @@ -158477,22 +161209,68 @@ msgstr "" msgid "ladder" msgstr "drabina" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "pochyłość w dół" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "pochyłość w górę" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "lina prowadząca w górę" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "czytnik kart" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -158567,54 +161345,121 @@ msgstr "" msgid "elevator" msgstr "winda" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "mroczny piedestał" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "jasny piedestał" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "czerwony kamień" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "zielony kamień" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "niebieski kamień" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "czerwona podłoga" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "zielona podłoga" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "niebieska podłoga" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "żółty przełącznik" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "niebieskozielony przełącznik" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "fioletowy przełącznik" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "przełącznik w kratę" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -158639,6 +161484,18 @@ msgstr "Miękki fioletowy dywan." msgid "linoleum tile" msgstr "płyta linoleum" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "czerwona ściana" @@ -158697,10 +161554,22 @@ msgstr "Ściana pomalowana na fioletowo." msgid "stone wall" msgstr "kamienna ściana" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "nieukończona kamienna ściana" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "zasłonięta sciana" @@ -158738,34 +161607,64 @@ msgstr "improwizowane schronienie" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" -"Zaimprowizowane schronienie zapewniające odrobinę ochrony przez żywiołami." #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "płaski dach" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "kryty papą płaski dach" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "kryty gontem płaski dach" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "metalowy płaski dach" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "kryty płytkami płaski dach" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "świetlik" @@ -158794,22 +161693,51 @@ msgstr "" msgid "telecom cabinet" msgstr "szafa łączności" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "uszkodzona szafa łączności" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "duży metalowy wspornik" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "mały metalowy wspornik" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "olejowy wyłącznik obwodu wysokich napięć" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "pow!" @@ -158818,30 +161746,72 @@ msgstr "pow!" msgid "small HV oil circuit breaker" msgstr "mały olejowy wyłącznik obwodu wysokich napięć" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "duża rozdzielnica elektryczna" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "mała rozdzielnica elektryczna" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "ogranicznik przepięć" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "wyłącznik główny" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "transformator prądowy" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "transformator potencjału" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -158876,6 +161846,11 @@ msgstr "most rzeczny" msgid "bridge pavement" msgstr "jezdnia mostu" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "pękający beton i wizg metalu!" @@ -158884,22 +161859,61 @@ msgstr "pękający beton i wizg metalu!" msgid "bridge yellow pavement" msgstr "żółta jezdnia mostu" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "chodnik na moście" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "barierka ochronna" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "dąb blackjack" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "kopice gliny" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "splosh!" @@ -158908,10 +161922,20 @@ msgstr "splosh!" msgid "mound of sand" msgstr "kopiec piasku" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "pas transmisyjny" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "ting." @@ -158920,18 +161944,38 @@ msgstr "ting." msgid "light machinery" msgstr "lekka mszyneria" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "ciężka maszyneria" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "stara maszyneria" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "elektroniczna maszyneria" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "niskie schody (początkowa sekcja)" @@ -158944,10 +161988,20 @@ msgstr "niskie schody (końcowa sekcja)" msgid "milking machine" msgstr "maszyna dojarska" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "cysterna mleczna" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "żwir" @@ -158966,26 +162020,77 @@ msgstr "" msgid "railroad track" msgstr "tory kolejowe" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "podkład kolejowy" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "malowana woskowana podłoga" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "kozioł oporowy" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "znak przejazdu kolejowego" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "krzyż św. Andrzeja" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "ziemianka" @@ -159160,10 +162265,24 @@ msgstr "" msgid "pine lean-to" msgstr "schronienie z gałęzi" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "schronienie z plandeki" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "spalona ziemia" @@ -159291,10 +162410,6 @@ msgstr "znieczulenie" msgid "smoothing" msgstr "wygładzający" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "spawajacy" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "młotkujący" @@ -159343,10 +162458,6 @@ msgstr "destylujący" msgid "tree cutting" msgstr "ścinający drzewa" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "kopiacy" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "zakręcający nakrętki" @@ -159363,14 +162474,6 @@ msgstr "wkręcający śrubki" msgid "fine screw driving" msgstr "precyzyjnie wkręcający śrubki" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "rzeźnicki" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "wiercący" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "podważajacy" @@ -160498,6 +163601,12 @@ msgid "" msgstr "" "Miejsce do siedzenia, a odchylane oparcie może utworzyć mało wygodne łóżko." +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "urządzenie namierzające" @@ -164732,10 +167841,14 @@ msgstr "Wkładasz kartridż do %s. " msgid "You refill the %s." msgstr "Uzupełniasz %s." -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "Nie ma tam czego podpalić." +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "Straciłeś przedmiot którego używałeś do rozpalania ognia." @@ -165460,6 +168573,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "Potrzebujesz trochę nikotyny." @@ -167690,6 +170808,18 @@ msgstr "Czytanie %s nie jest zbyt zajmujące dla %s." msgid "Maybe you should find something new to read..." msgstr "Może powinieneś znaleźć coś nowego do czytania..." +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "Wygląda na to, że przespałeś alarm w wewnętrznym budziku...." + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "Wygląda na to, że przespałeś alarm w budziku...." + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "Masz odruch wymiotny, ale twój żołądek jest pusty." + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "" @@ -167741,6 +170871,10 @@ msgstr "Na drodze stoi inny pojazd." msgid "That part of the vehicle is currently unsafe." msgstr "Ta cześć pojazdu obecnie nie jest bezpieczna." +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "Wskoczyć do wody?" @@ -167799,6 +170933,10 @@ msgstr "" "Potrzebujesz zaczerpnąć powietrza ale nie potrafisz pływać! Dostań się na " "suchy ląd, szybko!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "Nie ma wrogich istot w zasięgu. Czekam turę." @@ -167860,6 +170998,38 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "Nie możesz strzelać z %s, w jego obecnym stanie." +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "Nie możesz efektywnie rzucać gdy jesteś w swojej skorupie." + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "Rzuć przedmiotem" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "Nie masz żadnych rzeczy do rzucania." + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "Nie masz tego przedmiotu." + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "To jest zbyt ciężkie do rzucania." + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "To część twojego ciała, nie możesz tym rzucać!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "Koncentrujesz się potężnie, a twoje ciało słucha!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "Nie możesz wykrzesać z siebie wysiłku do rzucenia czymkolwiek..." + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -167896,35 +171066,16 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" -"Notatki:\n" -"%s\n" -"\n" -"Użyta umiejętność: %s\n" -"%s\n" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" -"Notatki:\n" -"%s\n" -"\n" -"Użyta umiejętność: %s\n" -"Trudność: %d\n" -"%s \n" -"Ryzyko: Żadne\n" -"Czas: %s\n" #: src/basecamp.cpp msgid "Name this camp" @@ -169203,6 +172354,11 @@ msgstr "Wstajesz na nogi." msgid " stands up." msgstr " wstaje na nogi." +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "%s uwalnia się od pajęczyn!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "Uwalniasz się z sieci pajęczej!" @@ -169215,6 +172371,11 @@ msgstr " uwalnia się z sieci pajęczej!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "Próbujesz się uwolnić z sieci pajęczej, ale nie możesz się wyrwać!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "%s ucieka z lekkich sideł!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "Uwalniasz się z lekkich wnyków!" @@ -169227,6 +172388,11 @@ msgstr "uwalnia się z lekkich sideł!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "Próbujesz uwolnić się z lekkich wnyków, ale nie możesz się wyrwać!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "%s ucieka z ciężkich sideł!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "Uwalniasz się z ciężkich wnyków!" @@ -169239,6 +172405,16 @@ msgstr " uwalnia się z ciężkich wnyków!" msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "Próbujesz uwolnić się z ciężkich wnyków, ale nie możesz się wyrwać!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "%s ucieka z potrzasku na niedźwiedzie!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "Uwalniasz się z pułapki na niedźwiedzie!" @@ -169276,6 +172452,21 @@ msgstr "Wydostajesz się z dołu!" msgid " escapes the pit!" msgstr " wydostaje się z dołu!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "Spostrzegasz że nie jesteś już schwytany." @@ -169576,6 +172767,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "Przenikliwe wycie!" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "swoje przenikliwe wycie!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "głośny krzyk!" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "swój głośny krzyk!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "głośny okrzyk!" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "swój głośny okrzyk!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "Dźwięk twojego głosu jest niemal całkowicie wygłuszony!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "niewyraźny głos" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "swój przytłumiony krzyk" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "Dźwięk twojego głosu jest mocno wygłuszony!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "Wymiotujesz." + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "Wymiotujesz." + +#: src/character.cpp +msgid " throws up heavily!" +msgstr " rzyga jak kot!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "Rzygasz jak kot." + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "Bez Auto Podnoszenia" @@ -170265,77 +173514,10 @@ msgstr "Winda aktywowana. Wciśnij dowolny klawisz..." msgid "NEPower Mine(%d:%d) Log" msgstr "Koplania NEPower (%d:%d) Log" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"Wpis 47:\n" -"Nasza zwykła procedura górnicza odkryła pustą komorę. Nie byłoby w tym nic dziwnego, gdyby nie dziwna doskonale pionowa linia uskoku. Uskok ma kilkanaście dziwnych wklęsłości, które zaalarmowały co bardziej przesądnych członków załogi.; wydają się być ludzkiego pochodzenia.\n" -"\n" -"WPIS 48:\n" -"Wklęsłości mają od 10 do 20 stóp wysokości i biegną wzdłuż linii uskoku. Każdy ma kształt zbliżony do ludzkiego, ale z proporcjami kończyn, szyi i głowy mocno rozciągniętymi, pokrzywionymi i zawiniętymi wokół siebie.\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "Kontynuować czytanie?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"WPIS 49:\n" -"Wstrzymaliśmy prace górnicze w tym obszarze, co zrozumiałe, zanim archeolodzy nie zdołają zbadań obszaru. To opóźni harmonogram co najmniej o tydzień. To głupie prawo o ochronie artefaktów ma już 50 lat i nikt go nie skasował mimo że górnictwo to podstawa naszej ekonomii.\n" -"\n" -"WPIS 52:\n" -"Nadal czekamy na archeologów. Dokonaliśmy pobieżnego badania linii uskoku. Nasze sonografy nie wystarczają do oceny głębokości wgłębień. Sprzęt jest skalibrowany na 15 mil głębokości, ale nie do tak wąskich tuneli, więc trudno powiedzieć jak daleko idą.\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"WPIS 54:\n" -"Zauważyłem jak paru gości na dole w komorze odłupuje dłutem kawałek ściany. Udaję, że nie widzę. To nie tak, że jajogłowi zauważą brak małego kawałka. Pieprzyć ich. \n" -"\n" -"WPIS 55:\n" -"Cóż, archeolodzy już tam są z kilkoma chłopakami za przewodników. To nie są twardzi faceci pokroju Indiany Jonesa; wątpię by kiedykolwiek byli głębiej niż 20 stóp pod ziemią. Nie cierpię odrywać ludzi od zadań by niańczyli naukowców, ale jak im się coś stanie to uziemią na bóg wie jak długo.\n" -"\n" -"WPIS 58:\n" -"Sprowadzają tu KOLEJNĄ EKIPĘ? Chryste, to tylko jakieś skalne wyżłobienia! Wiem, że jakaś grubsza sprawa, ale dajcie spokój, czy ci kolesie nie poradziliby sobie?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "PROJEKT AMIGARA" @@ -170349,37 +173531,10 @@ msgstr "" "LOKACJA %d%d%d\n" "ISTOTNE NOTATKI SZTYGARA ZAŁĄCZONO JAKO WSTĘP" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" -"\n" -"OPERACJE GÓRNICZE WSTRZYMANO; DOWODZENIE PRZEKAZANO DO PROJEKTU AMIGARA ZGODNIE Z\n" -" ROZKAZEM 2:07B\n" -"NASŁUCH USKOKU OKREŚLIŁ GŁĘBOKOŚĆ NA 30.09 KM\n" -"ODKRYTO USZKODZENIE USKOKU; ZAŁOGA KOPALNI NEWPOWER ARESZTOWANA ZA\n" -" NARUSZENIE PRZEPISU 87.08 I PRZENIESIONA DO LABORATORIUM 89-C DO UŻYCIA JAKO\n" -" PRZEDMIOTY BADAŃ\n" -"JAKOŚĆ USKOKU NIENARUSZONA\n" -"ROZPOCZĘCIE STANDARDOWYCH TESTÓW DRGAŃ..." - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "PLIK USZKODZONY, NACIŚNIJ DOWOLNY KLAWISZ..." -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "Maszyna sprawnie nastawia i otacza łubkami twoją złamaną %s." - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--UZYSKANO DOSTĘP--" @@ -172718,6 +175873,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "Pokaż poziomy kategorii mutacji" @@ -172894,6 +176053,10 @@ msgstr "On" msgid "no faction" msgstr "brak frakcji" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -176780,27 +179943,6 @@ msgstr "" "Żywność: %15d (kcal)\n" " \n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" -"Notatki:\n" -"%s\n" -" \n" -"Umiejętność używana: %s\n" -"Trudność: %d\n" -"%s \n" -"Ryzyko: żadne\n" -"Czas: %s\n" - #: src/faction_camp.cpp #, c-format msgid "" @@ -176895,7 +180037,7 @@ msgstr "Szacowany czas rozebrania: 5 Dni\n" #: src/faction_camp.cpp msgid "You do not have a camp food zone. Aborting..." -msgstr "" +msgstr "Nie masz w obozie strefy żywności. Przerywam..." #: src/faction_camp.cpp msgid "No items are located at the drop point..." @@ -177712,7 +180854,7 @@ msgstr "Obóz Frakcji" #: src/game.cpp #, c-format msgid "The %s is dangerously close!" -msgstr "" +msgstr "%s jest niebezpiecznie blisko!" #: src/game.cpp msgid "Confirm:" @@ -177791,12 +180933,12 @@ msgstr "rozłóż" #: src/game.cpp msgctxt "action" msgid "unfavorite" -msgstr "" +msgstr "nie-unubiony" #: src/game.cpp msgctxt "action" msgid "favorite" -msgstr "" +msgstr "ulubiony" #: src/game.cpp msgctxt "action" @@ -178451,6 +181593,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Bez podsycania będzie się palić przez %s." +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -178727,38 +181881,6 @@ msgstr "by strzelać" msgid "Drop where?" msgstr "Upuść gdzie?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "Nie możesz efektywnie rzucać gdy jesteś w swojej skorupie." - -#: src/game.cpp -msgid "Throw item" -msgstr "Rzuć przedmiotem" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "Nie masz żadnych rzeczy do rzucania." - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "Nie masz tego przedmiotu." - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "To jest zbyt ciężkie do rzucania." - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "To część twojego ciała, nie możesz tym rzucać!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "Koncentrujesz się potężnie, a twoje ciało słucha!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "Nie możesz wykrzesać z siebie wysiłku do rzucenia czymkolwiek..." - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -179093,6 +182215,11 @@ msgid "Really step into %s?" msgstr "Naprawdę wejść w %s?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -179100,6 +182227,14 @@ msgstr "" msgid "Can't find grabbed object." msgstr "Nie możesz znaleźć uchwyconego obiektu." +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -179160,12 +182295,27 @@ msgstr "Ranisz swoją lewą stopę na %s!" msgid "You hurt your right foot on the %s!" msgstr "Ranisz swoją prawą stopę na %s!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "Przecinasz swój %1$s na %2$s!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "Popychasz %s z drogi" + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -179175,6 +182325,10 @@ msgstr "Przemieszczasz %s." msgid "There's something here, but you can't see what it is." msgstr "Coś tu jest, ale nie widzisz co." +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -179223,6 +182377,11 @@ msgstr "Są tu elementy sterowania pojazdem." msgid "%s to drive." msgstr "%s by jechać." +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -180224,35 +183383,35 @@ msgstr "" #: src/game_inventory.cpp #, c-format msgid "Bionic installation patient: %s" -msgstr "" +msgstr "Pacjent bionicznej instalacji: %s" #: src/game_inventory.cpp msgid "You don't have any bionics to install." -msgstr "" +msgstr "Nie masz bionik do zainstalowania." #: src/game_inventory.cpp msgid "FAILURE CHANCE" -msgstr "" +msgstr "SZANSA NIEPOWODZENIA" #: src/game_inventory.cpp msgid "OPERATION DURATION" -msgstr "" +msgstr "CZAS OPERACJI" #: src/game_inventory.cpp msgid "CBM already installed" -msgstr "" +msgstr "CBM już zainstalowany" #: src/game_inventory.cpp msgid "No base version installed" -msgstr "" +msgstr "Brak zainstalowanej wersji podstawowej" #: src/game_inventory.cpp msgid "Superior version installed" -msgstr "" +msgstr "Lepsza wersja zainstalowana" #: src/game_inventory.cpp msgid "CBM not compatible with patient" -msgstr "" +msgstr "CBM niekompatybilny z pacjentem" #: src/game_inventory.cpp #, c-format @@ -180335,11 +183494,6 @@ msgstr "%s jest zbyt duże by zepchnąć to z drogi." msgid "There is too much stuff in the way." msgstr "Zbyt dużo rzeczy zawadza w drodze." -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "Popychasz %s z drogi" - #: src/gates.cpp msgid "stuff" msgstr "rzeczy" @@ -180348,6 +183502,11 @@ msgstr "rzeczy" msgid "No vehicle at grabbed point." msgstr "Brak pojazdu w punkcie chwytu." +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -180843,14 +184002,30 @@ msgstr "Auto-ruch anulowany" msgid "Unknown command: \"%s\" (%ld)" msgstr "Nieznana komenda: \"%s\" (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "Nie możesz otwierać rzeczy dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "Nie możesz zamykać rzeczy dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "Nie możesz rozbijać rzeczy dopóki jesteś w swojej skorupie." @@ -180863,26 +184038,50 @@ msgstr "Nie możesz badać otoczenia dopóki jesteś w swojej skorupie." msgid "You can't move mass quantities while you're in your shell." msgstr "Nie możesz przenosić masowo rzeczy dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "Nie możesz niczego podnosić będąc w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "Nie możesz chwytać rzeczy dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "Nie możesz nic ciągnąć będąc w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "Nie możesz ciąć mięsa dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "Nie możesz spoglądać zza rogu dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "" @@ -180893,10 +184092,18 @@ msgstr "" msgid "You can't craft while you're in your shell." msgstr "Nie możesz wytwarzać rzeczy dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "Nie możesz rozkładać rzeczy podczas jazdy." +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "Nie możesz konstruować będąc w pojeździe." @@ -180905,6 +184112,10 @@ msgstr "Nie możesz konstruować będąc w pojeździe." msgid "You can't construct while you're in your shell." msgstr "Nie możesz konstruować dopóki jesteś w swojej skorupie." +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -180987,6 +184198,7 @@ msgstr "%s są teraz %s." #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -182472,10 +185684,26 @@ msgstr "" "Nie znaleziono pacjenta na połączonej kozetce. Operacja niemożliwa. " "Zakończono." +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name @@ -182524,6 +185752,26 @@ msgstr "Nie masz żadnych zainstalowanych bionik." msgid "%1$s doesn't have any bionics installed." msgstr "%1$s nie ma żadnych zainstalowanych bionik." +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "Maszyna sprawnie nastawia i otacza łubkami twoją złamaną %s." + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "" @@ -188337,6 +191585,11 @@ msgstr "Wyjmij potrawę" msgid "Really stop cooking?" msgstr "Naprawdę przestać gotować?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -191768,6 +195021,32 @@ msgid "" msgstr "" "Ten styl zmusza cię do ciosów wręcz nawet gdy masz w dłoniach broń." +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -191783,15 +195062,15 @@ msgstr "Trafienie" #: src/martialarts.cpp msgid "Miss" -msgstr "" +msgstr "Pudło" #: src/martialarts.cpp msgid "Crit" -msgstr "" +msgstr "Krytyk" #: src/martialarts.cpp msgid "Kill" -msgstr "" +msgstr "Zabity" #: src/martialarts.cpp msgid "Get hit" @@ -191926,10 +195205,6 @@ msgstr "Skrępowanie twojego torsu wytrąca cię z równowagi." msgid "You can't hit reliably due to your farsightedness." msgstr "Nie możesz celnie trafić z uwagi na dalekowzroczność." -#: src/melee.cpp -msgid "You feint." -msgstr "Wyprowadzasz zwód." - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "Pudłujesz i zataczasz się od pędu." @@ -192567,27 +195842,10 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"Profit: $8 / godzinę\n" -"Ryzyko: Minimalne\n" -"Czas: 1 godzina minimum\n" -"\n" -"Przypisanie towarzysza do prac fizycznych to bezpieczna droga do nauczenia go podstawowych umiejętności i zbudowania reputacji w posterunku. Nie spodziewaj się jednak dużej wypłaty." - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"Profit: $8 / godzinę\n" -"Ryzyko: Minimalne\n" -"Czas: 1 godzina minimum\n" -"\n" -"Grafik Pracy:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -194090,16 +197348,6 @@ msgstr "%s chce macnąć , ale robi unik!" msgid "The %s tries to grab you as well, but you bat it away!" msgstr "%s chce się też pochwycić, ale oganiasz się kijem!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "%s próbuje cię schwytać, ale przełamujesz chwyt!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "%s próbuje schwytać , ale przełamuje chwyt!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -194264,20 +197512,20 @@ msgstr "%s robi ci zdjęcie!" #: src/monattack.cpp msgid "... database connection lost!" -msgstr "" +msgstr "... łączność z bazą danych utracona!" #: src/monattack.cpp #, c-format msgid "a robotic voice boom, \"Citizen %s!\"" -msgstr "" +msgstr "robotyczny głos krzyczący, \"Obywatelu %s!\"" #: src/monattack.cpp msgid "\"Drop your gun! Now!\"" -msgstr "" +msgstr "\"Rzuć spluwę! Już!\"" #: src/monattack.cpp msgid "\"Drop your weapon! Now!\"" -msgstr "" +msgstr "\"Rzuć broń! Już!\"" #: src/monattack.cpp #, c-format @@ -194318,7 +197566,7 @@ msgstr "%s otwiera się wraz ze swoim karabinem!" #: src/monattack.cpp msgid "Thee eye o dat divil be upon me!" -msgstr "" +msgstr "Oko diaboła zyrka na mnie!" #: src/monattack.cpp msgid "Those laser dots don't seem very friendly..." @@ -195127,6 +198375,11 @@ msgstr "Upuść wszystkie przedmioty oprócz pancerza." msgid "Attach bag" msgstr "Przytwierdź torbę" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -195164,6 +198417,54 @@ msgstr "Wyrwij kulę feromonów" msgid "Milk %s" msgstr "Wydój %s" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -195177,6 +198478,11 @@ msgstr "Naprawdę zabić niewolnika zombie?" msgid "Pet armor" msgstr "Zwierzęcy pancerz" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -195240,6 +198546,11 @@ msgstr "" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -195715,26 +199026,6 @@ msgstr "Czujesz że jad wszedł do twojego ciała!" msgid "The %s climbs to its feet!" msgstr "%s staje na nogach!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "%s uwalnia się od pajęczyn!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "%s ucieka z lekkich sideł!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "%s ucieka z ciężkich sideł!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "%s ucieka z potrzasku na niedźwiedzie!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -196637,7 +199928,7 @@ msgid "activated" msgstr "aktywowane" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -197468,76 +200759,76 @@ msgstr "" #: src/npctalk.cpp msgid "Other followers might have different temporary orders." -msgstr "" +msgstr "Inni towarzysze mogą mieć inne tymczasowe rozkazy." #: src/npctalk.cpp msgid "Issue what temporary order?" -msgstr "" +msgstr "Wydaj jaki tymczasowy rozkaz?" #: src/npctalk.cpp msgid "Done issuing orders" -msgstr "" +msgstr "Zakończ wydawanie rozkazów" #: src/npctalk.cpp msgid "Don't engage hostiles for the time being" -msgstr "" +msgstr "Nie walcz z wrogami w chwili obecnej" #: src/npctalk.cpp msgid "Go back to your usual engagement habits" -msgstr "" +msgstr "Wróć do swoich zwykłych zasad walki" #: src/npctalk.cpp msgid "Don't use ranged weapons for a while" -msgstr "" +msgstr "Nie używaj broni zasięgowej w chwili obecnej" #: src/npctalk.cpp msgid "Use whatever weapon you normally would" -msgstr "" +msgstr "Walcz czym walczyłbyś zwykle" #: src/npctalk.cpp msgid "Hold off on pulping zombies for a while" -msgstr "" +msgstr "Wstrzymaj się chwilowo z rozbijaniem ciał zombie" #: src/npctalk.cpp msgid "Pulp zombies if you like" -msgstr "" +msgstr "Rozbijaj ciała zombiaków wedle woli" #: src/npctalk.cpp msgid "Go back to keeping your usual distance" -msgstr "" +msgstr "Możesz zachować odległość jak zwykle" #: src/npctalk.cpp msgid "Stick close to me for now" -msgstr "" +msgstr "Trzymaj się teraz blisko mnie" #: src/npctalk.cpp msgid "Move farther from me if you need to" -msgstr "" +msgstr "Możesz odejść ode mnie nieco dalej jeśli potrzebujesz" #: src/npctalk.cpp msgid "Go back to your usual sleeping habits" -msgstr "" +msgstr "Wróć do swoich zwykłych pór snu" #: src/npctalk.cpp msgid "Take a nap if you need it" -msgstr "" +msgstr "Zdrzemnij się jeśli chcesz" #: src/npctalk.cpp msgid "Let's go back to your usual behaviors" -msgstr "" +msgstr "Wracamy do naszych zwykłych zachowań" #: src/npctalk.cpp msgid "What do you want to do?" -msgstr "" +msgstr "Co chcesz zrobić?" #: src/npctalk.cpp #, c-format msgid "Talk to %s" -msgstr "" +msgstr "Rozmawiaj z %s" #: src/npctalk.cpp msgid "Talk to ..." -msgstr "" +msgstr "Rozmawiaj z ..." #: src/npctalk.cpp msgid "Yell" @@ -197550,28 +200841,30 @@ msgstr "Wykrzycz zdanie" #: src/npctalk.cpp #, c-format msgid "Tell %s to follow" -msgstr "" +msgstr "Powiedz %sby podążał" #: src/npctalk.cpp msgid "Tell someone to follow..." -msgstr "" +msgstr "Powiedz komuś by podążał..." #: src/npctalk.cpp #, c-format msgid "Tell %s to guard" -msgstr "" +msgstr "Powiedz %s by stróżował" #: src/npctalk.cpp msgid "Tell someone to guard..." -msgstr "" +msgstr "Powiedz komuś by stróżował..." #: src/npctalk.cpp msgid "Tell everyone on your team to wake up" -msgstr "" +msgstr "Powiedz wszystkim w swojej drużynie, by się obudzili" #: src/npctalk.cpp msgid "Tell everyone on your team to prepare for danger" msgstr "" +"Powiedz wszystkim w swojej drużynie, by przygotowali się na " +"niebezpieczeństwo" #: src/npctalk.cpp msgid "Tell everyone on your team to relax (Clear Overrides)" @@ -197589,7 +200882,7 @@ msgstr "Rozmawiaj z kim?" #: src/npctalk.cpp msgid "loudly." -msgstr "" +msgstr "głośno." #: src/npctalk.cpp msgid "Enter a sentence to yell" @@ -197630,10 +200923,12 @@ msgid "" "We're in danger. Stay awake, stay close, don't go wandering off, and don't " "open any doors." msgstr "" +"Jesteśmy w niebezpieczeństwie. Czuwaj, trzymaj się blisko mnie, nie oddalaj " +"się, i nie otwieraj żadnych drzwi." #: src/npctalk.cpp msgid "As you were." -msgstr "" +msgstr "Spocznij." #: src/npctalk.cpp #, c-format @@ -197673,6 +200968,8 @@ msgid "" "%1$s is sedated and can't be moved or woken up until the medication or sedation wears off.\n" "You estimate it will wear off in %2$s." msgstr "" +"%1$s jest uśpiony i nie może być przesunięty albo obudzony aż lek lub środek nasenny przestanie działać.\n" +"Oceniasz, że stanie się to za %2$s." #: src/npctalk.cpp msgid " And I have more I'd like you to do." @@ -198034,7 +201331,7 @@ msgstr "Wybierz cel" #: src/npctalk_funcs.cpp #, c-format msgid "%s at (%d, %d)" -msgstr "" +msgstr "%s w (%d, %d)" #: src/npctalk_funcs.cpp msgid "My current location" @@ -198045,21 +201342,21 @@ msgstr "Moja obecna lokalizacja" #: src/npctalk_funcs.cpp #, c-format msgid "%1$s is assigned to %2$s" -msgstr "" +msgstr "%1$s jest przypisany do %2$s" #. ~ %1$s is the NPC's translated name, %2$s is the translated faction camp #. name #: src/npctalk_funcs.cpp #, c-format msgid "%1$s is assigned to guard %2$s" -msgstr "" +msgstr "%1$s jest przypisany do ochrony %2$s" #. ~ %1$s is the NPC's translated name, %2$s is the pronoun for the NPC's #. gender #: src/npctalk_funcs.cpp #, c-format msgid "%1$s will wait for you where %2$s is." -msgstr "" +msgstr "%1$s będzie na ciebie czekać tam gdzie jest %2$s." #: src/npctalk_funcs.cpp msgid "he" @@ -198120,19 +201417,19 @@ msgstr "%s nie nic co może dać!" #: src/npctalk_funcs.cpp msgid "Choose a new hairstyle" -msgstr "" +msgstr "Wybierz nową fryzurę" #: src/npctalk_funcs.cpp msgid "Choose a new facial hair style" -msgstr "" +msgstr "Wybierz nowy zarost" #: src/npctalk_funcs.cpp msgid "Actually... I've changed my mind." -msgstr "" +msgstr "W zasadzie... zmieniłem zdanie." #: src/npctalk_funcs.cpp msgid "You get a trendy new cut!" -msgstr "" +msgstr "Sprawiasz sobie nowy stylowy fryz!" #: src/npctalk_funcs.cpp #, c-format @@ -201678,57 +204975,33 @@ msgid " attempts to put out the fire on them!" msgstr " próbuje ugasić ogień na sobie!" #: src/player.cpp -msgid "a piercing howl!" -msgstr "Przenikliwe wycie!" - -#: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "swoje przenikliwe wycie!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "głośny krzyk!" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "swój głośny krzyk!" - -#: src/player.cpp -msgid "a loud shout!" -msgstr "głośny okrzyk!" - -#: src/player.cpp -msgid "yourself shout loudly!" -msgstr "swój głośny okrzyk!" - -#: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "Dźwięk twojego głosu jest niemal całkowicie wygłuszony!" - -#: src/player.cpp -msgid "an indistinct voice" -msgstr "niewyraźny głos" - -#: src/player.cpp -msgid "your muffled shout" -msgstr "swój przytłumiony krzyk" - -#: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "Dźwięk twojego głosu jest mocno wygłuszony!" +msgid "You spur your steed into a gallop." +msgstr "" #: src/player.cpp msgid "You start running." msgstr "Zaczynasz biec." +#: src/player.cpp +msgid "Your steed is too tired to go faster." +msgstr "" + #: src/player.cpp msgid "You're too tired to run." msgstr "Jesteś zbyt zmęczony by biec." +#: src/player.cpp +msgid "You slow your steed to a walk." +msgstr "" + #: src/player.cpp msgid "You start crouching." msgstr "Zaczynasz iść przykucnięty." +#: src/player.cpp +msgid "You nudge your steed to a steady trot." +msgstr "" + #: src/player.cpp msgid "You start walking." msgstr "Zaczynasz chodzić." @@ -202941,28 +206214,6 @@ msgstr "Złamana %s zaczyna się zrastać." msgid "Your %s has started to mend!" msgstr "Twoja %s zaczyna się zrastać." -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "Wymiotujesz." - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "Wymiotujesz." - -#: src/player.cpp -msgid " throws up heavily!" -msgstr " rzyga jak kot!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "Rzygasz jak kot." - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "Masz odruch wymiotny, ale twój żołądek jest pusty." - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -203598,14 +206849,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "Rozpoczynasz hibernację." -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "Wygląda na to, że przespałeś alarm w wewnętrznym budziku...." - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "Wygląda na to, że przespałeś alarm w budziku...." - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -203700,6 +206943,32 @@ msgstr "Przestajesz ciągnąć rzeczy." msgid "Your body strains under the weight!" msgstr "Twoje ciało ugina się pod ciężarem!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "Spadasz z wierzchowca!" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "Ranisz się!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "Spadłeś z wierzchowca." + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "Spadłaś z wierzchowca." + +#: src/player.cpp +msgid "Dismount where?" +msgstr "Zejdź gdzie?" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "Nie możesz tam zejść!" + #: src/player.cpp msgid "Wielding: " msgstr "Dzierży:" @@ -203921,7 +207190,7 @@ msgstr "SKRĘPOWANIE I CIEPŁO" #: src/player_display.cpp #, c-format msgid "Bionic Power: %1$d / %2$d" -msgstr "" +msgstr "Bioniczna Moc: %1$d / %2$d" #: src/player_display.cpp msgid "EFFECTS" @@ -205067,6 +208336,10 @@ msgstr "kerblam!" msgid "none" msgstr "żaden" +#: src/recipe.cpp +msgid "none" +msgstr "" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -205107,11 +208380,11 @@ msgstr "i" #: src/requirements.cpp msgid "These tools are required:" -msgstr "" +msgstr "Potrzebne są te narzędzia:" #: src/requirements.cpp msgid "These components are required:" -msgstr "" +msgstr "Potrzebne są te składniki:" #: src/requirements.cpp msgid "These tools are missing:" @@ -205119,7 +208392,7 @@ msgstr "Tych narzędzi brakuje:" #: src/requirements.cpp msgid "These components are missing:" -msgstr "" +msgstr "Tych składników brakuje:" #: src/requirements.cpp msgid "Components required:" @@ -205353,31 +208626,36 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "Weszłaś na folię bąbelkową." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "Twój %s wszedł na folię bąbelkową!" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "Pop!" #: src/trapfunc.cpp msgid "You step on some glass!" -msgstr "" +msgstr "Stąpasz po szkle!" #: src/trapfunc.cpp msgid " steps on some glass!" -msgstr "" +msgstr " stąpa po szkle!" #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on glass." -msgstr "" +msgstr "Wszedłeś na szkło." #: src/trapfunc.cpp msgctxt "memorial_female" msgid "Stepped on glass." -msgstr "" +msgstr "Weszłaś na szkło." #: src/trapfunc.cpp msgid "glass cracking!" -msgstr "" +msgstr "pękające szkło!" #: src/trapfunc.cpp #, c-format @@ -205406,6 +208684,11 @@ msgstr "Pułapka na niedźwiedzia zatrzaskuje się na twojej stopie!" msgid "A bear trap closes on 's foot!" msgstr "Pułapka na niedźwiedzia zatrzaskuje się na stopie !" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -205424,6 +208707,11 @@ msgstr "Wchodzi na deskę z gwoździami!" msgid " steps on a spiked board!" msgstr " wchodzi na deskę z gwoździami." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -205442,6 +208730,11 @@ msgstr "Następujesz na ostrą metalową kolczatkę!" msgid " steps on a sharp metal caltrop!" msgstr " następuje na ostrą metalową kolczatkę!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -205482,6 +208775,16 @@ msgstr "Potykasz się o linkę potykacza." msgid " trips over a tripwire!" msgstr " potyka się o linkę potykacza!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "Uruchamiasz pułapkę z kuszą!" @@ -205528,6 +208831,11 @@ msgstr "Bełt wylatuje, ale chybia %s." msgid "Kerblam!" msgstr "Kerblam!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "Uruchamiasz pułapkę ze strzelbą!" @@ -205551,6 +208859,11 @@ msgstr "Uruchomiłaś pułapkę ze strzelbą!" msgid "A shotgun fires and hits the %s!" msgstr "Strzelba strzela i trafia %s!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "Ostrze przeszywa powietrze i tnie twoją pierś!" @@ -205573,6 +208886,11 @@ msgstr "Uruchomiłaś pułapkę z ostrzem!" msgid "Snap!" msgstr "Snap!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "Węzeł linki zaciska się na twojej stopie!" @@ -205591,7 +208909,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "Uruchomiłaś pułapkę z cienką linką!" -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -205725,6 +209047,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "Weszłaś na automat sekcyjny." +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr " wpada do dołu!" @@ -205755,14 +209082,15 @@ msgstr "" "Uderzasz twardo w ziemię, ale twoje amortyzatory doskonale radzą sobie z " "uderzeniem!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "Ranisz się!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "Lądujesz zwinnie. " +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "Wpadasz do dołu z kolcami!" @@ -205841,6 +209169,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "Wdepnęłaś w lawę." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "Nie udaje ci się przypiąć..." @@ -205858,6 +209191,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr " wdeptuje w lej krasowy, ale wciąga się na stabilny teren." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -207228,6 +210566,11 @@ msgstr "%s utknął." msgid "The %s's engine emits a sneezing sound." msgstr "Silnik %s wydaje dźwięki kichnięcia." +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -207277,6 +210620,10 @@ msgstr "%2$s w %1$s przejeżdża po %3$s." msgid "The %1$s's %2$s runs over something." msgstr "%2$s w %1$s przejeżdża po czymś." +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "Ten pojazd nie ma układu sterowania, nie możesz nim skręcać." @@ -207846,6 +211193,36 @@ msgstr "" "Wkładasz nieco detergentu do pralki, zamykasz wieko, i uruchamiasz. Pralka " "napełnia się wodą ze zbiorników pojazdu." +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "To stworzenie nie jest przyjazne!" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "To stworzenie nie może być osiodłane." + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "Siodło jest zablokowane." + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "Nie ma tu stworzenia." + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "Obejrzyj pojazd" @@ -207886,6 +211263,10 @@ msgstr "Złap lub wypuść stworzenie." msgid "Load or unload a vehicle" msgstr "Załaduj lub rozładuj pojazd" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "Osiodłaj zwierzę" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "Przeładuj siewnik nasionami" diff --git a/lang/po/ru.po b/lang/po/ru.po index fc4cba4f20e65..a72f65c996bc4 100644 --- a/lang/po/ru.po +++ b/lang/po/ru.po @@ -38,26 +38,28 @@ # Zhar the Mad , 2019 # Darkon Rabbit, 2019 # Victor_U , 2019 -# Alexey Mostovoy , 2019 # Barabylka Fish , 2019 # Валентин Литовченко , 2019 # Arex , 2019 # flin4 , 2019 # korick3 korick3 , 2019 -# Vlasov Vitaly , 2019 # Александр , 2019 # Brett Dong , 2019 -# Midas , 2019 -# Антон Бурмистров <22.valiant@gmail.com>, 2019 +# d1909449b5a6b5b275919a9512c8e7ef, 2019 +# Vlasov Vitaly , 2019 # AndyProhor , 2019 +# Nikita Yushchenko , 2019 +# Alexey Mostovoy , 2019 +# Антон Бурмистров <22.valiant@gmail.com>, 2019 +# Midas , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: AndyProhor , 2019\n" +"Last-Translator: Midas , 2019\n" "Language-Team: Russian (https://www.transifex.com/cataclysm-dda-translators/teams/2217/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1702,6 +1704,16 @@ msgid "" msgstr "" "Деревянная бисерина. Из неё можно изготовить украшения или дверь-занавеску." +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "канифоль" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" +"Это кусок желтоватой канифоли, используемый в качестве флюса для пайки." + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "грубый деревянный болт" @@ -2813,6 +2825,21 @@ msgstr[1] "переснаряжённых патрона .38 Супер" msgstr[2] "переснаряжённых патронов .38 Супер" msgstr[3] "переснаряжённый патрон .38 Супер" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr ".38 Особый с черным порохом" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" +"Патрон .38 Особый, снаряженный 200-грановой литой экспансивной пулей и 23 " +"гранами чёрного пороха. Скорость пули меньше по сравнению с обычным .38, но " +"убойная сила куда больше." + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "патрон .380 ACP ОП" @@ -2855,14 +2882,14 @@ msgstr ".380 ACP +P" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" -"Экспансивные патроны повышенного давления .380 ACP с 90-грановой пулей. Эти " -"пули разработаны для максимальной эффективности и имеют более высокую " -"точность, чем обычные боеприпасы. Тебе не следует использовать эти патроны в" -" пистолетах 9x19mm или 9x18mm Макарова." +"Патрон .380 АСР повышенного давления с 90-грановой оболочечной экспансивной " +"пулей. Предназначен для максимальной эффективности и более точный, чем " +"тренировочные патроны. Осторожно - его нельзя заряжать в пистолеты под " +"патроны 9х18 мм Макаров или 9х19 мм." #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP FMJ" @@ -3075,6 +3102,18 @@ msgstr "" "40-мм граната со слезоточивым газом. При взрыве выпускает облако " "сильнодействующего выводящего из строя газа." +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "40мм жакан" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" +"40-мм гильза с большущей пулей. Похоже, пора прощаться со своим плечом." + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr "патрон .44 Магнум ОП" @@ -3112,6 +3151,19 @@ msgstr "переснаряжённый патрон .44 Магнум ОП" msgid "reloaded .44 Magnum" msgstr "переснаряжённый патрон .44 Магнум" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr ".44 Магнум с чёрным порохом" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" +"Патрон .44 Магнум, снаряженный 39 гранами чёрного пороха и 200-грановой " +"литой матчевой пулей." + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr ".44 бумажный патрон" @@ -3204,6 +3256,134 @@ msgstr "" msgid "reloaded .454 Casull" msgstr "переснаряжённый патрон .454 Casull" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr ".454 Casull с чёрным порохом" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" +"Странный анахронизм, снаряженный 45 гранами чёрного пороха и относительно " +"лёгкой 190-грановой литой экспансивной пулей." + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr ".45-70 SP" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" +"Правительственный патрон .45-70, снаряженный 305-грановой оболочечной " +"экспансивной пулей. Один из старейших патронов на вооружении, однако он всё " +"ещё популярен в охоте на крупную дичь с близкого расстояния." + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr ".45-70 +P сердечник" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" +"Правительственный патрон .45-70 повышенного давления, снаряженный " +"305-грановой пулей с твёрдым медным сердечником. Он спроектирован для " +"максимальной пробивной силы сквозь толстую шкуру и кости, при это сохраняя " +"идеальные раневые показатели." + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr ".45-70 LFN ковбой" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" +"Правительственный патрон .45-70, снаряженный 405-грановой литой плосконосой " +"пулей согласно изначальным указаниям безопасного использования старинного " +"оружия. Немного менее мощный по сравнению с современными патронами, но всё " +"ещё убойный." + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "переснаряжённый патрон .45-70 SP" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" +"Правительственный патрон .45-70, снаряженный 305-грановой оболочечной " +"экспансивной пулей. Один из старейших патронов на вооружении, однако он всё " +"ещё популярен в охоте на крупную дичь с близкого расстояния. Этот патрон " +"переснаряжён вручную." + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "переснаряжённый патрон .45-70 +P сердечник" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" +"Правительственный патрон .45-70 повышенного давления, снаряженный " +"305-грановой пулей с твёрдым медным сердечником. Он спроектирован для " +"максимальной пробивной силы сквозь толстую шкуру и кости, при это сохраняя " +"идеальные раневые показатели. Этот патрон переснаряжён вручную." + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "переснаряжённый патрон .45-70 LFN ковбой" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" +"Правительственный патрон .45-70, снаряженный 405-грановой литой плосконосой " +"пулей согласно изначальным указаниям безопасного использования старинного " +"оружия. Немного менее мощный по сравнению с современными патронами, но всё " +"ещё убойный. Этот патрон переснаряжён вручную." + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "переснаряжённый патрон .45-70 с чёрным порохом" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" +"Правительственный патрон .45-70, снаряженный 405-грановой литой плосконосой " +"пулей и чёрным порохом согласно изначальным указаниям безопасного " +"использования старинного оружия. Немного менее мощный по сравнению с " +"современными патронами, но всё ещё убойный. Этот патрон переснаряжён " +"вручную." + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "патрон 4,6x30 мм" @@ -4114,6 +4294,22 @@ msgstr "переснаряжённый патрон 12 кал. - флешетт msgid "reloaded shotgun slug" msgstr "переснаряжённый жакан для дробовика" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "патрон с мелкой дробью и чёрным порохом" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "патрон 12 калибр - дробь 00 с чёрным порохом" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "патрон 12 калибр - флешетты с чёрным порохом" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "жакан для дробовика с чёрным порохом" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "патрон 12 калибра - дробь 00" @@ -6546,13 +6742,12 @@ msgstr[3] "кольчуга из металлолома" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." msgstr "" -"Броня, изготовленная из кусков металла, скреплённых шнурами. Даёт неплохую " -"защиту, но вся эта кучка металлических пластин - не самый удобный способ " -"защиты." +"Броня, изготовленная из скреплённых шнурами кусков металла. Эта кучка " +"металлических пластинок - неплохая, но не лучшая защита." #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -15901,6 +16096,42 @@ msgstr[3] "пара ботинок для плавания" msgid "A pair of neoprene swimming booties, with individual toes." msgstr "Неопреновая обувь для плавания с раздельными пальцами." +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "пара роликовых кроссовок (выкл)" +msgstr[1] "пары роликовых кроссовок (выкл)" +msgstr[2] "пар роликовых кроссовок (выкл)" +msgstr[3] "пары роликовых кроссовок (выкл)" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "Вы выдвигаете колёсики." + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "Кроссовки с колёсиками, сейчас колёсики спрятаны внутри." + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "пара роликовых кроссовок (вкл)" +msgstr[1] "пары роликовых кроссовок (вкл)" +msgstr[2] "пар роликовых кроссовок (вкл)" +msgstr[3] "пары роликовых кроссовок (вкл)" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "Вы задвигаете колёсики обратно." + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "Кроссовки с колёсиками, сейчас колёсики выдвинуты наружу." + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -16977,6 +17208,25 @@ msgstr "" "Волшебный скользкий лёд, покрывающий ваши ступни. Позволяет быстро двигаться" " на ровной поверхности, но на бездорожье тяжеловато." +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "сумка из плоти" +msgstr[1] "сумки из плоти" +msgstr[2] "сумок из плоти" +msgstr[3] "сумки из плоти" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" +"Крупная сумка из крепкой плоти для ношения на спине. Множество крошечных " +"щупалец хватают и удерживают всё, что вы положите внутрь. Она движется и " +"сокращается, чтобы минимизировать скованность." + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -20475,6 +20725,7 @@ msgstr[2] "общих чертежей" msgstr[3] "общие чертежи" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -20483,7 +20734,8 @@ msgstr[3] "общие чертежи" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -25439,7 +25691,7 @@ msgstr[3] "Сусло джина" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" "Сусло джина, после того, как можжевельник придал ему аромат, оно готово к " @@ -25953,7 +26205,7 @@ msgstr[3] "кусок сырого лёгкого" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" "Кусок лёгкого от животного. Он губчатый и розовый, очень быстро портится. " "Если его правильно приготовить, то может получиться деликатес, но если " @@ -25970,7 +26222,7 @@ msgstr[3] "кусок приготовленного лёгкого" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" @@ -32446,7 +32698,7 @@ msgstr[3] "Горсть можжевельника" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" "Можжевельник, для приготовления джина и придания землянистого аромата. " @@ -38650,6 +38902,34 @@ msgstr[3] "пластиковая чаша" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "Пластмассовая чаша с удобной крышкой. Вмещает 750 мл жидкости." +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "стальная бутылка" +msgstr[1] "стальные бутылки" +msgstr[2] "стальных бутылок" +msgstr[3] "стальная бутылка" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "Бутылка из нержавеющей стали, вмещает 750 мл жидкости." + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "складная пластиковая бутылка" +msgstr[1] "складные пластиковые бутылки" +msgstr[2] "складных пластиковых бутылок" +msgstr[3] "складная пластиковая бутылка" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "" +"Пластиковая бутылка нежёсткой конструкции для удобного хранения, вмещает 500" +" мл жидкости." + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -38713,19 +38993,6 @@ msgstr "" "комфортных для них условиях для получения максимальной урожайности. Для " "посадки семян нужно выбрать рецепт в меню создания предметов." -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "стальная бутылка" -msgstr[1] "стальные бутылки" -msgstr[2] "стальных бутылок" -msgstr[3] "стальная бутылка" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "Бутылка из нержавеющей стали, вмещает 750 мл жидкости." - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -38740,21 +39007,6 @@ msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "" "Наполовину смятый лист алюминиевой фольги, применяемой в приготовлении пищи." -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "складная пластиковая бутылка" -msgstr[1] "складные пластиковые бутылки" -msgstr[2] "складных пластиковых бутылок" -msgstr[3] "складная пластиковая бутылка" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "" -"Пластиковая бутылка нежёсткой конструкции для удобного хранения, вмещает 500" -" мл жидкости." - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -39458,6 +39710,10 @@ msgstr[3] "труп" msgid "A dead body." msgstr "Мёртвое тело." +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "животное" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "огонь поблизости" @@ -39501,8 +39757,12 @@ msgstr[3] "увядшее растение" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "Высохшее растение. Хорошо подходит для разведения огня." +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "" +"Высохшее растение. Хорошо подходит для разведения огня. На куче таких можно " +"спать." #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -47271,6 +47531,19 @@ msgstr[3] "гильза .45 ACP" msgid "An empty casing from a .45 ACP round." msgstr "Пустая гильза от патрона .45 ACP." +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "гильза .45-70" +msgstr[1] "гильзы .45-70" +msgstr[2] "гильз .45-70" +msgstr[3] "гильзы .45-70" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "Пустая гильза от патрона .45-70." + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -47508,11 +47781,28 @@ msgid "" "can be exchanged for food, water, and other services through the Free " "Merchants in the Refugee Center." msgstr "" -"Сертифицированная нота Свободных торговцев, также известная под названием " -"'с-нота' или 'торг' - валюта, основанная на старых американских банкнотах. " -"Пятидесятидолларовые и более крупные купюры печатаются на векселях со " -"сложным дизайном, заверенных подписью казначея Свободных торговцев. Может " -"быть обменяна на еду, воду и другие услуги в Центре беженцев." +"Сертифицированная Банкнота Свободных Торговцев, также известная под " +"названием 'с-нота', 'торг' или 'мерч' - валюта, основанная на старых " +"американских банкнотах. На купюрах в пятьдесят и более долларов ставится " +"сложный штамп с подписью казначея Свободных Торговцев. Можно обменять на " +"еду, воду и другие услуги в Центре беженцев." + +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "Золотая монета Центра 01" +msgstr[1] "Золотых монеты Центра 01" +msgstr[2] "Золотых монет Центра 01" +msgstr[3] "Золотые монеты Центра 01" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" +"Маленькая, но удивительно тяжёлая золотая монета. На одной стороне " +"выгравирована микросхема, на обороте надпись 'обменная валюта Центра 01'. " #: lang/json/GENERIC_from_json.py msgid "FlatCoin" @@ -48755,6 +49045,19 @@ msgid "" "string." msgstr "Самодельный вариант штыка, состоящий из шипа и верёвки." +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "каменное копьё" +msgstr[1] "каменных копья" +msgstr[2] "каменных копий" +msgstr[3] "каменное копьё" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "Толстая деревянная палка с острым каменным наконечником." + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -48892,6 +49195,26 @@ msgstr "" " Тяжёлый и неудобный, но очень полезный в любом строительстве, но вам может " "потребоваться разрезать его для небольших проектов." +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "солдатский котелок" +msgstr[1] "солдатских котелка" +msgstr[2] "солдатских котелков" +msgstr[3] "солдатский котелок" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "" +"Компактный армейский котелок с крышкой, предназначенный для разогрева еды " +"над огнём или переносной печкой. Он не такой вместительный, как обычная " +"кастрюля или сковорода, и в нём отсутствуют встроенные нагревательные " +"элементы, как у современных походных наборов." + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -52218,6 +52541,36 @@ msgstr "" "Ваша рука окутана искрящейся волшебной молнией, вы можете наносить ею удары " "или защищаться в ближнем бою." +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "зловещий щупальцевый хлыст" +msgstr[1] "зловещих щупальцевых хлыста" +msgstr[2] "зловещих щупальцевых хлыстов" +msgstr[3] "зловещие щупальцевые хлысты" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" +"Длинное извивающееся щупальце, покрытое острыми костеподобными лезвиями и " +"шипастыми отростками." + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "жуткое костяное копьё" +msgstr[1] "жутких костяных копья" +msgstr[2] "жутких костяных копий" +msgstr[3] "жуткие костяные копья" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "Жуткая помесь копья и алебарды, полностью состоящая из кости." + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -52376,6 +52729,32 @@ msgstr[3] "Невзрачная книга заклинаний" msgid "A small book, containing spells created by a novice magician." msgstr "Маленькая книжка с заклинаниями начинающего колдуна." +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "Книга Плоти" +msgstr[1] "Книга Плоти" +msgstr[2] "Книга Плоти" +msgstr[3] "Книга Плоти" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "Маленький томик, покрытый дублёной человеческой кожей." + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "Книга Деревьев" +msgstr[1] "Книга Деревьев" +msgstr[2] "Книга Деревьев" +msgstr[3] "Книга Деревьев" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "Книга в обложке из коры." + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -53133,39 +53512,6 @@ msgstr[1] "встроенных ЭМИ оружия" msgstr[2] "встроенных ЭМИ оружий" msgstr[3] "встроенное ЭМИ оружие" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "каменное копьё" -msgstr[1] "каменных копья" -msgstr[2] "каменных копий" -msgstr[3] "каменное копьё" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "Толстая деревянная палка с острым каменным наконечником." - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "солдатский котелок" -msgstr[1] "солдатских котелка" -msgstr[2] "солдатских котелков" -msgstr[3] "солдатский котелок" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "" -"Компактный армейский котелок с крышкой, предназначенный для разогрева еды " -"над огнём или переносной печкой. Он не такой вместительный, как обычная " -"кастрюля или сковорода, и в нём отсутствуют встроенные нагревательные " -"элементы, как у современных походных наборов." - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -57778,8 +58124,21 @@ msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "Добавляет больше видов реальных патронов и вооружения." #: lang/json/MOD_INFO_from_json.py -msgid "sees-player icon, +attitude" +msgid "sees-player icon, HitButton_iso" +msgstr "значок видит-ли-игрока, HitButton_iso" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." msgstr "" +"Добавляет значок-индикатор, если существо видит игрока. Для изометрического " +"тайлсета HitButton." + +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, +attitude" +msgstr "значок видит-ли-игрока, +отношение" #. ~ Description for sees-player icon, +attitude #: lang/json/MOD_INFO_from_json.py @@ -57787,10 +58146,12 @@ msgid "" "Adds attitude-tinted icon if a creature sees a player, and a tinted thought " "bubble otherwise. Designed for Live/Dead people tileset." msgstr "" +"Добавляет значок с отношением, если существо видит игрока, и значок мыслей, " +"если нет. Для тайлсета Live/Dead people." #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, -attitude" -msgstr "" +msgstr "значок видит-ли-игрока, -отношение" #. ~ Description for sees-player icon, -attitude #: lang/json/MOD_INFO_from_json.py @@ -57798,10 +58159,12 @@ msgid "" "Adds attitude-tinted icon if a creature sees a player, nothing when player " "is unseen. Designed for Live/Dead people tileset." msgstr "" +"Добавляет значок с отношением, если существо видит игрока, и ничего, если " +"нет. Для тайлсета Live/Dead people." #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, retrodays" -msgstr "" +msgstr "значок видит-ли-игрока, retrodays" #. ~ Description for sees-player icon, retrodays #: lang/json/MOD_INFO_from_json.py @@ -57814,12 +58177,12 @@ msgstr "" #: lang/json/MOD_INFO_from_json.py msgid "SpeedyDex" -msgstr "" +msgstr "Быстроловкость" #. ~ Description for SpeedyDex #: lang/json/MOD_INFO_from_json.py msgid "Higher dex increases your speed." -msgstr "" +msgstr "Высокая ловкость увеличивает вашу скорость." #: lang/json/MONSTER_from_json.py msgid "debug monster" @@ -57892,11 +58255,11 @@ msgstr "зомби в шрамах" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." msgstr "" -"Обезображенное человеческое тело. Его кожа трансформировалась в плотный, " -"загрубелый покров рубцовой ткани." +"Обезображенное человеческое тело. Его кожа превратилась в твёрдую, язвенную " +"ткань со шрамами." #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -58195,11 +58558,11 @@ msgstr "призрак" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." msgstr "" -"Гигантская тень, хаотично меняющая форму и объём; в чём-то, что можно " -"описать только как голову, горят два пронзительных шара света." +"Гигантская тень, хаотично меняющая форму и размер. Два пронзительных шара " +"света горят в чём-то наподобие головы." #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -58265,10 +58628,10 @@ msgstr "гниль-вейлер" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." +" chains of pulsing cysts and slime-dribbling ulcers." msgstr "" -"Этот труп собаки сопровождает едкий запах. Всё его тело покрыто цепочками " -"пульсирующих и сочащихся слизью язв." +"Едко воняющий собачий труп. Всё его тело покрыто цепочками пульсирующих и " +"сочащихся слизью язв." #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -58277,13 +58640,19 @@ msgstr "робоглаз" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" -"Беспилотный дрон с термоядерным двигателем, состоящий в основном из камер " -"высокого разрешения и громкоговорителя. Этот сферический робот летает по " -"округе, документируя кровавую бойню и разгром повсюду." +"Квадрокоптер, состоящий в основном из камер высокого разрешения и " +"громкоговорителя. Этот робот парит над землей, фиксируя происходящую вокруг " +"него бойню и хаос. Хотя он больше не может отчитываться перед центром связи," +" вполне вероятно, что некоторые из его автоматизированных систем оповещения " +"все еще функционируют, и похоже что эта штука, где-то имеет действующую " +"зарядную станцию." #: lang/json/MONSTER_from_json.py msgid "nurse bot" @@ -59136,8 +59505,8 @@ msgstr "зомби" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." msgstr "" "Человеческое тело, качающееся при ходьбе. Чёрные блестящие глаза полны " "неудержимой ярости." @@ -60161,10 +60530,10 @@ msgstr "дрон ЭМИ-граната" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." msgstr "" -"Автоматический дрон-камикадзе. Робот размером с кулак, по-видимому с ЭМИ-" +"Автоматический дрон-камикадзе. Небольшой квадрокоптер, по-видимому с ЭМИ-" "гранатой внутри." #: lang/json/MONSTER_from_json.py @@ -60174,10 +60543,10 @@ msgstr "дрон С-4" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." msgstr "" -"Автоматический дрон-камикадзе. Робот размером с кулак, по-видимому с С-4 " +"Автоматический дрон-камикадзе. Небольшой квадрокоптер, по-видимому с С-4 " "внутри." #: lang/json/MONSTER_from_json.py @@ -60187,10 +60556,10 @@ msgstr "дрон светошумовая граната" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." msgstr "" -"Автоматический дрон-камикадзе. Робот размером с кулак, по-видимому со " +"Автоматический дрон-камикадзе. Небольшой квадрокоптер, по-видимому со " "светошумовой гранатой внутри." #: lang/json/MONSTER_from_json.py @@ -60200,10 +60569,10 @@ msgstr "дрон слезоточивая граната" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." msgstr "" -"Автоматический дрон-камикадзе. Робот размером с кулак, по-видимому со " +"Автоматический дрон-камикадзе. Небольшой квадрокоптер, по-видимому со " "слезоточивой гранатой внутри." #: lang/json/MONSTER_from_json.py @@ -60213,10 +60582,10 @@ msgstr "дрон-граната" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." msgstr "" -"Автоматический дрон-камикадзе. Робот размером с кулак, по-видимому с " +"Автоматический дрон-камикадзе. Небольшой квадрокоптер, по-видимому с " "гранатой внутри." #: lang/json/MONSTER_from_json.py @@ -60226,10 +60595,10 @@ msgstr "мэнхак" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." msgstr "" -"Автоматический противопехотный дрон. Робот размером с кулак, окружённый " +"Автоматический противопехотный дрон. Небольшой квадрокоптер, окружённый " "вращающимися лезвиями." #: lang/json/MONSTER_from_json.py @@ -60239,11 +60608,11 @@ msgstr "дрон ядерная мини-бомба" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "" -"Автоматический дрон во много раз больше обычного, по-видимому с ядерной " -"мини-бомбой внутри. Если он нацелится на вас... Бегите." +"Автоматический дрон квадрокоптер во много раз больше обычного, по-видимому с" +" ядерной мини-бомбой внутри. Если он нацелится на вас... Бегите." #: lang/json/MONSTER_from_json.py msgid "tiny fish" @@ -65300,6 +65669,72 @@ msgstr "Разделение боли" msgid "Evens out damage among your limbs." msgstr "Распределяет повреждение между частями вашего тела." +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "Зловещее Щупальце" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" +"Это заклинание отращивает из вашего тела длинное мерзкое хлыстоподобное " +"щупальце из острых костей и кислотной слизи. У него атака на большом " +"расстоянии и болезненный урон." + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "Безобразное Улучшение" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" +"Заклинание, нечеловеческим образом меняющее ваше тело, чтобы усилить вашу " +"силу и физические способности." + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "Кислотные Брызги" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" +"После прочтения заклинания маг открывает рот и выпрыскивает кислоту широким " +"конусом, чтобы превратить врагов в слизь. Просто представьте, что он дальше " +"сделает со слизью." + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "Сумка из Плоти" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" +"Заклинание выращивает большую сумку из плоти из кожи вашей спины, в ней " +"можно носить вещи." + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "Вызвать Костяное Копьё" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" +"Создаёт длинное костяное древко с острым кончиком и лезвиями по всей длине." + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "Мегавзрыв" @@ -65375,39 +65810,89 @@ msgstr "Шаблон для демонстрации всех возможных #: lang/json/SPELL_from_json.py msgid "Debug Stamina Spell" -msgstr "" +msgstr "Отладочное заклинание выносливости" #. ~ Description for Debug Stamina Spell #: lang/json/SPELL_from_json.py msgid "Uses a little stamina" -msgstr "" +msgstr "Тратит немного выносливости" #: lang/json/SPELL_from_json.py msgid "Debug HP Spell" -msgstr "" +msgstr "Отладочное заклинание ХП" #. ~ Description for Debug HP Spell #: lang/json/SPELL_from_json.py msgid "Uses a little HP" -msgstr "" +msgstr "Тратит немного ХП" #: lang/json/SPELL_from_json.py msgid "Debug Bionic Spell" -msgstr "" +msgstr "Отладочное бионическое заклинание" #. ~ Description for Debug Bionic Spell #: lang/json/SPELL_from_json.py msgid "Uses a little Bionic Power" -msgstr "" +msgstr "Тратит немного бионической энергии" #: lang/json/SPELL_from_json.py msgid "Debug effect spell" -msgstr "" +msgstr "Отладочное заклинание с эффектом" #. ~ Description for Debug effect spell #: lang/json/SPELL_from_json.py msgid "Adds an effect to the target" +msgstr "Добавляет эффект на цель" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "Растительная Хватка" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" +"Корни и лианы вырываются из-под земли и хватают ваших противников, замедляя " +"их и нанося небольшой урон." + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "Корневой Удар" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "Корни вырываются из-под земли и протыкают ваших противников." + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "Древесное Копьё" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." msgstr "" +"Заклинание создаёт копьё из древесины, которое выстреливает из вашей руки и " +"на большой скорости пронзает противника." + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "Природный Лук" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" +"Заклинание временно создаёт волшебный деревянный лук с бесконечными " +"стрелами." #: lang/json/SPELL_from_json.py msgid "Stonefist" @@ -68133,41 +68618,41 @@ msgstr "Искусственная угольная коптильня для и #: lang/json/TOOL_from_json.py msgid "basecamp fireplace" msgid_plural "basecamp fireplaces" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "костёр лагеря" +msgstr[1] "костра лагеря" +msgstr[2] "костров лагеря" +msgstr[3] "костры лагеря" #. ~ Description for basecamp fireplace #: lang/json/TOOL_from_json.py msgid "A fake fireplace used for basecamps." -msgstr "" +msgstr "Псевдопредмет - костёр для лагерей." #: lang/json/TOOL_from_json.py msgid "basecamp stove" msgid_plural "basecamp stoves" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "печь лагеря" +msgstr[1] "печи лагеря" +msgstr[2] "печей лагеря" +msgstr[3] "печи лагеря" #. ~ Description for basecamp stove #: lang/json/TOOL_from_json.py msgid "A fake stove used for basecamps." -msgstr "" +msgstr "Псевдопредмет - печка для лагерей." #: lang/json/TOOL_from_json.py msgid "basecamp drop hammer" msgid_plural "basecamp drop hammers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "паровой молот лагеря" +msgstr[1] "паровых молота лагеря" +msgstr[2] "паровых молотов лагеря" +msgstr[3] "паровые молоты лагеря" #. ~ Description for basecamp drop hammer #: lang/json/TOOL_from_json.py msgid "A fake drop hammer used for basecamps." -msgstr "" +msgstr "Псевдопредмет - паровой молот для лагерей." #: lang/json/TOOL_from_json.py msgid "teeth and claws" @@ -68748,6 +69233,21 @@ msgstr "" "зажечь запал. У вас будет три хода до детонации. Взрыв создаст ЭМИ, который " "разрушает роботов и поглощает бионическую энергию." +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "верховое седло" +msgstr[1] "верховых седла" +msgstr[2] "верховых сёдел" +msgstr[3] "верховые сёдла" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "Седло, которое можно повесить на прирученное ездовое животное." + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -70576,10 +71076,10 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "smartphone - flashlight" msgid_plural "smartphones - flashlight" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "смартфон - фонарик" +msgstr[1] "смартфона - фонарик" +msgstr[2] "смартфонов - фонарик" +msgstr[3] "смартфоны - фонарик" #. ~ Use action menu_text for smartphone - flashlight. #. ~ Use action menu_text for atomic smartphone - Flashlight. @@ -74005,11 +74505,11 @@ msgstr "Вы подожгли фитиль самодельной бомбы." #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" "Отрезок трубы, наполненный взрывчаткой. Активируйте, чтобы зажечь фитиль. До" -" детонации бомбы будет 3 хода, чтобы убежать. Для поджога фитиля нужна " +" детонации бомбы будет 5 ходов, чтобы убежать. Для поджога фитиля нужна " "зажигалка или спички." #: lang/json/TOOL_from_json.py @@ -75033,9 +75533,9 @@ msgstr[3] "самодельный эспонтон" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" "Короткое самодельное копьё с гладким деревянным древком и прочно " "установленным металлическим наконечником. Удобный хват и крепкая конструкция" @@ -76544,34 +77044,36 @@ msgstr "Угольки потушены." #: lang/json/TOOL_from_json.py msgid "pallet of wet adobe bricks" msgid_plural "pallets of wet adobe bricks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "поддон с влажными саманными кирпичами" +msgstr[1] "поддона с влажными саманными кирпичами" +msgstr[2] "поддонов с влажными саманными кирпичами" +msgstr[3] "поддоны с влажными саманными кирпичами" #. ~ Use action msg for pallet of wet adobe bricks. #: lang/json/TOOL_from_json.py msgid "You test the bricks, and they're solid enough to use." -msgstr "" +msgstr "Вы постукиваете по кирпичу, и он достаточно твёрдый." #. ~ Use action not_ready_msg for pallet of wet adobe bricks. #: lang/json/TOOL_from_json.py msgid "The bricks are still too damp to bear weight." -msgstr "" +msgstr "Кирпич ещё не высох и не сможет держать вес." #. ~ Description for pallet of wet adobe bricks #: lang/json/TOOL_from_json.py msgid "" "A pallet full of heavy mud bricks which need to dry slowly to be usable." msgstr "" +"Поддон с тяжёлыми саманными кирпичами, им надо медленно высохнуть, чтоб от " +"них была польза." #: lang/json/TOOL_from_json.py msgid "pallet of dry adobe bricks" msgid_plural "pallets of dry adobe bricks" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "поддон с сухими саманными кирпичами" +msgstr[1] "поддона с сухими саманными кирпичами" +msgstr[2] "поддонов с сухими саманными кирпичами" +msgstr[3] "поддоны с сухими саманными кирпичами" #. ~ Description for pallet of dry adobe bricks #: lang/json/TOOL_from_json.py @@ -76580,6 +77082,45 @@ msgid "" " risking your life. Disassemble it to retrieve your frame and building " "supplies." msgstr "" +"Поддон с простыми саманными кирпичами, которые сохли неделю, пока вы " +"рисковали своей жизнью. Разберите, чтобы вернуть компоненты и строительные " +"материалы." + +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "каменный топорик" +msgstr[1] "каменных топорика" +msgstr[2] "каменных топориков" +msgstr[3] "каменные топорики" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" +"Это широкий кусок заострённого камня с необработанной зоной, достаточной для" +" безопасного удержания. Швейцарский армейский нож нижнего палеолита." + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "металлический топорик" +msgstr[1] "металлических топорика" +msgstr[2] "металлических топориков" +msgstr[3] "металлические топорики" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" +"Кусок стали, один его край обработан молотком в какое-то подобие режущей " +"кромки. Им можно пользоваться как топором, но он никогда не сравнится с " +"настоящим инструментом." #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" @@ -76785,6 +77326,23 @@ msgstr "" "Кусок пластика. Пригоден для изготовления, ремонта или усиления предметов из" " пластика." +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "печь на сухом горючем" +msgstr[1] "печи на сухом горючем" +msgstr[2] "печей на сухом горючем" +msgstr[3] "печь на сухом горючем" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "" +"В этой лёгкой складной печи, также известной как твердотопливная горелка, " +"для приготовления пищи используются маленькие таблетки уротропина." + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -76961,6 +77519,23 @@ msgstr "" " разделке. Слишком тонкий, чтобы использовать его как удобное место для сна." " Свёрнут и готов к переноске." +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "огниво" +msgstr[1] "огнива" +msgstr[2] "огнив" +msgstr[3] "огниво" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" +"Магниевый брусок и кресало из углеродистой стали. Используйте, чтобы высечь " +"искру и зажечь огонь." + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -78364,6 +78939,23 @@ msgstr "" "Классика, этот жезл выпускает огненные шары без осечек. Но более опытный " "Кельвинист мог бы это делать более эффективно." +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "палочка волшебных ракет" +msgstr[1] "палочки волшебных ракет" +msgstr[2] "палочек волшебных ракет" +msgstr[3] "палочки волшебных ракет" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" +"Классика - палочка, безошибочно стреляющая волшебными ракетами. Опытный Маг " +"сумеет кастовать их эффективнее." + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -78877,23 +79469,6 @@ msgstr "" "Обычный и полностью безопасный садовый гном. Вмещает в себя до 100 " "9-миллиметровых боеприпасов." -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "огниво" -msgstr[1] "огнива" -msgstr[2] "огнив" -msgstr[3] "огниво" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "" -"Это тщательно отобранный кусок кремня и кресала из высокоуглеродистой стали." -" Используйте, чтобы высечь искру." - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -78942,23 +79517,6 @@ msgstr "" "контролируемого потока воздуха. Внутри него медленно тлеют угли, и их можно " "использовать для разведения огня." -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "рубило" -msgstr[1] "рубила" -msgstr[2] "рубил" -msgstr[3] "рубило" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" -"Это широкий кусок заострённого камня с необработанной зоной, достаточной для" -" безопасного удержания. Швейцарский армейский нож нижнего палеолита." - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -79028,40 +79586,6 @@ msgstr "" "Большой запечатанный бурдюк с молоком, которое находится в процессе " "превращения в грубый вид сыра после добавления уксуса и натурального сычуга." -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "печь на сухом горючем" -msgstr[1] "печи на сухом горючем" -msgstr[2] "печей на сухом горючем" -msgstr[3] "печь на сухом горючем" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "" -"В этой лёгкой складной печи, также известной как твердотопливная горелка, " -"для приготовления пищи используются маленькие таблетки уротропина." - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "самодельный топор" -msgstr[1] "самодельных топора" -msgstr[2] "самодельных топоров" -msgstr[3] "самодельный топор" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "" -"Заострённый кусок стали, прикрученный к палке. Им можно пользоваться как " -"топором, но он никогда не сравнится с настоящим инструментом." - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -80557,6 +81081,19 @@ msgstr "" "находится в состоянии комы, ожидая ваших приказов. Используйте этот предмет " "для пробуждения приспешника." +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "упряжь и хомут" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" +"Упряжь и хомут для крепления животного к колёсному транспорту, чтобы оно " +"могло везти его." + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "колесо" @@ -80937,304 +81474,304 @@ msgstr "" "обычных шин из-за отсутствия вероятности разрыва; но они крайне тяжёлые." #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "Прекратить перезарядку?" - -#: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "Прекратить чтение?" - -#: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "Прекратить играть?" - -#: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "Прекратить ожидание?" - -#: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "Прекратить сборку?" - -#: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "Прекратить разборку?" - -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "Прекратить разделку?" - -#: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "Прекратить полевую разделку?" - -#: lang/json/activity_type_from_json.py -msgid "Stop skinning?" -msgstr "Прекратить свежевание?" - -#: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "Прекратить четвертование?" - -#: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" -msgstr "Прекратить расчленение?" - -#: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "Прекратить вскрытие?" +msgid "reloading" +msgstr "перезаряжаться" #: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "Прекратить извлечение?" - -#: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "Прекратить сбор?" - -#: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "Прекратить строительство?" - -#: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "Прекратить взаимодействие с транспортом?" - -#: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "Прекратить тренировку?" - -#: lang/json/activity_type_from_json.py -msgid "Stop socializing?" -msgstr " Прекратить общение?" - -#: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "Прекратить использование аптечки?" - -#: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "Прекратить рыбалку?" - -#: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "Прекратить добывать?" - -#: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "Прекратить рыть?" - -#: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "Прекратить ломать?" - -#: lang/json/activity_type_from_json.py -msgid "Stop cranking?" -msgstr "Прекратить заряжать?" - -#: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "Прекратить снимать стресс?" - -#: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "Прекратить резку ткани?" - -#: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "Прекратить выкидывать?" +msgid "reading" +msgstr "читать" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "Прекратить запасать?" +msgid "playing" +msgstr "играть" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "Прекратить поднимать?" +msgid "waiting" +msgstr "ожидать" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "Прекратить перемещать предметы?" +msgid "crafting" +msgstr "производить" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "Прекратить сортировку добычи?" +msgid "disassembly" +msgstr "разбирать" -#: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "Прекратить обработку участка фермы?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "разделки" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "Прекратить посадку семян?" +msgid "field dressing" +msgstr "полевая разделка" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "Прекратить собирать урожай?" +msgid "skinning" +msgstr "свежевание" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "Прекратить удобрять участки?" +msgid "quartering" +msgstr "четвертование" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "Прекратить взаимодействие с инвентарём?" +msgid "dismembering" +msgstr "расчленение" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "Прекратить возиться с вашей одеждой?" +msgid "dissecting" +msgstr "вскрытие" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "Прекратить разводить огонь?" +msgid "salvaging" +msgstr "извлечение" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "Прекратить вращать лебёдку?" +msgid "foraging" +msgstr "cобирательство" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "Прекратить заполнять контейнер?" +msgid "construction" +msgstr "строительство" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "Прекратить замыкать провода для запуска автомобиля?" +msgid "interacting with the vehicle" +msgstr "взаимодействие с транспортом" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "Прекратить прицеливаться?" +msgid "training" +msgstr "тренировка" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "Прекратить пользоваться банкоматом?" +msgid "socializing" +msgstr "общение" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "Прекратить попытки завести транспорт?" +msgid "using first aid" +msgstr "оказание первой помощи" #: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "Прекратить сваривать?" +msgid "fishing" +msgstr "рыбалка" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "Прекратить взламывать?" +msgid "mining" +msgstr "добыча полезных ископаемых" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "Прекратить ремонтировать?" +msgid "burrowing" +msgstr "рытьё" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "Прекратить исправлять дефект?" +msgid "smashing" +msgstr "разбивание" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "Прекратить модифицировать оружие?" +msgid "cranking" +msgstr "ручное заряжание" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "Прекратить модифицировать инструмент?" +msgid "de-stressing" +msgstr "снятие стресса" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "Прекратить взаимодействие с NPC?" +msgid "cutting tissues" +msgstr "разрезание ткани" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "Прекратить очищать завал?" +msgid "dropping" +msgstr "бросание" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "Прекратить медитацию?" +msgid "stashing" +msgstr "запасание" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "Прекратить мыть?" +msgid "picking up" +msgstr "подбор" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "Прекратить резать металл?" +msgid "moving items" +msgstr "перемещение предметов" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "Прекратить рубить дерево?" +msgid "sorting out the loot" +msgstr "сортировка добычи" #: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "Прекратить работать с отбойником?" +msgid "tilling the farm plot" +msgstr "обработка грядок" #: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "Прекратить копать?" +msgid "planting seeds" +msgstr "сажание семян" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "Прекратить закапывать?" +msgid "harvesting plots" +msgstr "сбор урожая" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "Прекратить бриться?" +msgid "fertilizing plots" +msgstr "удобрение грядок" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "Прекратить стричься?" +msgid "interacting with inventory" +msgstr "взаимодействие с инвентарём" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "Перестать играть со своим питомцем?" +msgid "fiddling with your clothes" +msgstr "возня с одеждой" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "Прекратить попытки заснуть?" +msgid "lighting the fire" +msgstr "разведение огня" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" -msgstr "Прекратить разгрузку?" +msgid "working the winch" +msgstr "вращение лебёдки" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" -msgstr "Прекратить перепрограммирование?" +msgid "filling the container" +msgstr "наполнение контейнера" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" -msgstr "Прекратить одеваться?" +msgid "hotwiring the vehicle" +msgstr "замыкание проводов" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" -msgstr "Прекратить общение с деревьями?" +msgid "aiming" +msgstr "прицеливание" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" -msgstr "Прекратить есть?" +msgid "using the ATM" +msgstr "использование банкомата" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" -msgstr "Прекратить есть?" +msgid "trying to start the vehicle" +msgstr "попытка завести машину" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "сварки" + +#: lang/json/activity_type_from_json.py +msgid "cracking" +msgstr "разламывание" + +#: lang/json/activity_type_from_json.py +msgid "repairing" +msgstr "починка" + +#: lang/json/activity_type_from_json.py +msgid "mending" +msgstr "ремонт" + +#: lang/json/activity_type_from_json.py +msgid "modifying gun" +msgstr "модификация оружия" + +#: lang/json/activity_type_from_json.py +msgid "modifying tool" +msgstr "модификация инструмента" + +#: lang/json/activity_type_from_json.py +msgid "interacting with the NPC" +msgstr "взаимодействие с НПС" + +#: lang/json/activity_type_from_json.py +msgid "clearing that rubble" +msgstr "очистка завалов" + +#: lang/json/activity_type_from_json.py +msgid "meditating" +msgstr "медитация" + +#: lang/json/activity_type_from_json.py +msgid "washing" +msgstr "мытьё" + +#: lang/json/activity_type_from_json.py +msgid "cutting the metal" +msgstr "разрезание металла" + +#: lang/json/activity_type_from_json.py +msgid "chopping down" +msgstr "рубка" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "сверления" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "копания" + +#: lang/json/activity_type_from_json.py +msgid "filling" +msgstr "наполнение" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" -msgstr " Прекратить заклинание?" +msgid "shaving" +msgstr "бритьё" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" -msgstr "Прекратить учиться?" +msgid "cutting your hair" +msgstr "стрижка волос" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" -msgstr "Прекратить пить?" +msgid "playing with your pet" +msgstr "игра с питомцем" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" -msgstr "Прекратить употребление препаратов?" +msgid "trying to fall asleep" +msgstr "попытка уснуть" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" -msgstr "Прекратить использовать мыслесоединитель?" +msgid "unloading" +msgstr "разрядка" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" -msgstr "Прекратить взлом?" +msgid "programming override" +msgstr "перепрограммирование" + +#: lang/json/activity_type_from_json.py +msgid "putting on items" +msgstr "одевание" + +#: lang/json/activity_type_from_json.py +msgid "communing with the trees" +msgstr "общение с деревьями" + +#: lang/json/activity_type_from_json.py +msgid "eating" +msgstr "ест" + +#: lang/json/activity_type_from_json.py +msgid "consuming" +msgstr "употребление" + +#: lang/json/activity_type_from_json.py +msgid "casting" +msgstr "чтение заклинания" + +#: lang/json/activity_type_from_json.py +msgid "studying" +msgstr "изучение" + +#: lang/json/activity_type_from_json.py +msgid "drinking" +msgstr "питьё" + +#: lang/json/activity_type_from_json.py +msgid "using drugs" +msgstr "употребление препаратов" + +#: lang/json/activity_type_from_json.py +msgid "using the mind splicer" +msgstr "использование мыслесоединителя" + +#: lang/json/activity_type_from_json.py +msgid "hacking console" +msgstr "взлом консоли" #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" @@ -81244,6 +81781,10 @@ msgstr ".700 Нитро-Экспресс" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr ".45-70" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "гвозди" @@ -83420,6 +83961,10 @@ msgstr "Поставить кустарную кровать" msgid "Build Straw Bed" msgstr "Поставить соломенную кровать" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "Насыпать кучу листьев" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "Построить кровать с нуля" @@ -84745,6 +85290,27 @@ msgid "" "AI tag for when monsters are hit by player. This is a bug if you have it." msgstr "Тэг ИИ, если монстра ударил игрок. Если видите надпись — это сбой." +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "Носит ездока" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "Тэг ИИ для существ, несущих ездока. Если видите надпись — это сбой." + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "В упряжи" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" +"Тэг ИИ для существ в упряжи транспорта. Если видите надпись — это сбой." + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "Мирный монстр" @@ -85046,6 +85612,16 @@ msgstr "Носит броню" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "Тэг ИИ для существ, носящих броню. Если видите надпись — это сбой." +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "Носит седло" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "Тэг ИИ для существ, носящих седло. Если видите надпись — это сбой." + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "Связанный" @@ -85197,6 +85773,20 @@ msgstr "" msgid "The scream dazes you!" msgstr "Крик оглушает вас!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "Езда" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "Вы едете на животном." + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "Вы забираетесь на скакуна." + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "В огне" @@ -87063,6 +87653,56 @@ msgstr "Вас защищает Морозная броня." msgid "Your Frost Armor melts away." msgstr "Ваша Морозная броня тает и исчезает." +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" +"Нечеловеческие мышцы разрывают ваше тело, ваши конечности удлиняются, а " +"глаза тускло светятся зелёным." + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "Выше тело быстро возвращается в обычное состояние." + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "Корни и лианы оплетают ваших противников." + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "Корни и лианы оплетают ваших противников, замедляя их!" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "Корни и лианы усыхают и отмирают." + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "Пронзающие Корни" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "Корни вырываются из-под земли и пронзают ваших противников!" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "Кислотный ожог" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "Обожжён кислотой" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "Застреваете в лёгких силках" @@ -87916,6 +88556,15 @@ msgstr "" "выживших. Даже если у вас нет снаряжения, всегда есть потребность в рабах и " "свежем мясе." +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "Пчёлы-мутанты" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "Пчёлы-мутанты, ненавидящие всех." + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "Божья община" @@ -88143,8 +88792,7 @@ msgstr "Баррикада. Для перегораживания дорог." msgid "smash!" msgstr "грохот!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "«бум»." @@ -88201,8 +88849,8 @@ msgstr "" "Большая пробковая доска для объявлений и вывешивания разных заметок. " "Прикрепите записки для других выживальщиков." -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "треск!" @@ -88305,6 +88953,19 @@ msgstr "соломенная кровать" msgid "Kinda itches when you lay on it." msgstr "Удобная, но может заставить чесаться, если лечь на неё." +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "куча листьев" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" +"Довольно большая куча листьев. Вы можете в неё поспать, если вам всё равно " +"на удобство или тепло." + #: lang/json/furniture_from_json.py msgid "sink" msgstr "раковина" @@ -88804,10 +89465,20 @@ msgstr "Что тут лежит? Подойдите и узнаете!" msgid "canvas wall" msgstr "брезентовая стена" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "Стена из натянутой водонепроницаемой ткани." + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "хлопок!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "Стена из натянутой прочной водонепроницаемой ткани." + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "брезентовая заслонка" @@ -89257,6 +89928,16 @@ msgid "A metal shooting target in the rough shape of a human." msgstr "" "Металлическая мишень для стрельбы, отдалённо напоминающая силуэт человека." +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "Простой цветок-колокольчик. Красивенький." + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "Пышный цветок с множеством плотно уложенных лепестков." + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -89276,15 +89957,35 @@ msgstr "" "Этот цветок похож на остальные заражённые грибком цветы, но его стебель " "ярко-голубого цвета, а его запах одурманивающий и... аппетитный?" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" +"Повсеместный сорняк с жёлтым цветком. Его семена разносятся ветром благодаря" +" тонким серым волокнам." + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "Ах, успокаивающий ромашковый чай." +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" +"Красивый яркий цветок с лепестками, образующими чашечку на верхушке стебля." + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "цветок молочая" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "Жёлто-зелёный цветок, растущий густыми кустами." + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "рогоз" @@ -89296,6 +89997,37 @@ msgid "" "edible." msgstr "Это полезное растение растёт круглый год. Многие его части съедобны." +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" +"Жёлтый цветок с тёмным шариком посерёдке. Иногда его называют 'бычий глаз'." + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "Красивый цветок с разнообразной окраской." + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" +"Прелестный цветок, растущий на поверхности пресноводных водоёмов. " +"Традиционно связан с восточной культурой." + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" +"Высокий широкий цветок с большой тёмной сердцевиной. Источник множества " +"питательных семян." + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "лист кувшинки" @@ -89423,6 +90155,15 @@ msgstr "" msgid "ergometer" msgstr "эргометр" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" +"Машина для упражнений. Без энергии она не поможет в ваших занятиях. В ней " +"есть полезные электронные запчасти." + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -89490,6 +90231,14 @@ msgstr "дыщ." msgid "canvas floor" msgstr "брезентовый пол" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" +"Подстилка из натянутой водонепроницаемой ткани. Отделяет грязь от палатки." + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -89545,7 +90294,7 @@ msgstr "терминал АЗС" #. ~ Description for automated gas console #: lang/json/furniture_from_json.py msgid "Automated gas flow control console." -msgstr "" +msgstr "Консоль автоматического контроля потока газа." #: lang/json/furniture_from_json.py msgid "broken automated gas console" @@ -89555,7 +90304,7 @@ msgstr "сломанный терминал АЗС" #: lang/json/furniture_from_json.py msgid "" "Automated gas flow control console. Broken. This is not a good thing." -msgstr "" +msgstr "Консоль автоматического контроля потока газа. Сломана. Это нехорошо." #: lang/json/furniture_from_json.py msgid "smoking rack" @@ -89610,6 +90359,15 @@ msgstr "глиняная печь" msgid "A kiln designed to bake clay pottery and bricks." msgstr "Печь для обжига глиняной керамики и кирпичей." +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" +"Невысокая складная лесенка. Поможет забраться на крышу или кого-нибудь " +"замедлить." + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "маленький валун" @@ -89649,6 +90407,11 @@ msgstr "И как, интересно, вы планируете его сдви msgid "stone slab" msgstr "каменная плита" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "Плоская пластина тяжёлого камня." + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "наручники" @@ -90624,14 +91387,22 @@ msgstr "" "Участок расчищенной земли, чтобы что-нибудь собирать. Медленнее, чем на " "верстаке или держа в руках, но готово здесь и сразу." -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "мутировавший кактус" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "татами" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" +"Татами - разновидность напольного покрытия в традиционных японских комнатах." + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "мутировавший кактус" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -90652,12 +91423,14 @@ msgstr "" #: lang/json/furniture_from_json.py msgid "hydroponics unit" -msgstr "" +msgstr "гидропонная установка" #. ~ Description for hydroponics unit #: lang/json/furniture_from_json.py msgid "This is a self-contained hydroponics unit used to grow crops indoors." msgstr "" +"Автономная гидропонная установка для выращивания сельскохозяйственных " +"растений в комнатных условиях." #: lang/json/furniture_from_json.py msgid "hydroponics unit with seed" @@ -90926,8 +91699,7 @@ msgstr "Оружие отладки, стреляет кислотными сг msgid "auto" msgstr "авто" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "винтовка" @@ -93752,6 +94524,54 @@ msgstr "" "Taurus Raging Bull - пятизарядный револьвер под калибр .454 Casull. Обладает" " впечатляющей останавливающей мощью." +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "Marlin 1895 SBL" +msgstr[1] "Marlin 1895 SBL" +msgstr[2] "Marlin 1895 SBL" +msgstr[3] "Marlin 1895 SBLs" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" +"Удобное и мощное рычажное ружьё под патрон .45-70. Предназначена для защиты " +"лесников от крупных хищников вроде медведей, лосей и динозавров." + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -94893,6 +95713,14 @@ msgstr[1] "термоядерных бластера" msgstr[2] "термоядерных бластеров" msgstr[3] "термоядерный бластер" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "одиночный выстрел" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "тройной выстрел" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -95765,7 +96593,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "blast" -msgstr "" +msgstr "взрыв" #: lang/json/gun_from_json.py msgid "pellet gun" @@ -96802,6 +97630,22 @@ msgstr "" "гранатомёт многоцелевого назначения. Широко использовался американскими " "военными." +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "Древолук" +msgstr[1] "Древолука" +msgstr[2] "Древолуков" +msgstr[3] "Древолуки" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" +"Магически созданный изукрашенный лук из прочной гибкой древесины. Когда вы " +"оттягиваете тетиву, появляется такая же магически вызванная стрела." + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -98605,6 +99449,26 @@ msgstr "" "Встроенный тяжёлый ствол от Лидворкс специально спроектирован для " "продолжительной стрельбы. Увеличивает урон и дальность поражения." +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "Мощный выстрел" +msgstr[1] "Мощный выстрел" +msgstr[2] "Мощный выстрел" +msgstr[3] "Мощный выстрел" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" +"Псевдопредмет - встроенная часть термоядерного бластера в максимально мощном" +" режиме стрельбы." + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "цевьё" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -99487,10 +100351,6 @@ msgstr "" "Этот мини-огнемёт создан таким образом, что его можно прикрепить практически" " к любому оружию, что колоссально повышает его смертоносность." -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "цевьё" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -99942,10 +100802,10 @@ msgstr "" #: lang/json/gunmod_from_json.py msgid "diffracting lens" msgid_plural "diffracting lenss" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "дифракционная линза" +msgstr[1] "дифракционных линзы" +msgstr[2] "дифракционных линз" +msgstr[3] "дифракционные линзы" #: lang/json/gunmod_from_json.py msgid "" @@ -99953,6 +100813,9 @@ msgid "" "beam into several lower powered beams. This slightly increases point-blank " "damage and makes it difficult to not hit, but reduces range" msgstr "" +"Набор оптики для лазерного оружия, благодаря которому лазерный луч " +"расщепляется на несколько лучей меньшей мощности. Это увеличивает урон при " +"стрельбе в упор, но значительно снижает дальность выстрела." #: lang/json/gunmod_from_json.py msgid "tactical flashlight" @@ -102606,7 +103469,7 @@ msgstr "" msgid "" "This item disappears as soon as its timer runs out whether it is food or " "not." -msgstr "" +msgstr "Этот предмет исчезает после истечения своего таймера." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -102857,6 +103720,8 @@ msgid "" "This gear requires careful balance to use. Being hit while wearing it could " "make you fall down." msgstr "" +"Это снаряжение требует осторожного баланса. Если вы получаете удар, то " +"можете свалиться на землю." #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -104259,6 +105124,10 @@ msgstr "Карта запахов" msgid "View Temperature Map" msgstr "Посмотреть температурную карту" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "Сменить стиль боковой панели" @@ -104299,6 +105168,10 @@ msgstr "Вкл/выкл авто-копание" msgid "Toggle Auto Foraging" msgstr "Вкл/выкл авто-сбор" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "Меню действий" @@ -105146,16 +106019,6 @@ msgstr "Центрифуга" msgid "Analyze blood" msgstr "Анализ крови" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "Обезболивающее Лечение" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -106908,36 +107771,36 @@ msgstr "" #: lang/json/martial_art_from_json.py msgid "Panzer Kunst" -msgstr "" +msgstr "Panzer Kunst" #. ~ Description for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py msgid "" "A futuristic martial art devised for cyborgs fighting in zero-gravity " "environments." -msgstr "" +msgstr "Футуристичное боевое искусство для киборгов в условиях невесомости." #: lang/json/martial_art_from_json.py msgid "Verschlag" -msgstr "" +msgstr "Verschlag" #. ~ Description of buff 'Verschlag' for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py msgid "You have imparted a powerful shockwave to your enemy" -msgstr "" +msgstr "Вы направили в противника мощную ударную волну." #: lang/json/martial_art_from_json.py msgid "Schatten Folgen" -msgstr "" +msgstr "Schatten Folgen" #: lang/json/martial_art_from_json.py msgid "Einsatzrhythmen" -msgstr "" +msgstr "Einsatzrhythmen" #. ~ Description of buff 'Einsatzrhythmen' for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py msgid "Perception increases dodging ability, +1 block" -msgstr "" +msgstr "Восприятие увеличивает уклонение, +1 блок" #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" @@ -108700,7 +109563,7 @@ msgstr "" "этой фотографией..." #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" "Ты выглядишь как довольно матёрый выживший, думаю ты сможешь как-нибудь " "взломать этот замок, или что-то такое." @@ -108947,129 +109810,284 @@ msgid "" msgstr "Я попробую и доложу капитану результаты изученных сигналов." #: lang/json/mission_def_from_json.py -msgid "Return Field Data" -msgstr "Вернуть полевые данные" +msgid "Reach Refugee Center" +msgstr "Добраться до центра беженцев" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." +msgstr "Принести Дино Дэйву рулон монтажной ленты." #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." msgstr "" -"Нет, сказано тебе... [Вы слышите короткий приглушённый спор через интерком] " -"Что ж, ты нам можешь пригодиться. Это опасно и ты сильно рискуешь погибнуть," -" но в случае успеха мы дадим тебе ограниченный доступ к нашим ресурсам." +"Вот эти вот очень, очень годные. Нужно что-то, чтобы они, ну, были вместе. " +"Окружить их, светлая сторона и тёмная сторона." + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "Принеси мне Силу!" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "Ох, чувак, огромное спасибо, дружище. Ты не пожалеешь." + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "Не думаю." + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "Осторожно, он тоже это ищет." + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "...что?" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "О, это так классно, так классно!" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "Эх, плохи дела. Наверно, они всё съели." + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." +msgstr "Принести Дино Дэйву 40 маленьких картонных коробок." #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" -"Одна из наших учёных недавно вышла из лаборатории для проведения полевых " -"исследований на роботе-прототипе и так и не вернулась, с тех пор мы ничего о" -" ней не слышали. Найди её и возвращайся с ней и прототипом. Если не выйдет, " -"возвращайся с регистратором, закреплённым на прототипе." +"Начнём с мелких, ага? Мелкие коробочки для сохранения мелких штучек. Мне б " +"они пригодились." #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." -msgstr "Мы ценим твою помощь, удачи." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" +msgstr "" +"Начнём с мелких, ага? Мелкие коробочки для сохранения мелких штучек. Мне б " +"они пригодились. Их мне нужно несколько. Ну ты понял, маленькие? Можешь " +"принести мне, что ли... эээ... сорок?" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." -msgstr "Тогда и от нас помощи не жди." +msgid "Got the little ones yet?" +msgstr "У тебя есть маленькие?" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" -"Если робот всё ещё функционирует, не пытайся уничтожить его в лоб, потому " -"что он СПОСОБЕН убить тебя. Доктор Прадо ушла из Центра с несколькими " -"электромагнитными гранатами, выключи робота с их помощью." +"Вот эти вот очень, очень годные. Нужно что-то, чтобы они, ну, были вместе. " +"Окружить их, светлая сторона и тёмная сторона. Принеси мне Силу!" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" -msgstr "Разве тебе нечем заняться?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" +"Она повсюду нас окружает... но нашёл ли ты её в грубой материальной форме?" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" +msgstr "Принести Дино Дэйву 10 средних картонных коробок." #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" -"К сожалению, получилось только извлечь данные, но всё равно передаём тебе " -"нашу благодарность." +"Десять коробок побольше, пожалуйста. Список не врёт. Ты так здорово " +"помогаешь." #: lang/json/mission_def_from_json.py -msgid "Simply useless..." -msgstr "Просто бесполезно..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." +msgstr "" +"Десять коробок побольше, пожалуйста. Список не врёт. Ты так здорово " +"помогаешь. В списке ещё кое-что есть, но мы уже одолели более половины." #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" -msgstr "Укради мысли мертвеца" +msgid "Any luck? Bigger ones?" +msgstr "Свезло? С теми, что побольше?" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "Какое счастье!" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" +msgstr "Принести Дино Дэйву 10 больших пластиковых листов." #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" -"Когда начались портальные штормы, правительство отдало приказ об эвакуации " -"наиболее важного персонала XEDRA и послало конвои, чтобы их забрать. Наш " -"глава разработки ИИ был в числе отозванных. Недавно мы выяснили, что он " -"погиб, когда на конвой напали во время начинающегося хаоса, но его тело и " -"имплант памяти могут всё ещё быть достаточно целыми, чтобы извлечь ценные " -"знания. Мы хотим, чтобы ты отправился на место, сделал копию бионического " -"импланта памяти и вернул её нам." +"Если я останусь здесь, мне оно будет без надобности, но они могут вышвырнуть" +" меня прочь, так что мне, наверное, нужен пластик просто на всякий случай. " +"Мне это не нравится, песочный человек умеет чуять сквозь пластик, а картон " +"всё равно прочнее." #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." msgstr "" -"Помни, проведи извлечение /в точности/ как указано, иначе бионический " -"имплант самоуничтожится." +"Если я останусь здесь, мне оно будет без надобности, но они могут вышвырнуть" +" меня прочь, так что мне, наверное, нужен пластик просто на всякий случай. " +"Мне это не нравится, песочный человек умеет чуять сквозь пластик, а картон " +"всё равно прочнее. Дай мне несколько пластиковых листов." + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "Мы почти закончили." + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." +msgstr "В хозяйственных магазинах и на лесопилках их полно." #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" msgstr "" -"Да, мы понимаем, что просим что-то исключительное. Возвращайся, если " -"передумаешь." +"Мне правда неудобно тебя за таким посылать, это опасно. Нашёл что-нибудь?" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "Прекрасно, пойдёт идеально!" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "Эх, плохо дело." + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" +msgstr "Принести Дино Дэйву 5 больших картонных коробок." #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" -"Ты же знаешь, на что похож имплант памяти, так? Матово-серый, размером с " -"таблетку, прямо перед мозолистым телом. Мы советуем ввести щипцы сквозь " -"глазницу, немного встряхивая, затем медленно и аккуратно..." +"Последняя просьба для тебя. Я сам собрал всё остальное, с такой кучей " +"картона было плёвое дело. Можешь достать мне пять действительно больших " +"картонных коробок?" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" -msgstr "У тебя есть копия?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." +msgstr "" +"Последняя просьба для тебя. Я сам собрал всё остальное, с такой кучей " +"картона было плёвое дело. Можешь достать мне пять действительно больших " +"картонных коробок? Ещё пять картонных коробок, самых больших, что найдёшь. У" +" меня уже есть пара штук, мне не хватает ровно столько." #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." -msgstr "Передаём нашу благодарность и оплату." +msgid "Yes! The home stretch!" +msgstr "О да! Финишная прямая!" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "Добраться до центра беженцев" +msgid "Oh man, but we're so close!" +msgstr "Блин, ну мы ж почти всё!" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "Поищи на складах." + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "Принёс ли ты те последние коробки?" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "Чудесно! Ты настоящий герой. Я сейчас попробую их уместить." + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "Нет! Боже, нет, этого не может быть..." + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "Найти Коран для Фатимы" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "Мне бы пригодилась помощь в поисках Корана." + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" +"Мне неудобно об этом просить, но дело такое. Я никогда всерьёз не " +"зачитывалась святыми книгами и всем таким. Я обычно ходила в мечеть по " +"пятницам и пыталась молиться пять раз на дню, но толком мне не удалось. " +"Наверное, мусульманка из меня так себе, но после всех событий мне б правда " +"хотелось, чтоб у меня был Коран. Похоже, время снова наладить связь с Богом?" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "Спасибо. Я постараюсь найти тебе небольшое вознаграждение." + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "Всё хорошо. Спасибо за предложение." + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" +"Он не такой популярный, как Библия, но должен лежать в большинстве библиотек" +" и книжных магазинов. Убедись, что нашёл переведённую книгу, я не умею " +"читать по-арабски!" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" +"Большое спасибо. Меня очень успокаивает просто то, что он у меня есть. Я " +"отработала несколько смен сверхурочно и подкопила кое-чего, если у тебя всё " +"получится. Вот, держи. Тут немного, но я надеюсь, хоть что-то." + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "И что толку?" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "" +"Всё нормально. Всё равно я не уверена, нашла ли бы я утешение в старой " +"книге." #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." -msgstr "Принесите Дженни мотор для её компрессора." +msgstr "Принести Дженни электродвигатель для её компрессора" #: lang/json/mission_def_from_json.py msgid "" @@ -109180,6 +110198,196 @@ msgstr "" "Хм. Это не сработает так, как я думала. Наверно, придётся начать всё " "сначала." +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "Найти 5 аптечек" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" +"Тут у нас есть доктор, он помогает всем, кто может заплатить... но мы почти " +"все деньги тратим на еду. Я смогу полечить простые порезы, ушибы и всё " +"такое, если бы мне было чем лечить. Можешь ли достать мне несколько аптечек?" +" На какое-то время пяти должно хватить." + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "Огромное спасибо. Штука простая, но очень нам поможет." + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "Всё хорошо. Уверена, мы как-то справимся." + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" +"Народ часто держал аптечки в ванной. Уверена, что мародёры не до всех " +"добрались." + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" +"Огромное спасибо. Слушай, я рассказала остальным, что ты хочешь нам помочь, " +"и мы скинулись, чтоб тебя отблагодарить. Тут немного, но всё, что есть... " +"это мерчи, местные деньги, на них можно закупиться в магазине." + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "Найти 6 пачек Прозака для Йен" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "Нам бы пригодилась твоя помощь..." + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" +"Наверно, мне не стоит назначать таблетки, но тут куча народу с бессонницей. " +"Если ты принесёшь антидепрессанты, мы с Ризеей сумеем их честно поделить, " +"чтоб ради их покупки никому не пришлось голодать. Пока что нам хватит запаса" +" на три месяца - шесть пачек." + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" +"Прозак раньше был очень популярен. Ты его найдёшь почти в каждой аптеке или " +"домашнем ящике с лекарствами." + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" +"Огромное спасибо. Слушай, я рассказала остальным, что ты хочешь нам помочь, " +"и мы скинулись, чтоб тебя отблагодарить. Ты нам очень помог." + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "Найти Ванессе набор для стрижки" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "Если б у меня были инструменты, я б смогла тут помочь как парикмахер." + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" +"Во время эвакуации я даже не думала прихватить своё парикмахерское барахло. " +"Если б ты нашёл мне хотя бы простецкий набор для стрижки, я бы помогла " +"народу навести порядок с причёсками. Я даже бесплатно подстригу тебя за " +"хлопоты." + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" +"Круто, спасибо. Я бы хотела быть полезной и не пялиться на столько лохматых " +"колтунов." + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "Как хочешь. Тогда я продолжу сидеть сложа руки." + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" +"Мне не так уж много и надо. Ножницы, зеркальце, кусочек ткани и что-то, в " +"чём можно это хранить в нерабочее время, типа кожаного футляра или навроде. " +"Всё остальное я сама достану из запасов убежища." + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" +"Что ж, вполне сгодится. Чёрт, эти ножницы такие классные, что я необъяснимым" +" образом смогу удлинить или перекрасить тебе волосы." + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" +"Серьёзно? Ты не смог найти *ножницы*? Как же ты шнурки-то завязываешь?" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "Найти 50 трёхлитровых банок" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "У меня есть для тебя работа." + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" +"Всё верно. Когда ты принёс нам те баночки, я призадумался, а не расширить ли" +" нам наши пищевые запасы с сушёной еды до консервированной. Нам бы " +"пригодились большие банки для крупных продуктов. Не принесёшь ли 50 " +"трёхлитровых банок? Я заплачу Сертифицированную банкноту за каждую пару." + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" +"Благодарю. Как только мы при помощи кое-каких наших жителей запустим " +"кустарное производство, я смогу покупать небольшие партии таких банок у тебя" +" и у других выживальщиков. Этого будет достаточно, чтоб опробовать наше " +"оборудование." + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "О, ладно. Спасибо, я поищу другого поставщика." + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "Бакалеи, кухни в домах, посмотреть можно много где." + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" +"Ого, это куда больше банок, чем казалось на бумаге. Спасибо. Вот твоя " +"оплата." + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "Интересно, и куда делись все банки..." + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "Зачистить задние комнаты" @@ -109191,15 +110399,17 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"Если вы и правда хотите протянуть руку помощи, то вы могли бы зачистить " -"задний отсек от мертвецов. В первые дни Катаклизма мы боялись и нос высунуть" -" отсюда, поэтому складывали наших мертвецов и зомби, которых нам удалось " -"убить, в закрытый задний отсек. Наш многообещающий лидер тоже пал... он " -"превратился во что-то чуждое. Убейте их всех и удостоверьтесь, что они нас " -"больше не потревожат. Мы не в состоянии много заплатить за это, но зачистка " -"поможет нам вернуть наш отсек." +"Если ты и правда хочешь протянуть руку помощи, то нам бы понадобился кто-то " +"для зачистки мертвецов в задней комнате. В первые дни Катаклизма мы боялись " +"и нос высунуть отсюда, поэтому складывали наших мертвецов и зомби, которых " +"нам удалось убить, в закрытую заднюю комнату. Наш многообещающий лидер тоже " +"пал... он превратился во что-то иное. Убей их всех и удостоверься, что они " +"нас больше не потревожат. Много заплатить мы не сможем, если не считать " +"нашей внутренней валюты, от которой пока проку мало, но ты поможешь нам " +"отбить комнату." #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -109222,10 +110432,15 @@ msgstr "Они больше нас не побеспокоят?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." msgstr "" -"Спасибо вам. Я был на гране нервного срыва, ощущая такую большую угрозу " -"практически у себя дома." +"Спасибо, такая-то угроза совсем рядом действовала на нервы. Вот тебе наши " +"Сертифицированные Банкноты, мы платим ими рабочим в обмен на припасы. Они " +"имеют ценность в центре как предмет торговли, я боюсь, пока это всё, чем мы " +"можем заплатить." #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -109239,15 +110454,17 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"Это будет немного сложнее, чем в прошлый раз. Недавно мы потеряли контакт с " -"группой добытчиков, направляющихся к нам с целью торговли, и мы бы хотели, " -"чтобы вы разузнали, в чём дело. Скорее всего они были застигнуты врасплох " -"бандой рейдеров или ордой. Я могу дать вам координаты их последнего радио " -"сообщения, но не более того. В любом случае разберитесь с угрозой, чтобы они" -" смогли продолжить свой путь в относительной безопасности. Лучшее, что я " -"смогу предложить в качестве награды, - припасы, которые они перевозили." +"Будет немного сложнее, чем в прошлый раз. Недавно мы потеряли контакт с " +"группой добытчиков, направляющихся к нам поторговать, и мы бы хотели, чтобы " +"ты разузнал, в чём дело. Скорее всего, их застигли врасплох рейдеры или " +"орда. Я дам координаты их последнего сообщения, но это всё. В любом случае " +"разберись с угрозой, чтобы добытчики смогли путешествовать в относительной " +"безопасности. Лучшее, что я смогу предложить в качестве награды - их припасы" +" плюс тридцать сертифицированных банкнот - это наши внутренние деньги, ими " +"можно торговать и всё такое." #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -109279,14 +110496,18 @@ msgstr "Добыть проект" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"В новом поселении, которое мы основали, могла бы пригодиться ваша помощь. " -"Нужно, чтобы вы получили план прораба, прежде чем мы начнём отсылать " -"дополнительных беженцев в фермерскую коммуну. Поговорите с прорабом - он " -"даст более точные указания." +"Мы недавно отослали несколько умелых людей для основания поселения, чтоб у " +"нас был запас пищи в безопасном месте. Там бы пригодились твои услуги. Мне " +"нужно, чтобы ты взял у прораба планы развития, прежде чем мы пошлём к нему в" +" фермерскую коммуну ещё беженцев. Поговори с прорабом для конкретных " +"поручений. Если справишься, получишь 50 Сертифицированных Банкнот." #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -109303,33 +110524,30 @@ msgstr "У тебя есть проект?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." +"you, here's your money." msgstr "" -"Благодаря этому мы сможем убедить других вложить свои силы в эту коммуну. " -"Спасибо." +"С этими планами мы убедим остальных вложиться в коммуну. Спасибо, вот твоя " +"оплата." #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" -msgstr "Найти 25 плутониевых батарей" +msgid "Find 10 solar panels" +msgstr "Найти 10 солнечных батарей" #: lang/json/mission_def_from_json.py msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" "Мы планируем заново соорудить инфраструктуру и хотели бы включить парочку " "новых электрических систем... К несчастью, сейчас мы зависим от чего-то под " "названием РИТЭГ. Разумеется, мы не можем запускать обычные генераторы под " -"землёй. У военных до Катаклизма были какие-то новые ёмкие батареи для " -"экспериментального оружия, и я слышал, что они сгодятся как временное " -"решение. Наши яйцеголовые заявляют, что смогут заново использовать " -"плутониевые ядра и собрать больше РИТЭГов. Дело непростое." +"землёй. У нас здоровенная плоская крыша, и нам бы пригодились солнечные " +"батареи, чтобы улучшить наши энергоресурсы. За, скажем, десять солнечных " +"панелей мы заплатим очень неплохо." #: lang/json/mission_def_from_json.py msgid "If you can do this for us our survival options would vastly increase." @@ -109338,14 +110556,8 @@ msgstr "" "увеличатся." #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." -msgstr "" -"Тут я не помощник, я никогда даже не видел ни одной этой плутониевой " -"батареи... или что они на самом деле такое, мне каждый раз читают лекцию, " -"когда я их так называю." +msgid "Solar panels are pretty common on electric cars and on rooftops." +msgstr "Солнечные батареи часто есть на электромобилях и на крышах домов." #: lang/json/mission_def_from_json.py msgid "" @@ -109356,23 +110568,27 @@ msgstr "" "Спасибо за помощь." #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" -msgstr "Найти 40 консервов" +msgid "Find 100 canning jars" +msgstr "Найти 100 банок" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" "Хотя нам удаётся добывать ежедневные продукты, мы едва сводим концы с " "концами. Наших запасов едва хватит на пару дней, если нас отрежут взаперти. " -"Во избежание этого нам нужен склад. Требуется что-то с длительным сроком " -"хранения, консервы вполне подойдут. Принеси нам около 40 банок, и мы сможем " -"пережить любые проблемы на нашем пути." +"Во избежание этого нам нужен склад. Благодаря нашему фермерскому поселению у" +" нас появились свежие мясо и овощи, но их надо как-то сохранить. Кое-кто из " +"наших людей разбирается в консервировании, так что нам нужны банки для " +"мясных и овощных консервов, чтобы подготовиться к зиме. Я отлично заплачу, " +"если ты принесёшь нам около сотни банок для начала." #: lang/json/mission_def_from_json.py msgid "" @@ -109384,20 +110600,25 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." +" If you reconsider let me know." msgstr "" "Мы немного подождём, но я заработаю язву, если продолжу беспокоиться. Дай " "знать, если передумаешь." -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." -msgstr "Бакалеи, кухни в домах, посмотреть можно много где." - #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." -msgstr "Одной проблемой меньше. Я рад, что с нами кто-то вроде тебя." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." +msgstr "" +"Одной проблемой меньше. Я рад, что ты на нашей стороне. Вот 25 мерчей, и " +"торговец купит у тебя все стеклянные банки, что найдёшь - правда, по " +"сбавленной цене, иначе мы не потянем. На самом деле торговец заявил, что у " +"него для тебя есть ещё такая работа, и будет проще связываться насчёт работы" +" с ним напрямую." #: lang/json/mission_def_from_json.py msgid "" @@ -109781,6 +111002,123 @@ msgstr "" "навыки. Не забудьте надеть свой значок перед встречей с ними. И ещё раз " "спасибо вам, маршал." +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "Вернуть полевые данные" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" +"Нет, сказано тебе... [Вы слышите короткий приглушённый спор через интерком] " +"Что ж, ты нам можешь пригодиться. Это опасно и ты сильно рискуешь погибнуть," +" но в случае успеха мы дадим тебе ограниченный доступ к нашим ресурсам." + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" +"Одна из наших учёных недавно вышла из лаборатории для проведения полевых " +"исследований на роботе-прототипе и так и не вернулась, с тех пор мы ничего о" +" ней не слышали. Найди её и возвращайся с ней и прототипом. Если не выйдет, " +"возвращайся с регистратором, закреплённым на прототипе." + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "Мы ценим твою помощь, удачи." + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "Тогда и от нас помощи не жди." + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" +"Если робот всё ещё функционирует, не пытайся уничтожить его в лоб, потому " +"что он СПОСОБЕН убить тебя. Доктор Прадо ушла из Центра с несколькими " +"электромагнитными гранатами, выключи робота с их помощью." + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "Разве тебе нечем заняться?" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" +"К сожалению, получилось только извлечь данные, но всё равно передаём тебе " +"нашу благодарность." + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "Просто бесполезно..." + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "Укради мысли мертвеца" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" +"Когда начались портальные штормы, правительство отдало приказ об эвакуации " +"наиболее важного персонала XEDRA и послало конвои, чтобы их забрать. Наш " +"глава разработки ИИ был в числе отозванных. Недавно мы выяснили, что он " +"погиб, когда на конвой напали во время начинающегося хаоса, но его тело и " +"имплант памяти могут всё ещё быть достаточно целыми, чтобы извлечь ценные " +"знания. Мы хотим, чтобы ты отправился на место, сделал копию бионического " +"импланта памяти и вернул её нам." + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" +"Помни, проведи извлечение /в точности/ как указано, иначе бионический " +"имплант самоуничтожится." + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" +"Да, мы понимаем, что просим что-то исключительное. Возвращайся, если " +"передумаешь." + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" +"Ты же знаешь, на что похож имплант памяти, так? Матово-серый, размером с " +"таблетку, прямо перед мозолистым телом. Мы советуем ввести щипцы сквозь " +"глазницу, немного встряхивая, затем медленно и аккуратно..." + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "У тебя есть копия?" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "Передаём нашу благодарность и оплату." + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "Изготовить 2 дистиллятора" @@ -112453,7 +113791,7 @@ msgstr "Ваша кожа цвета бронзы или загара." #: lang/json/mutation_from_json.py msgid "Facial hair: none" -msgstr "Волосы на лице: нет" +msgstr "Растительность на лице: нет" #. ~ Description for Facial hair: none #: lang/json/mutation_from_json.py @@ -112466,7 +113804,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: goatee" -msgstr "Волосы на лице: козлиная бородка" +msgstr "Растительность на лице: нет: козлиная бородка" #. ~ Description for Facial hair: goatee #: lang/json/mutation_from_json.py @@ -112475,7 +113813,7 @@ msgstr "У вас короткая борода на кончике подбор #: lang/json/mutation_from_json.py msgid "Facial hair: circle beard" -msgstr "Волосы на лице: круговая борода" +msgstr "Растительность на лице: нет: круговая борода" #. ~ Description for Facial hair: circle beard #: lang/json/mutation_from_json.py @@ -112486,7 +113824,7 @@ msgstr "У вас усы и короткая борода, образующие #: lang/json/mutation_from_json.py msgid "Facial hair: royale beard" -msgstr "Волосы на лице: борода ройал" +msgstr "Растительность на лице: нет: борода ройал" #. ~ Description for Facial hair: royale beard #: lang/json/mutation_from_json.py @@ -112496,7 +113834,7 @@ msgstr "У вас усы и короткая борода под губами." #: lang/json/mutation_from_json.py msgid "Facial hair: anchor beard" -msgstr "Волосы на лице: борода якорь" +msgstr "Растительность на лице: нет: борода якорь" #. ~ Description for Facial hair: anchor beard #: lang/json/mutation_from_json.py @@ -112510,7 +113848,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: short boxed beard" -msgstr "Волосы на лице: борода короб" +msgstr "Растительность на лице: нет: борода короб" #. ~ Description for Facial hair: short boxed beard #: lang/json/mutation_from_json.py @@ -112523,7 +113861,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: chevron moustache" -msgstr "Волосы на лице: усы шеврон" +msgstr "Растительность на лице: нет: усы шеврон" #. ~ Description for Facial hair: chevron moustache #: lang/json/mutation_from_json.py @@ -112532,7 +113870,7 @@ msgstr "Ваши усы полностью закрывают верхнюю г #: lang/json/mutation_from_json.py msgid "Facial hair: 3-day stubble" -msgstr "Волосы на лице: трёхдневная щетина" +msgstr "Растительность на лице: нет: трёхдневная щетина" #. ~ Description for Facial hair: 3-day stubble #: lang/json/mutation_from_json.py @@ -112543,7 +113881,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: horseshoe" -msgstr "Волосы на лице: подкова" +msgstr "Растительность на лице: нет: подкова" #. ~ Description for Facial hair: horseshoe #: lang/json/mutation_from_json.py @@ -112554,7 +113892,7 @@ msgstr "Ваши усы спускаются к подбородку с обеи #: lang/json/mutation_from_json.py msgid "Facial hair: original moustache" -msgstr "Волосы на лице: природные усы" +msgstr "Растительность на лице: нет: природные усы" #. ~ Description for Facial hair: original moustache #: lang/json/mutation_from_json.py @@ -112566,7 +113904,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: mutton chops beard" -msgstr "Волосы на лице: борода баранья отбивная" +msgstr "Растительность на лице: нет: борода баранья отбивная" #. ~ Description for Facial hair: mutton chops beard #: lang/json/mutation_from_json.py @@ -112579,7 +113917,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: gunslinger beard" -msgstr "Волосы на лице: борода стрелка" +msgstr "Растительность на лице: нет: борода стрелка" #. ~ Description for Facial hair: gunslinger beard #: lang/json/mutation_from_json.py @@ -112588,7 +113926,7 @@ msgstr "У вас борода-подкова и не соединённые с #: lang/json/mutation_from_json.py msgid "Facial hair: chin strip" -msgstr "Волосы на лице: полоска на подбородке" +msgstr "Растительность на лице: нет: полоска на подбородке" #. ~ Description for Facial hair: chin strip #: lang/json/mutation_from_json.py @@ -112598,7 +113936,7 @@ msgstr "У вас короткая борода в виде вертикальн #: lang/json/mutation_from_json.py msgid "Facial hair: chin curtain" -msgstr "Волосы на лице: борода ширма" +msgstr "Растительность на лице: нет: борода ширма" #. ~ Description for Facial hair: chin curtain #: lang/json/mutation_from_json.py @@ -112611,7 +113949,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: chin strap" -msgstr "Волосы на лице: шкиперская борода" +msgstr "Растительность на лице: нет: шкиперская борода" #. ~ Description for Facial hair: chin strap #: lang/json/mutation_from_json.py @@ -112622,7 +113960,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: beard" -msgstr "Волосы на лице: борода" +msgstr "Растительность на лице: нет: борода" #. ~ Description for Facial hair: beard #: lang/json/mutation_from_json.py @@ -112635,7 +113973,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: handlebar moustache" -msgstr "Волосы на лице: усы велосипедный руль" +msgstr "Растительность на лице: нет: усы велосипедный руль" #. ~ Description for Facial hair: handlebar moustache #: lang/json/mutation_from_json.py @@ -112644,7 +113982,7 @@ msgstr "У вас усы с длинными завёрнутыми кончик #: lang/json/mutation_from_json.py msgid "Facial hair: neckbeard" -msgstr "Волосы на лице: шейная борода" +msgstr "Растительность на лице: нет: шейная борода" #. ~ Description for Facial hair: neckbeard #: lang/json/mutation_from_json.py @@ -112655,7 +113993,7 @@ msgstr "У вас борода из волос, растущих на шее п #: lang/json/mutation_from_json.py msgid "Facial hair: pencil moustache" -msgstr "Волосы на лице: усы карандаш" +msgstr "Растительность на лице: нет: усы карандаш" #. ~ Description for Facial hair: pencil moustache #: lang/json/mutation_from_json.py @@ -112664,7 +114002,7 @@ msgstr "У вас очень тонкие усы сразу над краем в #: lang/json/mutation_from_json.py msgid "Facial hair: shenandoah" -msgstr "Волосы на лице: шенандоа" +msgstr "Растительность на лице: нет: шенандоа" #. ~ Description for Facial hair: shenandoah #: lang/json/mutation_from_json.py @@ -112677,7 +114015,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: sideburns" -msgstr "Волосы на лице: бакенбарды" +msgstr "Растительность на лице: нет: бакенбарды" #. ~ Description for Facial hair: sideburns #: lang/json/mutation_from_json.py @@ -112690,7 +114028,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: soul patch" -msgstr "Волосы на лице: борода островок" +msgstr "Растительность на лице: нет: борода островок" #. ~ Description for Facial hair: soul patch #: lang/json/mutation_from_json.py @@ -112703,7 +114041,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: toothbrush moustache" -msgstr "Волосы на лице: усы зубная щётка" +msgstr "Растительность на лице: нет: усы щёточкой" #. ~ Description for Facial hair: toothbrush moustache #: lang/json/mutation_from_json.py @@ -112717,7 +114055,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: Van Dyke" -msgstr "Волосы на лице: Ван Дайк" +msgstr "Растительность на лице: нет: Ван Дайк" #. ~ Description for Facial hair: Van Dyke #: lang/json/mutation_from_json.py @@ -112728,7 +114066,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: walrus" -msgstr "Волосы на лице: морж" +msgstr "Растительность на лице: нет: морж" #. ~ Description for Facial hair: walrus #: lang/json/mutation_from_json.py @@ -112740,7 +114078,7 @@ msgstr "" #: lang/json/mutation_from_json.py msgid "Facial hair: The Zappa" -msgstr "Волосы на лице: Заппа" +msgstr "Растительность на лице: нет: Заппа" #. ~ Description for Facial hair: The Zappa #: lang/json/mutation_from_json.py @@ -119857,7 +121195,7 @@ msgstr "%1$s вонзает свои лезвия в %2$s" #: lang/json/mutation_from_json.py msgid "Künstler" -msgstr "" +msgstr "Künstler" #. ~ Description for Künstler #: lang/json/mutation_from_json.py @@ -119865,6 +121203,8 @@ msgid "" "You have lingering memories of training to fight cyborgs and war machines in" " zero gravity using the obscure Panzer Kunst." msgstr "" +"У вас сохранились воспоминания о тренировках сражений с киборгами и боевыми " +"машинами в невесомости при помощи тайного искусства Panzer Kunst." #: lang/json/mutation_from_json.py msgid "Magus" @@ -119988,6 +121328,174 @@ msgstr "" "особенно цикла смерти и возрождения в мире растений. Могущественный друид " "принадлежит к этому миру так же, как и к человеческому." +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "Небольшая эффективность маны" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "Вы способны хранить в своём теле немного больше маны, чем обычно." + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "Эффективность маны" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "Вы способны хранить в своём теле больше маны, чем обычно." + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "Хорошая эффективность маны" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "Вы способны хранить в своём теле намного больше маны, чем обычно." + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "Небольшая неэффективность маны" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "Вы способны хранить в своём теле немного меньше маны, чем обычно." + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "Неэффективность маны" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "Вы способны хранить в своём теле меньше маны, чем обычно." + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "Значительная неэффективность маны" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "Вы способны хранить в своём теле намного меньше маны, чем обычно." + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "Небольшое восстановление маны" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "Ваше естественное восстановление маны немного быстрее обычного." + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "Восстановление маны" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "Ваше естественное восстановление маны быстрее обычного." + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "Хорошее восстановление маны" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "Ваше естественное восстановление маны намного быстрее обычного." + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "Плохое восстановление маны" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "Ваше естественное восстановление маны немного медленнее обычного." + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "Очень плохое восстановление маны" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "Ваше естественное восстановление маны медленнее обычного." + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "Ужасное восстановление маны" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "Ваше естественное восстановление маны намного медленнее обычного." + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "Небольшая чувствительность к мане" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" +"Вы чувствуете ману в своём теле немного лучше обычного, что позволяет вам " +"черпать больше внутренних запасов." + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "Чувствительность к мане" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" +"Вы чувствуете ману в своём теле лучше обычного, что позволяет вам черпать " +"больше внутренних запасов." + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "Хорошая чувствительность к мане" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" +"Вы чувствуете ману в своём теле намного лучше обычного, что позволяет вам " +"черпать больше внутренних запасов." + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "Плохая чувствительность к мане" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "Вы плохо чувствуете ману в своём теле, что снижает доступные запасы." + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "Очень плохая чувствительность к мане" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "Ужасная чувствительность к мане" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -120172,7 +121680,8 @@ msgstr "До этого я был офицером полиции, но сейч msgid "Beggar" msgstr "Нищий" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "Беженец" @@ -120196,6 +121705,14 @@ msgstr "интерком" msgid "Reading this line is a bug" msgstr "Если вы это видите, то это баг." +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "Караванщик" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "Я владелец торгового каравана." + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -120473,14 +121990,6 @@ msgstr "" msgid "Tester" msgstr "Тестер" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "Капитан" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "Сержант первого класса" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "Бандит" @@ -120497,6 +122006,14 @@ msgstr "повар" msgid "officer" msgstr "офицер" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "Капитан" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "Сержант первого класса" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "нищий" @@ -120545,6 +122062,10 @@ msgstr "Дана Нуньес" msgid "Draco Dune" msgstr "Драко Дюн" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "Фатима аль-Жадир" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "Гарри Вилленю" @@ -120573,10 +122094,18 @@ msgstr "Мангальприт Сингх" msgid "Pablo Nunez" msgstr "Пабло Нуньес" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "Ризея Джонни" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "Стэн Бориченко" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "Йен Тран" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "Ванесса Тоби" @@ -120605,6 +122134,10 @@ msgstr "Наёмник" msgid "the intercom" msgstr "интерком" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "Свободный Торговец" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "Парикмахер" @@ -121119,10 +122652,6 @@ msgstr "подвал хижины" msgid "cabin" msgstr "хижина" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "пустырь" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "разрушенная хижина" @@ -121450,6 +122979,30 @@ msgstr "2 этаж фермерского домика" msgid "farm house roof" msgstr "крыша фермерского домика" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "просёлочная дорога" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "хранилище" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "общинное здание кампуса" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "крыша общинного здания кампуса" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "лекторий кампуса" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "крыша лектория кампуса" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "АЗС" @@ -121652,6 +123205,10 @@ msgstr "подвал отеля" msgid "motel" msgstr "мотель" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "крыша мотеля" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "вход в гипермаркет бытовых товаров" @@ -121704,6 +123261,10 @@ msgstr "крыша магазина мороженого" msgid "dollar store" msgstr "фикс-прайс" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "крыша фикс-прайса" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "ЛВС-центр" @@ -121724,6 +123285,10 @@ msgstr "эконом-магазин" msgid "daycare center" msgstr "детский сад" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "крыша детского сада" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "зоомагазин" @@ -122432,6 +123997,10 @@ msgstr "морг" msgid "fire station" msgstr "пожарное депо" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "крыша пожарной станции" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "приют для бездомных" @@ -122612,6 +124181,10 @@ msgstr "музыкальный салон" msgid "gambling hall" msgstr "зал для азартных игр" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "крыша зала азартных игр" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "стриптиз-клуб" @@ -122644,6 +124217,10 @@ msgstr "тренажёрный зал" msgid "dojo" msgstr "додзё" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "крыша додзё" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "частный парк" @@ -122728,10 +124305,6 @@ msgstr "общественный туалет" msgid "roadside foodcart" msgstr "придорожная столовая" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "просёлочная дорога" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "железная дорога" @@ -124143,6 +125716,34 @@ msgstr "" "Теперь мир уничтожен, и ничего больше не имеет значения. Но у тебя хотя бы " "остался преданный друг." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "Сумасшедший кошатник" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" +"Все мертвы? Что ж, какая разница... ведь твои кошки - все твои друзья!" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "Сумасшедшая кошатница" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" +"Все мертвы? Что ж, какая разница... ведь твои кошки - все твои друзья!" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -129072,24 +130673,24 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Battle Angel" -msgstr "" +msgstr "Боевой ангел" #. ~ Profession (male Battle Angel) description #: lang/json/professions_from_json.py msgctxt "prof_desc_male" msgid "A combat-ready cyborg once salvaged from an obscure junkyard..." -msgstr "" +msgstr "Боевой киборг, извлечённый со странной свалки..." #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Battle Angel" -msgstr "" +msgstr "Боевой ангел" #. ~ Profession (female Battle Angel) description #: lang/json/professions_from_json.py msgctxt "prof_desc_female" msgid "A combat-ready cyborg once salvaged from an obscure junkyard..." -msgstr "" +msgstr "Боевой киборг, извлечённая со странной свалки..." #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -129121,6 +130722,62 @@ msgstr "" "Ты нашла цветастую брошюру, объявляющую тебя Волшебницей. Удивительно " "спокойно на фоне рушащегося мира." +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "Кельвинист-пироманьяк" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" +"Ты всю свою жизнь любил огонь. Теперь ты обнаружил свой внутренний огонь и " +"хочешь показать его всему миру." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "Кельвинист-пироманьячка" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" +"Ты всю свою жизнь любила огонь. Теперь ты обнаружила свой внутренний огонь и" +" хочешь показать его всему миру." + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "Друид" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "Древний круг друидов сгинул в катаклизме. Природа должна жить." + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "Друид" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "Древний круг друидов сгинул в катаклизме. Природа должна жить." + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -133231,7 +134888,7 @@ msgstr "оружие" #: lang/json/skill_from_json.py msgid "spellcraft" -msgstr "" +msgstr "искусство магии" #. ~ Description for spellcraft #: lang/json/skill_from_json.py @@ -133240,6 +134897,9 @@ msgid "" "higher skill increases how quickly you can learn spells, and decreases their" " spell failure chance. You learn this skill by studying books or spells." msgstr "" +"Ваш навык волшебства. Представляет теоретическую магию и всё связанное. С " +"уровнем навыка растёт скорость изучения заклинаний и уменьшается шанс " +"провала заклинания. Вы повышаете навык, изучая книги или заклинания." #: lang/json/snippet_from_json.py msgid "Fires can spread easily, especially with abundance of fuel." @@ -133712,6 +135372,10 @@ msgstr "" "Не будьте слишком алчными. Мертвецы всё равно не смогут воспользоваться всем" " своим лутом." +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "На полу слишком жёстко спать? Соберите гору листьев." + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -138732,6 +140396,60 @@ msgstr "" "стратегическую передислокацию в подземный комплекс, известный как УБЕЖИЩЕ и " "продолжение производства PE062 там." +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" +"ЗАПИСЬ 47:\n" +"Во время обычного рабочего дня шахтёры раскопали пустую комнату. Событие вполне обычное, если не считать странной совершенно вертикальной линии разлома. В ней имеются выбоины, которые насторожили наиболее суеверных рабочих. Кажется, выбоины сделаны человеком.\n" +"ЗАПИСЬ 48:\n" +"Выбоины размером от 3 до 6 метров в высоту, расположены по всей длине разлома. Все они по форме напоминают человека, но с непропорционально растянутыми конечностями, шеей и головой, свёрнутыми в себя." + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" +"ЗАПИСЬ 49:\n" +"Мы прекратили копать в этой области, пока археологи не исследуют всё что смогут. Это задержит выполнение плана минимум на неделю. Дурацкий закон о сохранении артефактов действует уже 50 лет, и его отмена даже не рассматривалась, несмотря на то, что добыча полезных ископаемых является основой нашей экономики.\n" +"ЗАПИСЬ 52:\n" +"Всё ещё ждём, пока археологи закончат. Мы провели беглый осмотр разлома. Нашего звукового оборудования недостаточно для измерения глубины выбоин. Хотя оно и рассчитано на глубину до 25 км, оно не предназначено для таких узких туннелей, так что трудно сказать, как далеко они уходят." + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" +"ЗАПИСЬ 54:\n" +"Я заметил пару людей, отламывающих кусок вертикальной стены в той комнате. Сделаю вид, что ничего не видел. Не думаю, что яйцеголовые заметят, что маленький кусочек куда-то пропал. Шли б они все.\n" +"ЗАПИСЬ 55:\n" +"Что ж, теперь археологи не вылезают оттуда и взяли несколько проводников. Вряд ли они похожи на Индиану Джонса. Сомневаюсь даже, что они когда-либо опускались ниже чем на шесть метров. Ненавижу снимать людей с работы, чтобы нянчиться с учёными, но если они себе что-то сломают, нас закроют на хрен знает сколько.\n" +"ЗАПИСЬ 58:\n" +"Они привезли ЕЩЁ ОДНУ КОМАНДУ!? Твою ж мать, это всего лишь парочка наскальных рисунков! Я понимаю, что это один из тех случаев, что выпадают лишь раз в жизни, но неужели они не могут справиться сами?" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" +"ШАХТЁРСКИЕ РАБОТЫ ПРИОСТАНОВЛЕНЫ. УПРАВЛЕНИЕ ПЕРЕДАНО ПРОЕКТУ АМИГАРА УКАЗ №2:07В\n" +"ЗВУКОВОЕ СКАНИРОВАНИЕ РАЗЛОМА УКАЗАЛО ГЛУБИНУ 30.09 КМ\n" +"ОБНАРУЖЕН УРОН ЛИНИИ СБРОСА. РАБОТНИКИ ШАХТЫ АРЕСТОВАНЫ ЗА НАРУШЕНИЕ РАСПОРЯЖЕНИЯ №87.08 И ПЕРЕВЕДЕНЫ В ЛАБОРАТОРИЮ 89-В ДЛЯ ИСПОЛЬЗОВАНИЯ В КАЧЕСТВЕ ПОДОПЫТНЫХ\n" +"КАЧЕСТВО РАЗЛОМА НЕ НАРУШЕНО\n" +"НАЧАЛО СТАНДАРТНЫХ ВИБРАЦИОННЫХ ИСПЫТАНИЙ…" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "Это проверка системы фрагментов знаков" @@ -139899,8 +141617,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -140090,7 +141808,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -146671,6 +148389,10 @@ msgstr "Я бы хотел узнать чуть больше о тебе..." msgid "I want you to use this item." msgstr "Используй этот предмет." +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "Давай поговорим о твоём текущем занятии." + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "Держи этот предмет." @@ -146724,11 +148446,11 @@ msgid "Change your bionic power recharge rules..." msgstr "Изменить твои правила зарядки бионической энергии..." #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "Ничего особенного." @@ -146888,6 +148610,22 @@ msgstr "Оставайся на том же месте." msgid "Show me what needs to be done at the camp." msgstr "Покажи, что нужно сделать в лагере." +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "Я сейчас ничего не делаю." + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "Продолжай." + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "Пожалуйста, прекрати текущее занятие." + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "Пожалуйста, отсортируй ближайшие вещи." + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "*пшшш-пшшш* принято, выдвигаюсь, приём." @@ -148059,212 +149797,6 @@ msgstr "" "Я не собираюсь вступать в сраную секту! Засуньте себе эту ягоду куда " "подальше!" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "Касательно задания..." - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "По поводу одного из этих заданий…" - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "Здравствуйте, маршал." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "Маршал, боюсь я сейчас не могу говорить." - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "Я здесь не за главного, маршал." - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "Я как и полагается, направляю все вопросы своему лидеру, маршал." - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "Привет, гражданин… Я не уверен, что тебе можно здесь находиться. " - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "Займись своими делами, здесь нечего ловить." - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "Если тебе что-то нужно, поговори с кем либо ещё." - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "Сэр." - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "" -"Чувак, если ты можешь постоять за себя, тебе следует обратить внимание на " -"вербовку." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "Мэм." - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "" -"Эй мисс, вы не думаете, что будет безопасней вам присоединиться ко мне?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "Не обращайте на меня внимания..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "Маршал, я надеюсь, вы здесь, чтобы помочь нам." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "" -"Сэр, я не знаю как, чёрт возьми, вы добрались сюда, но если в вас есть хоть " -"капля рассудка, уходите отсюда, пока можете." - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "" -"Мэм, я не знаю как, чёрт возьми, вы добрались сюда, но если в вас есть хоть " -"капля рассудка, уходите отсюда, пока можете." - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "Что ты делаешь здесь, внизу?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "Что ты можешь мне рассказать о этом сооружении?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "Что нужно сделать?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "Я должен идти..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" -"Я руковожу остатками моего отряда в миссии по зачистке этого объекта. Мы " -"вошли в комплекс отрядом в две дюжины и сразу направились в эту " -"диспетчерскую. Отсюда я отправил своих людей, чтобы занять жизненно важные " -"системы, расположенные на этом этаже и ниже. Если мы добьёмся успеха, этот " -"объект можно будет очистить и использовать в качестве постоянной базы в " -"регионе. Самое главное, что он позволит перенаправить трафик беженцев от " -"переполненных застав и освободить больше наших сил для проведения " -"восстановительных работ." - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "Звучит, как хороший план..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"Этот объект был построен, чтобы обеспечить безопасное убежище в случае " -"глобальной войны. Убежище может поддерживать несколько тысяч человек в " -"течение нескольких лет, если все системы находятся в рабочем состоянии. К " -"сожалению, система питания вышла из строя, неизвестно, из-за поломки или " -"диверсии, и в какой-то момент выпустила импульс смертельного излучения. " -"Катастрофическое событие продолжалось в течение нескольких минут и привело к" -" гибели большинства людей, расположенных на 2-м этаже и ниже. Те, кто " -"работал на этом этаже, запечатали пути доступа на нижние этажи, прежде чем " -"поддаться лучевой болезни. Единственное, что журналы говорят нам, что вся " -"система водоснабжения была перенаправлена на нижние уровни." - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "" -"Что бы они ни сделали это, должно быть, сработало, так как мы все ещё живы " -"..." - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "Маршал, я удивлён видеть Вас здесь." - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "Сэр, Вам не разрешено здесь находиться… Вы должны уйти." - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "Мэм, Вам не разрешено здесь находиться… Вы должны уйти." - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "" -"[ЗАДАНИЕ] Капитан отправил меня, чтобы я взял у тебя лист с частотами." - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "Вам нужна помощь?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "Мне нужно идти" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "" -"Мы защищаем массив внешних коммуникаций этого объекта. Я мало что могу " -"сказать... если у тебя есть какие-либо вопросы, пойди и найди своего " -"командира." - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "Я постараюсь найти командира..." - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" -"Я ожидал, что капитан отправит гонца. Вот список, который вы ищете. Всё что " -"мы можем идентифицировать отсюда, просто частоты, на которых передаются " -"сообщения. Многие передачи не поддаются расшифровке, без ремонта или замены " -"оборудования находящегося здесь. Когда оборудование было перегружено, " -"стандартная процедура должна была разрушить аппаратные средства шифрования, " -"чтобы защитить федеральные секреты и поддержать целостность всей сети. Мы " -"надеемся, что несколько сообщений с открытым текстом можно всё же поймать." - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -152445,6 +153977,212 @@ msgstr "" msgid "What were you saying before that?" msgstr "О чём ты там говорил?" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "Маршал, я надеюсь, вы здесь, чтобы помочь нам." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "" +"Сэр, я не знаю как, чёрт возьми, вы добрались сюда, но если в вас есть хоть " +"капля рассудка, уходите отсюда, пока можете." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "" +"Мэм, я не знаю как, чёрт возьми, вы добрались сюда, но если в вас есть хоть " +"капля рассудка, уходите отсюда, пока можете." + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "Что ты делаешь здесь, внизу?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "Что ты можешь мне рассказать о этом сооружении?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "Что нужно сделать?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "Касательно задания..." + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "По поводу одного из этих заданий…" + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "Я должен идти..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" +"Я руковожу остатками моего отряда в миссии по зачистке этого объекта. Мы " +"вошли в комплекс отрядом в две дюжины и сразу направились в эту " +"диспетчерскую. Отсюда я отправил своих людей, чтобы занять жизненно важные " +"системы, расположенные на этом этаже и ниже. Если мы добьёмся успеха, этот " +"объект можно будет очистить и использовать в качестве постоянной базы в " +"регионе. Самое главное, что он позволит перенаправить трафик беженцев от " +"переполненных застав и освободить больше наших сил для проведения " +"восстановительных работ." + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "Звучит, как хороший план..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" +"Этот объект был построен, чтобы обеспечить безопасное убежище в случае " +"глобальной войны. Убежище может поддерживать несколько тысяч человек в " +"течение нескольких лет, если все системы находятся в рабочем состоянии. К " +"сожалению, система питания вышла из строя, неизвестно, из-за поломки или " +"диверсии, и в какой-то момент выпустила импульс смертельного излучения. " +"Катастрофическое событие продолжалось в течение нескольких минут и привело к" +" гибели большинства людей, расположенных на 2-м этаже и ниже. Те, кто " +"работал на этом этаже, запечатали пути доступа на нижние этажи, прежде чем " +"поддаться лучевой болезни. Единственное, что журналы говорят нам, что вся " +"система водоснабжения была перенаправлена на нижние уровни." + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "" +"Что бы они ни сделали это, должно быть, сработало, так как мы все ещё живы " +"..." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "Маршал, я удивлён видеть Вас здесь." + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "Сэр, Вам не разрешено здесь находиться… Вы должны уйти." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "Мэм, Вам не разрешено здесь находиться… Вы должны уйти." + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "" +"[ЗАДАНИЕ] Капитан отправил меня, чтобы я взял у тебя лист с частотами." + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "Вам нужна помощь?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "Мне нужно идти" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "" +"Мы защищаем массив внешних коммуникаций этого объекта. Я мало что могу " +"сказать... если у тебя есть какие-либо вопросы, пойди и найди своего " +"командира." + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "Я постараюсь найти командира..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" +"Я ожидал, что капитан отправит гонца. Вот список, который вы ищете. Всё что " +"мы можем идентифицировать отсюда, просто частоты, на которых передаются " +"сообщения. Многие передачи не поддаются расшифровке, без ремонта или замены " +"оборудования находящегося здесь. Когда оборудование было перегружено, " +"стандартная процедура должна была разрушить аппаратные средства шифрования, " +"чтобы защитить федеральные секреты и поддержать целостность всей сети. Мы " +"надеемся, что несколько сообщений с открытым текстом можно всё же поймать." + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "Здравствуйте, маршал." + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "Маршал, боюсь я сейчас не могу говорить." + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "Я здесь не за главного, маршал." + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "Я как и полагается, направляю все вопросы своему лидеру, маршал." + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "Привет, гражданин… Я не уверен, что тебе можно здесь находиться. " + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "Займись своими делами, здесь нечего ловить." + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "Если тебе что-то нужно, поговори с кем либо ещё." + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "Сэр." + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "" +"Чувак, если ты можешь постоять за себя, тебе следует обратить внимание на " +"вербовку." + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "Мэм." + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "" +"Эй мисс, вы не думаете, что будет безопасней вам присоединиться ко мне?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "Не обращайте на меня внимания..." + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -152475,6 +154213,12 @@ msgstr "" msgid "Please, help me. I need food." msgstr "Пожалуйста, помоги мне. Мне нужна еда." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "Я поговорил с остальными, и все хотят идти. Так ты с нами?" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "Эй, вот, у меня тут вроде немного еды. Сейчас посмотрю." @@ -152677,10 +154421,26 @@ msgstr "Хорошо. А пока давай поговорим о чём-ниб msgid "OK, I'll talk to them too." msgstr "Хорошо, я с ними переговорю." +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "Хорошо! Давай идти." + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "Дружище, говорил ли я тебе про картон? Нет ли у тебя его с собой?" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "Насчёт твоего списка покупок..." + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "Могу я ещё чем-нибудь помочь?" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "Что теперь будешь делать с этим картоном?" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "Картон?" @@ -152693,6 +154453,33 @@ msgstr "Зачем ты тут сидишь?" msgid "Are you seriously wearing a dinosaur costume?" msgstr "Ты что, правда носишь костюм динозавра?" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "Хочешь поесть?" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "О, отлично. Вкусняшки и хрустяшки. Круто, круто." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" +"Ага, я сильно голоден, а они кладут наркоту в еду. Я вижу, ты не как они." + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "А можно тебя ещё кое о чём спросить?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" +"Я знаю, когда в еде что-то подсыпано, она на вкус рыхлая. Но не эта. Ещё раз" +" спасибо." + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -152704,6 +154491,14 @@ msgstr "" msgid "Why cardboard?" msgstr "Почему картонный?" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "Песочный человек?" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "Хочешь ли получить немного картона?" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "Наверное, мне пора..." @@ -152719,6 +154514,32 @@ msgstr "" "оберегал. Сердцевина зомби испускает бета-лучи, они не могут пробить картон." " Из-за отражения лучей картон остаётся невредимым." +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" +"Что за вопросы? Ага, чувак, у тебя картон, у меня... у меня целый список " +"покупок. Давай." + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "Что дальше по списку?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" +"Если не знаешь, кто он такой, я точно не смогу объяснить. Он со всеми " +"говорит, если ты его не слышишь, значит, тебе нельзя доверять, кроме как " +"попросить мне помочь." + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "... О чём ты там говорил?" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -152728,17 +154549,64 @@ msgstr "" "свой собственный дом и не пущу их к себе." #: lang/json/talk_topic_from_json.py -msgid "Building a house?" -msgstr "Ты строишь дом?" +msgid "You said you were building a house?" +msgstr "Ты говорил, ты строишь дом?" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "Нет." +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "Я... я вижу, ты это носишь. Почему ты это носишь?" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "Так что там с картоном?" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" +"Ты спрашиваешь меня, что я вижу, но я не скажу, что ты видишь. Иногда надо " +"защититься." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" +"Что ж... У меня всё было пучком, но остальные ушли, и теперь хозяева не " +"велят мне строить себе убежище. Поможешь с ними справиться?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" +"Точно! Мне просто нужно немного времени, чтоб всё устроить. Спасибо. Ты " +"очень мне помог. Я чувствую себя куда более собой с такой помощью." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "Почему ты не уйдёшь? Пойдём со мной, мне пригодится твоя помощь." + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "Ладно. Без проблем, приятно было помочь. Поговорим позже." + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" +"Нет! Я только-только всё обустроил. Я не уйду, не сейчас. Всё ж только " +"налаживается!" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "Отъебись, гондон." @@ -152804,10 +154672,6 @@ msgstr "" "На самом деле ещё как, я теперь всегда хочу есть. Не люблю подачки, но и не " "откажусь." -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "А можно тебя ещё кое о чём спросить?" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "Спасибо, я правда очень признателен." @@ -152857,6 +154721,13 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "Думаешь, с тобой так обошлись из-за расы?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" +"Это значит, что ты участвовал в эвакуации той задней комнаты, про которую я " +"слышал?" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "Почему ты тогда тут сидишь?" @@ -152869,6 +154740,39 @@ msgstr "" "У меня есть свой лагерь в стороне отсюда. Никаких документов не надо. Хочешь" " пойти?" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" +"О да, тут творился адовый пиздец. Мы сидели в той комнате и ждали " +"'регистрации' целые часы, с нами были больные и раненые. Один парень умер, " +"мы все думали, что он просто спит, пока он не поднялся. Началась паника, " +"стрельба в закрытом помещении, ну всё такое. Всего за несколько минут умерла" +" куча народу. Потом те мудаки назвали всё 'прорывом' и попытались нас " +"запереть... мы слишком долго убеждали истерящих охранников, что мы живые и " +"хотим выбраться. Я отдам должное одному парню, Джейсону: когда он сообразил," +" что запер живых людей вместе с зомби, он лично пришёл, хотя некоторые " +"свежие мертвецы начали подниматься, и сдерживал их, пока мы не ушли. " +"Огромное почтение тому парню. Ах да, сейчас он зомби, разумеется. Спасибо, " +"что напомнил про то безудержное веселье, блядь." + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "Прости за напоминание. Что ты там говорил?" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -152893,12 +154797,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" -"Это страшно мило с твоей стороны, но взгляни на меня. Я не путешественник, я" -" умудрился сохранить двадцать пять килограммов жира на диете из сосновых " +"Это страшно мило с твоей стороны, но взгляни на меня. Я не путешественница, " +"я умудрилась сохранить двадцать пять килограммов жира на диете из сосновых " "орехов и жухлого ревеня, а ещё я визжу и трясусь при виде крови." #: lang/json/talk_topic_from_json.py @@ -152972,6 +154876,14 @@ msgstr "" "Соблазнительное предложение, но я не знаю, насколько могу доверять " "случайному путнику, предлагающему мне кров. Считай меня психом." +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" +"Ой, да ладно. Я ж теперь не случайный странник. Я принёс тебе тот чокнутый " +"гриб, верно?" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -152988,6 +154900,23 @@ msgstr "" "Повторю, извини, но так не годится. Не то чтоб я тебе не доверяю, я просто " "тебе недостаточно доверяю." +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" +"Ах ты ж чёрт, я боялась, что ты это скажешь. Ладно, слушай: я предлагаю тебе" +" сделку. Я пойду в твой лагерь, но лучше раздобудь мне микроскоп как можно " +"скорее. Похоже, начинается кое-что классное. О, и разумеется, я не тронусь с" +" места, если ты не пристроишь к себе моих друзей. Уверена, ты этого ожидал. " +"Уговори их, и я в деле. Проблем быть не должно, они просто добродушные " +"милашки." + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -153017,20 +154946,20 @@ msgstr "О чём ты там раньше говорил?" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." -msgstr "" -"Да-да, всё очень прелестно. Конечно, я учился в великой башне слоновой кости" -" и получил кандидата наук по микологии. Написал диссертацию по сигнальным " -"путям в структуре гифов и статью о взаимодействии растение-гриб в корневой " -"системе. Потом я устроился в книжную лавку, потому что для доктора микологии" -" работы не так много, хотя мне и перепадало кое-что, пока мир не сошёл с " -"ума. Сейчас народ прямо-таки ломится ко мне ради моих драгоценных познаний " -"плесени, способных помочь бороться с нашествием зомби." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." +msgstr "" +"Да-да, всё очень прелестно. Конечно, я училась в великой башне слоновой " +"кости и получила кандидата наук по микологии. Написала диссертацию по " +"сигнальным путям в структуре гифов и статью о взаимодействии растение-гриб в" +" корневой системе. Потом я устроилась в книжную лавку, потому что для " +"доктора микологии работы не так много, хотя мне и перепадало кое-что, пока " +"мир не сошёл с ума. Сейчас народ прямо-таки ломится ко мне ради моих " +"драгоценных познаний плесени, способных помочь бороться с нашествием зомби." #: lang/json/talk_topic_from_json.py msgid "Do you know about the fungal zombies though?" @@ -153040,7 +154969,7 @@ msgstr "Однако ты знаешь про грибных зомби?" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -153048,12 +154977,12 @@ msgid "" "fight the incoming zombie threat." msgstr "" "Хе-хе. Да, отличные были времена. Как видишь, очень помогло в " -"трудоустройстве. Да, я кандидат наук по микологии. Написал диссертацию по " +"трудоустройстве. Да, я кандидат наук по микологии. Написала диссертацию по " "сигнальным путям в структуре гифов и статью о взаимодействии растение-гриб в" -" корневой системе. Потом я устроился в книжную лавку, потому что для доктора" -" микологии работы не так много, хотя мне и перепадало кое-что, пока мир не " -"сошёл с ума. Сейчас народ прямо-таки ломится ко мне ради моих драгоценных " -"познаний плесени, способных помочь бороться с нашествием зомби." +" корневой системе. Потом я устроилась в книжную лавку, потому что для " +"доктора микологии работы не так много, хотя мне и перепадало кое-что, пока " +"мир не сошёл с ума. Сейчас народ прямо-таки ломится ко мне ради моих " +"драгоценных познаний плесени, способных помочь бороться с нашествием зомби." #: lang/json/talk_topic_from_json.py msgid "" @@ -153100,6 +155029,14 @@ msgstr "" " изучения этих штук. Сгодится почти что угодно, но если оно и правда такое " "опасное, как ты описываешь, то не неси споровые органы." +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" +"Хрен знает, научный интерес? Если ничего не принесёшь, не парься. Как " +"видишь, у меня тут море удовольствий." + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "Так уж вышло, что у меня прямо сейчас при себе грибной кусок." @@ -153110,25 +155047,48 @@ msgstr "Конечно, мне пора идти. Я попробую найти #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." msgstr "" -"Ага. Ага, ага, ага. Это действительно любопытно. Взгляни, тут сетевидные " -"образования, напоминает увеличенный срез базидиокарпа... но взгляни сюда, я " -"никогда не видел ничего похожего на эти волокна. Интересно, подвижные ли " -"они? Ладно, слушай: я предлагаю тебе сделку. Я пойду в твой лагерь, но лучше" -" раздобудь мне микроскоп как можно скорее. Похоже, начинается кое-что " -"классное. О, и разумеется, я не тронусь с места, если ты не пристроишь к " -"себе моих друзей. Уверен, ты этого ожидал. Уговори их, и я в деле. Должно " -"быть просто, они просто добродушные милашки." +"Ага. Ага, ага, ага. Это действительно любопытно. Взгляни, тут сетевидные образования, напоминает увеличенный срез базидиокарпа... но взгляни сюда, я никогда не видела ничего похожего на эти волокна. Интересно, подвижные ли они?\n" +"\n" +"Ладно, слушай: я предлагаю тебе сделку. Я пойду в твой лагерь, но лучше раздобудь мне микроскоп как можно скорее. Похоже, начинается кое-что классное. О, и разумеется, я не тронусь с места, если ты не пристроишь к себе моих друзей. Уверена, ты этого ожидал. Уговори их, и я в деле. Проблем быть не должно, они просто добродушные милашки." + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "Здорово! Посмотрю, что из этого выйдет." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" +"Ага. Ага, ага, ага. Это действительно любопытно. Взгляни, тут сетевидные образования, напоминает увеличенный срез базидиокарпа... но взгляни сюда, я никогда не видела ничего похожего на эти волокна. Интересно, подвижные ли они?\n" +"\n" +"Извини. Я целый день могу разглядывать эту штуку. Я тебе должна, причём некисло так. Спасибо. Дай знать, если когда-нибудь понадобится услуга от толстой нищенки." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "Приятно слышать. Дам знать, если понадобится твоя помощь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" +"Ну и ладушки. Пойдем, мне хочется взглянуть на остальные чокнутые грибы." + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "Посмотрю, что получится сделать." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." +msgstr "Ещё раз спасибо за заморенного червячка, дружище." #: lang/json/talk_topic_from_json.py msgid "Hey, are you a big fan of survival of the fittest?" @@ -153142,6 +155102,22 @@ msgstr "Почему ты спрашиваешь?" msgid "Sorry, not interested." msgstr "Прости, неинтересно." +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "Приятно снова тебя увидеть, как дела?" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "И мне тоже приятно тебя видеть. Но мне пора." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" +"О, ну ты знаешь, как обычно: сижу тут, пока не помру с голоду, режусь в " +"карты с Дэйвом, всё такое." + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " @@ -153150,6 +155126,10 @@ msgstr "" "Потому что я никак не сильнейший, поэтому я буду сидеть тут, пока не помру с" " голоду. Поможешь несчастному больному бедолаге?" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "Я могу помочь... хочешь чего-нибудь поесть?" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "Что с тобой?" @@ -153166,6 +155146,25 @@ msgstr "Как ты вообще сюда добрался, если так бо msgid "Why are you camped out here if they won't let you in?" msgstr "Почему ты тут живёшь, если они тебя не пускают?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "Это ужасно мило с твоей стороны, ты правда чудесный человек." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "Ого, ух ты! Ты настоящее сокровище, знаешь? Спасибо за саму мысль." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "Приятно знать, что всё ещё остались такие люди, как ты. В самом деле." + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "Что задумываешь?" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -153178,6 +155177,10 @@ msgstr "" "не так плохо. Не то чтоб я мог делать как-его-там, ну, этот анализ крови, " "которым доктора меня доставали каждые несколько месяцев." +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "Ты что-то слишком весёлый." + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -153208,6 +155211,132 @@ msgstr "" " этого не было, и мне всё ещё пришлось бы искать еду... короче, я был бы в " "могиле. Или, вероятно, вернулся бы из могилы." +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" +"А что остаётся? Я смирился с тем, что есть. Я похоронил двух людей, которых " +"я любил больше всего на свете, а третий списал меня со счетов. Для меня " +"конец света уже наступил. Я сквозь него прошёл без особых потерь. Знаешь, " +"мне было очень одиноко с тех пор, как умерла моя жена. А здесь у меня есть " +"друзья. Нам нечего есть, но мы близки. Рина учит меня математике и наукам, " +"Луо - одна из умнейших девчонок, что я встречал - у неё учёная степень, " +"прикинь - а Юсуке единственный, кто может побить меня в покер. И Дэйв, ну, " +"он Дэйв. Попомни мои слова, у него видно только верхушку айсберга. Может, мы" +" мало годимся в работу, но мы небесполезны." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" +"Что ж, я работал кровельщиком, но неудачно упал и повредил спину в 2006 " +"году. Попытался заниматься другой плотницкой работой, но как-то просто не " +"вязалось. Моя жена содержала нас обоих плюс мне попадалась халтурка, но у " +"неё случился инсульт в 2016, и она оставила меня одного, последние годы я " +"медленно проедал свои сбережения, хватаясь за любую паршивую работу. За пару" +" дней до того, как настал , я заметил, что банк собирается " +"изъять мой старый маленький трейлер." + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "У тебя есть дети?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" +"Хочешь путешествовать со мной? Мне пригодится умелый торговец, и всё одно " +"лучше, чем прозябать тут." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" +"У меня есть лагерь. Он охрененно лучше этого места, и там регулярно кормят. " +"Мне пригодится кто-то с твоим опытом, даже если ты не можешь поднять " +"тяжести." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" +"Да, двое. Моя дочь умерла от передоза в начале той истории с фентанилом. Я " +"рассчитывал на своего сына - они близняшки, понимаешь - а он отмахнулся от " +"нас с женой. Даже не пришёл на её похороны. Я его не виню, нас всех это " +"потрясло. Насколько я знаю, он всё ещё где-то там с моими внуками, прячется " +"в каком-то безопасном месте. В эти дни и отсутствие новостей - хорошая " +"новость." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" +"Очень мило с твоей стороны, но я не готов к жизни странника, только не с " +"моими коленями." + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" +"Это страшно мило с твоей стороны. Я скажу так: если ты поможешь Дэйву " +"разобраться в себе, так чтоб мне не пришлось оставаться здесь и " +"присматривать за беднягой, тогда я пойду." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" +"Похоже, я неплохо помог Дэйву разобраться в себе, а? Что думаешь насчёт " +"пойти со мной?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" +"Ммм... честно, я даже не думал, что Дэйву можно помочь, а ты доказываешь " +"обратное! Ты чертовски помог бедняге. Слушай, я... я немного приукрасил своё" +" желание пойти с тобой, но если ты убедишь остальных, то и я присоединюсь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "Господи. Я такого не ожидал, но я сдержу слово. Давай идти." + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "Давай идти." + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "Привет, дружище." @@ -153220,6 +155349,10 @@ msgstr "Что ты здесь делаешь?" msgid "I couldn't help but notice, you're covered in fur." msgstr "Не могу не заметить, ты покрыт мехом." +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "Хочешь чего-нибудь поесть?" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -153244,7 +155377,7 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" "Тут безопаснее, чем искать свой собственный дом. Когда нужно, я вылезаю и " "собираю еду. Пока мы поддерживаем порядок и помогаем при нападении зомби, " @@ -153264,6 +155397,90 @@ msgstr "" " после катаклизма. Без понятия, в чём причина. Я не осуждаю, что все это " "ненавидят, я и сам ненавижу." +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" +"Я на самом деле неплохо держусь и сам. В поисках еды я ем много " +"полупротухшего. Если у тебя есть еда, пожалуйста, поделись с моими друзьями." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" +"Ничего особо выдающегося. Я учился на компьютерного техника в торговом " +"колледже. Не особо мне пригодилось, однако ещё ребёнком я состоял в Орлиных " +"скаутах. Я научился многому про растения и поиск еды, и вот это оказалось " +"полезно." + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "Что насчёт семьи и всего такого?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" +"Я не хочу про это думать. Я вырос на Род Айленде, и они ещё там. Я ничего не" +" слышал с тех чокнутых времён, ну, Губернатор, изоляция и всё такое. Все " +"линии связи закрыты. Я не видел никого, кто знал бы, что случилось с " +"тамошними людьми, но особых надежд не питаю. " + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "Почему ты не вернёшься туда?" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "Расскажи мне, что случилось с Род Айлендом?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" +"Та же причина, по которой я здесь застрял... во-первых, слишком опасно. " +"Почти сто миль, по набитой зомби территории, пешком, чтоб добраться до " +"побережья? Нет уж, , спасибо. А потом, как я доберусь от побережья до" +" Блок Айленда? Моя семья переехала туда, когда отец ушёл на пенсию, и что-то" +" мне кажется, что паром больше не ходит. Даже если б я добрался, я не знаю, " +"что найду, и наверное, это-то меня и пугает." + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" +"Ты не в курсе? Губернатор слетел с катушек, как и большинство людей под " +"конец, только вот у него была власть. Однажды он просто заявился с " +"ополчением из местных и лоялистов и устроил переворот, полностью свергнув " +"правительство. Он убил тех, кто ему противостоял, и затащил на остров " +"столько сторонников, сколько смог. По слухам, многие пережили катаклизм и " +"всё ещё живут там, но я считаю это невозможным." + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "Думаешь, тебе стоит отправиться и поискать семью?" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -153276,6 +155493,28 @@ msgstr "" "за эту маленькую стайку бедолаг. Я не думаю, что могу уйти, пока только я " "один о них забочусь." +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" +"Я поговорил со всеми твоими друзьями, и все готовы, кроме Дэйва. Дэйв хочет " +"тут остаться. Как насчёт тебя?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" +"Хех. Уговорить их подписаться на самоубийственную миссию - это неслабо... " +"похоже, тебя всерьёз поглотила эта идея. Лады, я с тобой. Давай соберём всех" +" и тронемся в путь." + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "Точно. Пошли." + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "Привет." @@ -153554,10 +155793,112 @@ msgstr "А что у тебя? Что с тобой приключилось?" msgid "Why don't we talk about it some other time?" msgstr "Почему бы не обсудить это в другое время?" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "Как тут дела?" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "Как тебе удалось очутиться в центре?" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "Нужна ли какая-нибудь помощь?" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "Снова привет." +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "Приятно видеть, что ты ещё жив." + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "Ой, привет." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" +"Эй, эй, новое лицо. Привет, я Фатима. Надеюсь, ты просто в гости? Здорово " +"встречать новых людей, но у нас больше нет свободных мест." + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "Тоже приятно познакомиться, Фатима. Я тут мимоходом." + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "Привет, Фатима. Как жизнь?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "Боюсь, сейчас мне не до разговоров." + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "Что ж, круто. Могу ли чем-нибудь помочь?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" +"О, знаешь, как всегда. Я заперта в замкнутом пространстве с кучей незнакомых" +" людей и едва-едва с ними уживаюсь. Славные деньки, славные." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" +"Пока не случился , я на самом деле только заканчивала курсы " +"сварки и собиралась искать работу. Быть молодой мусульманкой в " +"Массачусетском колледже - это весело, уж точно." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" +"Что-то сварка не кажется традиционным занятием. Тебя что-то к этому привело?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" +"Ты удивишься! Обработка металла долго была частью мусульманских традиций, хотя я ею занимаюсь не поэтому. Я не слишком следую традициям, да и мои родители тоже, но мои дедушка с бабушкой очень старомодные и строгие. Моя сестра заявила, что она лесбиянка, и они превратили её жизнь в ад; мама с папой советовали ей сохранить свой секрет, но сестра думала иначе. Мне всегда нравилась механика и работа руками, так что когда бабушка с дедушкой принялись тиранить моих родителей выдать меня и сестру замуж за достойных мужчин, чтоб мы бросили свою безнравственность, я решила выбрать любимую работу, чтоб как можно сильнее их уязвить. Выбор был верный, не только потому что они пришли в ярость, но и мне ещё нравится сварка. Мне нравится то ощущение, когда стоишь и смотришь на свою работу, осознавая, что взяла куски металла и сделала из них что-то полезное. Я обожаю, когда всё идеально сходится. Умиротворяет.\n" +"\n" +"Я... я всё же надеюсь, что с моими дедушкой и бабушкой всё хорошо. Они старомодные и выбирают то, что мне не по вкусу, но они семья, и у меня остались приятные детские воспоминания. Я намного чаще думаю о Боге с тех пор, как случился , и хотя я никогда не соглашалась с их решениями, я теперь лучше понимаю, почему они так поступали. Они просто хотели, чтобы вся семья разделяла их отношения с Богом в их запутанной манере." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" +"Я ехала навестить родителей в Берлингтоне и ждала на автобусной остановке, когда зазвучал сигнал об эвакуации. Я немного не осознавала, насколько масштабными будут бунты. Когда прибыл автобус, его превратили в машину эвакуации и забрали меня. Я... я никогда не была религиозной, ну вот так я родилась, но с тех пор я намного чаще думаю о Боге и как я Ему благодарна за Его помощь. Хотя мне до сих пор трудно, мне легче с осознанием, что Он думает про меня.\n" +"\n" +"Так или иначе, мой автобус прибыл вторым, тут организовали сортировку и регистрацию. Меня и Йен отрядили помогать раненым. Потом начались странности... у одной женщины на регистрации был особый бзик насчёт пропуска, э, некоторых цветов кожи в центр. Она заявила, что потеряла наши 'бумаги' вместе с документами некоторых людей. К счастью, поскольку мы многим помогли, мы сумели её убедить впустить нас внутрь, но к тому времени внизу места уже не осталось, так что мы здесь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" +"Тут напряжно. Знаю, было б куда легче, если бы мои навыки пригодились, или " +"если бы у меня хотя бы было место помолиться. Я стесняюсь молиться в " +"общественном месте. Дженни говорила про какой-то проект, где бы я могла " +"помочь, но признаю, мне страшно выходить наружу." + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "Ну, привет." @@ -153606,10 +155947,6 @@ msgstr "Привет." msgid "Hey again." msgstr "И снова привет!" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "Ой, привет." - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -154212,6 +156549,130 @@ msgstr "Привет, Пабло, было приятно тебя видеть. msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "Привет, Пабло, было приятно тебя видеть. Однако мне пора идти." +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "Что тебя сюда привело? У нас тут немного новых лиц." + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "Надо поговорить?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" +"Приветик. Непохоже, чтоб мы встречались. Я Ризея, меня обычно зовут Ри." + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "Приятно встретиться, Ри." + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "Привет, Ри. Как жизнь?" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "Ну, какая у тебя история? У нас тут нечасто бывают новенькие." + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "Просто любопытный путник. А ты как?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" +"Наверно, у меня всё так хорошо, как можно ожидать. Спасибо, что " +"беспокоишься." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" +"Долгая, долгая история. Я не отсюда, я из Западной Канады. Мне всегда " +"хотелось посмотреть Новую Англию, и я была тут в отпуске, пока не... ну, ты " +"в курсе. Меня эвакуировали, но раз я не гражданка США, меня не хотели " +"посылать вниз. Я понимаю, хоть мне и не нравится. По правде, я пока ещё не " +"могу примириться, что так, наверно, и не узнаю, как там мои семья и народ." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "Расскажи про себя." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "Расскажи про свою семью." + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "Расскажи про свой народ." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" +"Я на самом деле была психологом, я работала на свой народ, Гитксан. Спасала " +"душевное здоровье и помогала справиться с зависимостью у людей, прошедших " +"через многое. Может, их проблемы не сравнятся с зомби, пожирающим твоего " +"ребёнка, но довольно близко, как ни странно. Моим людям пришлось пройти " +"через серьёзное настоящее дерьмо." + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "Что ж, было приятно поболтать, но мне пора идти." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" +"Мой народ - Гитксан, мы из северо-запада Британской Колумбии с реки Скина. Я" +" сама из Хазелтона. Прекрасное место. Высокие горы, умеренные дождевые " +"леса... Я отчасти пришла туда, потому что мне нравятся влажные прибрежные " +"леса, и мне нравится исследовать их в других странах. По той же причине я " +"была в Корее и Словакии. Наверно, я немного лесная туристка? Не знаю, увижу " +"ли когда-нибудь свой лес, и это разбивает мне сердце." + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" +"Мои мама и папа в Хазелтоне, они живут с моей бабулей и старшим братом. Он " +"сильно ударился головой во время ребячества и теперь не может за собой " +"ухаживать. У меня есть дочка, Эйнджел, ей шестнадцать и она не хотела идти " +"со мной в эту поездку. Господи, я не могу о ней подумать, она наверняка " +"считает меня мёртвой." + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" +"Народ тут едва сводит концы с концами. Я раньше видела психические травмы, и" +" много, но тут самое худшее, что можно вообразить. Все всё потеряли, да ещё " +"и огромная порция кошмаров сверху. Мы изображаем храбрость, но без помощи " +"очень скоро всё накроется." + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -154254,6 +156715,67 @@ msgstr "Прости, я пережил кое-что неприятное. По msgid "Sorry to hear that." msgstr "Жаль это слышать." +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" +"Эй, привет. Я тебя раньше не видела, приятно познакомиться. Меня зовут Йен." + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "Приятно познакомиться, Йен." + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "Привет, Йен. Есть минутка?" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "Просто путешествую. Можно спросить кое о чём?" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "Я всегда готова поговорить. Тут страшно скучно." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" +"Я была парамедиком. Я прошла самое худшее и до сих пор не могу понять, как я" +" вообще выжила. Одно шло за другим, меня закинули в автобус присмотреть за " +"парой людей, нуждавшихся в медицинской помощи во время поездки. Сломанные " +"руки и так далее. Я прибыла сюда рано одной из первых. Потом та женщина на " +"регистрации 'потеряла' мои документы, пока я занималась парнем с нехорошей " +"раной на голове. Если бы я не подняла скандал, я бы была в вестибюле вместе " +"с бедолагами, которых вообще не пустили." + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" +"Наверно, у нас всё нормально, хотя долго это и не продлится. Тут довольно " +"напряжно. Если застрянем тут слишком надолго, народ начнёт сходить с ума." + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "Мне бы хотелось, чтобы ты меня подстригла." + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "Хммм, можно поменять причёску, пожалуйста?" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "Хммм, можно по-другому побрить, пожалуйста?" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "О, ты вернулся." @@ -154278,10 +156800,6 @@ msgstr "Привет, Ванесса. Как дела?" msgid "Yeah, no. I'm going." msgstr "Ага, нет. Я пойду." -#: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." -msgstr "До встречи, солнышко." - #: lang/json/talk_topic_from_json.py msgid "" "Well that's good. If you're going to pull your own weight I guess that's an" @@ -154291,8 +156809,152 @@ msgstr "" "шаг вперёд." #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "Надеюсь, вы здесь, чтобы поторговать." +msgid "" +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" +"Не особо. Не слишком хорошо. Мы сидим в этой дыре с кучей незнакомцев, и " +"всё, что мы можем - пялиться на свои руки." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" +"Я правда не хочу говорить о своей жизни до этого дерьма, если ты это имеешь " +"в виду. Мне не нужна жилетка, чтоб в неё поплакаться. Я парикмахер, тебе " +"надо ещё личной информации?" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "Подстрижёшь меня?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" +"Угу, я застряла в сраном кирпичном доме с двумя дюжинами левых людей, миру " +"конец, а еды недостаточно. Я хотя бы могу чем-то заняться, а лишние деньги " +"помогают набить брюхо. Народу нравится хорошая стрижка." + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" +"Хочешь с сарказмом или с большим сарказмом? Я застряла в сраном кирпичном " +"доме с двумя дюжинами левых людей, миру конец, а еды недостаточно. Чего тут," +" блядь, непонятного?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" +"Вижу, что тебе бы не помешало подстричься, но в последний раз я этими " +"ножницами тыкала зомби в лицо. Я не думаю, что тебе б хотелось ими стричься." +" Не поможешь ли мне найти нормальные инструменты?" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "Как я могу помочь?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" +"Конечно, я тебя подстригу. Шесть мерчей за стрижку или три за бритьё, лады?" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "Стрижку, пожалуйста." + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "Бритьё, пожалуйста." + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "Ты мне должна бесплатную стрижку, помнишь?" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "Слишком дорого. Что ты там раньше говорила?" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "Слишком дорого. Я, пожалуй, пойду." + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "У меня тут доставка съестных припасов." + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "Удалось ли найти консервы?" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "Мне сказали, для меня есть работа?" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "Что это за написанные деньги, которыми вы тут расплачиваетесь?" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "Местные беженцы немного рассержены." + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "Ты знаешь про нищих в вестибюле?" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "Что это за закрытые места в здании?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "Что вы сделаете с той задней комнатой, которую я расчистил?" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "Расскажи про своё ранчо." + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "Мне лучше идти. Пока!" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "Чем могу помочь?" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "Замечательно. Что ты нам принёс?" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "Пока что всё. Давай поговорим о чём-нибудь ещё?" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "Пока что всё. Мне пора." + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "Да, я сейчас покупаю поллитровые и трёхлитровые стеклянные банки." #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -154300,15 +156962,15 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Я контролирую запасы еды в центре. Когда мы впервые прибыли сюда, были " -"паника и мародёрство, так что большая часть нашей еды была утащена. Я собрал" -" всё, что осталось, и делаю всё возможное, чтобы увеличить запасы. В сыром " -"подвале всё очень быстро гниёт и покрывается плесенью, так что в первую " -"очередь меня интересует еда с долгим сроком хранения, такая как кукурузная " -"мука, вяленое мясо и фруктовое вино." +"Я заведую запасами еды центра. Когда мы только приехали, во время паники " +"было много мародёрства, так что большинства наших запасов больше нет. Я " +"распределяю остатки и делаю всё, чтобы увеличить запасы. У нас несколько " +"источников свежего мяса и овощей, так что меня в первую очередь интересуют " +"долго хранящиеся продукты, такие как кукурузная мука, вяленое мясо и " +"фруктовое вино." #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -154316,15 +156978,15 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Я контролирую запасы еды в центре. Когда мы впервые прибыли сюда, были " -"паника и мародёрство, так что большая часть нашей еды была утащена. Я собрал" -" всё, что осталось, и делаю всё возможное, чтобы увеличить запасы. В сыром " -"подвале всё очень быстро гниёт и покрывается плесенью, так что в первую " -"очередь меня интересует еда с долгим сроком хранения, такая как кукурузная " -"мука, вяленое мясо и фруктовое вино." +"Я заведую запасами еды центра. Когда мы только приехали, во время паники " +"было много мародёрства, так что большинства наших запасов больше нет. Я " +"распределяю остатки и делаю всё, чтобы увеличить запасы. У нас несколько " +"источников свежего мяса и овощей, так что меня в первую очередь интересуют " +"долго хранящиеся продукты, такие как кукурузная мука, вяленое мясо и " +"фруктовое вино." #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -154332,57 +156994,176 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"Я контролирую запасы еды в центре. Когда мы впервые прибыли сюда, были " -"паника и мародёрство, так что большая часть нашей еды была утащена. Я собрал" -" всё, что осталось, и делаю всё возможное, чтобы увеличить запасы. В сыром " -"подвале всё очень быстро гниёт и покрывается плесенью, так что в первую " -"очередь меня интересует еда с долгим сроком хранения, такая как кукурузная " -"мука, вяленое мясо и фруктовое вино." +"Я заведую запасами еды центра. Когда мы только приехали, во время паники " +"было много мародёрства, так что большинства наших запасов больше нет. Я " +"распределяю остатки и делаю всё, чтобы увеличить запасы. У нас несколько " +"источников свежего мяса и овощей, так что меня в первую очередь интересуют " +"долго хранящиеся продукты, такие как кукурузная мука, вяленое мясо и " +"фруктовое вино." #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "Почему кукурузная мука, вяленое мясо и фруктовое вино?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "Ладно, но я имел в виду \"кто ты такой\", типа \"расскажи свою историю\"." + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" "Все три легко произвести на месте в больших количествах, и они не скоро " "испортятся. У нас есть пара местных фермеров и несколько охотников, которые " "пытались обеспечивать нас припасами. Нам требуется больше поставщиков. " "Потому что эти вещи достаточно дёшевы, если брать оптом. Я могу много " -"заплатить за то, что у вас есть. Консервы и другие съестные припасы сдаются " -"купцу в передней части здания." +"заплатить за то, что у тебя есть. Консервами и другими съестными припасами " +"занимается торговец в передней части здания." #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "Вас интересует ещё что-нибудь?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "Очень хорошо..." +msgid "Very well... let's talk about something else." +msgstr "Очень хорошо... давай поговорим о чём-нибудь ещё." + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" +"Прости, но я тут не для того, чтоб заводить друзей. У меня полно работы." #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." msgstr "" -"На самом деле я принимаю целый ряд различных продуктов питания: пиво, сахар," -" муку, копчёное мясо, копчёную рыбу, растительное масло и, как упоминалось " -"ранее, вяленое мясо, кукурузную муку и фруктовые вина." +"На самом деле я принимаю кучу продуктов: пиво, сахар, муку, копчёное мясо, " +"копчёную рыбу, сушёные фрукты и овощи, растительное масло, консерванты вроде" +" соли и уксуса и, как я говорил, вяленое мясо, кукурузную муку и фруктовое " +"вино." #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "Интересно..." +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" +"Мы зовём их \"Сертифицированные Банкноты Свободных Торговцев\". Мы начали " +"подписывать деньги почти сразу, как тут оказались, показывая их " +"обеспеченность настоящими товарами и услугами. За несколько дней мы " +"организовали систему, и теперь они превратились в валюту. Ими оплачивают " +"труд и услуги в обмен на еду и прочие товары, но мы также пользуемся ими с " +"нашими постоянными поставщиками, теми, кто в нас верит." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" +"Да, всё непросто. В самом начале никого не было за главного, и мы запустили " +"куда больше людей, чем могли обеспечивать. Когда пыль улеглась и мы " +"восстановили какой-то порядок, у нас остались все эти люди без крыши над " +"головой, которым места не нашлось. Мы выделили им небольшой уголок, но это " +"неидеально." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" +"Знаю. Без понятия, как тебе удалось убедить их убраться, но и мои " +"поставщики, и я благодарим тебя. Надеюсь, вышло не очень неприглядно." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" +"Даже когда мы со всем разобрались, у нас не хватало кроватей на всех, и уж " +"точно не хватало еды. Времена были непростые. Мы делаем что можем для тех " +"ребят... у них хотя бы есть укрытие." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" +"Что ж, есть подземный этаж, там мест больше нет, так что с ним всё. Ещё есть" +" комната рядом с погрузкой, где мы поначалу распределяли людей. Случилась..." +" неприятность. Я слышал, торговец предлагает награду за зачистку, если тебе " +"хочется помереть." + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "Что за неприятность с той комнатой?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" +"Когда мы только приехали, особой организованности не было. Несколько " +"прибывших запустили систему регистрации и сортировки, больным и раненым " +"велели подождать. Жестоко, но у нас ограничено место, и мы тогда не знали, " +"из-за чего люди становятся зомби, так что мы хотели оградиться от инфекции. " +"Пара человек умерли там, и всё началось. Один из первых прибывших, Джейкоб, " +"решил разрулить ситуацию. Когда эвакуировали область регистрации, он " +"остался, чтобы убедиться, что все спаслись. Очень жаль было его потерять." + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "Спасибо, можно спросить кое о чём ещё?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" +"Спасибо за помощь. У нас пока нет никаких планов на ту область. Когда там " +"приберутся, я думаю, мы позволим местным решить, что делать." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" +"Я так рад, что у нас получилось. Один из местных беженцев был связан с " +"ранчо, и мы послали его и рабочих туда как можно скорее. Мы надеемся, они " +"смогут обеспечивать нас достаточным количеством продуктов, чтобы мы смогли " +"стать самодостаточными и даже торговать с другими общинами, когда они " +"возникнут." #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -154745,16 +157526,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "Мадам, вам действительно не стоит тут гулять." #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "Добро пожаловать, маршал..." - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "Добро пожаловать..." - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "Вообще-то я здесь новенький..." +msgid "I heard this place was a refugee center..." +msgstr "Я слышал, это место было центром для беженцев..." #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -154764,6 +157537,14 @@ msgstr "Слышно что-нибудь из внешнего мира?" msgid "Is there any way I can join your group?" msgstr "Могу ли я присоединиться к вашей организации?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "Что там с нищими?" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "Я позаботился о вашей проблеме с нищими." + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "Что я могу сделать для центра?" @@ -154773,40 +157554,53 @@ msgid "I figured you might be looking for some help..." msgstr "Я подумал, что вам может понадобиться помощь..." #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." -msgstr "" -"Прежде чем вы что-нибудь скажете - свободных мест нет. Пару дней назад у нас" -" произошла вспышка из-за того, что мы пустили к себе слишком много беженцев." -" Нам очень нужны припасы, и мы готовы менять на них всё, что мы можем " -"выделить. Мы очень хорошо заплатим за вяленое мясо, если вы захотите его " -"продать." +msgid "Well, I'd better be going. Bye." +msgstr "Мне лучше идти. Пока." #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "Нет отдыха усталому путнику..." +msgid "Welcome marshal..." +msgstr "Добро пожаловать, маршал..." + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "Добро пожаловать..." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" +"Прежде чем ты что-нибудь скажешь - свободных мест нет. У нас нет ни места, " +"ни еды, чтобы принять ещё беженцев. Нам отчаянно нужны припасы, и мы готовы " +"торговать, чем можем. Очень хорошо заплатим за вяленое мясо, поговори с " +"торговцем в задней части здания." #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"Откровенно говоря, в начале нас было шесть автобусов, заполненных офисными " -"работниками и мамами игроков в футбол... после вспышки среди беженцев день " -"или два назад наиболее храбрые из нашей группы были уже мертвы. " -"Единственное, чего мы хотим - чтобы торговля здесь была достаточно активной," -" чтобы мы могли выжить. Нам не важно, у кого или откуда берутся товары, " -"просто не создавайте неприятностей." +"Если честно, в начале у нас было шесть автобусов, полных офисных работников " +"и домохозяек... мы сделали что могли, чтоб рассортировать их и в первую " +"очередь взять тех, кто сможет выжить. Звучит жестоко, но вариантов не было. " +"Единственное, чего мы сейчас хотим - запустить достаточно торговли, чтоб " +"выжить... наш адрес есть в компьютере каждого убежища, и люди продолжают " +"приходить, и мы посылаем их прочь, но мы поняли, что можем обменять их " +"находки на наши вещи. Мы планируем построить подобие бизнеса. Нам всё равно," +" откуда ты берёшь свои товары, просто не доставляй проблем." #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "Здесь так же хреново, если не хуже." +msgid "It's just as bad out there, if not worse." +msgstr "Там так же хреново, если не хуже." #: lang/json/talk_topic_from_json.py msgid "" @@ -154822,39 +157616,36 @@ msgstr "" "такие беспощадные, но некоторым из нас пришлось убить своих собственных, " "мать твою, детей... Даже не думай о том, что нам не хватает решительности." -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "Думаю, такое дерьмо повсюду..." - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" msgstr "" -"[ИНТ 12] Погодите, шесть автобусов и беженцы... сколько людей у вас здесь " +"[ИНТ 10] Погоди, шесть автобусов и беженцы... сколько людей у вас здесь " "напичкано?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"Беженцы находились здесь на первом этаже до тех пор, пока одна из их групп " -"не попыталась протащить умирающего парня через зону погрузки. Мы проснулись " -"от визгов и криков. В ту ночь погибло, наверное, десятка два людей. Все " -"оставшиеся беженцы были выгнаны на следующий день, позже они сколотили пару " -"шаек мусорщиков. Можно сказать, что у нас здесь двадцать хороших мужчин и " -"женщин, но наша настоящая сила заключается в том, что все наши бизнес-" -"партнеры привыкли делать всё, что потребуется для того, чтобы выжить." +"Несколько дюжин внизу. Ещё семнадцать живёт здесь, пока мы не найдём им " +"место. Раньше людей было немного больше, но в хаосе всё пошло наперекосяк, и" +" мы потеряли нескольких, а следом ещё. Времена не из лучших." #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "Думаю, это работа для тебя..." +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" +"Ладно, как и многие, я бы предпочёл не копаться в моей прошлой жизни. Все " +"погибли, умерли, воскресли, умерли снова. Впрочем, раньше у меня был " +"магазинчик, поэтому меня сюда посадили заниматься торговлей... вот и всё, " +"что я могу про себя рассказать. Я на часах, в итоге." #: lang/json/talk_topic_from_json.py msgid "" @@ -154872,10 +157663,6 @@ msgstr "" " когда такое стадо собирается вместе, они издают шум, привлекающий всех в " "округе. К счастью, нас такая орда пока миновала." -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "Спасибо за совет." - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -154982,6 +157769,108 @@ msgstr "Слышно что-нибудь о заброшенном складе msgid "Was hoping for something more..." msgstr "Была надежда на что-то ещё ..." +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" +"Это ребята, которые хотели укрыться в нашем убежище, но у нас было слишком " +"много народу и не хватало ни места, ни еды. Многие ушли искать своё " +"собственное пристанище, но эти... эти не стали. Мы пытались найти им " +"безопасный уголок, но нынче проблемы с безопасностью. Пока они сидят " +"тихонько, мы позволяем им там жить." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "Нет ли какой-то награды, если я смогу от них избавиться?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" +"Нам особо нечем поделиться, но я уверен, мы сможем заплатить тебе нашей " +"собственной валютой, если ты избавишь нас от растущей санитарной проблемы " +"без применения насилия, это точно." + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" +"Ты сделал доброе дело, забрав этих бедолаг в безопасное место. Ну, я так " +"предполагаю. Если вдруг у тебя другие планы, я бы хотел оставить вестибюль " +"чистым, но пожалуйста, позволь мне оставить мои счастливые фантазии. Я " +"уверен, они резвятся где-нибудь на прелестном поле. Жалко, что картонный " +"парень не ушёл, но с ним одним куда легче справиться." + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "По-моему, мы говорили про награду?" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "Просто приятно было помочь." + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" +"Действительно, говорили. Работа выполнена не до конца, но мы честные люди. " +"Вот пять мерчей за каждого нищего, которому нашёлся новый дом." + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" +"Один из местных беженцев на самом деле возвращался на автобусе на своё " +"ранчо, пока автобус не переделали в машину эвакуации и не доставили его " +"сюда. Когда всё успокоилось, мы заключили сделку - мы доставляем парня домой" +" и обеспечиваем рабочей силой в обмен на превращение ранчо во " +"вспомогательный пункт для наших сделок. Все остались в выигрыше, там уже " +"большинство народу с навыками для подобной работы." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "Разве после этого не освободилось место для нищих и людей наверху?" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "Спасибо за историю." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" +"К сожалению, нет. Большая часть тех, кто ушёл, и так застряла наверху, они " +"рисковали куда меньше тех, у кого была безопасная койка внизу. Из подвала " +"вызвалось идти всего несколько человек, и там всё равно было слишком много " +"народу с самого начала. Мы вроде надеялись, что на ранчо отправится побольше" +" людей - ну, к солнышку, свежему воздуху, тяжёлой работе... но как можешь " +"догадаться, людей немного пугает перспектива встречи с ордой зомби." + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "Маршал..." @@ -155588,8 +158477,60 @@ msgid "Alright, I'll leave" msgstr "Хорошо, я ухожу." #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "Не хотите ли постричься?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" +"На дорогах полно разбойников, наверно, стоит вернуться к работе, маршал..." + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "Что-нибудь нужно, маршал?" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "О, маршал США, как необычно." + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "Надеюсь, ты тут для торговли?" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "Безопасного пути, странник." + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "Давай торговать." + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" +"Я занимаюсь своими делами, а ты своими, маршал. Звучит справедливо, так?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" +"Мы снабжали эту лабораторию едой из нескольких ближайших охотничьих и " +"фермерских общин. Дороги небезопасные, но это прибыльно и куда выгоднее, чем" +" шарить по городам за объедки." + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "Тогда береги себя." + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "" +"Стрижка не интересует? Стоит 6 мерчей за стрижку и 3 за бритьё. Я могу " +"покрасить и изменить стиль." #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -156185,6 +159126,10 @@ msgstr "" "можешь пока что остановиться в свободной комнате, только не занимай ее " "одному себе. Ты тут не единственный добытчик." +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "Интересно..." + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -156661,10 +159606,30 @@ msgstr " контратакует %s" msgid "Feint" msgstr "обманный выпад" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "Вы делаете обманное движение от %s." + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr " делает обманное движение от %s." + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "Разрыв захвата" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "Вас пытается схватить %s, но вы разрываете захват!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "%s пытается схватить , но тот разрывает захват!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -156864,12 +159829,12 @@ msgstr "удушающий захват" #: lang/json/technique_from_json.py #, python-format msgid "You put %s in a chokehold" -msgstr "" +msgstr "Вы берете %s в удушающий захват" #: lang/json/technique_from_json.py #, python-format msgid " puts %s in a chokehold" -msgstr "" +msgstr " берет %s в удушающий захват" #: lang/json/technique_from_json.py msgid "grab" @@ -157399,24 +160364,28 @@ msgid "Crane Wing" msgstr "крыло журавля" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" -msgstr "Вы угрожающе поднимаете руки" +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "Вы угрожающе поднимаете руки на %s." #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" -msgstr " выполняет «крыло журавля»" +#, python-format +msgid " performs the Crane Wing at %s." +msgstr " выполняет «крыло журавля» на %s." #: lang/json/technique_from_json.py msgid "Crane Flap" msgstr "взмах журавля" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" -msgstr "Вы вращаете руками и высвобождаетесь" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" +msgstr "%s пытается вас схватить, но вы взмахиваете руками и высвобождаетесь!" #: lang/json/technique_from_json.py -msgid " flaps free" -msgstr " вырывается" +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "%s пытается схватить , но тот высвобождается!" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -157465,12 +160434,14 @@ msgid "Snake Slither" msgstr "Змеиное скольжение" #: lang/json/technique_from_json.py -msgid "You slither free" -msgstr "Вы свободно скользите" +#, python-format +msgid "The %s tries to grab you, but you slither free!" +msgstr "%s пытается вас схватить, но вы выскальзываете!" #: lang/json/technique_from_json.py -msgid " slithers free" -msgstr " свободно скользит" +#, python-format +msgid "The %s tries to grab , but they slither free!" +msgstr "%s пытается схватить , но тот выскальзывает!" #: lang/json/technique_from_json.py msgid "Snake Strike" @@ -157668,49 +160639,49 @@ msgstr " наносит %s удар под давлением" #: lang/json/technique_from_json.py msgid "Shimmer Flurry" -msgstr "" +msgstr "Мерцающий шквал" #: lang/json/technique_from_json.py #, python-format msgid "You release a blinding slash at %s" -msgstr "" +msgstr "Вы ослепительно рассекаете %s" #: lang/json/technique_from_json.py #, python-format msgid " slashes at %s" -msgstr "" +msgstr " рассекает %s" #: lang/json/technique_from_json.py msgid "Tipped Intent" -msgstr "" +msgstr "Злой умысел" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly jab your weapon into %s joints" -msgstr "" +msgstr "Вы стремительно вонзаете оружие в суставы %s" #: lang/json/technique_from_json.py #, python-format msgid " swiftly jabs their weapon into %s" -msgstr "" +msgstr " стремительно вонзает оружие в %s" #: lang/json/technique_from_json.py msgid "Decisive Blow" -msgstr "" +msgstr "Решающий удар" #: lang/json/technique_from_json.py #, python-format msgid "You steady your hand and release a piercing jab at %s" -msgstr "" +msgstr "Вы складываете руку и наносите %s пронзающий удар" #: lang/json/technique_from_json.py #, python-format msgid " releases a piercing jab at %s" -msgstr "" +msgstr " наносит %s пронзающий удар" #: lang/json/technique_from_json.py msgid "End Slash" -msgstr "" +msgstr "Завершающий разрез" #: lang/json/technique_from_json.py #, python-format @@ -157718,57 +160689,59 @@ msgid "" "You envision the tension of a fully drawn bow and then launch a piercing " "blow on %s's top half" msgstr "" +"Вы представляете напряжение полностью натянутого лука и наносите проникающий" +" удар по верхней половине %s" #: lang/json/technique_from_json.py #, python-format msgid " lands a piercing blow on %s's face" -msgstr "" +msgstr " наносит проникающий удар по морде %s" #: lang/json/technique_from_json.py msgid "Blindside" -msgstr "" +msgstr "Ослепление" #: lang/json/technique_from_json.py #, python-format msgid "You thwap %s's face" -msgstr "" +msgstr "Вы хлещете %s по морде" #: lang/json/technique_from_json.py #, python-format msgid " smashes in %s's face" -msgstr "" +msgstr " бьёт %s по морде" #: lang/json/technique_from_json.py msgid "Unrelenting Smackos" -msgstr "" +msgstr "Неостановимые удары" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly swipe your weapon's tip at %s" -msgstr "" +msgstr "Вы стремительно проводите кончиком оружия по %s" #: lang/json/technique_from_json.py msgid "Roomsweeper" -msgstr "" +msgstr "Расчиститель" #: lang/json/technique_from_json.py #, python-format msgid "You steady your arm and release a crushing blow at %s" -msgstr "" +msgstr "Вы складываете руку и наносите %s сокрушительный удар" #: lang/json/technique_from_json.py #, python-format msgid " releases a crushing blow at %s" -msgstr "" +msgstr " наносит %s сокрушительный удар" #: lang/json/technique_from_json.py msgid "Measured Footwork" -msgstr "" +msgstr "Точный удар ногой" #: lang/json/technique_from_json.py #, python-format msgid "You quickly batter %s" -msgstr "" +msgstr "Вы быстро пинаете %s" #: lang/json/technique_from_json.py src/melee.cpp #, c-format, python-format @@ -157777,25 +160750,25 @@ msgstr " колотит %s" #: lang/json/technique_from_json.py msgid "Rapid Burst" -msgstr "" +msgstr "Быстрый разрыв" #: lang/json/technique_from_json.py #, python-format msgid "You swiftly impale your fingers into %s joints" -msgstr "" +msgstr "Вы быстро вонзаете пальцы в суставы %s" #: lang/json/technique_from_json.py #, python-format msgid " swiftly impales their fingers into %s" -msgstr "" +msgstr " быстро вонзает пальцы в %s" #: lang/json/technique_from_json.py msgid "Rapid Jab" -msgstr "" +msgstr "Резкий укол" #: lang/json/technique_from_json.py msgid "Calculated Pierce" -msgstr "" +msgstr "Рассчитанный укол" #: lang/json/technique_from_json.py #, python-format @@ -157803,6 +160776,8 @@ msgid "" "You envision a tempest in your hand and then land a piercing blow on %s's " "top half" msgstr "" +"Вы представляете бурю в своей ладони и наносите прокалывающий удар в верхнюю" +" часть %s" #: lang/json/technique_from_json.py msgid "BERSERK" @@ -157814,20 +160789,22 @@ msgid "" "50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " "reduces action cost and adds overall damage (S)" msgstr "" +"50% движения, 77% дробящий, 77% режущий, 77% колющий, Сбить с ног на два " +"хода, СИЛ значительно уменьшает стоимость движения и увеличивает общий урон" #: lang/json/technique_from_json.py #, python-format msgid "Your swing makes %s stagger and fall" -msgstr "" +msgstr "От вашего замаха %s шатается и падает" #: lang/json/technique_from_json.py #, python-format msgid " hooks %s" -msgstr "" +msgstr " даёт подножку %s" #: lang/json/technique_from_json.py msgid "SWEEPER" -msgstr "" +msgstr "СМЕТАНИЕ" #. ~ Description for SWEEPER #: lang/json/technique_from_json.py @@ -157835,20 +160812,22 @@ msgid "" "15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," " and adds a (A) damage bonus, min 4 melee" msgstr "" +"15% движения, 35% урона, широкая дуга, СИЛ значительно уменьшает стоимость " +"движения и добавляет урон, мин 4 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "Your momentum causes your weapon to strike %s" -msgstr "" +msgstr "Вашим замахом вы попадаете по %s" #: lang/json/technique_from_json.py #, python-format msgid " inertially strikes %s" -msgstr "" +msgstr " по инерции попадает по %s" #: lang/json/technique_from_json.py msgid "BISECTION" -msgstr "" +msgstr "РАССЕЧЕНИЕ" #. ~ Description for BISECTION #: lang/json/technique_from_json.py @@ -157856,11 +160835,14 @@ msgid "" "Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " "reduces action cost and increases overall (B) damage, min 2 melee" msgstr "" +"Только крит, 35% стоимости движения, 105% дробящий и колющий, 125% режущий, " +"ЛОВ и ВОС уменьшают стоимость движения и увеличивают общий урон, мин 2 " +"рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You wind up the sword and release a well placed swing at %s" -msgstr "" +msgstr "Вы вздымаете меч и наносите по %s хорошо рассчитанный удар" #: lang/json/technique_from_json.py src/melee.cpp #, c-format, python-format @@ -157869,7 +160851,7 @@ msgstr " раскалывает %s" #: lang/json/technique_from_json.py msgid "HOOK" -msgstr "" +msgstr "ПОДСЕЧКА" #. ~ Description for HOOK #: lang/json/technique_from_json.py @@ -157877,15 +160859,17 @@ msgid "" "85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " "reduces action cost" msgstr "" +"85% движения, 66% ударный, 76% режущий, 86% колющий, Сбить с ног на два " +"хода, СИЛ значительно уменьшает стоимость движения" #: lang/json/technique_from_json.py #, python-format msgid "Your hooking attack makes %s stagger and fall" -msgstr "" +msgstr "Из-за вашей подсечки %s шатается и падает" #: lang/json/technique_from_json.py msgid "INERTIAL SWING" -msgstr "" +msgstr "РАЗМАХ ПО ИНЕРЦИИ" #. ~ Description for INERTIAL SWING #: lang/json/technique_from_json.py @@ -157893,10 +160877,12 @@ msgid "" "75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " "and adds a (C) damage bonus, min 4 melee" msgstr "" +"75% движения, 60% урона, широкая дуга, СИЛ значительно уменьшает стоимость " +"движения и добавляет урон, мин 4 рукопашный бой" #: lang/json/technique_from_json.py msgid "CHOP" -msgstr "" +msgstr "РАЗРУБАНИЕ" #. ~ Description for CHOP #: lang/json/technique_from_json.py @@ -157904,15 +160890,18 @@ msgid "" "Crit only, 115% move cost, 105% Bash, 105% Stab, 125% Cut, DEX (D) and PER " "(E) reduces action cost and increases overall (B) damage, min 2 melee" msgstr "" +"Только крит, 115% стоимости движения, 105% дробящий и колющий, 125% режущий," +" ЛОВ и ВОС уменьшают стоимость движения и увеличивают общий урон, мин 2 " +"рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You draw back your arm and release a well placed chop %s" -msgstr "" +msgstr "Вы заносите руку и наносите по %s хорошо рассчитанный удар" #: lang/json/technique_from_json.py msgid "SMASH" -msgstr "" +msgstr "РАЗБИВАНИЕ" #. ~ Description for SMASH #: lang/json/technique_from_json.py @@ -157920,20 +160909,23 @@ msgid "" "Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " "(D) reduces action cost and increases overall (C) damage, min 2 melee" msgstr "" +"Только крит, 110% стоимости движения, 120% дробящий, 105% колющий, 110% " +"режущий, ЛОВ и СИЛ уменьшают стоимость движения и увеличивают общий урон, " +"мин 2 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You grip your weapon with two hands and slam it into %s" -msgstr "" +msgstr "Вы хватаете оружие двумя руками и вбиваете в %s" #: lang/json/technique_from_json.py #, python-format msgid " smashes their weapon onto %s" -msgstr "" +msgstr " вбивает оружие в %s" #: lang/json/technique_from_json.py msgid "UNDERHAND" -msgstr "" +msgstr "КОВАРСТВО" #. ~ Description for UNDERHAND #: lang/json/technique_from_json.py @@ -157941,20 +160933,22 @@ msgid "" "Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" " reduces action cost, min melee 1" msgstr "" +"Только крит, 120% движения, 125% урона, оглушение на 1.5 хода, СИЛ " +"значительно уменьшает стоимость движения, мин 1 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You lunge forward with all your weight and swing upwards at %s" -msgstr "" +msgstr "Вы совершаете выпад всем своим весом и взмахиваете вверх в сторону %s" #: lang/json/technique_from_json.py #, python-format msgid " swings upwards with all their weight %s" -msgstr "" +msgstr " всем своим весом взмахивает на %s" #: lang/json/technique_from_json.py msgid "SHOVE" -msgstr "" +msgstr "ОТБРАСЫВАНИЕ" #. ~ Description for SHOVE #: lang/json/technique_from_json.py @@ -157962,20 +160956,22 @@ msgid "" "65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " "(D) and DEX (E) reduce action cost" msgstr "" +"65% движения, значительно сниженный урон, отбрасывание на 2 тайла, оглушение" +" на 1 ход, СИЛ и ЛОВ уменьшают стоимость движения" #: lang/json/technique_from_json.py #, python-format msgid "You quickly shove %s out of the way" -msgstr "" +msgstr "Вы быстро отбрасываете %s прочь" #: lang/json/technique_from_json.py #, python-format msgid " quickly shoves %s" -msgstr "" +msgstr " быстро отбрасывает %s" #: lang/json/technique_from_json.py msgid "SHIELDED SHOVE" -msgstr "" +msgstr "ПРИКРЫТОЕ ОТБРАСЫВАНИЕ" #. ~ Description for SHIELDED SHOVE #: lang/json/technique_from_json.py @@ -157983,50 +160979,53 @@ msgid "" "65% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " "(B) and DEX (C) reduce action cost, min melee 1" msgstr "" +"65% движения, без режущего урона, 110% дробящего и режущего урона, " +"отбрасывание на 2 тайла, СИЛ и ЛОВ уменьшают стоимость движения, мин " +"рукопашный бой 1" #: lang/json/technique_from_json.py #, python-format msgid "You quickly shove %s out of the way with your weapon" -msgstr "" +msgstr "Вы быстро отбрасываете %s прочь своим оружием" #: lang/json/technique_from_json.py msgid "TEAR" -msgstr "" +msgstr "РАЗРЫВ" #. ~ Description for TEAR #: lang/json/technique_from_json.py msgid "Crit only, 110% Cut, 115% Stab, min melee 2" -msgstr "" +msgstr "Только крит, 110% режущего, 115% колющего, мин 2 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You stab into %s and rake your blade out" -msgstr "" +msgstr "Вы пронзаете %s и вырываете клинок наружу" #: lang/json/technique_from_json.py #, python-format msgid " tears into %s flesh" -msgstr "" +msgstr " врывается в плоть %s" #: lang/json/technique_from_json.py msgid "THRUST" -msgstr "" +msgstr "ТОЛЧОК" #. ~ Description for THRUST #: lang/json/technique_from_json.py msgid "" "110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" -msgstr "" +msgstr "110% колющего урона, СИЛ и ВОС добавляют урон, мин 1 рукопашный бой" #: lang/json/technique_from_json.py #, python-format msgid "You lean forward and stab at %s" -msgstr "" +msgstr "Вы склоняетесь вперёд и наносите %s проникающий удар" #: lang/json/technique_from_json.py #, python-format msgid " stabs into %s flesh" -msgstr "" +msgstr " пронзает плоть %s" #: lang/json/technique_from_json.py msgid "LUNGE" @@ -158093,87 +161092,91 @@ msgstr "" #: lang/json/technique_from_json.py msgid "Ausstoß" -msgstr "" +msgstr "Ausstoß" #: lang/json/technique_from_json.py #, python-format msgid "You redirect %s's attack against them" -msgstr "" +msgstr "Вы перенаправляете атаку %s против его самого" #: lang/json/technique_from_json.py #, python-format msgid " redirects %s's attack against them" -msgstr "" +msgstr " перенаправляет атаку %s обратно" #: lang/json/technique_from_json.py msgid "Ellbogen Blatt" -msgstr "" +msgstr "Ellbogen Blatt" #: lang/json/technique_from_json.py #, python-format msgid "You expertly cut %s" -msgstr "" +msgstr "Вы мастерски разрезаете %s" #: lang/json/technique_from_json.py #, python-format msgid " expertly cuts %s" -msgstr "" +msgstr " мастерски разрезает %s" #: lang/json/technique_from_json.py msgid "Herzschlag" -msgstr "" +msgstr "Herzschlag" #: lang/json/technique_from_json.py #, python-format msgid "You hit %s with a powerful vibro-punch" -msgstr "" +msgstr "Вы бьёте %s мощным виброударом" #: lang/json/technique_from_json.py #, python-format msgid " hits %s with a powerful vibro-punch" -msgstr "" +msgstr " бьёт %s мощным виброударом" #: lang/json/technique_from_json.py msgid "Geschoss Schlag" -msgstr "" +msgstr "Geschoss Schlag" #: lang/json/technique_from_json.py #, python-format msgid "You launch a supersonic punch at %s" -msgstr "" +msgstr "Вы бьёте %s сверхзвуковым ударом" #: lang/json/technique_from_json.py #, python-format msgid " launches a supersonic punch at %s" -msgstr "" +msgstr " бьёт %s сверхзвуковым ударом" #: lang/json/technique_from_json.py msgid "Herz Nadel" -msgstr "" +msgstr "Herz Nadel" #: lang/json/technique_from_json.py #, python-format msgid "You detonate the shockwave within %s" -msgstr "" +msgstr "Вы порождаете ударную волну внутри %s" #: lang/json/technique_from_json.py #, python-format msgid " detonates the shockwave within %s" -msgstr "" +msgstr " порождает ударную волну внутри %s" #: lang/json/technique_from_json.py msgid "Mehr Umdrehungen" -msgstr "" +msgstr "Mehr Umdrehungen" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" +"%s пытается вас схватить, но вы отпинываетесь, высвобождаетесь и " +"раскручиваетесь!" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" +"%s пытается схватить , но тот отпинывается, высвобождается и " +"раскручивается!" #: lang/json/technique_from_json.py msgid "displace and counter" @@ -159036,14 +162039,42 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "стена из мазанки" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" +"Довольно примитивная стена, сделанная из размазанных по деревянному каркасу " +"влажной земли, глины, песка, навоза и соломы." + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "сломанная стена из мазанки" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" +"Эта стена мазанки уничтожена, остался только каркас, и он едва держится." + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "полупостроенная стена из мазанки" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" +"У этой стены мазанки построена часть каркаса, всё ещё нужно закончить каркас" +" и заполнить влажным наполнителем." + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "деревянная стена" @@ -160226,9 +163257,9 @@ msgid "" "can see some unharvested walnuts. You could cut it down with the right " "tools." msgstr "" -"Массивное дерево, принадлежащее к роду «Орех». Если вы посмотрите " -"внимательно, вы увидите некоторые несобранные грецкие орехи. Вы могли бы его" -" срубить с помощью правильных инструментов." +"Массивное дерево, принадлежащее к роду 'Орех'. Если вы посмотрите " +"внимательно, вы увидите несколько грецких орехов. Вы можете его срубить с " +"помощью подходящих инструментов." #. ~ Description for walnut tree #: lang/json/terrain_from_json.py @@ -160236,8 +163267,8 @@ msgid "" "A massive tree belonging to the 'Juglans' genus. You could cut it down with" " the right tools." msgstr "" -"Массивное дерево, принадлежащее к роду «Орех». Вы могли бы его срубить с " -"помощью правильных инструментов." +"Массивное дерево, принадлежащее к роду 'Орех'. Вы можете его срубить с " +"помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "chestnut tree" @@ -160250,9 +163281,9 @@ msgid "" "can see some unharvested chestnuts. You could cut it down with the right " "tools." msgstr "" -"Массивное дерево, принадлежащее роду «Каштан». Если вы посмотрите " -"внимательно, вы увидите некоторые несобранные каштаны. Вы могли бы его " -"срубить с помощью правильных инструментов." +"Массивное дерево, принадлежащее роду 'Каштан'. Если вы посмотрите " +"внимательно, вы увидите несколько каштанов. Вы можете его срубить с помощью " +"подходящих инструментов." #. ~ Description for chestnut tree #: lang/json/terrain_from_json.py @@ -160260,8 +163291,8 @@ msgid "" "A massive tree belonging to the 'Castanea' genus. You could cut it down " "with the right tools." msgstr "" -"Массивное дерево, принадлежащее роду «Каштан». Вы могли бы его срубить с " -"помощью правильных инструментов." +"Массивное дерево, принадлежащее роду 'Каштан'. Вы можете его срубить с " +"помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "beech tree" @@ -160274,9 +163305,9 @@ msgid "" "see some unharvested beech nuts. You could cut it down with the right " "tools." msgstr "" -"Массивное дерево, принадлежащее к роду «Бук». Если присмотреться, то можно " -"увидеть некоторые несобранные буковые орехи. Вы могли бы срубить его с " -"помощью правильных инструментов." +"Массивное дерево, принадлежащее к роду 'Бук'. Если присмотреться, то можно " +"увидеть несколько буковых орехов. Вы можете его срубить с помощью подходящих" +" инструментов." #. ~ Description for beech tree #: lang/json/terrain_from_json.py @@ -160284,8 +163315,8 @@ msgid "" "A massive tree belonging to the 'Fagus' genus. You could cut it down with " "the right tools." msgstr "" -"Массивное дерево, принадлежащее к роду «Бук». Вы могли бы срубить его с " -"помощью правильных инструментов." +"Массивное дерево, принадлежащее к роду 'Бук'. Вы можете его срубить с " +"помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "hazelnut tree" @@ -160298,9 +163329,9 @@ msgid "" " see some unharvested hazelnuts. You could cut it down with the right " "tools." msgstr "" -"Пустое дерево, принадлежащее роду «Орешник». Если вы посмотрите внимательно," -" то увидите несобранный фундук. Вы могли бы срубить его с помощью правильных" -" инструментов." +"Приземистое дерево из рода 'Лещина'. Если вы посмотрите внимательно, то " +"увидите несобранный фундук. Вы можете его срубить с помощью подходящих " +"инструментов." #. ~ Description for hazelnut tree #: lang/json/terrain_from_json.py @@ -160308,8 +163339,8 @@ msgid "" "A stubby tree belonging to the 'Corylus' genus. You could cut it down with " "the right tools." msgstr "" -"Пустое дерево, принадлежащее роду «Орешник». Вы могли бы срубить его с " -"помощью правильных инструментов." +"Приземистое дерево из рода 'Лещина'. Вы можете его срубить с помощью " +"подходящих инструментов." #: lang/json/terrain_from_json.py msgid "oak tree" @@ -160323,10 +163354,10 @@ msgid "" "the squirrels haven't gotten yet. You could cut it down with the right " "tools." msgstr "" -"Массивное лиственное дерево, принадлежащее к роду «Дуб», обычно " +"Массивное лиственное дерево, принадлежащее к роду 'Дуб', обычно " "встречающееся во всей Новой Англии. Если присмотреться, вы можете увидеть " -"некоторые желуди, которые еще не достались белкам. Вы могли бы срубить его с" -" помощью правильных инструментов." +"некоторые желуди, которые еще не достались белкам. Вы можете его срубить с " +"помощью подходящих инструментов." #. ~ Description for oak tree #: lang/json/terrain_from_json.py @@ -160334,9 +163365,9 @@ msgid "" "A massive deciduous tree belonging to the 'Quercus' genus, commonly found " "throughout New England region. You could cut it down with the right tools." msgstr "" -"Массивное лиственное дерево, относящееся к семейству буковых 'Quercus', " -"широко распространено во всех регионах Новой Англии. Вы можете срубить его с" -" необходимыми инструментами." +"Массивное лиственное дерево, принадлежащее к роду 'Дуб', обычно " +"встречающееся во всей Новой Англии. Вы можете его срубить с помощью " +"подходящих инструментов." #: lang/json/terrain_from_json.py msgid "cottonwood tree" @@ -160348,8 +163379,8 @@ msgid "" "A large tree belonging to the 'Populus' genus, commonly found throughout New" " England region. You could cut it down with the right tools." msgstr "" -"Большое дерево, принадлежащее к роду «Тополь», обычно встречается в регионе " -"Новой Англии. Вы могли бы срубить его с помощью правильных инструментов." +"Большое дерево, принадлежащее к роду 'Тополь', распространённое в Новой " +"Англии. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "elm tree" @@ -160361,8 +163392,8 @@ msgid "" "A large tree belonging to the 'Ulmus' genus, commonly found throughout New " "England region. You could cut it down with the right tools." msgstr "" -"Большое дерево, принадлежащее к роду «Вяз», обычно встречающееся в регионе " -"Новой Англии. Вы могли бы срубить его с помощью правильных инструментов." +"Большое дерево, принадлежащее к роду 'Вяз', распространённое в Новой Англии." +" Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "dead tree" @@ -160375,7 +163406,7 @@ msgid "" "otherworldy. You could cut it down with the right tools." msgstr "" "Неразличимое дерево, которое погибло из-за непогоды, пожара или чего-нибудь " -"еще. Вы можете срубить его при наличии подходящего инструмента." +"ещё. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "young tree" @@ -160402,9 +163433,9 @@ msgid "" "find a few mature ones in autumn. You could also cut it down with the right" " tools." msgstr "" -"Плодовое дерево семейства розоцветных 'Malus', его плоды известны как " -"яблоки. Вы можете найти несколько штук осенью, если внимательно осмотрите " -"ветви. Вы можете срубить его при наличии подходящего инструмента." +"Плодовое дерево из рода 'Яблоня', его плоды известны как яблоки. Вы можете " +"найти несколько штук осенью, если внимательно осмотрите ветви. Вы можете его" +" срубить с помощью подходящих инструментов." #. ~ Description for apple tree #: lang/json/terrain_from_json.py @@ -160413,9 +163444,9 @@ msgid "" "as apples. There doesn't appear to be any ripe apples now. You could also " "cut it down with the right tools." msgstr "" -"Плодовое дерево семейства розоцветных 'Malus', его плоды известны как " -"яблоки. Сейчас на дереве нет никаких спелых яблок. Вы можете срубить его при" -" наличии подходящего инструмента." +"Плодовое дерево из рода 'Яблоня', его плоды известны как яблоки. Сейчас на " +"дереве спелых яблок нет. Вы можете его срубить с помощью подходящих " +"инструментов." #: lang/json/terrain_from_json.py msgid "pear tree" @@ -160430,9 +163461,9 @@ msgid "" "tools." msgstr "" "Плодовое дерево семейства розоцветных 'Pyrus communis', широко известно как " -"грушевое дерево, плодоносит сочные груши осенью. Вы можете найти несколько " -"штук, если внимательно осмотрите ветви. Вы можете срубить его при наличии " -"подходящего инструмента." +"грушёвое дерево, плодоносит сочные груши осенью. Вы можете найти несколько " +"штук, если внимательно осмотрите ветви. Вы можете его срубить с помощью " +"подходящих инструментов." #. ~ Description for pear tree #: lang/json/terrain_from_json.py @@ -160442,8 +163473,8 @@ msgid "" "could also cut it down with the right tools." msgstr "" "Плодовое дерево семейства розоцветных 'Pyrus communis', широко известно как " -"грушевое дерево, плодоносит сочные груши осенью. Похоже, все спелые груши " -"были собраны. Вы можете срубить его при наличии подходящего инструмента." +"грушёвое дерево, плодоносит сочные груши осенью. Похоже, все спелые груши " +"были собраны. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "coffee tree" @@ -160457,11 +163488,10 @@ msgid "" "branches more closely, you could probably find a few mature ones. You could" " also cut it down with the right tools." msgstr "" -"Плодовое дерево семейства 'Gymnocladus dioicus' или кофейное дерево " -"Кентукки, которое осенью плодоносит кофейные стручки для обжарки и листья " -"для заваривания. При близком осмотре ветвей вы, возможно, сможете найти " -"несколько спелых плодов. Вы можете срубить его при наличии подходящего " -"инструмента." +"Это кентуккийское кофейное дерево, которое осенью плодоносит кофейные " +"стручки для обжарки и листья для заваривания. При близком осмотре ветвей вы," +" возможно, сможете найти несколько спелых плодов. Вы можете его срубить с " +"помощью подходящих инструментов." #. ~ Description for coffee tree #: lang/json/terrain_from_json.py @@ -160471,10 +163501,9 @@ msgid "" "ripe pods have been picked. You could also cut it down with the right " "tools." msgstr "" -"Плодовое дерево семейства 'Gymnocladus dioicus' или кофейное дерево " -"Кентукки, которое осенью плодоносит кофейные стручки для обжарки и листья " -"для заваривания. Похоже, все созревшие стручки были собраны. Вы можете " -"срубить его при наличии подходящего инструмента." +"Это кентуккийское кофейное дерево, которое осенью плодоносит кофейные " +"стручки для обжарки и листья для заваривания. Спелых стручков больше не " +"осталось. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "cherry tree" @@ -160488,11 +163517,10 @@ msgid "" " probably find some viable clusters. You could also cut it down with the " "right tools." msgstr "" -"Одна из нескольких разновидностей плодовых деревьев семейства розоцветных " -"'Prunus', можно найти в штатах Новой Англии, плодоносит сочные ягоды вишни " -"летом. При близком осмотре листвы вы, возможно, сможете найти несколько " -"кистей спелых ягод. Вы можете срубить его при наличии подходящего " -"инструмента." +"Одна из нескольких разновидностей плодовых деревьев рода розоцветных " +"'Prunus', плодоносит сочные ягоды вишни летом. При близком осмотре листвы " +"вы, возможно, сможете найти несколько кистей спелых ягод. Вы можете его " +"срубить с помощью подходящих инструментов." #. ~ Description for cherry tree #: lang/json/terrain_from_json.py @@ -160501,10 +163529,9 @@ msgid "" "cherries in the summer. Looks like all the ripe bunches of cherries have " "been picked. You could also cut it down with the right tools." msgstr "" -"Одна из нескольких разновидностей плодовых деревьев семейства розоцветных " -"'Prunus', можно найти в штатах Новой Англии, плодоносит сочные ягоды вишни " -"летом. Похоже все спелые кисти вишен были собраны. Вы можете срубить его при" -" наличии подходящего инструмента." +"Одна из нескольких разновидностей плодовых деревьев рода розоцветных " +"'Prunus', плодоносит сочные ягоды вишни летом. Спелых ягод больше не " +"осталось. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "juniper tree" @@ -160522,8 +163549,8 @@ msgstr "" "Один из видов рода 'Можжевельник', растущих в Новой Англии. Растение " "поначалу только цветёт и лишь на второй-третий год даёт плоды, после двух " "лет зелёные ягоды наконец сменяются знаменитой синей разновидностью. Если бы" -" вы внимательнее пошарили в листьях, то нашли бы пару подходящих штук. Также" -" его можно срубить при наличии подходящих инструментов." +" вы внимательнее пошарили в листьях, то нашли бы пару подходящих штук. Вы " +"можете его срубить с помощью подходящих инструментов." #. ~ Description for juniper tree #: lang/json/terrain_from_json.py @@ -160537,8 +163564,8 @@ msgstr "" "Один из видов рода 'Можжевельник', растущих в Новой Англии. Растение " "поначалу только цветёт и лишь на второй-третий год даёт плоды, после двух " "лет зелёные ягоды наконец сменяются знаменитой синей разновидностью. Похоже," -" больше спелых ягод не осталось. Также его можно срубить при наличии " -"подходящих инструментов." +" больше спелых ягод не осталось. Вы можете его срубить с помощью подходящих " +"инструментов." #: lang/json/terrain_from_json.py msgid "peach tree" @@ -160553,9 +163580,9 @@ msgid "" "right tools." msgstr "" "Одна из нескольких разновидностей плодовых деревьев семейства розоцветных " -"'Prunus', можно найти в штатах Новой Англии, плодоносит сочные персики " -"летом. При близком осмотре ветвей вы, возможно, сможете найти несколько " -"спелых плодов. Вы можете срубить его при наличии подходящего инструмента." +"'Prunus', плодоносит сочные персики летом. При близком осмотре ветвей вы, " +"возможно, сможете найти несколько спелых плодов. Вы можете его срубить с " +"помощью подходящих инструментов." #. ~ Description for peach tree #: lang/json/terrain_from_json.py @@ -160565,9 +163592,8 @@ msgid "" "You could also cut it down with the right tools." msgstr "" "Одна из нескольких разновидностей плодовых деревьев семейства розоцветных " -"'Prunus', можно найти в штатах Новой Англии, плодоносит сочные персики " -"летом. Похоже, все спелые персики были собраны. Вы можете срубить его при " -"наличии подходящего инструмента." +"'Prunus', плодоносит сочные персики летом. Похоже, все спелые персики были " +"собраны. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "apricot tree" @@ -160582,10 +163608,9 @@ msgid "" "with the right tools." msgstr "" "Пересаженная разновидность плодовых деревьев семейства розоцветных 'Prunus " -"armeniaca', редко можно найти в штатах Новой Англии. Плодоносит сочные " -"абрикосы летом. При близком осмотре ветвей вы, возможно, сможете найти " -"несколько спелых плодов. Вы можете срубить его при наличии подходящего " -"инструмента." +"armeniaca', редко встречающаяся в Новой Англии. Плодоносит сочные абрикосы " +"летом. При близком осмотре ветвей вы, возможно, сможете найти несколько " +"спелых плодов. Вы можете его срубить с помощью подходящих инструментов." #. ~ Description for apricot tree #: lang/json/terrain_from_json.py @@ -160595,9 +163620,9 @@ msgid "" "been picked. You could also cut it down with the right tools." msgstr "" "Пересаженная разновидность плодовых деревьев семейства розоцветных 'Prunus " -"armeniaca', редко можно найти в штатах Новой Англии. Плодоносит сочные " -"абрикосы летом. Похоже, все спелые абрикосы были собраны. Вы можете срубить " -"его при наличии подходящего инструмента." +"armeniaca', редко встречающаяся в Новой Англии. Плодоносит сочные абрикосы " +"летом. Спелых абрикосов больше не осталось. Вы можете его срубить с помощью " +"подходящих инструментов." #: lang/json/terrain_from_json.py msgid "plum tree" @@ -160612,9 +163637,9 @@ msgid "" "right tools." msgstr "" "Одна из нескольких разновидностей плодовых деревьев семейства розоцветных " -"'Prunus', можно найти в штатах Новой Англии, плодоносит сочные сливы летом. " -"При близком осмотре ветвей вы, возможно, сможете найти несколько спелых " -"плодов. Вы можете срубить его при наличии подходящего инструмента." +"'Prunus', плодоносит сочные сливы летом. При близком осмотре ветвей вы, " +"возможно, сможете найти несколько спелых плодов. Вы можете его срубить с " +"помощью подходящих инструментов." #. ~ Description for plum tree #: lang/json/terrain_from_json.py @@ -160624,9 +163649,8 @@ msgid "" "picked. You could also cut it down with the right tools." msgstr "" "Одна из нескольких разновидностей плодовых деревьев семейства розоцветных " -"'Prunus', можно найти в штатах Новой Англии, плодоносит сочные сливы летом. " -"Похоже, все спелые сливы были собраны. Вы можете срубить его при наличии " -"подходящего инструмента." +"'Prunus', плодоносит сочные сливы летом. Похоже, все спелые сливы были " +"собраны. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "mulberry tree" @@ -160639,9 +163663,9 @@ msgid "" "as mulberries. In the summer many berries can be picked. You could also " "cut it down with the right tools." msgstr "" -"Это дерево является членом рода «Шелковица», производя фрукты, широко " -"известные как тутовые ягоды. Летом можно собрать много плодов. Вы также " -"можете срубить его с помощью правильных инструментов." +"Дерево из рода 'Шелковица', его плоды известны как тутовые ягоды. Летом " +"можно собрать много плодов. Вы можете его срубить с помощью подходящих " +"инструментов." #. ~ Description for mulberry tree #: lang/json/terrain_from_json.py @@ -160650,9 +163674,8 @@ msgid "" "as mulberries. There doesn't appear to be any ripe mulberries now. You " "could also cut it down with the right tools." msgstr "" -"Это дерево является членом рода «Шелковица», производя фрукты, широко " -"известные как тутовые ягоды. Кажется, сейчас тут нет зрелых плодов. Вы также" -" можете срубить его с помощью правильных инструментов." +"Дерево из рода 'Шелковица', его плоды известны как тутовые ягоды. Сейчас " +"спелых ягод нет. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "elderberry tree" @@ -160665,9 +163688,8 @@ msgid "" "known as elderberries. In the summer many berries can be picked. You could" " also cut it down with the right tools." msgstr "" -"Это дерево является членом рода «Бузина», производя плоды, широко известные " -"как ягоды бузины. Летом с него можно собрать много плодов. Вы также можете " -"срубить его с помощью правильных инструментов." +"Дерево из рода 'Бузина' с одноимёнными ягодами. Летом с него можно собрать " +"много плодов. Вы можете его срубить с помощью подходящих инструментов." #. ~ Description for elderberry tree #: lang/json/terrain_from_json.py @@ -160676,9 +163698,8 @@ msgid "" "known as elderberries. There doesn't appear to be any ripe elderberries " "now. You could also cut it down with the right tools." msgstr "" -"Это дерево является членом рода «Бузина», производя плоды, широко известные " -"как ягоды бузины. Похоже, на нем сейчас нет плодов. Вы также можете срубить " -"его с помощью правильных инструментов." +"Дерево из рода 'Бузина' с одноимёнными ягодами. Сейчас спелых ягод нет. Вы " +"можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "pine tree" @@ -160693,11 +163714,10 @@ msgid "" "and unharvested pinecones. Also, you could cut it down with the right " "tools." msgstr "" -"Возвышающееся вечнозелёное хвойное дерево семейства 'Pinus', в штатах Новой " -"Англии есть несколько его разновидностей: 'P. strobus', 'P. resinosa' и 'P. " -"rigida'. При близком осмотре сосны вы, возможно, сможете найти несколько " -"полезных хвойных веток и сосновые шишки. Вы можете срубить его при наличии " -"подходящего инструмента." +"Высокое вечнозелёное хвойное дерево рода 'Сосна', в Новой Англии встречаются" +" виды Веймутова сосна, сосна жёсткая и сосна смолистая. При близком осмотре " +"сосны вы найдёте несколько хвойных веток и сосновые шишки. Вы можете его " +"срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "dead pine tree" @@ -160712,11 +163732,10 @@ msgid "" "aren't developed fully yet, but given a season, it could be harvestable " "again. You could also cut it down with the right tools." msgstr "" -"Возвышающееся вечнозелёное хвойное дерево семейства 'Pinus', в штатах Новой " -"Англии есть несколько его разновидностей: 'P. strobus', 'P. resinosa' и 'P. " -"rigida'. Несколько веток оторваны, и многие шишки ещё не созрели, но с " -"течением времени их можно будет собрать снова. Вы можете срубить его при " -"наличии подходящего инструмента." +"Высокое вечнозелёное хвойное дерево рода 'Сосна', в Новой Англии встречаются" +" виды Веймутова сосна, сосна жёсткая и сосна смолистая. Нескольких веток не " +"хватает, и многие шишки ещё не дозрели, но в следующем сезоне они вырастут " +"снова. Вы можете его срубить с помощью подходящих инструментов." #: lang/json/terrain_from_json.py msgid "birch tree" @@ -160731,11 +163750,11 @@ msgid "" "off some strips of bark if you examined the tree more closely. You could " "cut it down with the right tools." msgstr "" -"Высокое лиственное дерево семейства 'Betula', с характерной белой корой. " -"Такие семейства берёзы как 'B. alleghaniensis', 'B. papyrifera' и 'B. " -"populifolia' наиболее распространены в регионах Новой Англии. При близком " -"осмотре берёзы вы, возможно, сможете оторвать несколько полос бересты. Вы " -"можете срубить его при наличии подходящего инструмента." +"Высокое лиственное дерево рода 'Берёза' с характерной слоистой корой. В " +"Новой Англии часто встречаются виды берёза аллеганская, белая американская " +"берёза и берёза тополелистная. При близком осмотре вы сможете оторвать " +"несколько полос бересты. Вы можете срубить его при наличии подходящих " +"инструментов." #. ~ Description for birch tree #: lang/json/terrain_from_json.py @@ -160746,40 +163765,178 @@ msgid "" "there isn't enough rhytidome to peel off yet. You could cut it down with " "the right tools." msgstr "" -"Высокое лиственное дерево семейства 'Betula', с характерной белой корой. " -"Такие семейства берёзы как 'B. alleghaniensis', 'B. papyrifera' и 'B. " -"populifolia' наиболее распространены в регионах Новой Англии. Похоже, что " -"ещё нет достаточного количества бересты чтобы собрать. Вы можете срубить его" -" при наличии подходящего инструмента." +"Высокое лиственное дерево рода 'Берёза' с характерной слоистой корой. В " +"Новой Англии часто встречаются виды берёза аллеганская, белая американская " +"берёза и берёза тополелистная. Пока на нём недостаточно бересты. Вы можете " +"срубить его при наличии подходящих инструментов." #: lang/json/terrain_from_json.py msgid "willow tree" msgstr "ива" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" +"Большое высокое дерево из рода 'Ива' с длинными тонкими веточками, " +"свисающими подобно занавескам. Вы можете оторвать немного коры. Вы можете " +"его срубить с помощью подходящих инструментов." + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" +"Большое высокое дерево из рода 'Ива' с длинными тонкими веточками, " +"свисающими подобно занавескам. Всю полезную кору уже оторвали, а новая ещё " +"не наросла. Вы можете его срубить с помощью подходящих инструментов." + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "клён" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" +"Крупное лиственное дерево из рода 'Клён'. У него узнаваемые листья с пятью " +"зубцами. Из него можно получить кленовый сироп. Вы можете его срубить с " +"помощью подходящих инструментов." + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" +"Крупное лиственное дерево из рода 'Клён'. У него узнаваемые листья с пятью " +"зубцами. В ствол воткнут краник для извлечения сладкого кленового сока. Вы " +"можете его срубить с помощью подходящих инструментов." + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "дерево гикори" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" +"Большое лиственное дерево из рода 'Гикори'. Если осмотрите дерево, найдёте " +"орехи. Вы можете его срубить с помощью подходящих инструментов. " + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" +"Большое лиственное дерево из рода 'Гикори'. Орехов на дереве больше не " +"осталось. Вы можете его срубить с помощью подходящих инструментов. " + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "фисташковое дерево" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" +"Лиственное дерево из рода 'Фисташка'. Это завезённое растение, изначально не" +" произраставшее в этом регионе. Если осмотрите дерево, найдёте фисташковые " +"орехи. Вы можете его срубить с помощью подходящих инструментов. " + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" +"Лиственное дерево из рода 'Фисташка'. Это завезённое растение, изначально не" +" произраставшее в этом регионе. К несчастью, орехов на нём больше не " +"осталось. Вы можете его срубить с помощью подходящих инструментов. " + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "миндальное дерево" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" +"Лиственное дерево из рода 'Слива'. Это завезённое растение, изначально не " +"произраставшее в этом регионе. Если осмотрите дерево, найдёте мндальные " +"орехи. Вы можете его срубить с помощью подходящих инструментов. " + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" +"Лиственное дерево из рода 'Слива'. Это завезённое растение, изначально не " +"произраставшее в этом регионе. Орехов на дереве больше не осталось. Вы " +"можете его срубить с помощью подходящих инструментов. " + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "пекан" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" +"Высокое лиственное дерево из рода 'Гикори'. Если осмотрите дерево, найдёте " +"орехи. Вы можете его срубить с помощью подходящих инструментов. " + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" +"Высокое лиственное дерево из рода 'Гикори'. Орехов на дереве больше не " +"осталось. Вы можете его срубить с помощью подходящих инструментов. " + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "мёртвое дерево гикори" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" +"Мёртвые останки высокого лиственного дерева из рода 'Гикори'. Вы ничего не " +"сможете собрать с этого несчастного погибшего дерева. Вы можете его срубить " +"с помощью подходящих инструментов." + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -160793,10 +163950,34 @@ msgstr "" msgid "brush." msgstr "шорох." +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" +"Небольшие растения и кустарники, украшающие лес. Кто-то уже по ним прошёлся," +" и ничего полезного не осталось." + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" +"Небольшие растения и кустарники, украшающие лес. Кто-то уже по ним прошёлся," +" и ничего полезного не осталось. Они покрыты инеем." + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "куст" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "Маленький кустик." + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr " арахисовый куст" @@ -160949,22 +164130,51 @@ msgstr "Широкий лиловый куст, который в настоящ msgid "tree trunk" msgstr "ствол дерева" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" +"Кусок ствола срубленного дерева. Если есть инструменты, его можно распилить " +"на брёвна." + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "пень" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "Всё, что осталось от срубленного дерева - этот пенёк." + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "стена из корней" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "Земляная стена, покрытая корнями." + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "восковая стена" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "Стена, полностью состоящая из воска." + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "восковый пол" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "Полностью состоящий из воска пол." + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "забор" @@ -161070,6 +164280,11 @@ msgstr "" msgid "railing" msgstr "ограда" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "Участок деревянного заграждения." + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "треск!" @@ -161078,6 +164293,11 @@ msgstr "треск!" msgid "glass railing" msgstr "стеклянное ограждение" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "Участок стеклянного заграждения." + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "звон разбитого стекла!" @@ -161090,10 +164310,20 @@ msgstr "«кер-раш!»" msgid "metal railing" msgstr "металлическая ограда" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "Участок металлического заграждения." + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "бетонное ограждение" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "Участок бетонного заграждения." + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "водосточный жёлоб" @@ -161292,46 +164522,161 @@ msgstr "" msgid "shallow water" msgstr "мелководье" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" +"Вода тут не слишком глубокая. Если у вас есть водонепроницаемая ёмкость, " +"здесь можно набрать пресной воды. Небезопасна для питья в сыром виде." + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "глубокая вода" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" +"Отсюда трудно разглядеть дно сквозь глубокую воду. Если у вас есть " +"водонепроницаемая ёмкость, здесь можно набрать пресной воды. Небезопасна для" +" питья в сыром виде." + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "проточное мелководье" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" +"Текущая вода тут не слишком глубокая. Если у вас есть водонепроницаемая " +"ёмкость, здесь можно набрать пресной воды. Небезопасна для питья в сыром " +"виде, хотя всё равно лучше стоячей воды." + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "проточная глубокая вода" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" +"Текущая вода тут довольно глубокая. Если у вас есть водонепроницаемая " +"ёмкость, здесь можно набрать пресной воды. Небезопасна для питья в сыром " +"виде, хотя всё равно лучше стоячей воды." + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" +"Вода тут не слишком глубокая. Если у вас есть водонепроницаемая ёмкость, " +"здесь можно набрать солёной воды." + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" +"Отсюда трудно разглядеть дно сквозь глубокую воду. Если у вас есть " +"водонепроницаемая ёмкость, здесь можно набрать солёной воды." + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "бассейн" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" +"Глубокий бассейн, заполненный водой. Никогда не плавайте без присутствия " +"спасателя. Даже если всех спасателей сожрали монстры." + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "сточные воды" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" +"Мерзость. Здесь текут канализационные стоки. Чего и говорить, небезопасна " +"для питья." + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "лава" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" +"Чрезвычайно горячая светящаяся жидкость, состоящая из расплавленного камня " +"и/или металла. Кое-где поджаренный на лаве стейк считается деликатесом." + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "песочница" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" +"Раньше в этой песочнице играли дети. Дети больше не играют, и популяция " +"вшей, наверно, значительно сократилась." + #: lang/json/terrain_from_json.py msgid "slide" msgstr "горка" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "Детская горка. Слишком маленькая, чтоб можно было удобно скатиться." + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "конструкция для лазания" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" +"Конструкция для лазания, чтобы дети тренировали свои руки, свисая с прутьев," +" и веселились." + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "баскетбольное кольцо" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "Баскетбольный щит." + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "бензоколонка" @@ -161353,14 +164698,33 @@ msgstr "" msgid "tank with gasoline" msgstr "бак с бензином" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "Бак, полный бензина." + #: lang/json/terrain_from_json.py msgid "little column" msgstr "малая колонна" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "Маленькая подпорка." + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "разбитая бензоколонка" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" +"Ужасно! Эта бензоколонка разрушена, и вам никак не добраться до жидкого " +"золота." + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -161379,6 +164743,15 @@ msgstr "" msgid "smashed diesel pump" msgstr "разбитая дизельная колонка" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" +"Вы нескоро получите дизель от этой колонки. Какой-то варвар выместил на ней " +"свою ярость." + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "банкомат" @@ -161407,6 +164780,12 @@ msgstr "" msgid "broken generator" msgstr "неисправный генератор" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "Этот генератор сломан и не даст вам полезного электричества." + #: lang/json/terrain_from_json.py msgid "missile" msgstr "ракета" @@ -161489,6 +164868,8 @@ msgid "" "This is a gate control winch. If it's functioning, it can be used to open " "or close a nearby gate or door." msgstr "" +"Лебёдка управления воротами. Если она исправна, ею можно поднять или закрыть" +" ближайшие ворота или дверь." #. ~ Description for mechanical winch #. ~ Description for control lever @@ -161497,6 +164878,8 @@ msgid "" "This is a gate control winch. If it's functioning, it can be used to open " "or close a nearby gate." msgstr "" +"Лебёдка управления воротами. Если она исправна, ею можно поднять или закрыть" +" ближайшие ворота." #: lang/json/terrain_from_json.py msgid "control lever" @@ -161640,6 +165023,15 @@ msgstr "Бетонная колонна." msgid "cloning vat" msgstr "камера клонирования" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" +"Наполненная раствором ёмкость, предположительно в ней держали растущих " +"клонов людей или других форм жизни." + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "звон." @@ -161648,6 +165040,16 @@ msgstr "звон." msgid "stairs" msgstr "лестница" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "Лестничный пролёт, ведущий вниз." + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "Лестничный пролёт, ведущий вверх." + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "люк" @@ -161667,22 +165069,74 @@ msgstr "" msgid "ladder" msgstr "стремянка" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "Лестница вверх." + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "Лестница вниз." + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "уклон вниз" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "Уклон, ведущий вниз." + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "уклон вверх" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "Уклон, ведущий вверх." + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "ведущая вверх верёвка" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "Верёвка. По ней можно взобраться наверх." + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "Просто крышка люка." + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" +"Панель интеркома. Если вам нужно кого-то напугать до чёртиков или просто " +"поговорить через интерком, если вам вот настолько скучно." + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "считыватель карт" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" +"Устройство для считывания карт. На нём изображён стилизованный атом внутри " +"колбочки - универсальный символ НАУКИ. Суровый красный светодиод напоминает " +"вам о спятившем роботе из старого фантастического фильма. Проведите " +"удостоверением учёного, чтобы открыть врата к познанию." + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -161746,6 +165200,9 @@ msgid "" "gambling with your life on a daily basis isn't enough for you, you can also " "gamble with this." msgstr "" +"Машина с ярким экраном, гипнотически мерцающим в обещании богатства. Если " +"вам недостаточно каждый день ставить свою жизнь на кон, вы можете сделать " +"ставку и здесь." #: lang/json/terrain_from_json.py msgid "elevator controls" @@ -161757,6 +165214,8 @@ msgid "" "This is the control face for an elevator. You could press the appropriate " "button to take you to your choice of floor." msgstr "" +"Панель управления лифтом. Вы можете нажать кнопку и приехать на " +"соответствующий этаж." #: lang/json/terrain_from_json.py msgid "powerless controls" @@ -161765,60 +165224,130 @@ msgstr "обесточенная система управления" #. ~ Description for powerless controls #: lang/json/terrain_from_json.py msgid "This is the control face for an elevator. It's currently unpowered." -msgstr "" +msgstr "Панель управления лифтом. Сейчас она обесточена." #: lang/json/terrain_from_json.py msgid "elevator" msgstr "лифт" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "Внутренняя часть лифта." + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "тёмный пьедестал" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" +"Пьедестал из тёмного камня, покрытый древними неразличимыми символами. " +"Выглядит зловеще." + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "светлый пьедестал" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" +"Пьедестал из светлого камня, покрытый древними неразличимыми символами." + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "красный камень" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "Красный камень." + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "зелёный камень" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "Зелёный камень." + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "синий камень" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "Синий камень." + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "красный пол" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "Участок красного пола." + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "зелёный пол" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "Участок зелёного пола." + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "синий пол" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "Участок синего пола." + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "жёлтый переключатель" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "Жёлтый переключатель. Нужно ли его нажимать?" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "голубой переключатель" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "Циановый переключатель. Нужно ли его нажимать?" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "пурпурный переключатель" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "Фиолетовый переключатель. Нужно ли его нажимать?" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "разноцветный переключатель" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "Клетчатый переключатель. Нужно ли его нажимать?" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -161843,6 +165372,21 @@ msgstr "Мягкий пурпурный ковёр." msgid "linoleum tile" msgstr "линолеум" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" +"Участок напольного покрытия из прочного пружинистого материала. Окрашен в " +"простой белый цвет." + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" +"Участок напольного покрытия из прочного серого пружинистого материала." + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "красная стена" @@ -161901,10 +165445,22 @@ msgstr "Стена, окрашенная в пурпурный." msgid "stone wall" msgstr "каменная стена" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "Надёжная каменная стена." + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "полупостроенная каменная стена" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "Часть надёжной каменной стены. Для завершения стены нужна ещё работа." + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "закрытый колодец" @@ -161942,35 +165498,66 @@ msgstr "временное укрытие" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" -"Импровизированное временное укрытие, обеспечивающее небольшую защиту от " -"погодных условий." +"Самодельное укрытие, в нём можно спрятаться в непогоду или защитить костёр " +"от дождя." #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "плоская крыша" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "Плоская серая крыша." + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "гудронированная плоская крыша" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "Плоская серая крыша, покрытая рубероидом." + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "галечная плоская крыша" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "Плоская серая крыша, покрытая черепицей." + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "соломенная крыша" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "Участок соломенной крыши." + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "металлическая плоская крыша" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "Участок плоской крыши из листового металла." + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "плиточная плоская крыша" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "световой люк" @@ -162002,22 +165589,52 @@ msgstr "" msgid "telecom cabinet" msgstr "шкаф связи" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "повреждённый шкаф связи" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "большая металлическая опора" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "Прочная металлическая опорная балка." + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "малая металлическая опора" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "Металлическая опорная балка." + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "масляный выключатель" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" +"Автоматический выключатель с использованием масла в дугогасительной камере." + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "«бух!»" @@ -162026,30 +165643,80 @@ msgstr "«бух!»" msgid "small HV oil circuit breaker" msgstr "малый масляный выключатель" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" +"Небольшой автоматический выключатель с использованием масла в " +"дугогасительной камере." + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "большой распределитель" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" +"Панель распределителя, покрытая выключателями, коммутаторами и приборными " +"окошками." + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "малый распределитель" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" +"Небольшая панель распределителя, покрытая выключателями, коммутаторами и " +"приборными окошками." + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "громоотвод" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" +"Устройство для сохранения проводников и изоляции в электрической цепи путём " +"направления молнии в землю сквозь себя." + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "разъединитель" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "Аппарат для обесточивания электрической цепи на время обслуживания." + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "трансформатор тока" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "Электрическое устройство для изменения напряжения тока." + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "трансформатор напряжения" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "Специализированный электрический трансформатор." + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -162083,6 +165750,11 @@ msgstr "речной мост" msgid "bridge pavement" msgstr "асфальт моста" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "Секция моста из металла и бетона." + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "хруст бетона и скрежет метала!" @@ -162091,22 +165763,68 @@ msgstr "хруст бетона и скрежет метала!" msgid "bridge yellow pavement" msgstr "жёлтый асфальт моста" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "Секция моста из металла и бетона. Покрашена в жёлтый цвет." + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "тротуар моста" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "перила" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "мерилендский дуб" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" +"Лиственное дерево из рода 'Дуб' с корой, разбитой узкими оранжевыми " +"трещинками на прямоугольные чёрные пластинки. Вы можете оторвать куски коры," +" если осмотрите дерево. Вы можете его срубить с помощью подходящих " +"инструментов." + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" +"Лиственное дерево из рода 'Дуб' с корой, разбитой узкими оранжевыми " +"трещинками на прямоугольные чёрные пластинки. Вся полезная кора уже " +"оторвана. Вы можете его срубить с помощью подходящих инструментов." + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "насыпь глины" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "Холмик из глинистой почвы." + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "чавк!" @@ -162115,10 +165833,20 @@ msgstr "чавк!" msgid "mound of sand" msgstr "песчаная насыпь" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "Песчаный холмик." + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "конвейерная лента" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "Конвеерная лента. Переносит вещи." + #: lang/json/terrain_from_json.py msgid "ting." msgstr "тинь." @@ -162127,18 +165855,38 @@ msgstr "тинь." msgid "light machinery" msgstr "лёгкие механизмы" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "Разнообразные лёгкие механизмы. Можно разобрать на запчасти." + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "тяжёлые механизмы" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "Разнообразные тяжёлые механизмы. Можно разобрать на запчасти." + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "старые механизмы" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "Разнообразные старые механизмы. Можно разобрать на запчасти." + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "электронные механизмы" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "Разнообразные электронные механизмы. Можно разобрать на запчасти." + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "пролёт лестницы (начало)" @@ -162151,10 +165899,20 @@ msgstr "пролёт лестницы (конец)" msgid "milking machine" msgstr "доильный аппарат" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "Машина молочной промышленности для доения коров." + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "объёмный резервуар" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "Большая вместительная цистерна." + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "гравий" @@ -162175,26 +165933,86 @@ msgstr "" msgid "railroad track" msgstr "ж/д рельсы" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" +"По таким поезда делали 'чух-чух'. Эти рельсы никому больше не нужны перед " +"лицом Катаклизма." + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "ж/д шпалы" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "Эта шпала поддерживает рельсы." + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" +"По таким поезда делали 'чух-чух'. Эти рельсы никому больше не нужны перед " +"лицом Катаклизма. Под ними есть поддерживающая шпала." + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "покрашенный восковый пол" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "Участок вощёного и покрашенного пола." + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "буферный упор" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" +"Маленькое препятствие на железнодорожных путях, оно отмечает конец пути или " +"зону ограничения передвижения для поездов." + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "сигнал «ж/д переезд»" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" +"Светофоры светились и шумели при приближении поезда, чтобы люди не " +"превращались в кровавый фарш при пересечении путей. Впрочем, это не " +"уберегало людей от превращения в кровавый фарш другими способами." + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "знак «ж/д переезд»" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "Знак, обозначающий пересечение путей. Если б ещё ходили поезда." + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "погреб" @@ -162340,12 +166158,12 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "shallow pool water" -msgstr "" +msgstr "мелкий бассейн" #. ~ Description for shallow pool water #: lang/json/terrain_from_json.py msgid "A shallow pool of water." -msgstr "" +msgstr "Бассейн с небольшим уровнем воды." #: lang/json/terrain_from_json.py msgid "half-built adobe wall" @@ -162377,10 +166195,28 @@ msgstr "" msgid "pine lean-to" msgstr "навес из сосновых веток" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" +"Самодельное укрытие из сосновых веток, в нём можно спрятаться в непогоду или" +" защитить костёр от дождя." + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "брезентовый навес" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" +"Самодельное укрытие из водонепроницаемого брезента, в нём можно спрятаться в" +" непогоду или защитить костёр от дождя." + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "выжженная земля" @@ -162403,11 +166239,11 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "krick!" -msgstr "" +msgstr "крак!" #: lang/json/terrain_from_json.py msgid "LEGACY hydroponics unit" -msgstr "" +msgstr "УСТАРЕВШАЯ гидропонная установка" #. ~ Description for LEGACY hydroponics unit #: lang/json/terrain_from_json.py @@ -162415,6 +166251,7 @@ msgid "" "This is a deprecated hydroponics unit. Deconstruct it to recieve your " "materials back." msgstr "" +"Устаревшая гидропонная установка. Разберите и получите запчасти обратно." #: lang/json/terrain_from_json.py msgid "electro furnace" @@ -162508,10 +166345,6 @@ msgstr "анестезия" msgid "smoothing" msgstr "сглаживания" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "сварки" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "забивания" @@ -162560,10 +166393,6 @@ msgstr "дистилляции" msgid "tree cutting" msgstr "рубки дерева" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "копания" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "закручивания болтов" @@ -162580,14 +166409,6 @@ msgstr "закручивания шурупов" msgid "fine screw driving" msgstr "точного закручивания шурупов" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "разделки" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "сверления" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "взламывания" @@ -163715,6 +167536,14 @@ msgstr "" "Место, где можно сидеть. Спинка откидывается для превращения в неудобную " "кровать." +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" +"Присоедините эту часть к тягловому животному, чтобы оно тянуло ваш " +"транспорт." + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "устройство слежения" @@ -165498,6 +169327,12 @@ msgid "" "installed in the vehicle. You can also use a rubber hose to siphon liquids " "out of a tank." msgstr "" +"Контейнер для жидкостей, устанавливаемый в грузовом или пассажирском месте. " +"Если его наполнить подходящим топливом для двигателя автомобиля, двигатель " +"при работе будет автоматически расходовать топливо из бака. Если бак " +"наполнен водой, можно получить воду из крана при его наличии на этом " +"транспорте. Жидкости также можно сливать из бака с помощью резинового " +"шланга." #. ~ Description for fuel bunker #: lang/json/vehicle_part_from_json.py @@ -167632,6 +171467,8 @@ msgid "" "You need to suspend this corpse to butcher it. While you have a rope to lift" " the corpse, there is no tree nearby to hang it from." msgstr "" +"Вам нужно подвесить эту тушу, чтобы разделать её. У вас есть верёвка, но " +"поблизости нет подходящего дерева." #: src/activity_handlers.cpp msgid "" @@ -167639,6 +171476,8 @@ msgid "" "butchering rack or both a long rope in your inventory and a nearby tree to " "hang the corpse from." msgstr "" +"Для полной разделки такой большой туши вам нужна либо стойка для разделки, " +"либо длинная верёвка в инвентаре и дерево поблизости, чтобы подвесить тушу." #: src/activity_handlers.cpp msgid "" @@ -167646,6 +171485,9 @@ msgid "" "something else with a flat surface. A leather tarp spread out on the ground " "could suffice." msgstr "" +"Для полной разделки такой большой туши вам понадобится стол или любая другая" +" ровная поверхность. Расстеленная на земле кожаная подстилка вполне " +"подойдёт." #: src/activity_handlers.cpp msgid "For a corpse this big you need a saw to perform a full butchery." @@ -168028,10 +171870,14 @@ msgstr "Вы вставили патрон в %s." msgid "You refill the %s." msgstr "Вы налили жидкость в контейнер (%s)." -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "Здесь нечего поджечь." +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "У вас больше нет предмета, которым вы пытались разжечь огонь." @@ -168525,7 +172371,7 @@ msgstr "" #: src/activity_handlers.cpp #, c-format msgid "You gain %i experience. New total %i." -msgstr "" +msgstr "Вы получили %i опыта. %i всего." #: src/activity_handlers.cpp #, c-format @@ -168535,12 +172381,12 @@ msgstr "" #: src/activity_handlers.cpp msgid "" "Something about how this spell works just clicked! You gained a level!" -msgstr "" +msgstr "Вас внезапно осенило насчёт этого заклинания! Вы получили уровень!" #: src/activity_handlers.cpp #, c-format msgid "You gained %i experience from your study session." -msgstr "" +msgstr "Вы получили %i опыта за ваши занятия." #: src/activity_handlers.cpp src/iuse_actor.cpp src/iuse_actor.cpp msgid "It's too dark to read." @@ -168775,6 +172621,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "%s рассортировал все доступные предметы." +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "Прекратить %s?" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "Вам нужен никотин." @@ -171016,6 +174867,18 @@ msgstr "Повторное чтение %s уже не доставит тако msgid "Maybe you should find something new to read..." msgstr "Может быть, вам стоит найти что-то новое, чтобы почитать…" +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "Похоже, вы проспали ваш встроенный будильник..." + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "Похоже, вы проспали будильник..." + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "Вы чувствуете позыв к рвоте, но ваш желудок пуст." + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "" @@ -171067,6 +174930,10 @@ msgstr "Другое транспортное средство на пути." msgid "That part of the vehicle is currently unsafe." msgstr "Эта деталь машины небезопасна." +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "Ваш скакун пятится от воды!" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "Погрузиться в воду?" @@ -171125,6 +174992,10 @@ msgstr "" "Вам нужно вздохнуть, к тому же вы не умеете плавать! Быстрее выбирайтесь на " "землю!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "Вы не можете зайти в транспорт верхом." + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "" @@ -171189,6 +175060,38 @@ msgstr "" msgid "The %s can't be fired in its current state." msgstr "Из %s нельзя стрелять в его текущем состоянии." +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "Вы не можете совершать полноценные броски, находясь в своей раковине." + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "Метнуть предмет" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "У вас нет предметов для бросания." + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "У вас нет этого предмета." + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "Вы не можете метнуть такой тяжёлый предмет." + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "Это часть вашего тела, её нельзя метнуть!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "Вы сильно сконцентрировались, и ваше тело подчиняется!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "У вас не хватает усилий бросить что-либо..." + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -171225,33 +175128,21 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" "Примечания:\n" "%s\n" "\n" -"Используемый навык: %s\n" +"Требуемые навыки: %s\n" "%s\n" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" -"Примечания:\n" -"%s\n" -"\n" -"Используемый навык: %s\n" -"Сложность: %d\n" -"%s \n" "Риск: Нет\n" "Время: %s\n" @@ -171286,7 +175177,7 @@ msgstr "Расширение: пусто" #: src/bionics.cpp #, c-format msgid "Your %s is shorting out and can't be activated." -msgstr "" +msgstr "В вашей бионике (%s) короткое замыкание, она не включается." #: src/bionics.cpp #, c-format @@ -171556,7 +175447,7 @@ msgstr "" #: src/bionics.cpp #, c-format msgid "Your %s is shorting out and can't be deactivated." -msgstr "" +msgstr "В вашей бионике (%s) короткое замыкание, она не отключается." #: src/bionics.cpp #, c-format @@ -171664,7 +175555,7 @@ msgstr "%s провалил операцию." #: src/bionics.cpp msgid "The operation fails." -msgstr "" +msgstr "Операция провалилась." #: src/bionics.cpp msgid "The operation is a failure." @@ -172077,7 +175968,7 @@ msgstr "ВКЛ" #: src/bionics_ui.cpp msgid "(incapacitated)" -msgstr "" +msgstr "(без сознания)" #: src/bionics_ui.cpp #, c-format @@ -172539,6 +176430,11 @@ msgstr "Вы поднялись." msgid " stands up." msgstr " поднялся." +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "%s высвобождается из паутины!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "Вы освобождаетесь от паутины!" @@ -172551,6 +176447,11 @@ msgstr " освобождается от паутины!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "Вы пытаетесь освободиться от паутины, но у вас не получается!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "%s вырывается из лёгкого силка!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "Вы освобождаетесь из лёгкого силка!" @@ -172563,6 +176464,11 @@ msgstr " освобождается из лёгкого силка!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "Вы пытаетесь вырваться из лёгкого силка, но у вас не получается!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "%s вырывается из тяжёлого силка!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "Вы освобождаетесь из тяжёлого силка!" @@ -172575,6 +176481,16 @@ msgstr " освобождается от тяжёлой ловушки! msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "Вы пытаетесь вырваться из тяжёлого силка, но у вас не получается!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "%s вырывается из медвежьего капкана!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "Ваш %s безуспешно пытается вырваться из капкана!" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "Вы освобождаетесь от медвежьего капкана!" @@ -172612,6 +176528,21 @@ msgstr "Вы выбрались из ямы!" msgid " escapes the pit!" msgstr " выползает из ямы!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "Ваш %s безуспешно пытается высвободиться!" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "Ваш %s высвобождается из захвата!" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "Вас выдернули из %s!" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "Вы обнаружили, что больше не схвачены." @@ -172639,7 +176570,7 @@ msgstr " разрывает захват!" #: src/character.cpp #, c-format msgid "Your %s bionic comes back online." -msgstr "" +msgstr "Ваша бионика (%s) снова включается." #: src/character.cpp #, c-format @@ -172744,7 +176675,7 @@ msgstr "Усталость" #: src/character.cpp #, c-format msgid "Your %s bionic shorts out!" -msgstr "" +msgstr "Вашу бионику (%s) замкнуло, и она отключается!" #: src/character.cpp msgid "Left Arm" @@ -172893,23 +176824,81 @@ msgstr "Надето:" #: src/character.cpp msgid "NO_EXERCISE" -msgstr "" +msgstr "NO_EXERCISE" #: src/character.cpp msgid "LIGHT_EXERCISE" -msgstr "" +msgstr "LIGHT_EXERCISE" #: src/character.cpp msgid "MODERATE_EXERCISE" -msgstr "" +msgstr "MODERATE_EXERCISE" #: src/character.cpp msgid "ACTIVE_EXERCISE" -msgstr "" +msgstr "ACTIVE_EXERCISE" #: src/character.cpp msgid "EXTRA_EXERCISE" -msgstr "" +msgstr "EXTRA_EXERCISE" + +#: src/character.cpp +msgid "a piercing howl!" +msgstr "пронзительный вой!" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "вы пронизительно воете!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "пронзительный крик!" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "Вы громко кричите!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "громкий крик!" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "ваш громкий выкрик!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "Звук вашего голоса практически полностью заглушён!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "неразборчивый голос" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "ваш приглушённый выкрик" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "Звук вашего голоса значительно заглушён!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "Вырвало." + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "Вырвало." + +#: src/character.cpp +msgid " throws up heavily!" +msgstr "У сильная рвота!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "У вас сильная рвота!" #: src/clzones.cpp msgid "No Auto Pickup" @@ -173609,84 +177598,10 @@ msgstr "Лифт активирован. Нажмите любую клавиш msgid "NEPower Mine(%d:%d) Log" msgstr "Журнал шахты NEPower(%d:%d)" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"ЗАПИСЬ 47:\n" -"Во время обычного рабочего дня шахтёры раскопали пустую комнату.\n" -"Событие вполне обычное, если не считать странной совершенно вертикальной линии разлома. В ней имеются выбоины, которые насторожили наиболее суеверных рабочих. Кажется, выбоины сделаны человеком.\n" -"\n" -"ЗАПИСЬ 48:\n" -"Выбоины размером от 3 до 6 метров в высоту, расположены по всей длине разлома. Все они по форме напоминают человека, но с непропорционально растянутыми конечностями, шеей и головой, свёрнутыми в себя.\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "Продолжить чтение?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"ЗАПИСЬ 49:\n" -"Мы прекратили копать в этой области, пока археологи не исследуют всё что смогут.\n" -"Это задержит выполнение плана минимум на неделю. Дурацкий закон о сохранении артефактов действует уже 50 лет, и его отмена даже не рассматривалась, несмотря на то что добыча полезных ископаемых является основой нашей экономики.\n" -"\n" -"ЗАПИСЬ 52:\n" -"Всё ещё ждём, пока археологи закончат. Мы провели беглый осмотр разлома.\n" -"Нашего звукового оборудования недостаточно для измерения глубины выбоин.\n" -"Хотя оно и рассчитано на глубину до 25 км, оно не предназначено для таких узких туннелей, так что трудно сказать, как далеко они уходят.\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"ЗАПИСЬ 54:\n" -"Я заметил пару людей, отламывающих кусок вертикальной стены в той\n" -"комнате. Сделаю вид, что ничего не видел. Не думаю, что яйцеголовые\n" -"заметят, что маленький кусочек куда-то пропал. Шли б они все.\n" -"\n" -"ЗАПИСЬ 55:\n" -"Что ж, теперь археологи не вылезают оттуда и взяли несколько проводников. Вряд ли они похожи на Индиану Джонса. Сомневаюсь даже, что они когда-либо опускались ниже чем на 6 метров. Ненавижу снимать людей с работы, чтобы нянчиться с учёными, но если они себе что-то сломают, нас закроют на хрен знает сколько.\n" -"\n" -"ЗАПИСЬ 58:\n" -"Они привезли ЕЩЁ ОДНУ КОМАНДУ!? Твою ж мать, это всего лишь\n" -"парочка наскальных рисунков! Я понимаю, что это один из тех случаев, что выпадают лишь раз в жизни, но неужели они не могут справиться сами?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "ПРОЕКТ AMIGARA" @@ -173700,37 +177615,10 @@ msgstr "" "МЕСТО РАСКОПОК %d%d%d\n" "ВСЕ ЖУРНАЛЫ БРИГАДИРА БУДУТ ВЗЯТЫ НА ЗАМЕТКУ" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" -"\n" -"ШАХТЁРСКИЕ РАБОТЫ ПРИОСТАНОВЛЕНЫ. УПРАВЛЕНИЕ ПЕРЕДАНО ПРОЕКТУ АМИГАРА\n" -"УКАЗ №2:07В\n" -"ЗВУКОВОЕ СКАНИРОВАНИЕ РАЗЛОМА УКАЗАЛО ГЛУБИНУ 30.09КМ\n" -"ОБНАРУЖЕН УРОН ЛИНИИ СБРОСА. РАБОТНИКИ ШАХТЫ АРЕСТОВАНЫ ЗА\n" -" НАРУШЕНИЕ РАСПОРЯЖЕНИЯ №87.08 И ПЕРЕВЕДЕНЫ В ЛАБОРАТОРИЮ 89-В\n" -" ДЛЯ ИСПОЛЬЗОВАНИЯ В КАЧЕСТВЕ ПОДОПЫТНЫХ\n" -"КАЧЕСТВО РАЗЛОМА НЕ НАРУШЕНО\n" -"НАЧАЛО СТАНДАРТНЫХ ВИБРАЦИОННЫХ ИСПЫТАНИЙ…" - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "ФАЙЛ ПОВРЕЖДЁН, НАЖМИТЕ ЛЮБУЮ КЛАВИШУ…" -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "Машина быстро выправляет вашу сломанную %s и накладывает шину." - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--ДОСТУП РАЗРЕШЁН--" @@ -176137,6 +180025,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "Показать уровни категорий мутации" @@ -176313,6 +180205,10 @@ msgstr "Мужчина" msgid "no faction" msgstr "нет фракции" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -176955,17 +180851,17 @@ msgstr "" #: src/debug_menu.cpp msgid "There are no spells to learn. You must install a mod that adds some." -msgstr "" +msgstr "Нет заклинаний для изучения. Установите мод, добавляющий заклинания." #: src/debug_menu.cpp msgid "" "You have become an Archwizardpriest! What will you do with your newfound " "power?" -msgstr "" +msgstr "Вы стали Архимагосвященником! Как поступите с вновь обретённой силой?" #: src/debug_menu.cpp msgid "Try learning some spells first." -msgstr "" +msgstr "Сперва выучите какие-нибудь заклинания." #: src/debug_menu.cpp src/handle_action.cpp msgid "Spell" @@ -176991,7 +180887,7 @@ msgstr "" #: src/debug_menu.cpp #, c-format msgid "%s is now level %d!" -msgstr "" +msgstr "%s теперь на уровне %d!" #: src/defense.cpp #, c-format @@ -180248,27 +184144,6 @@ msgstr "" "Еда: %15d (ккал)\n" " \n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" -"Примечание:\n" -"%s\n" -"\n" -"Используемый навык: %s\n" -"Сложность: %d\n" -"%s\n" -"Риск: Нет\n" -"Время: %s\n" - #: src/faction_camp.cpp #, c-format msgid "" @@ -181915,6 +185790,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "Без дополнительного топлива он будет продолжать гореть ещё %s." +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "Во время езды верхом этого делать нельзя." + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "Нельзя взаимодействовать с транспортом во время езды верхом." + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "Нельзя использовать консоль во время езды верхом." + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -182191,38 +186078,6 @@ msgstr ", чтобы выстрелить" msgid "Drop where?" msgstr "Куда выбросить?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "Вы не можете совершать полноценные броски, находясь в своей раковине." - -#: src/game.cpp -msgid "Throw item" -msgstr "Метнуть предмет" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "У вас нет предметов для бросания." - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "У вас нет этого предмета." - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "Вы не можете метнуть такой тяжёлый предмет." - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "Это часть вашего тела, её нельзя метнуть!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "Вы сильно сконцентрировались, и ваше тело подчиняется!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "У вас не хватает усилий бросить что-либо..." - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -182564,6 +186419,11 @@ msgid "Really step into %s?" msgstr "Уверены, что хотите зайти в %s?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "Вы отпускаете схваченный объект." @@ -182571,6 +186431,14 @@ msgstr "Вы отпускаете схваченный объект." msgid "Can't find grabbed object." msgstr "Не удаётся найти схваченный объект." +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "Вы не можете зайти в транспорт верхом." + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "Нельзя заходить на препятствия во время езды верхом." + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -182631,12 +186499,27 @@ msgstr "Вы травмируете левую ступню о %s!" msgid "You hurt your right foot on the %s!" msgstr "Вы травмируете правую ступню о %s!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "Вы порезали %1$s об %2$s!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "Вы толкаете %s с дороги." + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -182646,6 +186529,10 @@ msgstr "Вы сдвигаете %s." msgid "There's something here, but you can't see what it is." msgstr "Здесь что-то есть, но вы не видите, что именно." +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "Тут что-то есть, но верхом достать нельзя." + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -182694,6 +186581,13 @@ msgstr "Здесь находится управление транспортн msgid "%s to drive." msgstr "%s для управления." +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" +"Здесь находится управление транспортным средством, но верхом до него достать" +" нельзя." + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -183798,11 +187692,6 @@ msgstr "На пути %s, и это слишком большое, чтобы п msgid "There is too much stuff in the way." msgstr "Здесь лежит слишком много предметов." -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "Вы толкаете %s с дороги." - #: src/gates.cpp msgid "stuff" msgstr "субстанция" @@ -183811,6 +187700,11 @@ msgstr "субстанция" msgid "No vehicle at grabbed point." msgstr "Здесь нет техники, чтобы её схватить." +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -184239,7 +188133,7 @@ msgstr "Вы должны освободить руки для заклинан #: src/handle_action.cpp msgid "You don't know any spells to cast." -msgstr "" +msgstr "Вы не знаете никаких заклинаний." #: src/handle_action.cpp msgid "RNG" @@ -184277,7 +188171,7 @@ msgstr "" #: src/handle_action.cpp msgid "You can't cast any of the spells you know!" -msgstr "" +msgstr "Вы не можете кастовать ни одно из известных заклинаний!" #: src/handle_action.cpp msgid "Choose your spell:" @@ -184286,11 +188180,11 @@ msgstr "Выберите заклинание:" #: src/handle_action.cpp #, c-format msgid "You don't have enough %s to cast the spell." -msgstr "" +msgstr "У вас недостаточно %s для каста заклинания." #: src/handle_action.cpp msgid "You cannot cast Blood Magic without a cutting implement." -msgstr "" +msgstr "Вы не можете пользоваться Магией Крови без режущего инструмента." #: src/handle_action.cpp msgid "What do you want to consume?" @@ -184309,14 +188203,30 @@ msgstr "Авто-перемещение отменено." msgid "Unknown command: \"%s\" (%ld)" msgstr "Неизвестная команда: «%s» (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "Вы не можете спускаться по лестнице во время езды верхом." + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "Вы не можете подниматься по лестнице во время езды верхом." + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "Вы не можете открывать предметы, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "Вы не можете ничего открывать во время езды верхом." + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "Вы не можете закрывать предметы, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "Вы не можете ничего закрывать во время езды верхом." + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "Вы не можете ломать предметы, находясь в своей раковине." @@ -184329,26 +188239,50 @@ msgstr "Вы не можете исследовать окрестности, н msgid "You can't move mass quantities while you're in your shell." msgstr "Вы не можете передвигать большие массы, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "Вы не можете перетаскивать много предметов во время езды верхом." + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "Вы не можете ничего подбирать, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "Вы не можете ничего подбирать во время езды верхом." + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "Вы не можете хватать предметы, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "Вы не можете ничего хватать во время езды верхом." + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "Вы не можете тащить предметы, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "Вы не можете ничего перетаскивать во время езды верхом." + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "Вы не можете разделывать, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "Вы не можете разделывать во время езды верхом." + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "Вы не можете выглядывать за угол, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "Вы не можете выглядывать из-за угла во время езды верхом." + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "" @@ -184359,10 +188293,18 @@ msgstr "" msgid "You can't craft while you're in your shell." msgstr "Вы не можете собирать вещи, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "Вы не можете изготавливать предметы во время езды верхом." + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "Нельзя разбирать предметы, находясь в транспорте." +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "Вы не можете ничего разбирать во время езды верхом." + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "Вы не можете строить, находясь в транспорте." @@ -184371,6 +188313,10 @@ msgstr "Вы не можете строить, находясь в трансп msgid "You can't construct while you're in your shell." msgstr "Вы не можете заниматься строительством, находясь в своей раковине." +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "Вы не можете строить во время езды верхом." + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -184453,6 +188399,7 @@ msgstr "%s теперь %s." #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -185941,10 +189888,26 @@ msgstr "" "На подключенных кушетках не найден пациент. Операция невозможна. Завершение " "работы." +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "Выберите Компактный Бионический Модуль для установки." + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "Выберите установленную бионику для удаления." + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "Наложить шину на сломанные конечности" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" "Вам потребуется набор для анестезии с как минимум одним зарядом, чтобы " "автодок мог провести какую-либо операцию." @@ -185997,6 +189960,26 @@ msgstr "У вас не установлена никакая бионика." msgid "%1$s doesn't have any bionics installed." msgstr "У %1$s не установлена никакая бионика." +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "Машина быстро выправляет вашу сломанную %s и накладывает шину." + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "Машина быстро выправляет сломанную %s и накладывает шину." + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "У вас нет травм, требующих наложения шины." + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "У %1$s нет травм, требующих наложения шины." + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "В мельнице уже содержится мука." @@ -187197,7 +191180,7 @@ msgid " round of %s" msgid_plural " rounds of %s" msgstr[0] " заряд %s" msgstr[1] " заряда %s" -msgstr[2] " зарядов%s" +msgstr[2] " зарядов %s" msgstr[3] " заряд %s" #: src/item.cpp @@ -189513,7 +193496,7 @@ msgstr "Вы уверены? Вы не сможете получить обра #: src/iuse.cpp #, c-format msgid "You damage your %s trying to modify it! ( %s-> %s)" -msgstr "" +msgstr "В попытке улучшить ваш %s вы повреждаете его! ( %s-> %s)" #: src/iuse.cpp src/iuse_actor.cpp msgid "You destroy it!" @@ -189575,7 +193558,7 @@ msgstr "У вас нет модифицированных инструменто #: src/iuse.cpp msgid "You doubt you will have much luck catching fish here" -msgstr "" +msgstr "Вы сомневаетесь, что тут будет хороший улов." #: src/iuse.cpp msgid "Fish where?" @@ -190114,7 +194097,7 @@ msgstr "Транспортное средство на пути!" #: src/iuse.cpp #, c-format msgid "You start drilling into the %1$s with your %2$s." -msgstr "" +msgstr "Вы начинаете сверлить %1$s при помощи %2$s." #: src/iuse.cpp msgid "Mine where?" @@ -190127,7 +194110,7 @@ msgstr "Здесь нельзя раскапывать." #: src/iuse.cpp #, c-format msgid "You strike the %1$s with your %2$s." -msgstr "" +msgstr "Вы атакуете %1$s, используя %2$s." #: src/iuse.cpp msgid "Burrow where?" @@ -190140,7 +194123,7 @@ msgstr "Здесь нельзя рыть." #: src/iuse.cpp #, c-format msgid "You start tearing into the %1$s with your %2$s." -msgstr "" +msgstr "Вы начинаете вгрызаться в %1$s при помощи %2$s." #: src/iuse.cpp msgid "buzzing" @@ -190597,16 +194580,17 @@ msgstr "Не настолько водонепроницаемое, чтобы #: src/iuse.cpp #, c-format msgid "You start cranking the %s to charge its %s." -msgstr "" +msgstr "Вы начинаете работать с %s, чтобы зарядить %s." #: src/iuse.cpp #, c-format msgid "You could use the %s to charge its %s, but it's already charged." msgstr "" +"Вы могли бы использовать %s для зарядки %s, но заряд уже максимальный." #: src/iuse.cpp msgid "You need a rechargeable battery cell to charge." -msgstr "" +msgstr "Для зарядки требуется перезаряжаемая батарея." #: src/iuse.cpp msgid "It's waterproof, but oxygen maybe?" @@ -190697,7 +194681,7 @@ msgstr "Забудь." #: src/iuse.cpp #, c-format msgid "There's nothing to use the %s on here." -msgstr "" +msgstr "Здесь %s не к чему применять." #: src/iuse.cpp msgid "You cut the log into planks." @@ -191855,6 +195839,11 @@ msgstr "Вытащить блюдо" msgid "Really stop cooking?" msgstr "Действительно прекратить готовить?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "У вас нет подходящего контейнера для хранения %s." + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -192747,11 +196736,11 @@ msgstr "" #: src/iuse_actor.cpp #, c-format msgid "Level %u" -msgstr "" +msgstr "Уровень %u" #: src/iuse_actor.cpp msgid " (Max)" -msgstr "" +msgstr "(Макс)" #: src/iuse_actor.cpp msgid "Study to Learn" @@ -192960,7 +196949,7 @@ msgstr "Предмет (%s) уже максимально улучшен." #: src/iuse_actor.cpp #, c-format msgid "You damage your %s! ( %s-> %s)" -msgstr "" +msgstr "Вы повреждаете ваш %s! ( %s-> %s)" #: src/iuse_actor.cpp #, c-format @@ -194556,7 +198545,7 @@ msgstr "" #: src/magic.cpp msgid "Failure Chance" -msgstr "" +msgstr "Шанс провала" #: src/magic.cpp msgid "health" @@ -194588,11 +198577,13 @@ msgid "" "Learning this spell will make you a %s and lock you out of other unique spells.\n" "Continue?" msgstr "" +"После изучения этого заклинания вы станете %s и не сможете постичь другие уникальные заклинания.\n" +"Продолжить?" #: src/magic.cpp #, c-format msgid "You learned %s!" -msgstr "" +msgstr "Вы выучили %s!" #: src/magic.cpp msgid "You can't learn this spell." @@ -195298,6 +199289,40 @@ msgstr "" "Этот стиль заставляет вас использовать невооруженные удары, даже если " "вы вооружены." +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" +"Вы можете ставить блоки руками после установки КБМ: " +"Металлическое покрытие — Руки" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" +"Вы можете ставить блоки руками в безоружном бою: " +"%s" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" +"Вы можете ставить блоки ногами после установки КБМ: " +"Металлическое покрытие — Ноги" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" +"Вы можете ставить блоки ногами в безоружном бою: " +"%s" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -195456,10 +199481,6 @@ msgstr "Вы теряете равновесие из-за скованност msgid "You can't hit reliably due to your farsightedness." msgstr "Из-за своей дальнозоркости вы не можете точно прицелиться." -#: src/melee.cpp -msgid "You feint." -msgstr "Вы делаете обманное движение." - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "Вы промахнулись и по инерции теряете равновесие." @@ -196096,27 +200117,17 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"Прибыль: $8/час\n" -"Опасность: минимальная\n" -"Время: 1 час минимум\n" -" \n" -"Назначение одного из ваших компаньонов на черновую работу - безопасный способ обучить их базовым навыкам и завоевать для них репутацию в аванпосте. Вознаграждение, впрочем, не очень большое." - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"Оплата: $8/час\n" +"Плата: $8/час\n" "Опасность: минимальная\n" "Время: 1 час минимум\n" " \n" -"Перечень работ:\n" +"Назначение одного из ваших спутников на черновую работу - безопасный способ обучить их базовым навыкам и завоевать репутацию в поселении. Однако большой награды не ждите.\n" +"\n" +"Список работников:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -196959,7 +200970,7 @@ msgstr "МОДЫ, ИСКЛЮЧАЮЩИЕ МОНСТРОВ" #: src/mod_manager.cpp msgid "GRAPHICAL MODS" -msgstr "" +msgstr "ГРАФИЧЕСКИЕ МОДЫ" #: src/mod_manager.cpp msgid "NO CATEGORY" @@ -197626,16 +201637,6 @@ msgstr "%s ощупывает , но тот уворачивается! msgid "The %s tries to grab you as well, but you bat it away!" msgstr "Вас пытается схватить %s, но вы отшвыриваете его!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "Вас пытается схватить %s, но вы разрываете захват!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "%s пытается схватить , но тот разрывает захват!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -198678,6 +202679,11 @@ msgstr "Выбросить всё, кроме брони" msgid "Attach bag" msgstr "Добавить сумку" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "Снять упряжь с %s" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -198715,6 +202721,54 @@ msgstr "Вырвать железу с феромоном" msgid "Milk %s" msgstr "Доить %s" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "Повесить седло на %s" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "Снять седло с %s" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "Вы не знаете, как оседлать %s" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "Сесть верхом на %s" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "На %s нельзя ездить " + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "%s слишком маленький, чтобы выдержать ваш вес" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "Вы вообще не имеете понятия о верховой езде" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "%s не может выдержать ваш вес" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "Вы недостаточно умелы, чтобы ездить без седла" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "Несмотря на седло, вы всё ещё не знаете, как ездить на %s" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -198728,6 +202782,11 @@ msgstr "Точно убить зомби-раба?" msgid "Pet armor" msgstr "Броня питомца" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "Вы снимаете упряжь с %s." + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -198791,6 +202850,11 @@ msgstr "Эта броня (%1$s) слишком тяжела для %2$s." msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "Вы одеваете %1$s на %2$s." +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "Вы отцепляете %s от транспорта." + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -199267,26 +203331,6 @@ msgstr "Вы чувствуете как яд входит в ваше тело! msgid "The %s climbs to its feet!" msgstr "%s поднимается на ноги!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "%s высвобождается из паутины!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "%s вырывается из лёгкого силка!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "%s вырывается из тяжёлого силка!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "%s вырывается из медвежьего капкана!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -199481,6 +203525,8 @@ msgstr "Вы тянетесь к деревьям своими корнями." msgid "" "You lay next to the trees letting your hair roots tangle with the trees." msgstr "" +"Вы ложитесь рядом с деревьями и позволяете вашим волосам-корням перепутаться" +" с ними." #: src/mutation.cpp msgid "Bionic power storage increased by 100." @@ -200190,7 +204236,7 @@ msgid "activated" msgstr "активировано" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -201236,6 +205282,8 @@ msgid "" "%1$s is sedated and can't be moved or woken up until the medication or sedation wears off.\n" "You estimate it will wear off in %2$s." msgstr "" +"%1$s в отключке и не может передвигаться и будет спать до тех пор, пока не закончится действие медикаментов.\n" +"По вашим прикидкам, оно закончится через %2$s." #: src/npctalk.cpp msgid " And I have more I'd like you to do." @@ -205256,57 +209304,33 @@ msgid " attempts to put out the fire on them!" msgstr " пытается потушить огонь!" #: src/player.cpp -msgid "a piercing howl!" -msgstr "пронзительный вой!" - -#: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "вы пронизительно воете!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "пронзительный крик!" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "Вы громко кричите!" - -#: src/player.cpp -msgid "a loud shout!" -msgstr "громкий крик!" - -#: src/player.cpp -msgid "yourself shout loudly!" -msgstr "ваш громкий выкрик!" - -#: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "Звук вашего голоса практически полностью заглушён!" - -#: src/player.cpp -msgid "an indistinct voice" -msgstr "неразборчивый голос" - -#: src/player.cpp -msgid "your muffled shout" -msgstr "ваш приглушённый выкрик" - -#: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "Звук вашего голоса значительно заглушён!" +msgid "You spur your steed into a gallop." +msgstr "Вы пускаете своего скакуна в галоп." #: src/player.cpp msgid "You start running." msgstr "Вы начали бежать." +#: src/player.cpp +msgid "Your steed is too tired to go faster." +msgstr "Ваш скакун слишком утомился, чтобы скакать быстрее." + #: src/player.cpp msgid "You're too tired to run." msgstr "Вы слишком устали, чтобы бежать." +#: src/player.cpp +msgid "You slow your steed to a walk." +msgstr "Вы замедляете своего скакуна до шага." + #: src/player.cpp msgid "You start crouching." msgstr "Вы начали красться." +#: src/player.cpp +msgid "You nudge your steed to a steady trot." +msgstr "Вы подгоняете своего скакуна бежать рысью." + #: src/player.cpp msgid "You start walking." msgstr "Вы начали идти." @@ -205382,11 +209406,11 @@ msgstr "Ваши волосы отрывает %s!" #: src/player.cpp #, c-format msgid "%1$s loses their balance while being hit!" -msgstr "" +msgstr "%1$s теряет равновесие после удара!" #: src/player.cpp msgid "You lose your balance while being hit!" -msgstr "" +msgstr "Вы теряете равновесие после удара!" #: src/player.cpp #, c-format @@ -206509,28 +210533,6 @@ msgstr "Сломанная %s пошла на поправку." msgid "Your %s has started to mend!" msgstr "Ваша %s начала заживать!" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "Вырвало." - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "Вырвало." - -#: src/player.cpp -msgid " throws up heavily!" -msgstr "У сильная рвота!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "У вас сильная рвота!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "Вы чувствуете позыв к рвоте, но ваш желудок пуст." - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -207176,14 +211178,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "Погрузилась в спячку." -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "Похоже, вы проспали ваш встроенный будильник..." - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "Похоже, вы проспали будильник..." - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -207279,6 +211273,32 @@ msgstr "Вы перестали тащить предметы." msgid "Your body strains under the weight!" msgstr "Ваше тело напряжено под такой тяжестью!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "Вы сваливаетесь со скакуна!" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "Вы поранили себя!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "Упал со скакуна." + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "Упала со скакуна." + +#: src/player.cpp +msgid "Dismount where?" +msgstr "Где спешиться?" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "Здесь нельзя спешиться!" + #: src/player.cpp msgid "Wielding: " msgstr "В руках: " @@ -208509,7 +212529,7 @@ msgstr "%s, задержка: %i" #: src/ranged.cpp #, c-format msgid "You don't have enough %s to cast this spell" -msgstr "" +msgstr "У вас не хватает %s для этого заклинания" #: src/ranged.cpp #, c-format @@ -208534,26 +212554,26 @@ msgstr "" #: src/ranged.cpp #, c-format msgid "Effective Spell Radius: %i%s" -msgstr "" +msgstr "Радиус действия: %i%s" #: src/ranged.cpp msgid " WARNING! IN RANGE" -msgstr "" +msgstr "ОПАСНО! В ОБЛАСТИ" #: src/ranged.cpp #, c-format msgid "Cone Arc: %i degrees" -msgstr "" +msgstr "Радиус конуса: %i градусов" #: src/ranged.cpp #, c-format msgid "Line width: %i" -msgstr "" +msgstr "Длина линии: %i" #: src/ranged.cpp #, c-format msgid "Damage: %i" -msgstr "" +msgstr "Урон: %i" #: src/ranged.cpp msgid "Thunk!" @@ -208639,6 +212659,10 @@ msgstr "«Ты-Дыщ!»" msgid "none" msgstr "нет" +#: src/recipe.cpp +msgid "none" +msgstr "нет" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -208679,11 +212703,11 @@ msgstr "и " #: src/requirements.cpp msgid "These tools are required:" -msgstr "" +msgstr "Требуемые инструменты:" #: src/requirements.cpp msgid "These components are required:" -msgstr "" +msgstr "Требуемые компоненты:" #: src/requirements.cpp msgid "These tools are missing:" @@ -208691,7 +212715,7 @@ msgstr "Отсутствующие инструменты:" #: src/requirements.cpp msgid "These components are missing:" -msgstr "" +msgstr "Недостающие компоненты:" #: src/requirements.cpp msgid "Components required:" @@ -208924,6 +212948,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "Наступила на пузырчатую плёнку." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "Ваш %s наступает на пузырчатую плёнку!" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "«Шпок!»" @@ -208977,6 +213006,11 @@ msgstr "Медвежий капкан захлопнулся на вашей н msgid "A bear trap closes on 's foot!" msgstr "Медвежий капкан захлопнулся на ноге !" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "Ваш %s попал в капкан!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -208995,6 +213029,11 @@ msgstr "Вы наступили на доску с шипами!" msgid " steps on a spiked board!" msgstr " наступает на доску с шипами!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "Ваш %s наступил на доску с шипами!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -209013,6 +213052,11 @@ msgstr "Вы наступили на острую металлическую т msgid " steps on a sharp metal caltrop!" msgstr " наступает на острую металлическую триболу!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "Ваш %s наступает на острую металлическую триболу!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -209053,6 +213097,16 @@ msgstr "Вы задели растяжку!" msgid " trips over a tripwire!" msgstr " спотыкается об растяжку!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "Ваш %s спотыкается о растяжку!" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "Ваш %s вызывает срабатывание арбалетной ловушки." + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "Вы вызвали срабатывание арбалетной ловушки!" @@ -209099,6 +213153,11 @@ msgstr "Болт вылетает, но промахивается по %s." msgid "Kerblam!" msgstr "«Ты-дыщ!»" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "Ваш %s вызывает срабатывание ловушки с дробовиком!" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "Вы вызвали срабатывание ловушки с дробовиком!" @@ -209122,6 +213181,11 @@ msgstr "Активировала ловушку с дробовиком." msgid "A shotgun fires and hits the %s!" msgstr "Дробовик стреляет и попадает в %s!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "Лезвие замахивается и рубит ваш %s!" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "Лезвие замахивается и рубит ваш торс!" @@ -209144,6 +213208,11 @@ msgstr "Активировала ловушку с лезвием." msgid "Snap!" msgstr "«Щёлк!»" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "Силок затягивается на ноге у %s!" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "Силок затягивается у вас на ноге." @@ -209162,7 +213231,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "Попала в лёгкий силок." -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "Силок затягивается на ноге у %s" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -209296,6 +213369,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "Наступила в рассекатель." +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "Электрические разряды вылетают из пола и пронзают ваш %s!" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr " падает в яму!" @@ -209326,14 +213404,15 @@ msgstr "" "Вы сильно ударились о землю, но ваши кинетические амортизаторы " "компенсировали силу удара!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "Вы поранили себя!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "Вы ловко приземлились." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "Ваш %s падает в яму!" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "Вы упали в яму с шипами!" @@ -209412,6 +213491,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "Наступила в лаву." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "Ваш %s обжигается о лаву!" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "Вам не удалось прикрепить это..." @@ -209430,6 +213514,11 @@ msgid "" msgstr "" " наступает на карстовую воронку, но умудряется выбраться оттуда." +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "Ваш %s падает в карстовую воронку!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -210810,6 +214899,11 @@ msgstr "%s застрял." msgid "The %s's engine emits a sneezing sound." msgstr "Двигатель (%s) жужжит и не заводится." +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -210859,6 +214953,10 @@ msgstr "%2$s (%1$s) наезжает на %3$s." msgid "The %1$s's %2$s runs over something." msgstr "%2$s (%1$s) наезжает на что-то." +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "Нельзя управлять тягловым транспортом без животного в упряжи." + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "" @@ -211434,6 +215532,36 @@ msgstr "" "крышку и запускаете программу стирки. Стиральная машина заполняется водой из" " баков транспортного средства." +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "Какое существо запрячь?" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "Вы запрягаете вашего %s в %s." + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "Вы распрягаете вашего %s." + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "Существо недружелюбно!" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "Существо нельзя запрячь." + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "Упряжь заблокирована." + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "Здесь нет существ." + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "Обследовать авто" @@ -211474,6 +215602,10 @@ msgstr "Поймать или выпустить существо" msgid "Load or unload a vehicle" msgstr "Загружать или выгружать транспорт" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "Запрячь животное" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "Положить семена в сеялку" diff --git a/lang/po/zh_CN.po b/lang/po/zh_CN.po index 636b6b068e2ac..94c5590d282da 100644 --- a/lang/po/zh_CN.po +++ b/lang/po/zh_CN.po @@ -27,23 +27,26 @@ # startobira , 2019 # Brett Dong , 2019 # L rient <1972308206@qq.com>, 2019 -# cainiao , 2019 # 何方神圣 何 <1366003560@qq.com>, 2019 # Dao Da , 2019 +# cainiao , 2019 +# CK LU <1965630970@qq.com>, 2019 # Amans Tofu , 2019 +# Jamie Cyril-Marlowe , 2019 +# 智也 三上 <464337873@qq.com>, 2019 +# space J <871171244@qq.com>, 2019 # 曾泰瑋 , 2019 -# fei li , 2019 # lu ck , 2019 +# fei li , 2019 # 万 和 <380014507@qq.com>, 2019 -# space J <871171244@qq.com>, 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: space J <871171244@qq.com>, 2019\n" +"Last-Translator: 万 和 <380014507@qq.com>, 2019\n" "Language-Team: Chinese (China) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1438,6 +1441,15 @@ msgid "" "create a beaded curtain door." msgstr "这是一个木珠。它可以用来制造可刻字的珠宝或制作珠帘门。" +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "松香" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "这是一块黄色松香,可用作焊剂的助焊剂。" + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "粗木弩矢" @@ -2362,6 +2374,18 @@ msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" msgstr[0] "复装 .38 超级弹" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "黑火药.38特别版" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "这个.38的特殊弹药装有200克的铸铅空尖弹头和23克的黑火药。虽然它比普通的.38要慢得多,但它巨有强大的制动力。" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr ".380 ACP FMJ弹" @@ -2400,12 +2424,11 @@ msgstr ".380 ACP +P弹" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" -"90格令的.380 柯尔特自动手枪(Automatic Colt Pistol)背甲空尖弹(Jacketed Hollow " -"Point),超压型。这些子弹是为了最大限度地提高性能而设计的,而且比练习型弹药更精确。注意不要将其放入9x18mm的马卡罗夫手枪或9x19mm的火器中。" +"超压.380枚ACP弹药,带90克中空弹。这些防御性装载是为了最大限度地提高性能而设计的,而且往往比实际弹药更精确。注意不要将其放入9x18毫米的马卡罗夫或9x19毫米的火器中。" #: lang/json/AMMO_from_json.py msgid "reloaded .380 ACP FMJ" @@ -2584,6 +2607,17 @@ msgid "" "incapacitating gas." msgstr "一颗40mm 催泪瓦斯榴弹。它爆炸后会散发的气雾能使目标暂时丧失战斗力。" +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "40毫米弹头" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "一个40毫米的弹壳,里面装着一颗巨大的子弹。我想跟你的肩膀说再见吧。" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 马格南全金属被甲弹" @@ -2616,6 +2650,17 @@ msgstr "复装 .44 马格南全金属被甲弹" msgid "reloaded .44 Magnum" msgstr "复装 .44 马格南弹" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "黑火药.44玛格南" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "这个.44 玛格南弹药装有39克的黑火药和200克的铸铅半平头弹。" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr ".44 纸卷弹" @@ -2696,6 +2741,106 @@ msgstr "" msgid "reloaded .454 Casull" msgstr "复装 .454 卡苏尔弹" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "黑火药.454卡苏尔" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "这种奇特而过时的弹药装着45克的黑火药和一个相对较轻的190克铸铅空心弹。" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr ".45-70 SP" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr ".45-70政府弹,装载305颗粒软尖弹。它是目前仍在使用的最古老的弹药之一,依然是短程大型狩猎游戏的首选。" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr ".45-70+P穿甲弹" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr ".45-70政府+P弹药,装有305颗粒实心铜穿甲弹。设计最大限度地穿透厚皮和骨头,同时能保持理想的伤害品质。" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr ".45-70 LFN 牛仔" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr ".45-70政府弹药,装有405粒铅扁鼻弹,符合原始规格,可安全用于古董枪械。虽然比现代的弹药威力要弱一点,但仍然有一战之力。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "复装.45-70SP" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr ".45-70政府弹药,装载305颗粒软尖弹。它是目前仍在使用的最古老的弹药筒之一,仍然是短程大型狩猎游戏的首选。这枚是手动装填的。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "复装 .45-70 +P penetrator" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "45-70政府+P弹药,装有305颗粒实心铜穿甲弹。设计最大限度地穿透厚皮和骨头,同时能保持理想的伤害品质。这枚是手动装填的。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "复装 .45-70 LFN 牛仔" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" +".45-70政府弹药,装有405粒铅扁鼻弹,符合原始规格,可安全用于古董枪械。虽然比现代的弹药威力要弱一点,但仍然有一战之力。这枚是手动装填的。" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "复装 .45-70 黑火药" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" +".45-70政府弹药,装有405粒铅扁鼻弹,使用符合原始规格的黑火药。与现代弹药相比,它的威力要小得多,而且要脏得多,但仍然有一战之力。这枚是手动装填的。" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4.6x30mm弹" @@ -3469,6 +3614,22 @@ msgstr "复装 镖形霰弹" msgid "reloaded shotgun slug" msgstr "复装 独头弹" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "黑火药猎鸟弹" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "黑火药猎鹿弹" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "黑火药 镖形霰弹" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "黑火药 独头弹" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "猎鹿弹" @@ -3848,7 +4009,7 @@ msgstr "一种特异型合金弹丸,设计目的为超越普通铅弹飞行速 #: lang/json/AMMO_from_json.py msgid "pulse round" -msgstr "" +msgstr "脉冲弹" #. ~ Description for pulse round #: lang/json/AMMO_from_json.py @@ -3856,7 +4017,7 @@ msgid "" "A helical magazine of hollow-point alloy bullets propelled by pockets of " "primer. Not the most lethal thing out there, but it still packs a punch " "without the worry of having a stray shot seriously damaging the environment." -msgstr "" +msgstr "合金子弹头组成的脉冲弹药,拥有强大冲击力。不要胡乱发射,小心伤及无辜。" #: lang/json/AMMO_from_json.py msgid "6.54x42mm 9N8" @@ -5329,10 +5490,10 @@ msgstr[0] "废金属套装" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." -msgstr "一套将废旧金属用绳索绑牢而成的盔甲,提供良好的防护,但松散的铁片并不是很舒适。" +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." +msgstr "一套用金属碎片做成的装甲,碎片之间用小绳子固定。这些松垮的小片片能提供不错的防护,但是还不够完美。" #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -12301,6 +12462,36 @@ msgstr[0] "潜水鞋" msgid "A pair of neoprene swimming booties, with individual toes." msgstr "一双橡胶制的泳袜,脚趾部分是分开的。" +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "暴走鞋(走)" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "你把轮子取出来了。" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "一双带轮子的运动鞋,目前轮子是隐藏的。" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "暴走鞋(滑)" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "你把轮子放回去了。" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "一双带轮子的运动鞋,现在轮子坏了。" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -12640,7 +12831,7 @@ msgstr "模块化防弹背心。插入了钛合金板以进一步增强防护性 #: lang/json/ARMOR_from_json.py msgid "C.R.I.T face mask" msgid_plural "C.R.I.T face masks" -msgstr[0] "C.R.I.T面罩" +msgstr[0] "C.R.I.T 战术面罩" #. ~ Description for C.R.I.T face mask #: lang/json/ARMOR_from_json.py @@ -12654,7 +12845,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T boots" msgid_plural "pair of C.R.I.T bootss" -msgstr[0] "C.R.I.T重型靴" +msgstr[0] "C.R.I.T 重型战靴" #. ~ Description for pair of C.R.I.T boots #: lang/json/ARMOR_from_json.py @@ -12669,7 +12860,7 @@ msgstr "" #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T LA boots" msgid_plural "pairs of C.R.I.T LA boots" -msgstr[0] "C.R.I.T轻型靴" +msgstr[0] "C.R.I.T 轻型战靴" #. ~ Description for pair of C.R.I.T LA boots #: lang/json/ARMOR_from_json.py @@ -12678,12 +12869,12 @@ msgid "" "variant was created for missions in warmer climates. The LA boots keep most " "of the old features of the standard issue boots but trade in protection for " "easier movement." -msgstr "C.R.I.T骨感靴,基于C.R.I.T靴的更轻型版本,以适应更为温暖的气候,LA靴保持了标准靴的基本特性,只是牺牲部分保护换取行动力。" +msgstr "C.R.I.T轻型战靴,基于C.R.I.T靴的更轻型版本,以适应更为温暖的气候,LA靴保持了标准靴的基本特性,只是牺牲部分保护换取行动力。" #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T fingertip-less gloves" msgid_plural "pair of C.R.I.T fingertip-less glovess" -msgstr[0] "C.R.I.T露指手套" +msgstr[0] "C.R.I.T 露指手套" #. ~ Description for pair of C.R.I.T fingertip-less gloves #: lang/json/ARMOR_from_json.py @@ -12696,7 +12887,7 @@ msgstr "C.R.I.T标配手套。用高温合金网制成,适用于基因改造 #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T fingertip-less liners" msgid_plural "pair of C.R.I.T fingertip-less linerss" -msgstr[0] "C.R.I.T露指手套内衬" +msgstr[0] "C.R.I.T 手套内衬" #. ~ Description for pair of C.R.I.T fingertip-less liners #: lang/json/ARMOR_from_json.py @@ -12709,7 +12900,7 @@ msgstr "C.R.I.T露指手套内衬,配合露指手套使用,用高温合金 #: lang/json/ARMOR_from_json.py msgid "C.R.I.T backpack" msgid_plural "C.R.I.T backpacks" -msgstr[0] "" +msgstr[0] "C.R.I.T 战术背包" #. ~ Description for C.R.I.T backpack #: lang/json/ARMOR_from_json.py @@ -12719,23 +12910,24 @@ msgid "" "and allows a larger weapon to be holstered, drawing and holstering is still " "rather awkward even with the magnetized clips, but practice helps." msgstr "" +"C.R.I.T标准包。基于MOLLE背包的设计,这个小一些的包在储存空间和累赘感之间取得了极佳的平衡,可以收纳一把大型武器。然而就算是有磁力弹夹,拔枪和收枪还是很不舒服,只有多多练习才行。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T chestrig" msgid_plural "C.R.I.T chestrigs" -msgstr[0] "" +msgstr[0] "C.R.I.T 战术背心" #. ~ Description for C.R.I.T chestrig #: lang/json/ARMOR_from_json.py msgid "" "C.R.I.T standard-issue chestrig, has mesh and MOLLE loops for gear and slots" " for light-armor padding." -msgstr "" +msgstr "C.R.I.T标准版战术背心,专为战斗设计的轻型护甲。两侧各有两个兼容弹匣仓,方便快速存取弹匣。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T leg guards" msgid_plural "C.R.I.T leg guardss" -msgstr[0] "" +msgstr[0] "C.R.I.T 战术护腿" #. ~ Description for C.R.I.T leg guards #: lang/json/ARMOR_from_json.py @@ -12743,12 +12935,12 @@ msgid "" "C.R.I.T standard-issue leg armor. Simple design and durable material allows " "for easy movement and the padding keeps the legs safe and warm in colder " "conditions." -msgstr "" +msgstr "C.R.I.T标准版护腿。简单的设计和耐用的材料使得奔跑时更加轻松与安全,保温材料让你更加适应寒冷的环境。" #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T arm guards" msgid_plural "pairs of C.R.I.T arm guards" -msgstr[0] "" +msgstr[0] "C.R.I.T 战术护臂" #. ~ Description for pair of C.R.I.T arm guards #: lang/json/ARMOR_from_json.py @@ -12756,24 +12948,24 @@ msgid "" "A pair of arm guards made from superalloy molded upon neoprene, and then " "insulated with rubber. They are sturdy and will block attacks, but they are " "ridiculously heavy." -msgstr "" +msgstr "用氯丁橡胶模压与合金材料制成的绝缘护臂。非常坚固,可以很好的阻挡攻击。当然,也重的出奇。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T web belt" msgid_plural "C.R.I.T web belts" -msgstr[0] "" +msgstr[0] "C.R.I.T 战术腰带" #. ~ Description for C.R.I.T web belt #: lang/json/ARMOR_from_json.py msgid "" "C.R.I.T standard-issue belt. Keeps your trousers up and your weapons on your" " hip." -msgstr "" +msgstr "C.R.I.T标准版腰带,坚固耐用并且集成了一个小型刀鞘。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T infantry duster" msgid_plural "C.R.I.T infantry dusters" -msgstr[0] "" +msgstr[0] "C.R.I.T 防尘风衣" #. ~ Description for C.R.I.T infantry duster #: lang/json/ARMOR_from_json.py @@ -12781,12 +12973,12 @@ msgid "" "A thick full-length duster coat with rubber insulation. Mildly encumbering, " "but rather protective against any anti-infantry electrical discharges from " "the robots. Has several pockets for storage." -msgstr "" +msgstr "带有橡胶绝缘层的防尘风衣。虽然有点重,但是可以有效的防护电击。它有许多口袋,可以提供额外的存储空间。" #: lang/json/ARMOR_from_json.py msgid "R&D Engineering Suit" msgid_plural "R&D Engineering Suits" -msgstr[0] "" +msgstr[0] "R&D工程装甲" #. ~ Description for R&D Engineering Suit #: lang/json/ARMOR_from_json.py @@ -12795,12 +12987,12 @@ msgid "" " plates of armor. A complex system digitizes items in an individual pocket " "universe for storage while built in joint-torsion ratchets generate the " "neccessary energy required to power the interface." -msgstr "" +msgstr "一套由复合纤维材料制成的柔韧套装,配备有防护装甲板。内部安装了复杂的物品数字化存储设备,同时内置的扭转棘轮可以为系统运行提供足够的电量。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T Armored Anomaly Suit" msgid_plural "C.R.I.T Armored Anomaly Suits" -msgstr[0] "" +msgstr[0] "C.R.I.T 装甲防护服" #. ~ Description for C.R.I.T Armored Anomaly Suit #: lang/json/ARMOR_from_json.py @@ -12810,23 +13002,24 @@ msgid "" " the suit light-weight and the one wearing it alive while offering superb " "resistance to the elements and ambient radiation. " msgstr "" +"一套轻便的防护盔甲,由复合纤维编制而成。内部巧妙的放置了凯夫拉材料,使得在拥有不错防护能力的同时保持重量轻便。同时能很好的防护辐射和其他环境危险。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T drop leg pouch" msgid_plural "C.R.I.T drop leg pouches" -msgstr[0] "" +msgstr[0] "C.R.I.T 绑腿袋" #. ~ Description for C.R.I.T drop leg pouch #: lang/json/ARMOR_from_json.py msgid "" "A set of pouches that can be worn on the thighs using buckled straps. This " "variety is more compact and is favored by the C.R.I.T for its ease of use." -msgstr "" +msgstr "一个可以用带子系在大腿上的小袋,更加紧凑耐用。由于使用方便而受到C.R.I.T的青睐。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T Enforcer armor assembly" msgid_plural "C.R.I.T Enforcer armor assemblys" -msgstr[0] "" +msgstr[0] "C.R.I.T 执法者装甲战衣" #. ~ Description for C.R.I.T Enforcer armor assembly #: lang/json/ARMOR_from_json.py @@ -12839,11 +13032,12 @@ msgid "" "protective. Various adjustable conectors such as straps and clips hold it " "together." msgstr "" +"由一套合金护甲、防护装置及卡扣组成的防弹衣,通常覆盖在外层衣物之上。通过特殊的设计,使得正面的凯夫拉装甲向外凸出从而可以转移攻击。这件防弹衣牺牲了舒适性的基础上大大加强了防护性,因此也会变得相当累赘和难以穿戴。" #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T Enforcer docks" msgid_plural "pairs of C.R.I.T Enforcer docks" -msgstr[0] "" +msgstr[0] "C.R.I.T 执法者装甲战靴" #. ~ Description for pair of C.R.I.T Enforcer docks #: lang/json/ARMOR_from_json.py @@ -12854,11 +13048,13 @@ msgid "" "designs, but they do seem to be worth using if you were to be in the middle " "of a warzone." msgstr "" +"C.R.I.T " +"执法者装甲战靴,凯夫拉及超合金被模压制成超大的脚掌形状,可以外挂在你的靴子外面,更加强力的保护你的脚掌免受伤害。它不像其他大多数C.R.I.T的装备设计那样的轻盈,甚至非常笨重,但是如果你处于战区之中,使用它将会让你更加安全。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T Soldier Suit" msgid_plural "C.R.I.T Soldier Suits" -msgstr[0] "" +msgstr[0] "C.R.I.T 士兵套装" #. ~ Description for C.R.I.T Soldier Suit #: lang/json/ARMOR_from_json.py @@ -12868,11 +13064,12 @@ msgid "" "neoprene pads areas for extra comfort. Most importantly, this can be worn " "comfortably under other armor." msgstr "" +"一套现代化凯夫拉材质的士兵套装,内置的合金板可以在防护的同时减轻重量。内衬软氯丁橡胶使得穿戴起来非常舒适,最重要的是,它可以很轻松的穿戴在其他盔甲内部。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T Lone Wolf Series Armor" msgid_plural "C.R.I.T Lone Wolf Series Armors" -msgstr[0] "" +msgstr[0] "C.R.I.T 孤狼战甲" #. ~ Description for C.R.I.T Lone Wolf Series Armor #: lang/json/ARMOR_from_json.py @@ -12881,12 +13078,12 @@ msgid "" "soft kevlar body-suit. Retrofitted with new armor improvements, this heavy " "armor will definitely protect you from practically anything. Just make sure " "you can actually walk with it on though." -msgstr "" +msgstr "一套哑光的黑色战甲,在笨重的板甲基础上添加了柔软的凯夫拉纤维。这款重型装甲可以保护你免受绝大多数伤害,当然前提是你能够穿着它走路。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T blouse" msgid_plural "C.R.I.T blouses" -msgstr[0] "" +msgstr[0] "C.R.I.T 衬衫" #. ~ Description for C.R.I.T blouse #: lang/json/ARMOR_from_json.py @@ -12896,18 +13093,19 @@ msgid "" "design keeps it from being too flashy. A zipper at the back and front allows" " for quick donning and doffing." msgstr "" +"C.R.I.T标准版衬衫。轻便、耐用,有足够大的存储空间。内衬弹性氯丁橡胶能让人在中等偏冷的天气里保持温暖,流线型的设计使得衣物非常贴身。拉链设计让穿戴起来更加快速。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T trousers" msgid_plural "C.R.I.T trouserss" -msgstr[0] "" +msgstr[0] "C.R.I.T 长裤" #. ~ Description for C.R.I.T trousers #: lang/json/ARMOR_from_json.py msgid "" "C.R.I.T standard-issue trousers. Durable, lightweight and has ample storage." " Super-flex neoprene keeps one warm in moderately cold weather." -msgstr "" +msgstr "C.R.I.T标准版长裤。轻便、耐用,有足够大的存储空间。内衬弹性氯丁橡胶能让人在中等偏冷的天气里保持温暖。" #. ~ Description for C.R.I.T trousers #: lang/json/ARMOR_from_json.py @@ -12915,51 +13113,51 @@ msgid "" "C.R.I.T dress pants. A minimalist sleek design makes the pants lightweight " "and it offers ok pockets. Super-flex neoprene keeps one warm in moderately " "cold weather." -msgstr "" +msgstr "C.R.I.T长裤,极简的的时尚设计使得裤子非常的轻便。内衬超级弹性氯丁橡胶在中等偏冷的天气里也能保暖。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T helmet liner" msgid_plural "C.R.I.T helmet liners" -msgstr[0] "" +msgstr[0] "C.R.I.T 头盔内衬" #. ~ Description for C.R.I.T helmet liner #: lang/json/ARMOR_from_json.py msgid "C.R.I.T standard-issue helmet liner. Keeps the noggin warm." -msgstr "" +msgstr "C.R.I.T标准版头盔内衬,可以让人保持温暖。" #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T shoes" msgid_plural "pairs of C.R.I.T dress shoes" -msgstr[0] "" +msgstr[0] "C.R.I.T 正装皮鞋" #. ~ Description for pair of C.R.I.T shoes #: lang/json/ARMOR_from_json.py msgid "A sleek pair of dress shoes. Fancy but easy on the eyes." -msgstr "" +msgstr "一双时髦的礼服鞋。很花哨,很好看。" #: lang/json/ARMOR_from_json.py msgid "pair of C.R.I.T rec gloves" msgid_plural "pair of C.R.I.T rec glovess" -msgstr[0] "" +msgstr[0] "C.R.I.T 防水手套" #. ~ Description for pair of C.R.I.T rec gloves #: lang/json/ARMOR_from_json.py msgid "" "C.R.I.T standard-issue rec gloves. Skin-hugging and sleek, these gloves are " "made with cotton with a neoprene lining for grip-pads and warmth. " -msgstr "" +msgstr "C.R.I.T标准版防水手套。这款手套既贴身又光滑,由棉制成,内衬氯丁橡胶既能保暖又能防滑。" #. ~ Description for C.R.I.T web belt #: lang/json/ARMOR_from_json.py msgid "" "C.R.I.T standard-issue belt. Keeps your trousers up and your tools on your " "hip." -msgstr "" +msgstr "C.R.I.T标准版腰带,坚固耐用并且集成了一个小型刀鞘。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T rec duster" msgid_plural "C.R.I.T rec dusters" -msgstr[0] "" +msgstr[0] "C.R.I.T 防水外套" #. ~ Description for C.R.I.T rec duster #: lang/json/ARMOR_from_json.py @@ -12967,12 +13165,12 @@ msgid "" "A waterproofed full-length duster coat. Made with neoprene, comfort and " "functionality meet together to form a fancy but sleek contemporary design. " "It has several pockets for storage." -msgstr "" +msgstr "防水长大衣。由氯丁橡胶制成,设计的相当时尚,完美的结合了舒适性与功能性,衣服上有几个袋子可以稍微增加存储空间。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T rec hat" msgid_plural "C.R.I.T rec hats" -msgstr[0] "" +msgstr[0] "C.R.I.T 防水兜帽" #. ~ Description for C.R.I.T rec hat #: lang/json/ARMOR_from_json.py @@ -12980,19 +13178,19 @@ msgid "" "Functionality meets fashion in this waterproofed C.R.I.T standard issue rec " "cover. Thick enough to provide warmth in colder weather, this hat shares the" " same sleek design of most of C.R.I.T's gear." -msgstr "" +msgstr "设计上非常时尚的C.R.I.T标准版防水兜帽,这顶帽子非常的光滑合身,厚度也让你在寒冷的天气里能保持温暖。" #: lang/json/ARMOR_from_json.py msgid "C.R.I.T canteen" msgid_plural "C.R.I.T canteens" -msgstr[0] "" +msgstr[0] "C.R.I.T 钢制水壶" #. ~ Description for C.R.I.T canteen #: lang/json/ARMOR_from_json.py msgid "" "A simple, durable steel canteen that can heat up food with built in " "plutonium heating elements." -msgstr "" +msgstr "一个简单耐用的钢制水壶,可以加热食物,内置钚加热元件。" #. ~ Description for pistol bandolier #: lang/json/ARMOR_from_json.py @@ -13014,7 +13212,7 @@ msgstr[0] "金属护手甲" #. ~ Description for pair of magical armored stone gauntlets #: lang/json/ARMOR_from_json.py lang/json/GENERIC_from_json.py msgid "A magical flexible stonelike substance for protection and attack." -msgstr "" +msgstr "一种柔韧的石头状魔法物质,用于保护和攻击。" #: lang/json/ARMOR_from_json.py msgid "magic lamp" @@ -13058,6 +13256,19 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "你的脚上有一层神奇的光滑的冰层。虽然在平坦的地面上速度相当快,但在崎岖的地形上很难移动。" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "肉袋" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "背上有一大袋坚硬的肉,里面有细小的触角,可以抓住你和你放在里面的任何东西。它改变和调整自己,以减少累赘。" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -15530,9 +15741,10 @@ msgstr "一本少见的关于机器人制造的书,内容包含各种有用的 #: lang/json/BOOK_from_json.py msgid "schematics generic" msgid_plural "schematics generics" -msgstr[0] "" +msgstr[0] "泛用原理图" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -15541,7 +15753,8 @@ msgstr[0] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -15603,7 +15816,7 @@ msgstr "保安机器人的组合施工图、设计规范以及技术图纸。其 #: lang/json/BOOK_from_json.py msgid "skitterbot schematics" msgid_plural "skitterbot schematics" -msgstr[0] "" +msgstr[0] "掠行机器人原理图" #. ~ Description for skitterbot schematics #: lang/json/BOOK_from_json.py @@ -15696,7 +15909,7 @@ msgstr "印有诺斯罗普标志的坦克无人机组合施工图、设计规范 #: lang/json/BOOK_from_json.py msgid "tripod schematics" msgid_plural "tripod schematics" -msgstr[0] "" +msgstr[0] "三足机器人原理图" #. ~ Description for tripod schematics #: lang/json/BOOK_from_json.py @@ -15704,12 +15917,12 @@ msgid "" "Bearing the logo of Honda, those are assembly plans, design specs, and " "technical drawings for the tripod. Most of this is useless to you, but you " "could use the assembly plans to re-assemble the robot from salvaged parts." -msgstr "" +msgstr "印有本田标志的三足机器人组合施工图、设计规范以及技术图纸。其中大部分没什么用了,但是可以根据组合施工图回收零部件重新组装机器人。" #: lang/json/BOOK_from_json.py msgid "dispatch schematics" msgid_plural "dispatch schematics" -msgstr[0] "" +msgstr[0] "派遣者原理图" #. ~ Description for dispatch schematics #: lang/json/BOOK_from_json.py @@ -15717,12 +15930,12 @@ msgid "" "Bearing the logo of Northrop, those are assembly plans, design specs, and " "technical drawings for the dispatch. Most of this is useless to you, but you" " could use the assembly plans to re-assemble the robot from salvaged parts." -msgstr "" +msgstr "印有诺斯罗普标志的派遣者组合施工图、设计规范以及技术图纸。其中大部分没什么用了,但是可以根据组合施工图回收零部件重新组装机器人。" #: lang/json/BOOK_from_json.py msgid "military dispatch schematics" msgid_plural "military dispatch schematics" -msgstr[0] "" +msgstr[0] "军用派遣者原理图" #. ~ Description for military dispatch schematics #: lang/json/BOOK_from_json.py @@ -15731,12 +15944,12 @@ msgid "" "technical drawings for the military dispatch. Most of this is useless to " "you, but you could use the assembly plans to re-assemble the robot from " "salvaged parts." -msgstr "" +msgstr "印有诺斯罗普标志的运用派遣者组合施工图、设计规范以及技术图纸。其中大部分没什么用了,但是可以根据组合施工图回收零部件重新组装机器人。" #: lang/json/BOOK_from_json.py msgid "anti-materiel turret schematics" msgid_plural "anti-materiel turret schematics" -msgstr[0] "" +msgstr[0] "反器材炮塔原理图" #. ~ Description for anti-materiel turret schematics #: lang/json/BOOK_from_json.py @@ -15744,12 +15957,12 @@ msgid "" "Assembly plans, design specs, and technical drawings for the anti-materiel " "turret. Most of this is useless to you, but you could use the assembly plans" " to re-assemble the robot from salvaged parts." -msgstr "" +msgstr "反器材炮塔的组合施工图、设计规范以及技术图纸。其中大部分没什么用了,但是可以根据组合施工图回收零部件重新组装炮塔。" #: lang/json/BOOK_from_json.py msgid "milspec searchlight schematics" msgid_plural "milspec searchlight schematics" -msgstr[0] "" +msgstr[0] "军用探照灯原理图" #. ~ Description for milspec searchlight schematics #: lang/json/BOOK_from_json.py @@ -15757,7 +15970,7 @@ msgid "" "Assembly plans, design specs, and technical drawings for the milspec " "searchlight. Most of this is useless to you, but you could use the assembly " "plans to re-assemble the robot from salvaged parts." -msgstr "" +msgstr "军用探照灯的组合施工图、设计规范以及技术图纸。其中大部分没什么用了,但是可以根据组合施工图回收零部件重新组装使用。" #: lang/json/BOOK_from_json.py msgid "The Art of Glassblowing" @@ -16397,14 +16610,14 @@ msgstr "" #: lang/json/BOOK_from_json.py msgid "Mycenacean Hymns" msgid_plural "Mycenacean Hymnss" -msgstr[0] "" +msgstr[0] "迈锡尼的赞美诗" #. ~ Description for Mycenacean Hymns #: lang/json/BOOK_from_json.py msgid "" "A vellum book containing the hymns central to Marloss faith. As the verses " "lead to each other, the text sings of unity and promised paradise." -msgstr "" +msgstr "羊皮纸书,包含了对马洛斯信仰至关重要的赞美诗。这些诗句彼此相通,经文歌颂统一和信仰的天堂。" #: lang/json/BOOK_from_json.py msgid "King James Bible" @@ -19224,24 +19437,24 @@ msgstr "已经过发酵,但尚未经过蒸馏的威士忌。尝起来不再甜 #: lang/json/COMESTIBLE_from_json.py msgid "fermenting gin mash" msgid_plural "fermenting gin mashes" -msgstr[0] "" +msgstr[0] "发酵杜松子酒" #. ~ Description for fermenting gin mash #: lang/json/COMESTIBLE_from_json.py msgid "Undistilled gin mash. Distilling it will produce gin." -msgstr "" +msgstr "未蒸馏的杜松子酒泥。蒸馏会产生杜松子酒。" #: lang/json/COMESTIBLE_from_json.py msgid "gin mash" msgid_plural "gin mashes" -msgstr[0] "" +msgstr[0] "杜松子酒" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." -msgstr "" +msgstr "杜松子酒,经过长时间的发酵以后蒸馏出来的可以直接饮用的杜松子酒。" #: lang/json/COMESTIBLE_from_json.py msgid "vodka wort" @@ -19652,7 +19865,7 @@ msgstr[0] "生肺片" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." +"prepared, it's a chewy lump of flavorless connective tissue." msgstr "" "一块来自某种动物的肺脏。看上去像粉红色的海绵状物体,而且很容易腐败。如果料理得当,它也能够变成一道美味;但如果料理不当,它就是一大块枯燥乏味的结缔组织。" @@ -19664,12 +19877,11 @@ msgstr[0] "熟肺片" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." msgstr "" -"一块来自某种动物的肺脏。由于采用这种方式料理,它就是一大块不易嚼烂且枯燥乏味的灰褐色结缔组织。看上去并不比生的更好吃,但是起码寄生虫都被煮熟了。\n" -"\"听我说,正宗的夫妻肺片里没有夫妻,也没有肺片。\"" +"一块来自某种动物的肺脏。由于采用这种方式料理,它就是一大块不易嚼烂且枯燥乏味的灰褐色结缔组织。看上去并不比生的更好吃,但是起码寄生虫都被煮熟了。" #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -20153,14 +20365,14 @@ msgstr "传统南亚奶茶,混有许多香料。" #: lang/json/COMESTIBLE_from_json.py msgid "chamomile tea" msgid_plural "chamomile tea" -msgstr[0] "" +msgstr[0] "甘菊茶" #. ~ Description for chamomile tea #: lang/json/COMESTIBLE_from_json.py msgid "" "A healthy beverage made from chamomile flowers steeped in boiling water. " "Can be used to treat insomnia." -msgstr "" +msgstr "洋甘菊煮沸得来的有益软饮料。可以用来治疗失眠。" #: lang/json/COMESTIBLE_from_json.py msgid "chocolate drink" @@ -24958,14 +25170,14 @@ msgstr "一把从松子里获得的松脆可口的坚果。" #: lang/json/COMESTIBLE_from_json.py msgid "handful of junipers" msgid_plural "handful of junipers" -msgstr[0] "" +msgstr[0] "杜松子" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." -msgstr "" +msgstr "杜松子,用于制作杜松子酒和土调料。辛辣,味道类似迷迭香。" #: lang/json/COMESTIBLE_from_json.py msgid "handful of shelled pistachios" @@ -29896,6 +30108,26 @@ msgstr[0] "塑料碗" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "一个带有方便密封盖的塑料碗,可以储存750ml液体。" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "不锈钢瓶" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "不锈钢制作的水瓶,能储存750毫升的液体。" + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "可折叠塑料瓶" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "一个水密的可折叠塑料瓶,能储存500毫升的液体。" + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -29940,16 +30172,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "一种用来种植植物的特殊花盆,可以使作物保持在舒适的条件下,以获得最大的产量。它可以种植各种种子。" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "不锈钢瓶" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "不锈钢制作的水瓶,能储存750毫升的液体。" - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -29960,16 +30182,6 @@ msgstr[0] "锡纸空包裹" msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "折叠铝箔纸而成的空包裹,用于包住东西。用来烹调或者烘焙。" -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "可折叠塑料瓶" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "一个水密的可折叠塑料瓶,能储存500毫升的液体。" - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -30526,6 +30738,10 @@ msgstr[0] "尸体" msgid "A dead body." msgstr "一具尸体。" +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "动物" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "靠近火源" @@ -30561,8 +30777,10 @@ msgstr[0] "枯萎植物" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "一株枯萎的植物,拿来生火正好。" +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "一株枯萎的植物。适合生火或堆起来睡觉。" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -32121,13 +32339,13 @@ msgstr "一朵向日葵的花蕾,有黄色的花瓣和一些尚未被动物吃 #: lang/json/GENERIC_from_json.py msgid "handful of chamomile flowers" msgid_plural "handfuls of chamomile flowers" -msgstr[0] "" +msgstr[0] "洋甘菊" #. ~ Description for handful of chamomile flowers #: lang/json/GENERIC_from_json.py msgid "" "White chamomile flowers, used as a herbal remedy since the ancient times." -msgstr "" +msgstr "白洋甘菊花,自古以来用作草药。" #: lang/json/GENERIC_from_json.py msgid "lump of clay" @@ -34607,6 +34825,7 @@ msgid "" "special feature, water from the RTG containment area can be used, giving the" " coffee a very special kick. The Curie-G is illegal in most countries." msgstr "" +"这是一个由CuppaTech公司生产的原子咖啡机。通过发射性元素产生热量来加热咖啡。通常情况下,普通的咖啡机是通过电能来加热水冲泡制作咖啡的。然而,这个特殊的原子咖啡机可以使用内置的RTG来加热密封区域的水。" #: lang/json/GENERIC_from_json.py lang/json/vehicle_part_from_json.py msgid "atomic lamp" @@ -34633,6 +34852,7 @@ msgid "" "preparedness. Now, it's actually pretty cool. Use it to close the cover " "and hide the light." msgstr "" +"利用核衰变产生的能量来驱动二极管发光,这种灯相当昂贵,至少可以保证在十年时间内持续发光。在大灾变之前,它唯一的作用就是炫耀。但是现在,它变得非常实用。关闭盖子可以隐藏它发出的光芒。" #: lang/json/GENERIC_from_json.py msgid "atomic lamp (covered)" @@ -34659,6 +34879,7 @@ msgid "" "preparedness. Now, it's actually pretty cool. The cover is closed. Use it" " to open the cover and show the light." msgstr "" +"利用核衰变产生的能量来驱动二极管发光,这种灯相当昂贵,至少可以保证在十年时间内持续发光。在大灾变之前,它唯一的作用就是炫耀。但是现在,它变得非常实用。盖子关上了,打开盖子可以散发光芒。" #: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py msgid "atomic reading light" @@ -34679,6 +34900,7 @@ msgid "" " it into a nightlight for a very wealthy child with a fear of the dark. Use" " it to close the cover and hide the light." msgstr "" +"利用核衰变产生的能量来驱动二极管发光,这种灯相当昂贵,至少可以保证在十年时间内持续发光。它被设计的非常可爱,可以为喜欢夜读的孩子提供足够的光亮。关闭盖子将会隐藏光亮。" #: lang/json/GENERIC_from_json.py msgid "atomic reading light (covered)" @@ -34699,11 +34921,12 @@ msgid "" " it into a nightlight for a very wealthy child with a fear of the dark. The" " cover is closed. Use it to open the cover and show the light." msgstr "" +"利用核衰变产生的能量来驱动二极管发光,这种灯相当昂贵,至少可以保证在十年时间内持续发光。它被设计的非常可爱,可以为喜欢夜读的孩子提供足够的光亮。盖子被关闭了,打开将会提供光亮。" #: lang/json/GENERIC_from_json.py msgid "mind splicer kit" msgid_plural "mind splicer kits" -msgstr[0] "" +msgstr[0] "心灵连接工具套" #. ~ Description for mind splicer kit #: lang/json/GENERIC_from_json.py @@ -34711,7 +34934,7 @@ msgid "" "Surgical forceps, cables and a modified smartphone inside a small plastic " "pouch. Assembled to steal the mind of some poor man, these are tools of the" " creepy high-tech sandman." -msgstr "" +msgstr "外科手术钳、链接电缆和一个小型智能手机一起被放在了一个塑料袋里面。这件可怕的工具在可怜的人们睡眠的时候可以窃取他的思维。" #: lang/json/GENERIC_from_json.py msgid "can sealer" @@ -35179,12 +35402,12 @@ msgstr "一个车载区域加热器。" #: lang/json/GENERIC_from_json.py msgid "vehicle cooler" msgid_plural "vehicle coolers" -msgstr[0] "" +msgstr[0] "车载冷却器" #. ~ Description for vehicle cooler #: lang/json/GENERIC_from_json.py msgid "A vehicle-mounted area cooler." -msgstr "" +msgstr "车载区域冷却器。" #: lang/json/GENERIC_from_json.py msgid "camera display" @@ -36270,6 +36493,16 @@ msgstr[0] ".45 ACP弹弹壳" msgid "An empty casing from a .45 ACP round." msgstr ".45 ACP子弹的空弹壳。" +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] ".45-70 弹壳" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr ".45-70子弹的空弹壳。" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -36453,6 +36686,18 @@ msgid "" msgstr "" "自由商会认证货币,又被称为\"C币\"或是\"商币\",是一种以旧美金为基础的货币。一张50美元或更大面额的旧美金本票,经过自由商会财务主管亲笔签字后,又加盖了经过精心设计的复杂图章。纸币上解释了可以用它在位于难民中心的自由商会处等价交换食物、水、或其他服务。" +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "Hub 01 金币" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "这是一枚小而重的金币。一面刻有电路,另一面写着“Hub 01兑换货币”。" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -36628,7 +36873,7 @@ msgstr[0] "锡杯" msgid "" "An enameled tin cup. Great for camping or for prison use; makes a wonderful" " sound when clanged along bars." -msgstr "" +msgstr "搪瓷锡杯。非常适合露营或监狱使用;敲着杯沿叮当作响,发出美妙的声音。" #: lang/json/GENERIC_from_json.py msgid "pewter bowl" @@ -37395,6 +37640,16 @@ msgid "" "string." msgstr "简单地用一条尖刺物和一些线绑成的手工制步枪刺刀。" +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "石制长矛" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "一根结实的木棍,一端配有尖锐的石制矛头。" + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -37421,14 +37676,14 @@ msgstr "这是一张单人床或双人床的床垫。" #: lang/json/GENERIC_from_json.py msgid "plastic sheet" msgid_plural "plastic sheets" -msgstr[0] "塑料板" +msgstr[0] "塑料薄膜" #. ~ Description for plastic sheet #: lang/json/GENERIC_from_json.py msgid "" "This is a large sheet of heavy flexible plastic, the sort that might have " "been used for commercial wrapping or for weather-sealing a home." -msgstr "" +msgstr "这是一种大型的柔性塑料薄膜,这种塑料可能用于商业包装或密封房屋。" #: lang/json/GENERIC_from_json.py msgid "heavy stick" @@ -37477,6 +37732,7 @@ msgid "" "kinds of construction, but for really big projects you'd need a proper sheet" " of uncut plywood or the like." msgstr "" +"一种宽而薄的胶合板、纤维板或欧松板,已经切割成型并打孔好凹槽。非常适合建造各种建筑。但是对于真正的大型项目来说,你可能需要更合适的未切割的板材。" #: lang/json/GENERIC_from_json.py msgid "large wooden sheet" @@ -37490,6 +37746,20 @@ msgid "" " bulky, this is extremely useful for all manner of construction, but you " "might have to cut it to size before doing smaller projects." msgstr "" +"一个标准的4X8大小的木板,通常是胶合板、欧松板或纤维板类似材质。对于各种建筑都非常有用,但是如果在制作小型项目的时候,你可能需要将它切割缩减到一定的尺寸。" + +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "行军用折叠小锡锅" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "结构紧凑的军用锅盘,被设计来在篝火或便携炉灶上加热食物。外型较专用的锅子稍浅,也不具备现代炉灶套件的集成式加热元件。" #: lang/json/GENERIC_from_json.py msgid "radio car box" @@ -39368,54 +39638,54 @@ msgstr "损坏的模型兔子,毫无生气。" #: lang/json/GENERIC_from_json.py msgid "withered plant bundle" msgid_plural "withered plant bundles" -msgstr[0] "" +msgstr[0] "一捆枯萎植物" #. ~ Description for withered plant bundle #: lang/json/GENERIC_from_json.py msgid "A bundle of plant matter" -msgstr "" +msgstr "一捆枯萎植物" #: lang/json/GENERIC_from_json.py msgid "C.R.I.T hatchet" msgid_plural "C.R.I.T hatchets" -msgstr[0] "" +msgstr[0] "C.R.I.T 短柄战斧" #. ~ Description for C.R.I.T hatchet #: lang/json/GENERIC_from_json.py msgid "" "An incredibly sharp, heavy duty, one-handed hatchet. Makes a great melee " "weapon, and is useful both for chopping things and for use as a hammer." -msgstr "" +msgstr "一种非常锋利、沉重的单手短柄斧。可以作为一个锋利的近战武器使用,同时也可以帮助你切割物品或者作为锤子使用。" #: lang/json/GENERIC_from_json.py msgid "C.R.I.T Blade-work manual" msgid_plural "C.R.I.T Blade-work manuals" -msgstr[0] "" +msgstr[0] "C.R.I.T 刀术训练手册" #. ~ Description for C.R.I.T Blade-work manual #: lang/json/GENERIC_from_json.py msgid "An advanced military manual on C.R.I.T Blade-work." -msgstr "" +msgstr "关于C.R.I.T刀术训练的高级军事手册。" #: lang/json/GENERIC_from_json.py msgid "C.R.I.T Enforcement manual" msgid_plural "C.R.I.T Enforcement manuals" -msgstr[0] "" +msgstr[0] "C.R.I.T 棍术训练手册" #. ~ Description for C.R.I.T Enforcement manual #: lang/json/GENERIC_from_json.py msgid "An advanced military manual on C.R.I.T Enforcer melee." -msgstr "" +msgstr "关于C.R.I.T近战棍术训练的高级军事手册。" #: lang/json/GENERIC_from_json.py msgid "C.R.I.T CQB manual" msgid_plural "C.R.I.T CQB manuals" -msgstr[0] "" +msgstr[0] "关于C.R.I.T格斗术训练的高级军事手册。" #. ~ Description for C.R.I.T CQB manual #: lang/json/GENERIC_from_json.py msgid "An advanced military manual on C.R.I.T general CQB." -msgstr "" +msgstr "关于C.R.I.T格斗术训练的高级军事手册。" #: lang/json/GENERIC_from_json.py msgid "6.54x42mm casing" @@ -39873,14 +40143,14 @@ msgstr "这是一个种着成熟作物的园艺花盆。拆解它来收获。" #: lang/json/GENERIC_from_json.py msgid "The Life and Work of Tiger Sauer" msgid_plural "The Life and Work of Tiger Sauer" -msgstr[0] "" +msgstr[0] "斯奥尔的生活和工作" #. ~ Description for The Life and Work of Tiger Sauer #: lang/json/GENERIC_from_json.py msgid "" "A biography of a combat cyborg agent detailing his philosophy and martial " "art." -msgstr "" +msgstr "一位战斗改造人特工的传记,详述了他的哲学和武术。" #: lang/json/GENERIC_from_json.py msgid "The Stormhammer" @@ -39897,19 +40167,41 @@ msgstr "一个充满闪电的魔幻战锤,用闪电击打你的敌人。当然 #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "Stormfist" msgid_plural "Stormfists" -msgstr[0] "" +msgstr[0] "风暴之拳" #. ~ Description for Stormfist #: lang/json/GENERIC_from_json.py lang/json/SPELL_from_json.py msgid "" "Encases your arm and hand in a sheath of crackling magical lightning, you " "can punch and defend yourself with it in melee combat." -msgstr "" +msgstr "召唤闪电包裹手臂和拳头,使你可以在近战战斗中用它来击打敌人和保护自己。" + +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "残暴之鞭" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "一条长而扭曲的触须,上面覆盖着锋利的骨质刀片和尖刺状突起。" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "恶毒骨矛" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "这是一柄邪恶的长矛,完全是由骨头组成的。" #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" -msgstr[0] "" +msgstr[0] "调试C:DDAS的技术指南" #. ~ Description for A Technomancer's Guide to Debugging C:DDA #: lang/json/GENERIC_from_json.py @@ -39919,14 +40211,14 @@ msgstr "" #: lang/json/GENERIC_from_json.py msgid "A Beginner's Guide to Magic" msgid_plural "A Beginner's Guide to Magics" -msgstr[0] "魔术师入门指南" +msgstr[0] "魔法师入门指南" #. ~ Description for A Beginner's Guide to Magic #: lang/json/GENERIC_from_json.py msgid "" "You would describe this as more like a pamphlet than a spellbook, but it " "seems to have at least one interesting spell you can use." -msgstr "" +msgstr "你可能会说这更像是一本小册子,而不是一本魔法书,但它似乎至少有一个你可以使用的有趣的咒语。" #: lang/json/GENERIC_from_json.py msgid "Wizarding Guide to Backpacking" @@ -39939,18 +40231,18 @@ msgid "" "This appears to be the spell version of a guide for what things to take with" " you when backpacking. It's a little bulky, but will certainly prove " "useful." -msgstr "" +msgstr "这是一个可以随身携带的咒语指南,虽然有点笨重,但是可以教会你不少有用的咒语。" #: lang/json/GENERIC_from_json.py msgid "Pyromancy for Heretics" msgid_plural "Pyromancy for Hereticss" -msgstr[0] "" +msgstr[0] "异教徒的火焰魔法" #. ~ Description for Pyromancy for Heretics #: lang/json/GENERIC_from_json.py msgid "" "This charred husk of a book still contains many ways to light things aflame." -msgstr "" +msgstr "这本烧焦的魔法书里包含了许多火焰魔法的咒语。" #: lang/json/GENERIC_from_json.py msgid "A Treatise on Magical Elements" @@ -39962,64 +40254,84 @@ msgstr[0] "魔法元素论" msgid "" "This details complex diagrams, rituals, and choreography that describes " "various spells." -msgstr "" +msgstr "它详细描述了各种咒语的复杂仪式和细节编排。" #: lang/json/GENERIC_from_json.py msgid "Introduction to the Divine" msgid_plural "Introduction to the Divines" -msgstr[0] "" +msgstr[0] "神祇简介" #. ~ Description for Introduction to the Divine #: lang/json/GENERIC_from_json.py msgid "" "This appears to mostly be a religious text, but it does have some notes on " "healing." -msgstr "" +msgstr "这似乎是一本宗教书籍,但它有一些关于愈合魔法的注释。" #: lang/json/GENERIC_from_json.py msgid "The Paladin's Guide to Modern Spellcasting" msgid_plural "The Paladin's Guide to Modern Spellcastings" -msgstr[0] "" +msgstr[0] "圣骑士的现代施法指南" #. ~ Description for The Paladin's Guide to Modern Spellcasting #: lang/json/GENERIC_from_json.py msgid "" "Despite the title, this seems to be written in Middle English. A little " "obtuse, but you can make out most of the words well enough." -msgstr "" +msgstr "除了封面,这本书好像是用中世纪英语写的。尽管有些难以辨认,你还是能把大部分文字认出来。" #: lang/json/GENERIC_from_json.py msgid "Winter's Eternal Grasp" msgid_plural "Winter's Eternal Grasps" -msgstr[0] "" +msgstr[0] "寒冬的领悟" #. ~ Description for Winter's Eternal Grasp #: lang/json/GENERIC_from_json.py msgid "" "This slim book almost seems to be made from ice, it's cold to the touch." -msgstr "" +msgstr "这本薄薄的书好像是用冰做的,摸起来很冷。里面包含了许多关于寒冷的咒语。" #: lang/json/GENERIC_from_json.py msgid "The Tome of The Oncoming Storm" msgid_plural "The Tome of The Oncoming Storms" -msgstr[0] "" +msgstr[0] "暴风雨即将来临" #. ~ Description for The Tome of The Oncoming Storm #: lang/json/GENERIC_from_json.py msgid "" "A large book embossed with crossed lightning bolts and storm clouds, it " "tingles to the touch." -msgstr "" +msgstr "一本巨大的书,上面镶有交叉闪电和风暴雨的印记,摸上去会感觉刺痛。" #: lang/json/GENERIC_from_json.py msgid "Nondescript Spellbook" msgid_plural "Nondescript Spellbooks" -msgstr[0] "" +msgstr[0] "普通魔法入门" #. ~ Description for Nondescript Spellbook #: lang/json/GENERIC_from_json.py msgid "A small book, containing spells created by a novice magician." -msgstr "" +msgstr "包含新手魔法师入门咒语的书籍。" + +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "肉体之书" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "一本小书,表面覆盖着古铜色的人类皮肤。" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "树之书" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "一本树皮封面的书。" #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" @@ -40555,29 +40867,6 @@ msgid "integral EMP projector" msgid_plural "integral EMP projectors" msgstr[0] "内置EMP发射器" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "石制长矛" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "一根结实的木棍,一端配有尖锐的石制矛头。" - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "行军用折叠小锡锅" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "结构紧凑的军用锅盘,被设计来在篝火或便携炉灶上加热食物。外型较专用的锅子稍浅,也不具备现代炉灶套件的集成式加热元件。" - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -41541,7 +41830,7 @@ msgid "" "This battery uses a thin plutonium-244 rod to stablize an exotic " "nanocompound. It is universally compatible with small devices. Although it" " stores a huge amount of power, it cannot be recharged." -msgstr "" +msgstr "这种电池使用一根钚-244棒来稳定一种奇特的纳米复合材料。它与小型设备兼容。虽然它储存了大量的能量,但它不能再充电。" #: lang/json/MAGAZINE_from_json.py msgid "ultra-light disposable battery" @@ -41554,7 +41843,7 @@ msgid "" "This is a light battery cell designed for small size over everything else. " "It retains its universal compatibility, though. The battery's chemistry " "means that it has a very high capacity, but cannot be recharged." -msgstr "" +msgstr "这是一种轻型电池,设计尺寸比其他任何电池都小。尽管如此,它仍然保持着很高的兼容性。电池的化学成分意味着它有很高的容量,但不能再充电。" #: lang/json/MAGAZINE_from_json.py msgid "light battery" @@ -41593,7 +41882,7 @@ msgid "" "nanocompound. It is universally compatible with all kinds of personal " "electronic devices. Although it stores a huge amount of power, it cannot be" " recharged." -msgstr "" +msgstr "这种电池使用一根钚-244棒来稳定一种奇特的纳米复合材料。它普遍适用于各种个人电子设备。虽然它储存了大量的电能,但它却无法充电。" #: lang/json/MAGAZINE_from_json.py msgid "light disposable battery" @@ -41606,7 +41895,7 @@ msgid "" "This is a light battery cell, universally compatible with all kinds of small" " devices. The battery's chemistry means that it has a very high capacity, " "but cannot be recharged." -msgstr "" +msgstr "这是一种轻电池,普遍适用于各种小型设备。电池的化学特性意味着它有很高的容量,但不能充电。" #: lang/json/MAGAZINE_from_json.py msgid "medium battery" @@ -41646,7 +41935,7 @@ msgid "" "nanocompound. It is universally compatible with all kinds of appliances and" " power tools. Although it stores a huge amount of power, it cannot be " "recharged." -msgstr "" +msgstr "这种电池使用一根钚-244棒来稳定一种奇特的纳米复合材料。它普遍兼容各种电器和电动工具。虽然它储存了大量的电能,但却无法充电。" #: lang/json/MAGAZINE_from_json.py msgid "medium disposable battery" @@ -41659,7 +41948,7 @@ msgid "" "This is a medium battery cell, universally compatible with all kinds of " "appliances and power tools. The battery's chemistry means that it has a " "very high capacity, but cannot be recharged." -msgstr "" +msgstr "这是一个中型电池,普遍适用于各种电器和电动工具。电池的化学特性意味着它有很高的容量,但不能充电。" #: lang/json/MAGAZINE_from_json.py msgid "heavy battery" @@ -41699,7 +41988,7 @@ msgid "" "nanocompound. It is universally compatible with all kinds of industrial-" "grade equipment and large tools. Although it stores a huge amount of power," " it cannot be recharged." -msgstr "" +msgstr "这种电池使用一根钚-244棒来稳定一种奇特的纳米复合材料。广泛适用于各种工业级设备和大型工具。虽然它储存了大量的电能,但却无法充电。" #: lang/json/MAGAZINE_from_json.py msgid "heavy disposable battery" @@ -41712,7 +42001,7 @@ msgid "" "This is a heavy battery cell, universally compatible with all kinds of " "industrial-grade equipment and large tools. The battery's chemistry means " "that it has a very high capacity, but cannot be recharged." -msgstr "" +msgstr "这是一种重电池,普遍适用于各种工业级设备和大型工具。电池的化学特性意味着它有很高的容量,但不能充电。" #: lang/json/MAGAZINE_from_json.py lang/json/vehicle_part_from_json.py msgid "fuel bunker" @@ -42131,7 +42420,7 @@ msgstr "HK417 弹匣" #. ~ Description for HK417 magazine #: lang/json/MAGAZINE_from_json.py msgid "A 20 round double stack box magazine for the HK417 rifle." -msgstr "" +msgstr "一个可装弹20发的双层盒式弹匣,用于HK417步枪。" #: lang/json/MAGAZINE_from_json.py msgid "HK417 compact magazine" @@ -42140,7 +42429,7 @@ msgstr "HK417 紧凑型弹匣" #. ~ Description for HK417 compact magazine #: lang/json/MAGAZINE_from_json.py msgid "A 10 round double stack box magazine for the HK417 rifle." -msgstr "" +msgstr "一个可装弹10发的双层盒式弹匣,用于HK417步枪。" #: lang/json/MAGAZINE_from_json.py msgid "AR-10 magazine" @@ -42149,7 +42438,7 @@ msgstr "AR-10 弹匣" #. ~ Description for AR-10 magazine #: lang/json/MAGAZINE_from_json.py msgid "A 20 round double stack box magazine for the AR-10 rifle." -msgstr "" +msgstr "一个可装弹20发的双层盒式弹匣,用于AR-10步枪。" #: lang/json/MAGAZINE_from_json.py msgid "Walther PPK magazine" @@ -43438,7 +43727,7 @@ msgstr[0] "超轻电池" msgid "" "This is a small mana crystal specifically designed to be attacked to wand " "tips." -msgstr "" +msgstr "这是一个小型魔法水晶,专门被设计用来存储魔杖所需的能量。" #: lang/json/MAGAZINE_from_json.py msgid "30x113mm ammo belt" @@ -43628,14 +43917,14 @@ msgstr "添加了船只类型的载具" #: lang/json/MOD_INFO_from_json.py msgid "C.R.I.T Expansion Mod" -msgstr "" +msgstr "C.R.I.T 扩展" #. ~ Description for C.R.I.T Expansion Mod #: lang/json/MOD_INFO_from_json.py msgid "" "Adds new professions, guns, gunmods, enemies, materials, martial arts, " "melees/tools and weapon techniques." -msgstr "" +msgstr "增加新的职业、枪械、敌人、武器、材料和工具。" #: lang/json/MOD_INFO_from_json.py msgid "Craftable Gun Pack" @@ -44303,12 +44592,12 @@ msgstr "CDDA核心内容" #: lang/json/MOD_INFO_from_json.py msgid "Fast Healing" -msgstr "" +msgstr "快速愈合" #. ~ Description for Fast Healing #: lang/json/MOD_INFO_from_json.py msgid "Increases healing speed and the effectiveness of healing items." -msgstr "" +msgstr "增加愈合速度和治疗物品的效果。" #: lang/json/MOD_INFO_from_json.py msgid "Makeshift Items Mod" @@ -44374,47 +44663,58 @@ msgstr "现实枪械" msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "增加更多弹药类型和现实世界中的枪械型号。" +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "玩家是否可见图标 HitButton_iso版" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "如果一个生物看到了一个玩家,添加一个黄色的!图标。专为HitButton isometric贴图包设计。" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" -msgstr "" +msgstr "玩家是否可见图标+态度 Live/Dead people版" #. ~ Description for sees-player icon, +attitude #: lang/json/MOD_INFO_from_json.py msgid "" "Adds attitude-tinted icon if a creature sees a player, and a tinted thought " "bubble otherwise. Designed for Live/Dead people tileset." -msgstr "" +msgstr "如果一个生物看到了一个玩家,添加一个黄色的!图标,气泡颜色表示对玩家的态度,红色-敌对。专为Live/Dead people贴图包设计。" #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, -attitude" -msgstr "" +msgstr "玩家是否可见图标 Live/Dead people版" #. ~ Description for sees-player icon, -attitude #: lang/json/MOD_INFO_from_json.py msgid "" "Adds attitude-tinted icon if a creature sees a player, nothing when player " "is unseen. Designed for Live/Dead people tileset." -msgstr "" +msgstr "如果一个生物看到了一个玩家,添加一个黄色的!图标。专为Live/Dead people贴图包设计。" #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, retrodays" -msgstr "" +msgstr "玩家是否可见图标 retrodays版" #. ~ Description for sees-player icon, retrodays #: lang/json/MOD_INFO_from_json.py msgid "" "Adds indicator icon if a creature sees the player. Designed for the " "retrodays tileset." -msgstr "" +msgstr "如果一个生物看到了一个玩家,添加一个黄色的!图标。专为retrodays贴图包设计。" #: lang/json/MOD_INFO_from_json.py msgid "SpeedyDex" -msgstr "" +msgstr "敏捷速度加成" #. ~ Description for SpeedyDex #: lang/json/MOD_INFO_from_json.py msgid "Higher dex increases your speed." -msgstr "" +msgstr "使敏捷属性提供速度加成" #: lang/json/MONSTER_from_json.py msgid "debug monster" @@ -44476,9 +44776,9 @@ msgstr "结痂丧尸" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." -msgstr "一个畸形丧尸,皮肤已经转变成为类似于伤疤的厚组织,可以抵御钝器攻击。" +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." +msgstr "一个畸形丧尸,它的皮肤变成了一层厚厚的、带硬壳的疤痕组织。" #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -44726,9 +45026,9 @@ msgstr "地缚灵" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." -msgstr "一个巨大的暗影怪物,形状和体积毫无规律的不停变化,两颗光球占据着一块只能被描述成它头部的部分。" +msgstr "一个巨大的阴影,形状和体积发生混乱的变化,两个穿透的光球支配着只能描述为其头部的东西。" #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -44786,8 +45086,8 @@ msgstr "腐烂犬尸" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." -msgstr "一只已经被丧失病毒感染变异的犬型怪物,它全身都布满了链状跳动的囊肿,从中滴下粘稠的溃疡脓汁,散发着浓烈的苦味。" +" chains of pulsing cysts and slime-dribbling ulcers." +msgstr "苦味笼罩着这具犬类尸体。它全身都布满了链状跳动的囊肿,从中滴下粘稠的溃疡脓汁。" #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -44796,10 +45096,14 @@ msgstr "眼球机器人" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." -msgstr "这架核聚变驱动的无人机主要由一个高分辨率摄像机和一个扬声器组成,这个球形机器人在地面上盘旋,记录着周围的屠杀和混乱。" +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." +msgstr "" +"一架主要由一个高分辨率摄像机镜头和一个扬声器组成的四轮无人机,这台机器人盘旋在地面上,记录着周围的屠杀和混乱。虽然它不能再向中央机关报告,但它的一些自动报警系统很可能仍然正常工作,因为它似乎在某个地方有一个可操作的充电站。" #: lang/json/MONSTER_from_json.py msgid "nurse bot" @@ -45407,7 +45711,7 @@ msgstr "一只外形不定的黑色怪物,从它的躯体上毫不间断地有 #: lang/json/MONSTER_from_json.py msgid "tripod" -msgstr "三脚架" +msgstr "三足机器人" #. ~ Description for tripod #: lang/json/MONSTER_from_json.py @@ -45508,10 +45812,9 @@ msgstr "丧尸" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." -msgstr "" -"一具死而复生的活死人身体摇晃、迟缓,黑洞的眼睛潜藏着对血肉无法压抑的狂躁渴望,大脑可能还保留了一定程度处理能力,拥有一定的运动机能和移动能力。" +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." +msgstr "一具人类尸体,蹒跚的步伐,黑洞的眼睛潜藏着对血肉无法压抑的狂躁渴望。" #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -46325,6 +46628,7 @@ msgid "" "that animate it, and yet it moves deftly as it switches between one target " "and the next." msgstr "" +"这台机器人的眼睛定期地扫视着周围,因为它正在执行者一个残酷的程序指令,这项错误的指令命令它进行无休止的杀戮。在还未彻底完工的地方,你可以看到让它动起来的机器和缆绳,但当它在一个目标和下一个目标之间切换时,它能灵巧地移动。" #: lang/json/MONSTER_from_json.py msgid "NR-031 Dispatch" @@ -46367,9 +46671,9 @@ msgstr "EMP电磁脉冲无人机" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." -msgstr "一只自杀式攻击自动无人机,拳头大小的身体内装载了一枚EMP手雷。" +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." +msgstr "一只自杀式攻击自动无人机,这台小型直升机器的身体内装载了一枚电磁脉冲手雷。" #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -46378,9 +46682,9 @@ msgstr "C-4无人机" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." -msgstr "一只自杀式攻击自动无人机,拳头大小的身体内装载了一些C-4塑胶高爆炸药。" +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." +msgstr "一只自杀式攻击自动无人机,这台小型直升机器的身体内装载了一些C-4塑胶高爆炸药。" #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -46389,9 +46693,9 @@ msgstr "闪光弹无人机" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." -msgstr "一只自杀式攻击自动无人机,拳头大小的身体内装载了一枚闪光弹。" +msgstr "一只自杀式攻击自动无人机,这台小型直升机器的身体内装载了一枚闪光弹。" #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -46400,9 +46704,9 @@ msgstr "催泪弹无人机" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." -msgstr "一只自杀式攻击自动无人机,拳头大小的身体内装载了一枚催泪弹。" +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." +msgstr "一只自杀式攻击自动无人机,这台小型直升机器的身体内装载了一枚催泪弹。" #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -46411,9 +46715,9 @@ msgstr "榴弹无人机" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." -msgstr "一只自杀式攻击自动无人机,拳头大小的身体内装载了一枚破片式榴弹。" +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." +msgstr "一只自杀式攻击自动无人机,这台小型直升机器的身体内装载了一枚手雷。" #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -46422,9 +46726,9 @@ msgstr "飞锯无人机" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." -msgstr "一只以人类为目标的自动无人机,拳头大小的身体上包围着高速振动的刀刃。" +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." +msgstr "一只自杀式攻击自动无人机,这台小型直升机器周身装载了旋转的刀片。" #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -46433,8 +46737,8 @@ msgstr "微型核弹无人机" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." msgstr "一只体积数倍于普通型号的无人机,这台正在飞行的无人机体内装载了一枚微型核弹。如果它瞄准了你……快跑!" #: lang/json/MONSTER_from_json.py @@ -46737,23 +47041,23 @@ msgstr "岩钝鲈。这种形似太阳鱼的小鱼,有着迷彩状的伪装和 #: lang/json/MONSTER_from_json.py msgid "calico bass" -msgstr "" +msgstr "剌盖太阳鱼" #. ~ Description for calico bass #: lang/json/MONSTER_from_json.py msgid "A Calico Bass. A medium-sized fish also known as a 'Crappie'." -msgstr "" +msgstr "剌盖太阳鱼,一种中等大小的鱼,也称为“莓鲈”。" #: lang/json/MONSTER_from_json.py msgid "warmouth" -msgstr "" +msgstr "大口突鳃太阳鱼" #. ~ Description for warmouth #: lang/json/MONSTER_from_json.py msgid "" "A Warmouth, similar to a rock bass, this small fish is related to the " "sunfish." -msgstr "" +msgstr "一条大口突鳃太阳鱼,类似于石鲈,这种小鱼属于太阳鱼。" #: lang/json/MONSTER_from_json.py msgid "bullhead" @@ -46762,32 +47066,32 @@ msgstr "大头鱼" #. ~ Description for bullhead #: lang/json/MONSTER_from_json.py msgid "A Bullhead, a type of catfish. Delicious battered and fried." -msgstr "" +msgstr "牛头鱼,一种鲶鱼,煎炸美味。" #: lang/json/MONSTER_from_json.py msgid "channel catfish" -msgstr "" +msgstr "斑点叉尾鮰" #. ~ Description for channel catfish #: lang/json/MONSTER_from_json.py msgid "A Channel Catfish, they have a forked tail and long whiskers." -msgstr "" +msgstr "一条斑点叉尾鮰,它们有叉形的尾巴和长长的胡须。" #: lang/json/MONSTER_from_json.py msgid "white catfish" -msgstr "" +msgstr "白叉尾鮰" #. ~ Description for white catfish #: lang/json/MONSTER_from_json.py msgid "A White Catfish, a small whiskered fish with a broad head." -msgstr "" +msgstr "一条白叉尾鮰,宽头小胡须鱼。" #. ~ Description for pike #: lang/json/MONSTER_from_json.py msgid "" "A Northern Pike. Pike can be a pretty aggressive fish, careful around those" " teeth." -msgstr "" +msgstr "北方梭鱼,梭子鱼是一种攻击性很强的鱼,小心它们的牙齿。" #: lang/json/MONSTER_from_json.py msgid "pickerel" @@ -46796,27 +47100,27 @@ msgstr "小梭鱼" #. ~ Description for pickerel #: lang/json/MONSTER_from_json.py msgid "A Pickerel. It looks like a pike, but much smaller." -msgstr "" +msgstr "一条小梭鱼。与梭鱼很像,但要小得多。" #: lang/json/MONSTER_from_json.py msgid "muskellunge" -msgstr "" +msgstr "北美大梭鱼" #. ~ Description for muskellunge #: lang/json/MONSTER_from_json.py msgid "" "A Muskellunge. Closely related to pike, it shares the same aggression and " "sharp teeth." -msgstr "" +msgstr "北美大梭鱼,与梭鱼有亲缘关系,它具有相同的攻击性和锋利的牙齿。" #: lang/json/MONSTER_from_json.py msgid "white sucker" -msgstr "" +msgstr "白亚口鱼" #. ~ Description for white sucker #: lang/json/MONSTER_from_json.py msgid "A White Sucker. It has a streamlined body with a round mouth." -msgstr "" +msgstr "一条白亚口鱼,它的身体是流线型的,嘴巴是圆的。" #: lang/json/MONSTER_from_json.py msgid "carp" @@ -46827,16 +47131,16 @@ msgstr "鲤鱼" msgid "" "A golden-yellow Common Carp. Some people think they don't taste great, but " "you can't afford to be choosy in the cataclysm." -msgstr "" +msgstr "一条常见的金黄色的鲤鱼。有些人认为他们尝起来不太好,但在大灾变中你没法挑三拣四。" #: lang/json/MONSTER_from_json.py msgid "grass carp" -msgstr "" +msgstr "草鱼" #. ~ Description for grass carp #: lang/json/MONSTER_from_json.py msgid "A huge Grass Carp. A golden, herbivorous fish." -msgstr "" +msgstr "一条大草鱼。一种金色的食草鱼类。" #: lang/json/MONSTER_from_json.py msgid "bowfin" @@ -46851,14 +47155,14 @@ msgstr "一条弓鳍鱼。这些鱼和颌针鱼有亲缘关系,但是没有大 #: lang/json/MONSTER_from_json.py msgid "fallfish" -msgstr "" +msgstr "小眼须雅罗鱼" #. ~ Description for fallfish #: lang/json/MONSTER_from_json.py msgid "" "A Fallfish. These fish are related to gar but without the huge teeth, skin " "rending scales, and aggression." -msgstr "" +msgstr "一条小眼须雅罗鱼,这些鱼和雀鳝有亲缘关系,但是没有大尖齿、能切破皮的鳞片和凶暴的天性。" #: lang/json/MONSTER_from_json.py msgid "lobster" @@ -48590,7 +48894,7 @@ msgstr "一只摇摇欲坠的丧尸,穿着灰色制服和防弹背心,前面 #: lang/json/MONSTER_from_json.py msgid "prisoner zombie" -msgstr "" +msgstr "囚徒丧尸" #. ~ Description for prisoner zombie #: lang/json/MONSTER_from_json.py @@ -48598,7 +48902,7 @@ msgid "" "Apparently this zombie was doing time when the Cataclysm struck. It wears " "black and white striped prisoner clothes, and tattoos can be seen on his " "decaying skin." -msgstr "" +msgstr "显然,当大灾变来临时这只僵尸正在狱中服刑。它穿着黑白条纹的囚衣,腐烂的皮肤上刻有纹身。" #: lang/json/MONSTER_from_json.py msgid "zombie soldier" @@ -49044,7 +49348,7 @@ msgstr "一只双足站立的机械电动模型狼,体型大约是你的两倍 #: lang/json/MONSTER_from_json.py msgid "Slasher Necromorph" -msgstr "" +msgstr "砍杀者尸变体" #. ~ Description for Slasher Necromorph #: lang/json/MONSTER_from_json.py @@ -49052,11 +49356,11 @@ msgid "" "A horrifically twisted human body. Two massive blades have burst through its" " hands which are poised above its head endlessly as it stalks about with " "terrifying purpose." -msgstr "" +msgstr "一个扭曲得可怕的人类尸体。巨大的刀锋从它的双手中迸发出来,这双手悬在它的头顶之上,它带着可怕的目的在四处游荡。" #: lang/json/MONSTER_from_json.py msgid "Waster Necromorph" -msgstr "" +msgstr "挥霍者尸变体" #. ~ Description for Waster Necromorph #: lang/json/MONSTER_from_json.py @@ -49064,11 +49368,11 @@ msgid "" "Clad in heavy assault gear, an eerie light green glows beneath its helmet " "from sunken eye sockets and a gaping mouth. Strange blade like points have " "burst out of its arms making it a formidable force to be reckoned with." -msgstr "" +msgstr "身穿重型突击装备的它,从凹陷的眼窝和张开的嘴巴以及头盔下闪烁出诡异的淡绿色光芒。奇怪的刀尖从它的手臂中迸发出来,使它拥有非常强大的杀伤力。" #: lang/json/MONSTER_from_json.py msgid "Leaper Necromorph" -msgstr "" +msgstr "跳跃者尸变体" #. ~ Description for Leaper Necromorph #: lang/json/MONSTER_from_json.py @@ -49078,10 +49382,11 @@ msgid "" "are can easily mutilate your flesh, the grotesque face roars incessantly. " "The lower body has fused together into one giant tail with a barbed spike." msgstr "" +"这个曾经是人类的肉体现在几乎认不出来了,它的腹部扭动着,以巨大的手臂力量向前跳跃。这张怪异的脸不停地咆哮,长长的尖牙很容易咬伤你的肌肉。它的下半身融合在一起,形成了一条巨大的尾巴,尾巴上长着尖锐的倒刺。" #: lang/json/MONSTER_from_json.py msgid "Twitcher Necromorph" -msgstr "" +msgstr "抽搐者尸变体" #. ~ Description for Twitcher Necromorph #: lang/json/MONSTER_from_json.py @@ -49090,11 +49395,11 @@ msgid "" "to-and-fro with surprising speed. It carries itself quite steadily when " "idle, further observation shows that the person before this husk was a " "C.R.I.T S-I G.E.A.R operator." -msgstr "" +msgstr "这具尸体手上拿着窄刃,移动速度极快,偶尔身体会突然抽搐。进一步观察表明,这具尸变体在活着的时候是C.I.T.R的相关工作人员。" #: lang/json/MONSTER_from_json.py msgid "Pack Necromorph" -msgstr "" +msgstr "群居者尸变体" #. ~ Description for Pack Necromorph #: lang/json/MONSTER_from_json.py @@ -49104,10 +49409,11 @@ msgid "" "A pair of seemingly purposeless appendages sprout from its shoulders before " "ending in its arms. Its small hands end in sharp claws." msgstr "" +"一个尖叫的变异儿童丧尸。整个皮肤泛白,眼睛肿得合不上,张大的嘴巴被撕开,皮肤垂在一边。一对看似毫无目的的附属物从它的肩膀上长出来,最后伸进它的手臂。它的小手末端有锋利的爪子。" #: lang/json/MONSTER_from_json.py msgid "Puker Necromorph" -msgstr "" +msgstr "呕吐者尸变体" #. ~ Description for Puker Necromorph #: lang/json/MONSTER_from_json.py @@ -49118,6 +49424,7 @@ msgid "" "internal organs to its unhinged jaw where it drips, hissing as it eats " "through material." msgstr "" +"一具相当残缺不全的尸体,布满了裂开的伤口。因为长时间的腐蚀手臂已经暴露出锯齿状的边缘,这很容易刺穿你的身体。一种粘性的、起泡的黄色污泥从暴露在外的内部器官流到它张开的下颚,在那里滴落,在吃东西的时候发出嘶嘶声。" #: lang/json/MONSTER_from_json.py msgid "Animate Arm" @@ -49132,7 +49439,7 @@ msgstr "一只被卸下的手臂,正缓缓向前爬动。偶尔有触须从断 #: lang/json/MONSTER_from_json.py msgid "Dullahan" -msgstr "" +msgstr "无头骑士" #. ~ Description for Dullahan #: lang/json/MONSTER_from_json.py @@ -49142,6 +49449,7 @@ msgid "" "steadiness. A long tentacle has sprouted out of its right arm which " "occasionally flails about wildly." msgstr "" +"缓慢摆动的无头骑士。华丽而实用的盔甲装饰着这具可怕的尸体,它以一种绝对可怕的坚定姿态出现。一条长长的触须从它的右臂中伸出,偶尔会猛烈地拍打。" #. ~ Description for shocker zombie #: lang/json/MONSTER_from_json.py @@ -50595,7 +50903,7 @@ msgstr "一种薄的网状物,与超合金板和存储袋编织在一起,用 #: lang/json/SPELL_from_json.py msgid "Smite" -msgstr "" +msgstr "毁灭打击" #. ~ Description for Smite #: lang/json/SPELL_from_json.py @@ -50622,6 +50930,61 @@ msgstr "伤痛分流" msgid "Evens out damage among your limbs." msgstr "平摊各个肢体受到的伤害。" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "邪恶触手" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "这个法术会从你的身体中伸出一个由锋利的骨头和渗出酸液组成的长而凶猛的鞭子状触须,它有很长的攻击距离和很高的伤害。" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "奇异的增强" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "以怪异的方式扭曲你的身体并增强你的力量及感知。" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "酸性喷雾" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "当施法时,法师张开他的嘴,想周围的椭圆形范围内喷射酸性粘液物质来溶解他的敌人。想象一下他会怎么处理这些黏糊糊的东西。" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "临时背包" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "这个咒语会在你的背部皮肤上产生一个临时的小袋子,可以暂时的帮你存储物品。" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "召唤骨矛" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "这个咒语可以召唤出一只邪恶的骨矛,拥有长长的手柄及尖锐的刀刃。" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "炽能冲击波" @@ -50724,6 +51087,50 @@ msgstr "调试效果咒语" msgid "Adds an effect to the target" msgstr "为目标增加一个效果。" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "藤蔓缠绕" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "这个咒语会从地下长出藤蔓及树根,紧紧的抓住你的敌人,减慢他们的速度,并对他们造成少量的伤害。" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "树根穿刺" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "这个咒语使树根刺穿地面,以弧形刺入你的敌人,刺穿他们。" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "硬木投掷" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "这个咒语会能创造一个硬木投射物,从施法者的手高速射出,刺伤敌人。" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "乌尔斯之弓" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "这个咒语可以召唤出一个神奇的木弓,它可以发射无尽的箭,直到它持续时间结束。" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "大地之拳" @@ -52596,7 +53003,7 @@ msgstr "" #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T S-I G.E.A.R" msgid_plural "C.R.I.T S-I G.E.A.Rs" -msgstr[0] "" +msgstr[0] "C.R.I.T 生物工程辅助平台" #. ~ Description for C.R.I.T S-I G.E.A.R #: lang/json/TOOL_ARMOR_from_json.py @@ -52604,22 +53011,22 @@ msgid "" "C.R.I.T standard issue General Engineering Assistance Rig. Plugged into your" " spinal cord, this device improves your overall physique and provides basic " "information on your surroundings." -msgstr "" +msgstr "C.R.I.T标准被生物工程辅助平台,通过线缆链接你的骨髓,可以改善你的整体体质,并提供你周围环境的基本信息。" #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T gasmask (off)" msgid_plural "C.R.I.T gasmask (off)s" -msgstr[0] "" +msgstr[0] "C.R.I.T 特战面具 (关)" #. ~ Use action msg for C.R.I.T gasmask (off). #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.T HUD booting up..." -msgstr "" +msgstr "C.R.I.T HUD 启动" #. ~ Use action need_charges_msg for C.R.I.T gasmask (off). #: lang/json/TOOL_ARMOR_from_json.py msgid "Power levels too low for safe boot up" -msgstr "" +msgstr "电量低,无法安全启动。" #. ~ Description for C.R.I.T gasmask (off) #: lang/json/TOOL_ARMOR_from_json.py @@ -52630,16 +53037,17 @@ msgid "" "allow for enhanced oxygen intake and safety even under bombardment. It has " "an integrated HUD and the option to turn it on for more features." msgstr "" +"C.R.I.T改进型特种部队防毒面具,配备各种顶级电子设备,内衬凯夫拉材料以提供额外的头部保护。各种过滤器和其他高科技的设备,即使在轰炸下也能提高氧气的摄入量和安全性。它有一个集成的HUD,可以选择打开它以获得更多功能。" #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T gasmask (on)" msgid_plural "C.R.I.T gasmask (on)s" -msgstr[0] "" +msgstr[0] "C.R.I.T 特战面具 (开)" #. ~ Use action msg for C.R.I.T gasmask (on). #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.T HUD deactivating." -msgstr "" +msgstr "C.R.I.T HUD 关闭" #. ~ Description for C.R.I.T gasmask (on) #: lang/json/TOOL_ARMOR_from_json.py @@ -52647,22 +53055,22 @@ msgid "" "This is the C.R.I.T Spec Ops modified gasmask. It is currently on and " "draining power for the HUD, low-level nightvision and other protective " "elements." -msgstr "" +msgstr "C.R.I.T改进型特战防毒面具,它目前已经开启了抬头显示器(HUD)、低水平夜视仪和其他保护元件,电量在持续消耗中。" #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T EM vest (off)" msgid_plural "C.R.I.T EM vest (off)s" -msgstr[0] "" +msgstr[0] "C.R.I.T 强化型背心 (关)" #. ~ Use action msg for C.R.I.T EM vest (off). #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T EM booting up..." -msgstr "" +msgstr "C.R.I.T 强化背心 启动" #. ~ Use action need_charges_msg for C.R.I.T EM vest (off). #: lang/json/TOOL_ARMOR_from_json.py msgid "Power levels too low for safe bootup..." -msgstr "" +msgstr "电量低,无法安全启动。" #. ~ Description for C.R.I.T EM vest (off) #: lang/json/TOOL_ARMOR_from_json.py @@ -52673,21 +53081,23 @@ msgid "" "Ops for its ease of use and manuverability. Turn it on for extra protection " "and movement." msgstr "" +"C.R.I.T " +"特战部队增强型运动背心,采用高科技纤维制成,内置无功伺服系统,可以保护穿戴者并消耗能量协助运动。C.R.I.T常规操作人员通常会穿着它,以方便使用和操作。开启它以获得额外的保护和移动。" #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T EM vest (on)" msgid_plural "C.R.I.T EM vest (on)s" -msgstr[0] "" +msgstr[0] "C.R.I.T 强化型背心 (开)" #. ~ Use action menu_text for C.R.I.T EM vest (on). #: lang/json/TOOL_ARMOR_from_json.py msgid "Turn off armor" -msgstr "" +msgstr "关闭护甲" #. ~ Use action msg for C.R.I.T EM vest (on). #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T E.M powering off..." -msgstr "" +msgstr "C.R.I.T 强化背心 关闭" #. ~ Description for C.R.I.T EM vest (on) #: lang/json/TOOL_ARMOR_from_json.py @@ -52698,35 +53108,37 @@ msgid "" "high power usage. It is commonly worn by C.R.I.T Spec Ops. This vest is " "currently in suit form and draining your UPS power at high rates." msgstr "" +"C.R.I.T " +"特战部队增强型运动背心,采用高科技纤维制成,内置无功伺服系统,可以保护穿戴者并消耗能量协助运动。C.R.I.T常规操作人员通常会穿着它,以方便使用和操作。这件背心目前是开启状态,正高功率消耗电量。" #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T helmet (off)" msgid_plural "C.R.I.T helmet (off)s" -msgstr[0] "" +msgstr[0] "C.R.I.T 合金头盔 (关)" #. ~ Use action msg for C.R.I.T helmet (off). #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "You turn the %s on." -msgstr "" +msgstr "你打开了%s。" #. ~ Description for C.R.I.T helmet (off) #: lang/json/TOOL_ARMOR_from_json.py msgid "" "C.R.T standard-issue helmet. Protects the noggin and has a stretch of " "insulated steel mesh for neck warmth and protection." -msgstr "" +msgstr "C.R.T.I标准版头盔。保护头部,有一段绝缘钢网,用于颈部的保暖和防护。" #: lang/json/TOOL_ARMOR_from_json.py msgid "C.R.I.T helmet (on)" msgid_plural "C.R.I.T helmet (on)s" -msgstr[0] "" +msgstr[0] "C.R.I.T 合金头盔 (开)" #. ~ Use action msg for C.R.I.T helmet (on). #: lang/json/TOOL_ARMOR_from_json.py #, no-python-format msgid "You turn the %s off." -msgstr "" +msgstr "你关掉了%s。" #. ~ Description for C.R.I.T helmet (on) #: lang/json/TOOL_ARMOR_from_json.py @@ -52735,12 +53147,12 @@ msgid "" "insulated steel mesh for neck warmth and protection. A tactically dim " "flashlight is attatched to the side. This light is currently on and drawing " "power." -msgstr "" +msgstr "C.R.T.I标准版头盔。保护头部,有一段绝缘钢网,用于颈部的保暖和防护。战术手电筒已经开启,正在消耗着电量并散发出昏暗的光芒。" #: lang/json/TOOL_from_json.py msgid "betavoltaic cell" msgid_plural "betavoltaic cells" -msgstr[0] "" +msgstr[0] "核能贝塔电池" #. ~ Description for betavoltaic cell #: lang/json/TOOL_from_json.py @@ -52752,11 +53164,12 @@ msgid "" " hundreds of dollars. Mostly they're a good way to brag to your neighbours " "that you have a nuclear power source in your house." msgstr "" +"可以民用的核能辐射电池!它看起来想一个D型电池,但实际上包含了很多层放射性武器。他能在稳定的电压下发电很多年。但它仅够驱动一个小LED,这些电池价值数百美元。大多数情况下,它们是向邻居炫耀你家里有核能的好方法。" #: lang/json/TOOL_from_json.py msgid "radioisotope thermoelectric generator" msgid_plural "radioisotope thermoelectric generators" -msgstr[0] "" +msgstr[0] "放射性热能发电机" #. ~ Description for radioisotope thermoelectric generator #: lang/json/TOOL_from_json.py @@ -52769,6 +53182,8 @@ msgid "" "minimal at only 2 Watts. Careful! Curium is great at making heat, and also" " releases deadly gamma radiation. Keep away from cellular life forms." msgstr "" +"CuppaTech " +"4型放射性同位素热电发电机是一块三公斤重的金属,大部分是铅,内部包裹着一段铀244。它能够产生100-150瓦的热能,尽管它的发电能力只有2瓦。小心!Curium很擅长制造热量,也会释放致命的伽马射线。" #: lang/json/TOOL_from_json.py msgid "basecamp charcoal smoker" @@ -52793,22 +53208,22 @@ msgstr "一种用于营地的假壁炉。" #: lang/json/TOOL_from_json.py msgid "basecamp stove" msgid_plural "basecamp stoves" -msgstr[0] "" +msgstr[0] "营地炉具" #. ~ Description for basecamp stove #: lang/json/TOOL_from_json.py msgid "A fake stove used for basecamps." -msgstr "" +msgstr "一种用于营地的假炉子。" #: lang/json/TOOL_from_json.py msgid "basecamp drop hammer" msgid_plural "basecamp drop hammers" -msgstr[0] "" +msgstr[0] "营地落锤" #. ~ Description for basecamp drop hammer #: lang/json/TOOL_from_json.py msgid "A fake drop hammer used for basecamps." -msgstr "" +msgstr "一种用于营地的假落锤。" #: lang/json/TOOL_from_json.py msgid "teeth and claws" @@ -53241,6 +53656,18 @@ msgid "" msgstr "" "一个使用低电感电容连接单环天线放电来产生电磁脉冲的EMP手雷。拔下安全销来使用EMP手雷,你有三回合时间去扔掉它,它会产生一个EMP电场来破坏机器人和消耗生化能量,以使其周围的电子设备瘫痪。" +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "鞍" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "鞍装在已驯服的动物上可骑乘。" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -54192,7 +54619,7 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "inactive tripod" msgid_plural "inactive tripods" -msgstr[0] "" +msgstr[0] "三足机器人 (未激活)" #. ~ Use action friendly_msg for inactive tripod. #: lang/json/TOOL_from_json.py @@ -56679,18 +57106,18 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "tarp raincatcher" msgid_plural "tarp raincatchers" -msgstr[0] "" +msgstr[0] "防水帆布集雨器" #. ~ Use action done_message for tarp raincatcher. #: lang/json/TOOL_from_json.py msgid "You set up the raincatcher, waiting to collect water." -msgstr "" +msgstr "你设置了防水帆布集雨器,等待收集水。" #. ~ Description for tarp raincatcher #: lang/json/TOOL_from_json.py msgid "" "Some sticks and string with a tarpaulin to set up an improvised raincatcher." -msgstr "" +msgstr "由一些棍子和绳子与防水油布所搭建的一个简易集雨器。" #: lang/json/TOOL_from_json.py msgid "metallic smoother" @@ -57175,10 +57602,10 @@ msgstr "你点燃管炸弹的导火索。" #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" -"一根看起来很普通的小钢管,里面却塞满了炸药。使用它会点燃引信,炸药会在三个回合后爆炸,抓紧时间离它远点。你需要一个打火机或者火柴来点燃引信。" +"一根看起来很普通的小钢管,里面却塞满了炸药。使用这件物品会点燃引信,炸药会在五个回合后爆炸,抓紧时间离它远点。你需要一个打火机或者火柴来点燃引信。" #: lang/json/TOOL_from_json.py msgid "active pipe bomb" @@ -57934,11 +58361,10 @@ msgstr[0] "自制短矛" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." -msgstr "" -"一根自制的短矛,一根经过打磨的木制杆身,一端牢固地固定并绑好了锤打成型的金属矛头。良好的握把配合精良的制作工艺让它成为一把不错但伤害不高的武器。" +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." +msgstr "一个短的自制长矛,由光滑的木杆制成,顶部固定有尖锐的金属。它的功能性握力和良好的结构使它成为一个非常有用的武器。" #: lang/json/TOOL_from_json.py msgid "spray can" @@ -59101,6 +59527,31 @@ msgid "" "supplies." msgstr "一堆简陋的泥砖,在你冒着生命危险出去的时候,已经干了一个星期了。拆开它取回你的框架和建筑用品。" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "石斧" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "磨利的宽扁石块+为了不割到手而装上的握把=旧石器时代的瑞士军刀!" + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "金属手斧" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "这是一大块钢,一边被锤成类似于刀刃的东西。它可以像斧子一样好用,但真的比不上一把合适的斧子。" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -59244,6 +59695,18 @@ msgid "" "reinforce plastic items." msgstr "一块塑料。可以用来制作,修复或者强化塑料制品。" +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "固态燃料块便携炉" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "又称为易斯比特炉,这是一个轻量级的可折叠炉子。设计为使用乌洛托品片来烹饪。" + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -59367,6 +59830,18 @@ msgid "" "used as a comfortable sleeping place. It's rolled and ready for carrying." msgstr "一种由纤维材料编织而成的大垫子,可代替野餐毯,但用作屠宰工具更有价值。因为太薄不能作为舒适的睡眠场所。它已经被卷起以便于携带。" +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "打火石" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "这是一根镁棒和一个碳钢撞针。用它来点燃火焰。" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -60259,7 +60734,7 @@ msgstr "" #: lang/json/TOOL_from_json.py msgid "C.R.I.T mess kit" msgid_plural "C.R.I.T mess kits" -msgstr[0] "" +msgstr[0] "C.R.I.T 野外餐具" #. ~ Description for C.R.I.T mess kit #: lang/json/TOOL_from_json.py @@ -60271,11 +60746,12 @@ msgid "" " but does have a rather small solar panel installed. Also comes with an " "absurdly small integrated fpoon and knife spatula set!" msgstr "" +"C.R.I.设计的标准版野外餐具,非常方便携带。外形参考普通军用版餐具制成,但是材料上使用了不锈钢高温合金。美中不足的是为了保证便携性,牺牲了电池容量,但是额外安装了一个相当小的太阳能电池板。" #: lang/json/TOOL_from_json.py msgid "C.R.I.T service knife" msgid_plural "C.R.I.T service knifes" -msgstr[0] "" +msgstr[0] "C.R.I.T 军用匕首" #. ~ Description for C.R.I.T service knife #: lang/json/TOOL_from_json.py @@ -60286,23 +60762,24 @@ msgid "" "allows for light-armor penetration. Blade length allows for pretty decent " "reach as well. Something makes you feel... connected to the knife." msgstr "" +"C.R.I.T标准版军用匕首,拥有一个钢制护手保护手指关节。底部配有小型撬棍可以帮助你撬开简单的物品。哑光的黑色涂层可以避免反光引起敌人的发现。匕首采用高强度合金锻造而成,可以很轻松的穿透轻型装甲。" #: lang/json/TOOL_from_json.py msgid "C.R.I.T Knuckledusters" msgid_plural "C.R.I.T Knuckledusterss" -msgstr[0] "" +msgstr[0] "C.R.I.T 格斗指虎" #. ~ Description for C.R.I.T Knuckledusters #: lang/json/TOOL_from_json.py msgid "" "C.R.I.T CQB knuckledusters. Not too different from any normal pair, but the " "." -msgstr "" +msgstr "C.R.I.T近战用格斗指虎,和平常的指虎没什么不同。但是更加坚固耐用。" #: lang/json/TOOL_from_json.py msgid "C.R.I.T Reso-blade" msgid_plural "C.R.I.T Reso-blades" -msgstr[0] "" +msgstr[0] "C.R.I.T 共振刀锋" #. ~ Description for C.R.I.T Reso-blade #: lang/json/TOOL_from_json.py @@ -60310,12 +60787,12 @@ msgid "" "C.R.I.T melee weapon. Alien runes adorn the carbon steel blade. The blade " "oddly lacks sharpness, and yet upon closer oberservation, a hum of energy " "thrums from within." -msgstr "" +msgstr "C.R.I.T近战武器。异族符文装饰着碳钢刀片。奇怪的是,刀片缺乏锋利性,但在近距离观察时,能听见从内部发出能量嗡嗡声。" #: lang/json/TOOL_from_json.py msgid "Dragon Slayer" msgid_plural "Dragon Slayers" -msgstr[0] "" +msgstr[0] "屠龙者" #. ~ Description for Dragon Slayer #: lang/json/TOOL_from_json.py @@ -60326,11 +60803,12 @@ msgid "" "looks more like a raw heap of iron than a sword. The thing is... can you " "wield it?" msgstr "" +"C.R.I.T研发的杰出武器。外星符文装饰着巨大的碳素钢刀刃,内部的能量振动的嗡嗡作响。仅仅是用手指轻拂武器就能带来一种不可战胜的感觉。它看起来更像一堆生铁,而不是一把剑。问题是……你能手持挥舞它吗?" #: lang/json/TOOL_from_json.py msgid "C.R.I.T entrenching tool" msgid_plural "C.R.I.T entrenching tools" -msgstr[0] "" +msgstr[0] "C.R.I.T 工兵铲" #. ~ Description for C.R.I.T entrenching tool #: lang/json/TOOL_from_json.py @@ -60338,12 +60816,12 @@ msgid "" "C.R.I.T standard-issue collapsible spade. A built in vibration system that " "is powered by the user's movement allows the smaller spade to clear soil " "like a larger shovel." -msgstr "" +msgstr "C.R.I.T标准型可折叠铲子。内置的振动系统由使用者的移动提供动力,使得较小的铲子可以像较大的铲子一样清理土壤。" #: lang/json/TOOL_from_json.py msgid "C.R.I.T night stick" msgid_plural "C.R.I.T night sticks" -msgstr[0] "" +msgstr[0] "C.R.I.T 警棍" #. ~ Description for C.R.I.T night stick #: lang/json/TOOL_from_json.py @@ -60351,7 +60829,7 @@ msgid "" "C.R.I.T standard issue guard tonfa. The length allows for great reach and " "the domed tip allows for greater impact than a cylinder style baton. Blood " "seems to soak into the length..." -msgstr "" +msgstr "C.R.I.T标准版警棍,比起普通警棍,更长更粗,使得威力也更加大。这只警棍看上去沾满了鲜血......" #: lang/json/TOOL_from_json.py msgid "companion potato" @@ -60368,7 +60846,7 @@ msgstr "看上去像是些基因工程生命和操作系统,被连在一个马 #: lang/json/TOOL_from_json.py msgid "wand of fireballs" msgid_plural "wand of fireballss" -msgstr[0] "" +msgstr[0] "魔杖(火球)" #. ~ Description for wand of fireballs #: lang/json/TOOL_from_json.py @@ -60377,6 +60855,18 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "魔杖(魔法飞弹)" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -60744,18 +61234,6 @@ msgid "" " 9mm ammo." msgstr "一个园艺机器人,安静而且毫无威胁。它可以携带最多100发 9mm 子弹。" -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "打火石" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "一块精选的燧石和钢质火镰。 用来点火。" - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -60792,18 +61270,6 @@ msgid "" "used to start a campfire." msgstr "一个用来装引火物的小盒子,盒子上有个小洞以保持空气流通,里面的引火物里还有些火星在缓缓燃烧。它可以用来点燃篝火。" -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "手斧" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "磨利的宽扁石块+为了不割到手而装上的握把=旧石器时代的瑞士军刀!" - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -60856,30 +61322,6 @@ msgid "" "become a crude form of cheese, having had vinegar and natural rennet added." msgstr "一大包用动物胃囊密封的凝结牛奶。牛奶、醋酸和胃囊内的微生物一同发酵,产生凝乳酶使蛋白结块,正在向粗制奶酪转变中。" -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "固态燃料块便携炉" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "又称为易斯比特炉,这是一个轻量级的可折叠炉子。设计为使用乌洛托品片来烹饪。" - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "简易斧头" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "一把绑着锋利钢块的木棍,让它有类似斧头的功能,但与真正的斧头还差的远。" - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -61967,6 +62409,17 @@ msgid "" "of coma, awaiting your orders. Use this item to wake up the minion." msgstr "只属于你的丧尸奴仆。他处于一种特殊的麻痹状态,等待着你的命令。使用这件物品可以唤醒奴仆 。" +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "车轮" @@ -62298,304 +62751,304 @@ msgstr "" "短履带板环环相扣,安装在一组小型负重轮上的轧制钢履带。类似的东西你可能曾在运兵车和装甲载具上见过。由于没有爆胎的风险,它显然比普通轮胎坚固,但是却超级重。" #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "停止装填?" +msgid "reloading" +msgstr "装填中" #: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "停止阅读?" +msgid "reading" +msgstr "阅读" #: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "停止播放?" +msgid "playing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "停止等待?" +msgid "waiting" +msgstr "等待中" #: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "停止制造物品?" +msgid "crafting" +msgstr "制作中" #: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "停止拆解物品?" +msgid "disassembly" +msgstr "拆卸中" -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "停止屠宰?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "屠宰" #: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "停止清理内脏?" +msgid "field dressing" +msgstr "正在清理内脏" #: lang/json/activity_type_from_json.py -msgid "Stop skinning?" -msgstr "停止剥皮?" +msgid "skinning" +msgstr "正在剥皮" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "停止改四分体?" +msgid "quartering" +msgstr "正在分割成四分体" #: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" -msgstr "停止肢解?" +msgid "dismembering" +msgstr "正在肢解" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "停止解剖?" +msgid "dissecting" +msgstr "正在解剖" #: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "停止回收?" +msgid "salvaging" +msgstr "正在回收" #: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "停止搜寻?" +msgid "foraging" +msgstr "正在采集" #: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "停止建造?" +msgid "construction" +msgstr "建造" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "停止控制载具?" +msgid "interacting with the vehicle" +msgstr "正在控制载具" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "停止训练?" +msgid "training" +msgstr "培训" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" -msgstr "停止闲聊?" +msgid "socializing" +msgstr "正在交流" #: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "停止急救?" +msgid "using first aid" +msgstr "正在急救" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "停止钓鱼?" +msgid "fishing" +msgstr "正在钓鱼" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "停止挖矿?" +msgid "mining" +msgstr "正在挖矿" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "停止打洞?" +msgid "burrowing" +msgstr "正在打洞" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "停止粉碎?" +msgid "smashing" +msgstr "正在打砸" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" -msgstr "停止转动?" +msgid "cranking" +msgstr "正在转动把手" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "停止减压?" +msgid "de-stressing" +msgstr "正在泄压" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "停止切割组织?" +msgid "cutting tissues" +msgstr "正在切割组织" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "停止丢下物品?" +msgid "dropping" +msgstr "正在丢下物品" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "停止储藏物品?" +msgid "stashing" +msgstr "正在收纳" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "停止捡起物品?" +msgid "picking up" +msgstr "正在捡起" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "停止移动物品?" +msgid "moving items" +msgstr "正在挪动物品" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "停止整理战利品?" +msgid "sorting out the loot" +msgstr "正在整理战利品" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "停止耕地?" +msgid "tilling the farm plot" +msgstr "正在耕种田区" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "停止播种?" +msgid "planting seeds" +msgstr "正在播种" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" -msgstr "停止收获?" +msgid "harvesting plots" +msgstr "正在收获田区" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" -msgstr "停止施肥?" +msgid "fertilizing plots" +msgstr "正在施肥" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "停止和物品栏互动?" +msgid "interacting with inventory" +msgstr "正在和物品栏互动" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "停止修改衣物?" +msgid "fiddling with your clothes" +msgstr "正在修改衣物" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "停止生火?" +msgid "lighting the fire" +msgstr "正在生火" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "停止操作绞盘?" +msgid "working the winch" +msgstr "正在操作绞盘" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "停止装填容器?" +msgid "filling the container" +msgstr "正在填充容器" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "停止短接导线来点火?" +msgid "hotwiring the vehicle" +msgstr "正在短接发动载具" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "停止瞄准?" +msgid "aiming" +msgstr "正在瞄准" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "停止使用ATM?" +msgid "using the ATM" +msgstr "使用ATM" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "停止尝试启动载具?" +msgid "trying to start the vehicle" +msgstr "尝试启动车辆" -#: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "停止焊接?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "焊接" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "停止破解?" +msgid "cracking" +msgstr "裂开" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "停止修理?" +msgid "repairing" +msgstr "修理" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "停止修复?" +msgid "mending" +msgstr "修补" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "停止改造枪械?" +msgid "modifying gun" +msgstr "改装枪" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "停止改造工具?" +msgid "modifying tool" +msgstr "改装工具" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "停止和NPC互动?" +msgid "interacting with the NPC" +msgstr "与NPC互动" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "停止清理瓦砾?" +msgid "clearing that rubble" +msgstr "清理废墟" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "停止冥想?" +msgid "meditating" +msgstr "冥想" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "停止洗涤?" +msgid "washing" +msgstr "洗" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "停止切割金属?" +msgid "cutting the metal" +msgstr "切割金属" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "停止砍树?" +msgid "chopping down" +msgstr "砍倒树木" -#: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "停止钻孔?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "钻孔" -#: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "停止挖掘?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "挖掘" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "停止填坑?" +msgid "filling" +msgstr "正在填坑" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "停止剃须?" +msgid "shaving" +msgstr "刮胡子" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "停止理发?" +msgid "cutting your hair" +msgstr "给自己理发" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" -msgstr "停止和宠物玩耍?" +msgid "playing with your pet" +msgstr "和宠物玩一会" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr " 停止尝试入睡?" +msgid "trying to fall asleep" +msgstr "尝试入睡" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" -msgstr "停止清空?" +msgid "unloading" +msgstr "清空" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" -msgstr "停止重置?" +msgid "programming override" +msgstr "正在重置程序" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" -msgstr "停止穿上物品?" +msgid "putting on items" +msgstr "穿上衣服" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" -msgstr "停止与树木的沟通?" +msgid "communing with the trees" +msgstr "正在与树木交流" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" -msgstr "停止进食?" +msgid "eating" +msgstr "吃" #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" -msgstr "停止消耗?" +msgid "consuming" +msgstr "使用" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" -msgstr "" +msgid "casting" +msgstr "正在投射" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" -msgstr "停止学习?" +msgid "studying" +msgstr "学习" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" -msgstr "不喝了?" +msgid "drinking" +msgstr "喝" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" -msgstr "停止使用药物?" +msgid "using drugs" +msgstr "正在使用药物" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" -msgstr "" +msgid "using the mind splicer" +msgstr "正在心灵连接" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" -msgstr "停止黑客入侵?" +msgid "hacking console" +msgstr "正在侵入电脑。" #: lang/json/ammunition_type_from_json.py msgid ".700 Nitro Express" @@ -62605,6 +63058,10 @@ msgstr ".700 Nitro Express 弹" msgid ".50 BMG" msgstr ".50 BMG 弹" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr ".45-70" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "钉子" @@ -62849,7 +63306,7 @@ msgstr "压缩空气" #: lang/json/ammunition_type_from_json.py msgid "pulse ammo" -msgstr "脉冲弹" +msgstr "脉冲弹药" #: lang/json/ammunition_type_from_json.py msgid "6.54x42mm" @@ -64309,15 +64766,15 @@ msgstr "建造混凝土楼板" #: lang/json/construction_from_json.py msgid "Fill Pit With Dirt" -msgstr "" +msgstr "用泥土填坑" #: lang/json/construction_from_json.py msgid "Make Woodchip Floor" -msgstr "" +msgstr "建造木片地板" #: lang/json/construction_from_json.py msgid "Build Wooden Floor" -msgstr "" +msgstr "建造木地板" #: lang/json/construction_from_json.py msgid "Build Simple Concrete Wall" @@ -64523,6 +64980,10 @@ msgstr "建造简易床" msgid "Build Straw Bed" msgstr "建造稻草床" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "建造树叶堆" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "从零开始建造床" @@ -64593,11 +65054,11 @@ msgstr "建造衣柜" #: lang/json/construction_from_json.py msgid "Paint Grass White" -msgstr "" +msgstr "漆白色草丛" #: lang/json/construction_from_json.py msgid "Paint Pavement Yellow" -msgstr "" +msgstr "漆黄线路面" #: lang/json/construction_from_json.py msgid "Take Paint Off Pavement" @@ -64880,11 +65341,11 @@ msgstr "树干劈成原木" #: lang/json/construction_from_json.py msgid "Dig a Pit" -msgstr "" +msgstr "挖坑" #: lang/json/construction_from_json.py msgid "Makeshift Wall" -msgstr "" +msgstr "建造简易墙" #: lang/json/construction_from_json.py msgid "Build Hydroponics" @@ -65676,67 +66137,67 @@ msgstr "狂信之众试图将非马卡斯们与马洛斯莓隔绝开来。吾等 #: lang/json/dream_from_json.py msgid "You have a strange dream about the shadows." -msgstr "" +msgstr "你做了一个关于阴影的奇怪梦。" #: lang/json/dream_from_json.py msgid "Your dreams give you a peculiar feeling of sinking into the dark." -msgstr "" +msgstr "你的梦给你一种沉入黑暗的感觉。" #: lang/json/dream_from_json.py msgid "You have a vivid dream of talking a midnight stroll." -msgstr "" +msgstr "你有一个生动的梦,梦里你在午夜漫步。" #: lang/json/dream_from_json.py msgid "You dream of drinking copious amounts of warm water." -msgstr "" +msgstr "梦里,你喝下大量的温水。" #: lang/json/dream_from_json.py msgid "" "You have a dream of being chased by dogs as something warm drips from your " "mouth." -msgstr "" +msgstr "在梦中你被一群狗狂追,有什么暖乎乎的东西从你嘴巴里滴了出来。" #: lang/json/dream_from_json.py msgid "Snippets of stalking something in the star-lit night shakes you awake." -msgstr "" +msgstr "星光照耀的夜晚,你追踪着猎物,令人振奋的捕猎把你惊醒了。" #: lang/json/dream_from_json.py msgid "You dream of sinking your fangs into more and more enemies." -msgstr "" +msgstr "你梦见越来越多的敌人被你的尖牙撕咬。" #: lang/json/dream_from_json.py msgid "" "You have a lucid dream where streams of blood are slowly pooling around your" " feet." -msgstr "" +msgstr "你做了一个清醒梦,在梦中鲜血如河流一样流淌,一点点漫过了你的脚面。" #: lang/json/dream_from_json.py msgid "You have a strange dream about the mountain forests." -msgstr "" +msgstr "你做了一个奇怪的梦,梦中有高山上的森林。" #: lang/json/dream_from_json.py msgid "Your dreams give you a peculiar feeling of sinking into the treelines." -msgstr "" +msgstr "你的梦给了你一种奇特的感受,好像你沉没在森林中,如船沉没在水里。" #: lang/json/dream_from_json.py msgid "You have a vivid dream of strolling through the woods." -msgstr "" +msgstr "你梦见在树林中漫步。" #: lang/json/dream_from_json.py msgid "You have a dream of chasing something as a raw hunger sears your mind." -msgstr "" +msgstr "在梦中你的心被野兽般的饥饿感占据,驱使你追逐着什么东西。" #: lang/json/dream_from_json.py msgid "Recollections of stalking a human shakes you awake." -msgstr "" +msgstr "迷迷糊糊中你好像变成了僵尸在尾随一个活人,这把你吓醒了。" #: lang/json/dream_from_json.py msgid "You dream of tearing into more and more enemies." -msgstr "" +msgstr "你梦见被数不清的敌人撕碎。" #: lang/json/dream_from_json.py msgid "You have a lucid dream where nature carefully welcomes your body." -msgstr "" +msgstr "你有一个清晰的梦,在某个地方,大自然会诚惶诚恐地欢迎你的身体。" #: lang/json/effects_from_json.py msgid "Hit By Player" @@ -65748,6 +66209,26 @@ msgid "" "AI tag for when monsters are hit by player. This is a bug if you have it." msgstr "AI专用标签:被玩家击中。" +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "骑" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "当怪物被驯服,赋予此AI标签.如果你的状态中出现此标签,意味着你遭遇了一个bug。" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "驾驭" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "驯服的怪物" @@ -66021,6 +66502,16 @@ msgstr "有装甲" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "AI专用标签:表示动物穿着盔甲。" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "有马鞍" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "被捆绑" @@ -66162,6 +66653,20 @@ msgstr "你明显被震晕了,很难集中精神注意到发生在你身边的 msgid "The scream dazes you!" msgstr "尖叫声震晕了你!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "骑" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "你骑的是一只动物。" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "你骑上你的马。" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "着火" @@ -67924,7 +68429,7 @@ msgstr "你背后的风减弱了。" #: lang/json/effects_from_json.py msgid "Ethereal Hold" -msgstr "" +msgstr "幽影之拥" #. ~ Description of effect 'Ethereal Hold'. #: lang/json/effects_from_json.py @@ -67985,6 +68490,54 @@ msgstr "你受到霜甲的保护。" msgid "Your Frost Armor melts away." msgstr "你的霜甲融化了。" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "你的身体随着翻卷的异形肌肉波荡,四肢被拉伸,眼中闪烁着幽幽的绿芒。" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "你的身体很快恢复正常。" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "树根和藤蔓缠绕着你的敌人。" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "树根和藤蔓缠绕你的敌人,使他们减速!" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "树根和藤蔓枯萎死亡。" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "根须穿刺" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "从地上拔出根来刺穿你的敌人!" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "酸性烧伤" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "酸灼伤" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "陷入小型捕猎陷阱" @@ -68526,7 +69079,7 @@ msgstr "相信追随你可以生活得更好的幸存者。如果士气下降, #: lang/json/faction_from_json.py msgid "Hub 01" -msgstr "" +msgstr "Hub 01" #. ~ Description for Hub 01 #: lang/json/faction_from_json.py @@ -68534,7 +69087,7 @@ msgid "" "The surviving staff of Hub 01, a pre-cataclysm research lab. They rarely " "leave their lab, if at all, and rely on their robots and advanced technology" " to survive." -msgstr "" +msgstr "Hub 01 的幸存列表,这是一个大灾变前的研究实验室。他们很少离开实验室(如果有的话),并依靠机器人和先进的技术来生存。" #: lang/json/faction_from_json.py src/game.cpp msgid "The Old Guard" @@ -68613,6 +69166,15 @@ msgid "" "Even if you have no gear, there is always a need for slaves and fresh meat." msgstr "最大的恶棍与强盗团伙,靠狩猎其他幸存者为生。就算你是在裸奔,也别忘记奴隶或鲜肉都是有市场的。" +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "突变体蜜蜂" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "憎恨每个人的突变蜜蜂。" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "上帝的社区" @@ -68821,8 +69383,7 @@ msgstr "一块用于截断交通的路障。" msgid "smash!" msgstr "咔嚓!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "哐嘡。" @@ -68877,8 +69438,8 @@ msgid "" "notes for other survivors to read." msgstr "一种大的软木布告板,能发出各种告示。把一些信息留给其他幸存者。" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "嘎嚓!" @@ -68974,6 +69535,17 @@ msgstr "稻草床" msgid "Kinda itches when you lay on it." msgstr "一个稻草扎成的床,不够舒适,用于休息。" +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "一堆树叶" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "一大堆树叶,如果你不在乎舒适和温暖,你可以睡在上面。" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "水槽" @@ -69445,10 +70017,20 @@ msgstr "一个被撬开的板条箱,可以使用钉子与木板将其重新封 msgid "canvas wall" msgstr "帆布墙" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "一种由拉伸的防水布制成的墙。" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "啪!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "由拉伸的重型防水布制成的墙。" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "帆布帘子" @@ -69870,6 +70452,16 @@ msgstr "靶子" msgid "A metal shooting target in the rough shape of a human." msgstr "一个金属制成的人形射击靶。" +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "一种常见的蓝铃花。很漂亮。" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "有许多紧密分层的花瓣的蓬松的花。" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -69887,15 +70479,32 @@ msgid "" "and... delicious?" msgstr "这朵花和其它长在蘑菇上的花一样,但它的球茎是一种鲜艳的青色,它散发出一种令人难以抗拒的香味,闻起来很好吃。" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "一种开黄花的普通杂草。种子通过灰色细丝在风中传播。" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." -msgstr "" +msgstr "啊,舒缓甘菊茶。" + +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "一种鲜艳的花,花瓣在顶部形成一个小杯子。" #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "锦地草花" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "一种黄绿色的花,生长在浓密的灌木丛中。" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "香蒲草" @@ -69907,6 +70516,32 @@ msgid "" "edible." msgstr "这种有用的植物一年到头都有。它的许多部分是可食用的。" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "中间有暗球的黄色花朵。有时被称为牛眼雏菊。" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "一种漂亮的花,有多种颜色。" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "一种生长在淡水体表面的可爱的花。传统上与许多东方文化相联系。" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "一种高而宽的花,中心大而黑。产生许多营养丰富的种子。" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "百合花" @@ -70016,6 +70651,13 @@ msgstr "" msgid "ergometer" msgstr "室内自行车" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -70079,6 +70721,13 @@ msgstr "咚。" msgid "canvas floor" msgstr "帆布地板" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "地板由拉伸的防水布制成。有助于防止灰尘进入帐篷。" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -70186,6 +70835,13 @@ msgstr "砖窑" msgid "A kiln designed to bake clay pottery and bricks." msgstr "一个用来烧制各类陶制器具和砖块的炉子。" +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "一种可折叠的短梯子。可以帮助你爬到屋顶,或者作为障碍物减慢他人的速度。" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "小圆石" @@ -70221,6 +70877,11 @@ msgstr "一块巨大的砾石,重量同样巨大。" msgid "stone slab" msgstr "石板" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "一块沉重的石板。" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "镣铐" @@ -71064,14 +71725,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "变异的仙人掌" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "榻榻米" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "榻榻米是一种在传统的日本风格的房间里用作地板材料的垫子。" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "变异的仙人掌" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -71351,8 +72019,7 @@ msgstr "射出酸液球的假枪。" msgid "auto" msgstr "自动" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "步枪" @@ -72844,7 +73511,7 @@ msgstr "COP .38德林加手枪是一把小型的肥嘟嘟的德林加手枪, #: lang/json/gun_from_json.py msgid "pipe rifle: .38 Special" msgid_plural "pipe rifles: .38 Special" -msgstr[0] "" +msgstr[0] "自制钢管步枪(.38口径)特殊" #: lang/json/gun_from_json.py msgid "Ruger LCR .38" @@ -72968,7 +73635,7 @@ msgstr "一把改用 .40 S&W子弹的格洛克17型手枪的衍生型号。是FB #: lang/json/gun_from_json.py msgid "pipe rifle: .40 S&W" msgid_plural "pipe rifles: .40 S&W" -msgstr[0] "" +msgstr[0] "自制钢管步枪(.40)左轮" #: lang/json/gun_from_json.py msgid "SIG Pro .40" @@ -73151,7 +73818,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "pipe rifle: .44 Magnum" msgid_plural "pipe rifles: .44 Magnum" -msgstr[0] "" +msgstr[0] "自制钢管步枪(.44口径)马格南" #: lang/json/gun_from_json.py msgid "Ruger Redhawk" @@ -73308,6 +73975,43 @@ msgid "" "has impressive stopping power." msgstr "陶鲁斯\"愤怒公牛\"左轮手枪发射.454 卡苏尔弹,弹容量5发,这种子弹的停止作用很优异。" +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -74116,6 +74820,14 @@ msgid "fusion blaster" msgid_plural "fusion blasters" msgstr[0] "热熔炮" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "单发" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "三连点射" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -74693,7 +75405,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "burst" -msgstr "" +msgstr "连发" #: lang/json/gun_from_json.py msgid "C.R.I.T Laser Carbine" @@ -74736,7 +75448,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Plasma Cutter" msgid_plural "Plasma Cutters" -msgstr[0] "" +msgstr[0] "等离子切割机" #: lang/json/gun_from_json.py msgid "" @@ -74771,7 +75483,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Pulse Rifle" msgid_plural "Pulse Rifles" -msgstr[0] "" +msgstr[0] "脉冲步枪" #: lang/json/gun_from_json.py msgid "" @@ -74783,7 +75495,7 @@ msgstr "" #: lang/json/gun_from_json.py msgid "Ripper" msgid_plural "Rippers" -msgstr[0] "" +msgstr[0] "开膛手" #: lang/json/gun_from_json.py msgid "" @@ -75423,6 +76135,17 @@ msgid "" "reusable, multi-role recoilless rifle commonly used by the US military." msgstr "84mm无后坐力炮是一种后装填可重复使用的轻型多用途武器。" +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "木弓" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -76665,6 +77388,21 @@ msgid "" "shooting. Increases damage output and weapon range." msgstr "一根Leadworks公司制造的内置重型枪管,重型枪管能保证武器持久射击。提升武器射程和伤害。" +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "强力射击" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "枪管下挂件" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -77283,10 +78021,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "这个自制的微型火焰喷射器可以装在大部分的枪械上,提高枪械的杀伤力。" -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "枪管下挂件" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -79267,7 +80001,7 @@ msgstr "创建全息投影" #: lang/json/item_action_from_json.py msgid "Extract data from memory banks" -msgstr "" +msgstr "从记忆库中提取数据" #: lang/json/item_action_from_json.py msgid "Hack a robot" @@ -79319,7 +80053,7 @@ msgstr "学习法术" #: lang/json/item_action_from_json.py msgid "Cast spell" -msgstr "" +msgstr "释放魔法" #: lang/json/item_action_from_json.py msgid "Use holster" @@ -79788,7 +80522,7 @@ msgstr "这件装备能完全保护免被电击。" msgid "" "This item disappears as soon as its timer runs out whether it is food or " "not." -msgstr "" +msgstr "无论是食物还是非食物,只要计时器用完,这个物品就会消失。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -80003,7 +80737,7 @@ msgstr "这件装备能部分保护不受辐射影响fall down." -msgstr "" +msgstr "这种装备会让你难以稳定重心。穿着时被击中可能会让你摔倒。" #. ~ Please leave anything in unchanged. #: lang/json/json_flag_from_json.py @@ -81328,7 +82062,11 @@ msgstr "查看气味地图" #: lang/json/keybinding_from_json.py msgid "View Temperature Map" -msgstr "" +msgstr "查看温度视图" + +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "查看能见度视图" #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" @@ -81370,6 +82108,10 @@ msgstr "切换自动挖矿" msgid "Toggle Auto Foraging" msgstr "切换自动搜寻" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "切换自动拾取" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "行动菜单" @@ -81468,7 +82210,7 @@ msgstr "移动模式菜单" #: lang/json/keybinding_from_json.py msgid "Spellcasting" -msgstr "" +msgstr "施法" #: lang/json/keybinding_from_json.py src/game_inventory.cpp msgid "Compare" @@ -82214,16 +82956,6 @@ msgstr "离心机控制终端" msgid "Analyze blood" msgstr "分析血样" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "接骨治疗" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -83862,14 +84594,14 @@ msgstr "" #: lang/json/martial_art_from_json.py msgid "Panzer Kunst" -msgstr "" +msgstr "装甲艺术" #. ~ Description for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py msgid "" "A futuristic martial art devised for cyborgs fighting in zero-gravity " "environments." -msgstr "" +msgstr "一种为改造人在零重力环境中战斗而设计的未来主义武术。" #: lang/json/martial_art_from_json.py msgid "Verschlag" @@ -83891,7 +84623,7 @@ msgstr "" #. ~ Description of buff 'Einsatzrhythmen' for martial art 'Panzer Kunst' #: lang/json/martial_art_from_json.py msgid "Perception increases dodging ability, +1 block" -msgstr "" +msgstr "感知增加闪避能力,+1格挡" #: lang/json/martial_art_from_json.py msgid "Medieval Swordsmanship" @@ -84287,7 +85019,7 @@ msgstr "钛" #: lang/json/material_from_json.py msgid "Rubber" -msgstr "" +msgstr "橡胶" #: lang/json/material_from_json.py msgid "Bronze" @@ -85469,7 +86201,7 @@ msgid "" msgstr "好吧,我去找别人帮我。真是令人羞耻,那些枪械也被锁起来了……" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "你看上去属于那种足智多谋的类型,也许你可以破解它,或者有别的办法。" #: lang/json/mission_def_from_json.py @@ -85670,99 +86402,239 @@ msgid "" msgstr "我会尽力向上尉汇报任何所需要调查的信号的最新情况。" #: lang/json/mission_def_from_json.py -msgid "Return Field Data" -msgstr "" +msgid "Reach Refugee Center" +msgstr "前往难民中心" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." +msgstr "给迪诺·戴夫一卷胶带。" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." -msgstr "" +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "这些是好的,好的。他们需要一些东西把他们绑在一起。包围他们,光明的一面,黑暗的一面。" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "把原力给我!" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "哦,伙计,非常感谢我的朋友。你不会后悔的。" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "我不这么认为。" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "小心,他也在找。" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "...呃?" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "哦,这太棒了!" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "哦,那太糟了。我猜他们全都吃了。" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." +msgstr "把迪诺·戴夫的小纸箱带来。" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." -msgstr "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." +msgstr "得从小开始,对吧?为了保护小东西的安全。我可以用它们。" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." -msgstr "" +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" +msgstr "得从小开始,对吧?为了保护小东西的安全。我可以用它们。我需要一堆。小点的,你知道吗?你能给我拿来...拿来...40个吗?" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." -msgstr "" +msgid "Got the little ones yet?" +msgstr "小东西们拿到了吗?" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." -msgstr "" +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" +msgstr "这些是好的,好的。他们需要一些东西把他们绑在一起。包围他们,光明的一面,黑暗的一面。把原力给我!" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" +msgstr "带迪诺·戴夫中型纸板箱" + #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" -msgstr "" +msgid "Any luck? Bigger ones?" +msgstr "运气好吗?大一点的?" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "我现在太高兴了!" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" +msgstr "给迪诺·戴夫一些大塑料薄膜" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "我们快到了。" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." +msgstr "他们在五金店和木材场存放了很多这些东西。" + #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." -msgstr "" +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "我真的很抱歉让你参与这件事,这很危险。你发现什么了吗?" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "很好,这会做得很好!" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "哦,那太糟了。" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" +msgstr "带迪诺·戴夫大纸箱" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" +msgstr "这是我最不需要的。我自己一直在收集其他零件,周围有更多的硬纸板会更容易。你能再给我五个大纸箱吗?" + +#: lang/json/mission_def_from_json.py +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" +"这是我最不需要你做的事。我自己一直在收集其他零件,如果周围有更多的纸板,就更容易了。你能再给我五个大纸箱吗?再来五个纸箱,有多大就有多大。我已经储存了一些,这应该是我所需要的。" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "Yes! The home stretch!" +msgstr "是的!最后的冲刺!" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, but we're so close!" +msgstr "哦,伙计,我们已经很接近了!" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "试着看看货物储存区。" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "你把最后几个盒子给我带来了吗?" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "非常出色!你是个真正的英雄。我看看能不能找个地方把这些装好。" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "不!天啊,不,这不可能发生..." + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "为法蒂玛找到一本古兰经。" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "我需要一点帮助才能找到古兰经的副本。" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" msgstr "" +"说起来有点傻,不过我还是想问。我从来都不喜欢读圣书之类的东西。以前我都是周五去清真寺,一天做五次礼拜,但是我也没真的掌握这个。我想我不是一个好穆斯林,但是现在这么多事发生了,我真的想要一本古兰经来读。感觉现在是重归真主怀抱的时候了,你觉得呢?" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "谢谢。我看看能不能给你留点奖励。" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "那好吧。谢谢你的提议。" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "它没有圣经那么普遍,但你应该能够在大多数图书馆和书店找到副本。确保是翻译过的版本,我看不懂阿拉伯语!" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "前往难民中心" +msgid "What good does this do me?" +msgstr "这对我有什么好处?" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "这也不错,一本老书能给我足够的慰藉。" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -85858,6 +86730,159 @@ msgid "" "guess." msgstr "哈,如我所料,这招可不管用的。又得从头开始喽。" +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "找到5个急救箱" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" +"那个医生就在前面,给每一个出得起钱的人提供帮助……然而我们大部分的钱都花在食物上了。我倒是能处理一些简单的割伤伤口,烫伤和其他的问题,只要我能得到足够的补给。你能给我送几个急救箱过来吗?五个应该就够我们用一阵子了。" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "非常感谢。这是件小事,但会很有帮助的。" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "没关系。我相信我们一定会成功的。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "过去很多人的浴室里都有急救箱。我肯定他们不可能都被洗劫一空。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "为Uyen找6瓶百忧解" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "我们仍然需要你的帮助..." + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "百忧解真的很常见。你可能会在大多数药柜和药房里找到它。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "如果我有一些设备,我可以在这里做一些理发师的工作。" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "不管怎么说,我会不停地摆弄我的大拇指。" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" +"我不需要太多。剪刀,一面小镜子,一点布,还有一些让我不使用它的时候,让它保持干净的方法,就像皮袋之类的东西。我可以从避难所得到我所需要的其他东西。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "这个很有用。天哪,这些剪刀很漂亮,我可能会用魔法让你的头发变长或者换一种颜色。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "找到50个3L的罐子" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "我确实有一些工作要给你。" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "哦好吧。我看看能不能再找个供应商,谢谢。" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "杂货店,民宅厨房,有很多可探索的地方。" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "我想知道所有的罐子都去哪了..." + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "清理后院" @@ -85869,9 +86894,9 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"如果你真的想帮忙,请帮我们清理后院的丧尸。在大灾变的第一天,出于恐惧,我们把所有尸体和杀死的丧尸都丢弃在封闭的后院里,我们当时的老大也为此不幸遇难……并且变成另一种不同的生物了。请把它们全部清理干净并确保不会再威胁到我们。我们付不出很多钱作为报酬,但这能够帮助我们夺回后院。" #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -85893,8 +86918,11 @@ msgstr "那些家伙还会继续让我们头疼吗?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." -msgstr "谢谢你,家附近有个那么大的威胁真是让人觉得提心吊胆。" +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -85908,9 +86936,9 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"这要比上个任务更复杂一点,我们最近和一个拾荒者小队失去了联系,而他们本来是要来和我们交易的,我想让你帮我们去调查一下。我非常怀疑一群强盗或者尸潮出其不意地袭击了他们。除了最后的无线电通信记录下的方位外,我很难给你更多线索。不管怎样,解决掉这个麻烦,这样拾荒者们能够继续相对安全地经过这里。我能够给你奖励最多不过就是让你自行处理他们留下的补给。" #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -85937,11 +86965,13 @@ msgstr "取回建设企划书" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." msgstr "" -"我们新建的前哨站需要你的帮助。我需要你从工头那里拿到农场建设的企划书,确认之后我才能够把更多难民送去新的农业合作社。去农场和工头谈谈,可以了解更多的任务详细内容。" #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -85958,23 +86988,21 @@ msgstr "弄到建设企划书了吗?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." -msgstr "有了这个我们就能够说服其他人来建设农业合作社了。谢谢你。" +"you, here's your money." +msgstr "有了这个,我们就能说服其他人投资公社。谢谢,这是你的钱。" #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" -msgstr "" +msgid "Find 10 solar panels" +msgstr "找到10个太阳能电池板" #: lang/json/mission_def_from_json.py msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -85982,11 +87010,8 @@ msgid "If you can do this for us our survival options would vastly increase." msgstr "如果你能帮我们做成这事,这会大大增加我们活下去的可能性。" #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." -msgstr "" +msgid "Solar panels are pretty common on electric cars and on rooftops." +msgstr "太阳能电池板在电动汽车和屋顶上很常见。" #: lang/json/mission_def_from_json.py msgid "" @@ -85995,19 +87020,20 @@ msgid "" msgstr "太好了,我知道这点不算多,但是有了你的帮助我们有希望继续扩建了。" #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" -msgstr "找到40个罐头食品" +msgid "Find 100 canning jars" +msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" -"虽然我们已经设法保证了日常的食物供应,但这是非常勉强的。如果有什么东西把我们的人困住的话,我们的储备坚持不了几天。我们需要库存来避免这种情况。它必须是一些保质期长的东西,所以罐头食品是唯一的选择。给我们大约40个罐头,我们应该就能用我们的方式渡过难关。" #: lang/json/mission_def_from_json.py msgid "" @@ -86018,18 +87044,18 @@ msgstr "如果我能不用再担心这件事的话,那我就如释重负了。 #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "我们暂缓一会儿,但如果我继续担心下去的话会得胃溃疡的。如果你改变主意的话,告诉我一声。" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." -msgstr "杂货店,民宅厨房,有很多可探索的地方。" +" If you reconsider let me know." +msgstr "我们暂时等一下,但如果我继续担心的话,我会得溃疡的。如果你重新考虑让我知道。" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." -msgstr "不需要担心这件事了。很高兴有像你这样的人站在我们这边。" +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." +msgstr "" #: lang/json/mission_def_from_json.py msgid "" @@ -86328,6 +87354,97 @@ msgid "" msgstr "" "执法官,你一直以来都给我们留下深刻的印象。如果你感兴趣的话,我最近收到一条消息,一只小队已经被部署到本地区。我没有具体坐标,不过听说他们正在清理一处地下设施,可能需要帮助。直升机把他们空投在一间水泵房旁边。没有更多的消息了。如果你找到领头的上尉,我相信他能让你派上用场的。在与他们会面时不要忘记戴上你的徽章。再次感谢你,执法官。" +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "我们感谢你的帮助,祝你好运。" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "那就别指望我们的帮助。" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "你不是有工作要做吗?" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "不幸的是,只有数据是可以挽救的,但我们还是感谢你归还它。" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "根本没用..." + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "你有扫描吗?" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "你得到了我们的感谢和回报。" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "制作 2 个蒸馏器" @@ -88326,7 +89443,7 @@ msgstr "找到了\"奶酪\"。" #. ~ Mutation class name #: lang/json/mutation_category_from_json.py msgid "Vampire" -msgstr "" +msgstr "吸血鬼" #. ~ Mutation class: Vampire mutagen_message #: lang/json/mutation_category_from_json.py @@ -95000,7 +96117,7 @@ msgstr "你的外表与动作非常优雅,让你看起来可以轻松完成每 #: lang/json/mutation_from_json.py msgid "Red Iris" -msgstr " 红鸢尾" +msgstr "红鸢尾" #. ~ Description for Red Iris #: lang/json/mutation_from_json.py @@ -95156,12 +96273,12 @@ msgstr "" #: lang/json/mutation_from_json.py #, no-python-format msgid "You tear into %s with your blades" -msgstr "" +msgstr "你用刀刃撕裂了 %s" #: lang/json/mutation_from_json.py #, no-python-format msgid "%1$s tears into %2$s with their blades" -msgstr "" +msgstr "%1$s 用刀刃撕裂了 %2$s" #: lang/json/mutation_from_json.py msgid "Künstler" @@ -95275,6 +96392,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "德鲁伊特在自然界中遵循一种狂热的忠诚和重生的传统,特别是植物界的死亡和重生周期。强大的德鲁伊特和人类一样是这个世界的一部分。" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "次等魔力容纳" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "你可以在你的身体里储存比正常略多的法力。" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "中等魔力容纳" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "你可以在你的身体里储存比正常多的法力。" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "高等魔力容纳" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "你可以在你的身体里储存比正常多很多的法力。" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "较低魔力容纳" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "你的身体里储存的法力比正常略少。" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "低效魔力容纳" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "你的身体里储存的法力比正常少。" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "极低魔力容纳" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "你的身体里储存的法力比正常少很多。" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "次等魔力再生" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "你的自然法力再生比正常速度稍快。" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "中等魔力再生" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "你的自然法力再生比正常速度快。" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "高等魔力再生" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "你的自然法力再生比正常快很多。" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "缓慢魔力再生" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "你的自然法力再生比正常速度稍慢。" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "慢速魔力再生" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "你的自然法力再生比正常速度慢。" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "极慢魔力再生" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "你的自然法力再生比正常要慢很多。" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -95456,7 +96735,8 @@ msgstr "我曾经是一名警官,但现在我只是一个幸存者。" msgid "Beggar" msgstr "乞丐" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "难民" @@ -95480,6 +96760,14 @@ msgstr "对讲机" msgid "Reading this line is a bug" msgstr "如果你看到这个,那么你遇到一个BUG。" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -95715,14 +97003,6 @@ msgstr "我在找迅猛龙诱变剂…这个世界已经不适合人类了,因 msgid "Tester" msgstr "测试者" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "上尉" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "上士" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "强盗" @@ -95739,6 +97019,14 @@ msgstr "厨师" msgid "officer" msgstr "官员" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "上尉" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "上士" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "乞丐" @@ -95787,6 +97075,10 @@ msgstr "达娜 努涅斯" msgid "Draco Dune" msgstr "德拉科•杜恩" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "加里•维伦纽夫" @@ -95815,10 +97107,18 @@ msgstr "曼高普里特•辛格" msgid "Pablo Nunez" msgstr "巴勃罗 努涅斯" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "斯坦 波里申科" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "瓦内萨 托比" @@ -95847,6 +97147,10 @@ msgstr "佣兵" msgid "the intercom" msgstr "对讲机" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "自由商人" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "理发师" @@ -96289,10 +97593,6 @@ msgstr "小屋地下室" msgid "cabin" msgstr "小屋" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "泥土地" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "废弃小屋" @@ -96620,6 +97920,30 @@ msgstr "农舍 - 二层" msgid "farm house roof" msgstr "农舍房顶" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "泥土路" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "筒仓" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "加油站" @@ -96822,6 +98146,10 @@ msgstr "酒店地下室" msgid "motel" msgstr "汽车旅馆" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "汽车旅馆屋顶" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "家装超市入口" @@ -96874,6 +98202,10 @@ msgstr "冰淇淋店(屋顶)" msgid "dollar store" msgstr "一元店" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "一元店屋顶" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "网吧" @@ -96894,6 +98226,10 @@ msgstr "旧货店" msgid "daycare center" msgstr "托儿所" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "托儿所屋顶" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "宠物用品店" @@ -96992,7 +98328,7 @@ msgstr "轮胎店" #: lang/json/overmap_terrain_from_json.py msgid "tire shop roof" -msgstr "" +msgstr "轮胎店屋顶" #: lang/json/overmap_terrain_from_json.py msgid "Head Shop" @@ -97602,6 +98938,10 @@ msgstr "停尸间" msgid "fire station" msgstr "消防局" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "消防局屋顶" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "游民庇护所" @@ -97612,15 +98952,15 @@ msgstr "筒仓" #: lang/json/overmap_terrain_from_json.py msgid "silo cap" -msgstr "" +msgstr "筒仓盖" #: lang/json/overmap_terrain_from_json.py msgid "barn roof" -msgstr "" +msgstr "谷仓顶" #: lang/json/overmap_terrain_from_json.py msgid "garage roof" -msgstr "" +msgstr "车库屋顶" #: lang/json/overmap_terrain_from_json.py msgid "ranch" @@ -97628,7 +98968,7 @@ msgstr "大型农场" #: lang/json/overmap_terrain_from_json.py msgid "ranch roof" -msgstr "" +msgstr "大型农场屋顶" #: lang/json/overmap_terrain_from_json.py msgid "pool" @@ -97782,6 +99122,10 @@ msgstr "音乐馆" msgid "gambling hall" msgstr "赌场" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "赌场屋顶" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "脱衣舞厅" @@ -97814,13 +99158,17 @@ msgstr "健身房" msgid "dojo" msgstr "体育馆" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "体育馆屋顶" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "私家公园" #: lang/json/overmap_terrain_from_json.py msgid "private park roof" -msgstr "" +msgstr "私家公园屋顶" #: lang/json/overmap_terrain_from_json.py msgid "public art piece" @@ -97898,10 +99246,6 @@ msgstr "公共厕所" msgid "roadside foodcart" msgstr "路边摊" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "泥土路" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "铁路" @@ -99124,7 +100468,7 @@ msgstr "怎么了……怎么了?人们都怎么了?不管了……药不够 #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "K9 Officer" -msgstr "" +msgstr "K9警员" #. ~ Profession (male K9 Officer) description #: lang/json/professions_from_json.py @@ -99133,12 +100477,12 @@ msgid "" "You spent your career busting drug smugglers with your faithful canine " "companion. Now the world has ended and none of that matters anymore. But " "at least you have a loyal friend." -msgstr "" +msgstr "你的职业就是带着忠诚的狗狗缉毒,不过世界末日来临一切都不重要了。可是至少你还有一个忠诚的伙伴。(K9是Canine谐音,意为带警犬的)" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "K9 Officer" -msgstr "" +msgstr "K9警员" #. ~ Profession (female K9 Officer) description #: lang/json/professions_from_json.py @@ -99147,7 +100491,33 @@ msgid "" "You spent your career busting drug smugglers with your faithful canine " "companion. Now the world has ended and none of that matters anymore. But " "at least you have a loyal friend." -msgstr "" +msgstr "你的职业就是带着忠诚的狗狗缉毒,不过世界末日来临一切都不重要了。可是至少你还有一个忠诚的伙伴。(K9是Canine谐音,意为带警犬的)" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "猫奴" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "所有人都死了?随他便吧…反正你还有猫猫陪着呢!" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "猫奴" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "所有人都死了?随他便吧…反正你还有猫猫陪着呢!" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -102722,7 +104092,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "C.R.I.T Janitor" -msgstr "" +msgstr "C.R.I.T清洁工" #. ~ Profession (male C.R.I.T Janitor) description #: lang/json/professions_from_json.py @@ -102735,11 +104105,12 @@ msgid "" "and were not privy to anything remotely important) you found yourself stuck " "with nothing but the uniform they gave you and your equipment." msgstr "" +"*唉*你原本的生活一团糟。终于在C.R.I.T找了份清洁工的工作。薪水还不错,至少能见识到一些牛逼玩意儿。所有闲杂人等(像你这种,只是在干一些清洁或者跑腿的活,不知道重要事务的)被裁员后,你拥有的就只剩他们给的制服和自己的一些装备了。" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "C.R.I.T Janitor" -msgstr "" +msgstr "C.R.I.T清洁工" #. ~ Profession (female C.R.I.T Janitor) description #: lang/json/professions_from_json.py @@ -102752,6 +104123,7 @@ msgid "" "and were not privy to anything remotely important) you found yourself stuck " "with nothing but the uniform they gave you and your equipment." msgstr "" +"*唉*你原本的生活一团糟。终于在C.R.I.T找了份清洁工的工作。薪水还不错,至少能见识到一些牛逼玩意儿。所有闲杂人等(像你这种,只是在干一些清洁或者跑腿的活,不知道重要事务的)被裁员后,你拥有的就只剩他们给的制服和自己的一些装备了。" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -103062,7 +104434,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "C.R.I.T Recruit" -msgstr "" +msgstr "C.R.I.T新兵" #. ~ Profession (male C.R.I.T Recruit) description #: lang/json/professions_from_json.py @@ -103074,11 +104446,12 @@ msgid "" "equipment, you wish you had a better gun. Looks like you'll definitely learn" " a thing or two about survival though!" msgstr "" +"你在新英格兰接受生存训练,但是大灾变发生了,教练再没能给你上下一堂课。所以现在你带着标准训练装备被困在隔离区,你真希望能有一把更好的枪。看起来你一定能学到一些生存知识!" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "C.R.I.T Recruit" -msgstr "" +msgstr "C.R.I.T新兵" #. ~ Profession (female C.R.I.T Recruit) description #: lang/json/professions_from_json.py @@ -103090,11 +104463,12 @@ msgid "" "equipment, you wish you had a better gun. Looks like you'll definitely learn" " a thing or two about survival though!" msgstr "" +"你在新英格兰接受生存训练,但是大灾变发生了,教练再没能给你上下一堂课。所以现在你带着标准训练装备被困在隔离区,你真希望能有一把更好的枪。看起来你一定能学到一些生存知识!" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "C.R.I.T Employee" -msgstr "" +msgstr "C.R.I.T雇佣兵" #. ~ Profession (male C.R.I.T Employee) description #: lang/json/professions_from_json.py @@ -103109,11 +104483,12 @@ msgid "" "memories of abhorrent nature resurface, can you find it within yourself to " "overcome the looming terror which paralyzes you?" msgstr "" +"跟许多人一样,加入C.R.I.T组织后英勇的保护了同僚们多年,为了逃避痛苦的回忆和创伤,经过一段时间的调整,你的技能相比上次上战场可能已经退步,但是肌肉记忆还在。当你的同伴的惨叫声再次在你耳边响起被压抑的情感再次爆发,你还能克服内心的恐惧解决当下的问题吗?" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "C.R.I.T Employee" -msgstr "" +msgstr "C.R.I.T雇佣兵" #. ~ Profession (female C.R.I.T Employee) description #: lang/json/professions_from_json.py @@ -103128,6 +104503,7 @@ msgid "" "memories of abhorrent nature resurface, can you find it within yourself to " "overcome the looming terror which paralyzes you?" msgstr "" +"跟许多人一样,加入C.R.I.T组织后英勇的保护了同僚们多年,为了逃避痛苦的回忆和创伤,经过一段时间的调整,你的技能相比上次上战场可能已经退步,但是肌肉记忆还在。当你的同伴的惨叫声再次在你耳边响起被压抑的情感再次爆发,你还能克服内心的恐惧解决当下的问题吗?" #: lang/json/professions_from_json.py msgctxt "profession_male" @@ -103242,7 +104618,7 @@ msgstr "到目前为止你只是个勉强合格的幸存者。稍稍改变一下 #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Battle Angel" -msgstr "" +msgstr "战斗天使" #. ~ Profession (male Battle Angel) description #: lang/json/professions_from_json.py @@ -103253,7 +104629,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Battle Angel" -msgstr "" +msgstr "战斗天使" #. ~ Profession (female Battle Angel) description #: lang/json/professions_from_json.py @@ -103264,7 +104640,7 @@ msgstr "" #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Would-be Wizard" -msgstr "" +msgstr "准魔术师" #. ~ Profession (male Would-be Wizard) description #: lang/json/professions_from_json.py @@ -103272,12 +104648,12 @@ msgctxt "prof_desc_male" msgid "" "You found a pamphlet with bright colors claiming you can be a Wizard, oddly " "serene with the world falling down around you." -msgstr "" +msgstr "你发现一本炫丽的魔术师手册,当世界坍塌时,你出奇的平静。" #: lang/json/professions_from_json.py msgctxt "profession_female" msgid "Would-be Wizard" -msgstr "" +msgstr "准魔术师" #. ~ Profession (female Would-be Wizard) description #: lang/json/professions_from_json.py @@ -103285,6 +104661,58 @@ msgctxt "prof_desc_female" msgid "" "You found a pamphlet with bright colors claiming you can be a Wizard, oddly " "serene with the world falling down around you." +msgstr "你发现一本炫丽的魔术师手册,当世界坍塌时,你出奇的平静。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "你一生都爱火。你内心的火焰已经忍不住要燃烧到人世间。" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "你一生都爱火。你内心的火焰已经忍不住要燃烧到人世间。" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "德鲁伊特" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "德鲁伊特" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." msgstr "" #: lang/json/professions_from_json.py @@ -104619,7 +106047,7 @@ msgstr "人类不想你知道的东西" #: lang/json/recipe_from_json.py msgid "We need to survey the base site first." -msgstr "" +msgstr "我们需要先调查基地。" #: lang/json/recipe_from_json.py msgid "" @@ -105775,13 +107203,13 @@ msgstr "监狱" #: lang/json/scenario_from_json.py msgctxt "scenario_male" msgid "Challenge-Island Prison Break" -msgstr "" +msgstr "挑战-海岛越狱" #. ~ Name for scenario 'Challenge-Island Prison Break' for a female character #: lang/json/scenario_from_json.py msgctxt "scenario_female" msgid "Challenge-Island Prison Break" -msgstr "" +msgstr "挑战-海岛越狱" #. ~ Description for scenario 'Challenge-Island Prison Break' for a male #. character. @@ -105792,7 +107220,7 @@ msgid "" " You almost managed to escape the walls of a prison... Too bad it's " "located on a remote island, and now you need to find out how to escape it " "too." -msgstr "" +msgstr "在灾难发生前你被关进了一所戒备森严的监狱。你几乎要从监狱里逃出来了…糟糕的是它坐落在一个偏远的岛上,而现在你需要找到逃离的方法。" #. ~ Description for scenario 'Challenge-Island Prison Break' for a female #. character. @@ -105803,7 +107231,7 @@ msgid "" " You almost managed to escape the walls of a prison... Too bad it's " "located on a remote island, and now you need to find out how to escape it " "too." -msgstr "" +msgstr "在灾难发生前你被关进了一所戒备森严的监狱。你几乎要从监狱里逃出来了…糟糕的是它坐落在一个偏远的岛上,而现在你需要找到逃离的方法。" #. ~ Starting location for scenario 'Challenge-Island Prison Break'. #: lang/json/scenario_from_json.py @@ -106315,7 +107743,7 @@ msgid "" "apartment building. The passing helicopters are long gone and the screams " "echoing in the distance have faded. Now you’re left alone with the undead " "closing in." -msgstr "" +msgstr "为了在混乱中寻求安全与救援,你冲向一栋公寓楼的屋顶。然而直升机早已远去,远处回荡的尖叫声也渐渐消失。现在只留下你和丧尸在一起。" #. ~ Description for scenario 'Apartment Rooftop' for a female character. #: lang/json/scenario_from_json.py @@ -106325,7 +107753,7 @@ msgid "" "apartment building. The passing helicopters are long gone and the screams " "echoing in the distance have faded. Now you’re left alone with the undead " "closing in." -msgstr "" +msgstr "为了在混乱中寻求安全与救援,你冲向一栋公寓楼的屋顶。然而直升机早已远去,远处回荡的尖叫声也渐渐消失。现在只留下你和丧尸在一起。" #. ~ Starting location for scenario 'Apartment Rooftop'. #: lang/json/scenario_from_json.py @@ -107272,6 +108700,10 @@ msgstr "解剖某些特殊尸体可以获得生化插件。" msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "别太贪心了。如果你死了,那战利品毫不重要。" +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -111298,6 +112730,41 @@ msgid "" msgstr "" "XE037造成的死者复活量已经达到了临界水平,这场危机的威胁正在快速增长,并且即将超过军方和警方的压制能力。每一组派出去的作战单位都遭遇了样本的明显带有敌意的进攻,并且有几组人已经与我们失去了联系。之前萨维奇博士提出了一套重新部署的战略,那就是将部队撤离到一个复杂的巨大地下建筑\"避难所\",并在那里继续生产PE062。" +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "这是个标志摘录系统的测试" @@ -112192,12 +113659,11 @@ msgstr "我曾经见过一位疯狂的化学家。她制造电池只用了土豆 #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" -"那些警察活着时也这么残暴。现在只不过是机械化了,所有的警察都死了,警察机器人在自由的闲逛。如果你被捕,谁会给你伸张正义?丧尸法官?他们会把你关进丧尸监狱吗?不,谢谢,我就免了。" #: lang/json/snippet_from_json.py msgid "" @@ -112332,10 +113798,10 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." -msgstr "如果你对电子学很感兴趣,你可以试着用说话玩偶或其他带扬声器的东西发出噪音。为什么?当然是为了转移丧尸的注意力。" +msgstr "" #: lang/json/snippet_from_json.py msgid "" @@ -113646,7 +115112,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "Hey! That belongs to us! Drop it." -msgstr "" +msgstr "嘿!那是属于我们的!放下。" #: lang/json/snippet_from_json.py msgid ", I've seen a thief!" @@ -113654,7 +115120,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "I saw that! Drop what you just stole!" -msgstr "" +msgstr "我看到了!放下你刚偷的东西!" #: lang/json/snippet_from_json.py msgid "Thieves will not last long around me , please drop that." @@ -114634,13 +116100,13 @@ msgstr "" msgid "" "I can't believe I'm saying this, but I need radioactive plutonium slurry for" " my internal reactor." -msgstr "" +msgstr "我不敢相信我会这么说,但我需要放射性钚浆用于我的内置反应堆。" #: lang/json/snippet_from_json.py msgid "" "I can't use my internal reactor to recharge my CBMs without some plutonium " "slurry." -msgstr "" +msgstr "如果没有钚浆,我就不能用我的内置反应堆给我的CBM充电。" #: lang/json/snippet_from_json.py msgid "" @@ -116658,7 +118124,7 @@ msgstr "电流的滋滋声。" #: lang/json/speech_from_json.py msgid "\"That creepy abandoned post-apocalyptic lab complex looks safe...\"" -msgstr "" +msgstr "\"那个诡异的废弃末日实验室看起来还挺安全的嘛……\"" #: lang/json/speech_from_json.py msgid "" @@ -118732,6 +120198,10 @@ msgstr "[查看]我想多了解你的情况……" msgid "I want you to use this item." msgstr "[使用]我想让你用这个物品。" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "我们来谈谈你当前干的事儿。" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "[给予]你拿着这个物品吧。" @@ -118785,11 +120255,11 @@ msgid "Change your bionic power recharge rules..." msgstr "改变你的生化能量充电规则..." #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "算了。" @@ -118939,6 +120409,22 @@ msgstr "保持目前的位置。" msgid "Show me what needs to be done at the camp." msgstr "告诉我营地还需要些什么。" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "我目前还没有太大的进展。" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "继续。" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "请停止你现在干的事儿。" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "请在附近的物品中挑选一些。" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "*电流声* 收到,我会赶过去的。完毕。" @@ -119971,7 +121457,7 @@ msgstr "" msgid "" "I don't know what kind of heresy you are spreading, but I'm putting an end " "to it!" -msgstr "" +msgstr "我不知道你在散布什么异端邪说,但我要结束它!" #: lang/json/talk_topic_from_json.py msgid "This place is dangerous, what are you doing here?" @@ -119985,7 +121471,7 @@ msgstr "你是谁?" msgid "" "Dangerous? It may look different, but this land cares and provides for us." " We are celebrating with a feast, in fact. Do you care to join us?" -msgstr "" +msgstr "危险?它看起来可能不一样,但这片土地关心并供养着我们。事实上,我们正在用盛宴庆祝。你愿意加入我们吗?" #: lang/json/talk_topic_from_json.py msgid "Well, sure." @@ -120004,7 +121490,7 @@ msgid "" "I'm a priest or guide of a sort. I sing the hymns along my companions so " "that we may learn to live in unity, both with each other and with our ailing" " world." -msgstr "" +msgstr "我是某种牧师或导师。我和我的同伴们一起唱赞美诗,这样我们就可以学会团结地生活,无论是在彼此之间,还是在我们生病的世界。" #: lang/json/talk_topic_from_json.py msgid "Alright." @@ -120016,208 +121502,36 @@ msgstr "我能加入你的队伍吗?" #: lang/json/talk_topic_from_json.py msgid "Understood. Can I join you?" -msgstr "" +msgstr "明白了。我可以加入你们吗?" #: lang/json/talk_topic_from_json.py msgid "Well, I gotta go." -msgstr "" +msgstr "好的,我得走了。" #: lang/json/talk_topic_from_json.py msgid "Oh, but you already have." -msgstr "" +msgstr "但你已经有了。" #: lang/json/talk_topic_from_json.py msgid "Yes... yes I have." -msgstr "" +msgstr "对...是的,我有。" #: lang/json/talk_topic_from_json.py msgid "Join us then, eat from this meal with us." -msgstr "" +msgstr "那就跟我们一起吃这顿饭吧。" #: lang/json/talk_topic_from_json.py msgid "[Take marloss berry] Thank you." -msgstr "" +msgstr "[拿马洛斯浆果]谢谢。" #: lang/json/talk_topic_from_json.py msgid "I have changed my mind, thank you." -msgstr "" +msgstr "我改变主意了,谢谢。" #: lang/json/talk_topic_from_json.py msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "关于任务……" - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "关于任务之一……" - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "你好,执法官。" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "执法官,恐怕我现在没法和你谈话。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "执法官,我不是这里管事的。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "执法官,我想你该向我领导问这些问题。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "嗨,市民……你不该在这里。" - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "你应该管好自己的事,这里没什么好看的。" - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "如果你想要什么的话,你该找别人去。" - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "先生" - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "伙计,如果你靠得住,你该去报名参军的。" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "女士" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "嘿小姐,难道你不觉得应该和我一起才更安全么?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "忙你的吧……" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "执法官,我希望你是来帮忙的。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "先生,我不知道你是怎么到这里来的。如果你还有点理智的话,趁现在你还能离开,赶紧走吧。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "女士,我不知道你怎么到这里来的。只要稍微有点理智,趁着你还能离开,赶紧走吧。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "你在这里干什么?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "你能告诉我这里是什么地方?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "你需要我干什么?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "我该走了……" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" -"我带领了我们连队剩下的人马来执行重新控制该设施的任务。我们两打队员进入了这个建筑群,并当即进入并保卫了这间控制室。从这里我又派了些人去控制这一层和下一层的关键系统。如果我们成功了的话,这座设施就可以作为我们连队在本地区执行任务时的永久基地了。最重要的是这里可以让我们将一部分难民从一些过于拥挤的避难所里分流过来,同时解放出更多人手来从事其他修复工作。" - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "看起来是个不错的计划……" - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" -"这座建筑原本是作为全球核冲突爆发之后的安全庇护所而修建的。如果所有设备都正常运作并且有专人控制的话,这个避难所可以让几千人在地下安全生活上几年。不幸的是,供电系统在某个时候受损或是被故意破坏了,并爆发了一次足够致人死亡的辐射。这次灾难性事故使得所有位于地下二层和更低层的人在几分钟之内全部死于非命。而那些在本层工作的人们在死于辐射病之前成功封死了通往下层的通道。记录中还提到另一件事,所有水下被重新导入到更底层去了。" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "不论他们做了什么,都一定成功了。因为我们还活着……" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "执法官,能在这看到你真令人惊讶。" - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "先生,您没有这里的授权……请离开。" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "女士,您没有这里的授权……请离开。" - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[任务]上尉让我找你要份频率表。" - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "需要帮忙么?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "我该走了" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "我们正在保卫着这座设施的对外通讯阵列。都是些保密资料,我不知道该透露些什么……如果你有任何问题,去找我的指挥官。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "我会去找你的指挥官的……" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" -"我正等着上尉给我派个跑腿的人来。这是你要的频率表。从这份表里我们只能看到那些曾经有通讯过的频率, " -"但这些通讯大多都加密了,不修复或者替换这里的设备是没法破译的。按标准流程来说,当设施被外敌侵占时,应该破坏加密器,以保护联邦政府机密和保持加密通讯网络的完整。不过我们还是希望能够获得一些明文编码的信息。" - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "嘿,简直不敢相信我可以活到看见另一个活人!" @@ -123580,20 +124894,192 @@ msgstr "" msgid "What were you saying before that?" msgstr "你刚刚还说了什么?" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "执法官,我希望你是来帮忙的。" + #: lang/json/talk_topic_from_json.py msgid "" -"So, any luck with convincing the others to come on your crazy adventure yet?" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "先生,我不知道你是怎么到这里来的。如果你还有点理智的话,趁现在你还能离开,赶紧走吧。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "女士,我不知道你怎么到这里来的。只要稍微有点理智,趁着你还能离开,赶紧走吧。" + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "你在这里干什么?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "你能告诉我这里是什么地方?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "你需要我干什么?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "关于任务……" + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "关于任务之一……" + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "我该走了……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" +"我带领了我们连队剩下的人马来执行重新控制该设施的任务。我们两打队员进入了这个建筑群,并当即进入并保卫了这间控制室。从这里我又派了些人去控制这一层和下一层的关键系统。如果我们成功了的话,这座设施就可以作为我们连队在本地区执行任务时的永久基地了。最重要的是这里可以让我们将一部分难民从一些过于拥挤的避难所里分流过来,同时解放出更多人手来从事其他修复工作。" + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "看起来是个不错的计划……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." msgstr "" +"这座建筑原本是作为全球核冲突爆发之后的安全庇护所而修建的。如果所有设备都正常运作并且有专人控制的话,这个避难所可以让几千人在地下安全生活上几年。不幸的是,供电系统在某个时候受损或是被故意破坏了,并爆发了一次足够致人死亡的辐射。这次灾难性事故使得所有位于地下二层和更低层的人在几分钟之内全部死于非命。而那些在本层工作的人们在死于辐射病之前成功封死了通往下层的通道。记录中还提到另一件事,所有水下被重新导入到更底层去了。" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "不论他们做了什么,都一定成功了。因为我们还活着……" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "执法官,能在这看到你真令人惊讶。" + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "先生,您没有这里的授权……请离开。" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "女士,您没有这里的授权……请离开。" + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "[任务]上尉让我找你要份频率表。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "需要帮忙么?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "我该走了" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "我们正在保卫着这座设施的对外通讯阵列。都是些保密资料,我不知道该透露些什么……如果你有任何问题,去找我的指挥官。" + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "我会去找你的指挥官的……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" +"我正等着上尉给我派个跑腿的人来。这是你要的频率表。从这份表里我们只能看到那些曾经有通讯过的频率, " +"但这些通讯大多都加密了,不修复或者替换这里的设备是没法破译的。按标准流程来说,当设施被外敌侵占时,应该破坏加密器,以保护联邦政府机密和保持加密通讯网络的完整。不过我们还是希望能够获得一些明文编码的信息。" + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "你好,执法官。" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "执法官,恐怕我现在没法和你谈话。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "执法官,我不是这里管事的。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "执法官,我想你该向我领导问这些问题。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "嗨,市民……你不该在这里。" + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "你应该管好自己的事,这里没什么好看的。" + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "如果你想要什么的话,你该找别人去。" + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "先生" + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "伙计,如果你靠得住,你该去报名参军的。" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "女士" + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "嘿小姐,难道你不觉得应该和我一起才更安全么?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "忙你的吧……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"So, any luck with convincing the others to come on your crazy adventure yet?" +msgstr "I'm joining no stinking cult! Take your berry and shove it!" #: lang/json/talk_topic_from_json.py msgid "" "I'm sorry to say it after all you've done for me, but... I don't suppose " "you've got anything to eat?" -msgstr "" +msgstr "你为我做了这么多事,我很抱歉,但是.我想你没什么吃的吧?" #: lang/json/talk_topic_from_json.py msgid "Thank you again. I really appreciate the food." -msgstr "" +msgstr "再次感谢你。我真的很喜欢这些食物。" #: lang/json/talk_topic_from_json.py msgid "" @@ -123605,9 +125091,15 @@ msgstr "拜托,帮帮我。我需要食物。你不是他们的警长吗?你 msgid "Please, help me. I need food." msgstr "拜托,帮帮我。我需要食物。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "我和其他人谈过了,他们都愿意来。你也加入我们吗?" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." -msgstr "" +msgstr "嘿,这里,我可以给你点吃的。让我找一下。" #: lang/json/talk_topic_from_json.py msgid "Get away from me." @@ -123618,7 +125110,7 @@ msgid "" "They won't let me in. They say they're too full. I'm allowed to camp out " "here as long as I keep it clean and don't make a fuss, but I'm reduced to " "begging to survive." -msgstr "" +msgstr "他们不让我进去。他们说他们已经满人了。他们让我在这露营,前提是我保持这里干净整洁,不惹事生非,但我只能乞讨为生。" #: lang/json/talk_topic_from_json.py msgid "" @@ -123632,15 +125124,15 @@ msgstr "你为什么不自食其力呢?" #: lang/json/talk_topic_from_json.py msgid "What did you do before ?" -msgstr "" +msgstr "你在之前是做什么的?" #: lang/json/talk_topic_from_json.py msgid "I might have some food for you. Let me check." -msgstr "" +msgstr "我可以给你点吃的。让我找一下。" #: lang/json/talk_topic_from_json.py msgid "I've got some more food, if you want it." -msgstr "" +msgstr "如果你想要的话,我还有一些吃的。" #: lang/json/talk_topic_from_json.py msgid "I'd better get going." @@ -123652,23 +125144,23 @@ msgstr "对不起,我帮不了你。" #: lang/json/talk_topic_from_json.py msgid "Thank you so much." -msgstr "" +msgstr "非常感谢。" #: lang/json/talk_topic_from_json.py msgid "Can I ask you something else first?" -msgstr "" +msgstr "我能先问你点别的吗?" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I was wrong. I can't help you." -msgstr "" +msgstr "对不起,我错了。我不能帮助你。" #: lang/json/talk_topic_from_json.py msgid "This is wonderful of you, I really appreciate it." -msgstr "" +msgstr "你太好了,我真的很感激。" #: lang/json/talk_topic_from_json.py msgid "No problem. See you around." -msgstr "" +msgstr "没问题。回头见。" #: lang/json/talk_topic_from_json.py msgid "" @@ -123682,13 +125174,13 @@ msgstr "" msgid "" "Come with me. Maybe you're not the greatest adventurer, but it's better " "than living here." -msgstr "" +msgstr "跟我来。也许你不是最伟大的冒险家,但总比住在这里好。" #: lang/json/talk_topic_from_json.py msgid "" "I have a camp of my own, away from here. You could come there. There " "aren't many people left, we could use anyone regardless of skills." -msgstr "" +msgstr "在离这里稍远的地方我有自己的营地,你可以去那里。还活着并友善的人不多了,我们需要所有的,不管能力如何。" #: lang/json/talk_topic_from_json.py msgid "" @@ -123719,7 +125211,7 @@ msgstr "" msgid "" "I have a camp of my own, away from here. Maybe they can't use your skills " "here, but I could." -msgstr "" +msgstr "在离这里稍远的地方我有自己的营地。他们不需要你的能力,但我需要。" #: lang/json/talk_topic_from_json.py msgid "" @@ -123732,30 +125224,30 @@ msgstr "" msgid "" "That's quite the offer, but I don't think I'd survive the trip. I don't " "think you realize how useless I am in this world." -msgstr "" +msgstr "这是个不错的提议,但我想我活不过这次旅行了。我想你没有意识到我在这个世界上有多没用。" #: lang/json/talk_topic_from_json.py msgid "I'm sorry, I'm too hungry to make a big decision like that." -msgstr "" +msgstr "对不起,我太饿了,不能做出这样的重大决定。" #: lang/json/talk_topic_from_json.py msgid "I can keep you safe. I'll take you there myself." -msgstr "" +msgstr "我可以保护你的安全。我带你去。" #: lang/json/talk_topic_from_json.py msgid "Let's talk about something else then." -msgstr "" +msgstr "那我们再谈点别的吧。" #: lang/json/talk_topic_from_json.py msgid "" "I really appreciate everything you've done for me, but I don't think you get" " it. I can't go out there. I will die. I know it's horrible camping out " "here, but I just can't face that nightmare again." -msgstr "" +msgstr "我真的很感激你为我所做的一切,但我认为你不明白。我不能出去。我会死的。我知道在这里露营很可怕,但我不能再面对那个噩梦了。" #: lang/json/talk_topic_from_json.py msgid "I hope you'll reconsider eventually. Bye." -msgstr "" +msgstr "我希望你最终能重新考虑。再见。" #: lang/json/talk_topic_from_json.py msgid "" @@ -123765,19 +125257,36 @@ msgid "" "we've been through way too much together. If you can convince Luo, Brandon," " and Yusuke to come along, then I'll go." msgstr "" +"好吧...你们已经证明了你们可以在那里生存,你们能够提供食物,所以我知道你们比我们这里更兴旺。好吧,我告诉你。没有我的朋友我不会去任何地方,我们一起经历了太多。如果你能说服罗,布兰登和优素克一起来,我就走。" #: lang/json/talk_topic_from_json.py msgid "OK. For now let's talk about something else." -msgstr "" +msgstr "好的,我们谈点其他事情吧。" #: lang/json/talk_topic_from_json.py msgid "OK, I'll talk to them too." -msgstr "" +msgstr "好吧,我也会和他们谈谈的。" + +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "好的!那我们走吧。" #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "我跟你说过硬纸板的事吗,朋友?你有吗?" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "关于你的购物清单..." + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "我还能为你做些什么吗?" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "你现在要拿那些硬纸板做什么?" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "硬纸板?" @@ -123790,6 +125299,30 @@ msgstr "你为什么坐在这里?" msgid "Are you seriously wearing a dinosaur costume?" msgstr "你真的就这么穿着恐龙套装吗?" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "你需要吃点什么吗?" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "是的,我真的很饿,他们在大部分食物里都放了毒品。我看得出来你不是那样的。" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "我能问你点别的事吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -123800,6 +125333,14 @@ msgstr "我正在用硬纸板盖房子。睡魔告诉我别这么做,但我告 msgid "Why cardboard?" msgstr "为什么是硬纸板?" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "沙人?" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "你要我给你一些纸板吗?" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "我想我得走了……" @@ -123813,6 +125354,27 @@ msgid "" msgstr "" "现在有用不完的硬纸板了,而且丧尸们都怕它。至少到目前为止它都保护了我的安全。从丧尸体内会发射出贝塔射线,但一旦击中纸板,就无法穿透。反射射线可以避免任何进一步的伤害。" +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "名单上下一个是什么?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -123820,45 +125382,84 @@ msgid "" msgstr "那些胆小鬼都怕我。他们不让我进入他们的基地。我要盖我自己的新房子,而我也不会让他们进来的。" #: lang/json/talk_topic_from_json.py -msgid "Building a house?" -msgstr "盖房子?" +msgid "You said you were building a house?" +msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "否" +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "那硬纸板是怎么回事?" #: lang/json/talk_topic_from_json.py -msgid "Fuck off, dickwaddle." +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hey there. Good to see you again." +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "好。没问题,很乐意为您效劳。以后再跟你谈。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "不!我把一切都整理好了。我不会离开,不是现在。所有的事情终于都在一起了!" + +#: lang/json/talk_topic_from_json.py +msgid "Fuck off, dickwaddle." +msgstr "滚开,屌人。" + +#: lang/json/talk_topic_from_json.py +msgid "Yo. Anyone else keen on moving from this bus stop to your tent city?" +msgstr "哟。还有谁愿意从这个公共汽车站搬到你的帐篷城?" + +#: lang/json/talk_topic_from_json.py +msgid "Hey there. Good to see you again." +msgstr "嗨你好,很高兴再次见到你。" + #: lang/json/talk_topic_from_json.py msgid "" "Careful, I'm getting hangry again and am not totally responsible for my own " "actions." -msgstr "" +msgstr "小心,我又生气了,我对自己的行为不负任何责任。" #: lang/json/talk_topic_from_json.py msgid "" "Look, I'm sorry for freaking out earlier. You might be an asshole but I'm " "sure you didn't mean it like that. My blood sugar is hella low, I get a bit" " cranky. We cool?" -msgstr "" +msgstr "听着,我很抱歉之前吓到你了。你可能是个混蛋,但我相信你不是那个意思。我的血糖太低了,有点暴躁。我们冷静一下?" #: lang/json/talk_topic_from_json.py msgid "Hey there, not-asshole. Good to see you again." -msgstr "" +msgstr "嘿,不是混蛋。很高兴再次见到你。" #: lang/json/talk_topic_from_json.py msgid "Don't bother with these assholes." @@ -123870,15 +125471,15 @@ msgstr "怎么了?" #: lang/json/talk_topic_from_json.py msgid "I might have some food for you. Are you hungry?" -msgstr "" +msgstr "我可以给你点吃的。你饿了吗?" #: lang/json/talk_topic_from_json.py msgid "We're cool. Sorry for insulting you earlier." -msgstr "" +msgstr "都冷静点,抱歉刚才侮辱了你。" #: lang/json/talk_topic_from_json.py msgid "I found a sample of alien fungus for you." -msgstr "" +msgstr "我为你找到了一个外星真菌的样本。" #: lang/json/talk_topic_from_json.py msgid "Ok... see ya." @@ -123888,15 +125489,11 @@ msgstr "好吧……回头见。" msgid "" "Actually yeah, I'm always hungry these days. I don't like taking handouts, " "but I wouldn't say no." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" +msgstr "事实上,是的,这几天我一直很饿。我不喜欢施舍,但我不会拒绝。" #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." -msgstr "" +msgstr "谢谢,我真的很感激。" #: lang/json/talk_topic_from_json.py msgid "They're 'too full'. Won't share fuck-all." @@ -123908,7 +125505,7 @@ msgstr "那你为什么还住这里?" #: lang/json/talk_topic_from_json.py msgid "Well, they might not share, but I can. Are you hungry?" -msgstr "" +msgstr "嗯,他们可能不会分享,但我可以。你饿了吗?" #: lang/json/talk_topic_from_json.py msgid "" @@ -123929,31 +125526,60 @@ msgid "" "By the time they 'found' it, the place was full up, wouldn't ya know it. " "Now I'm stuck out here and they won't consider letting me in." msgstr "" +"哦,一开始还是那个老故事。我被疏散到当地的集中中心,然后搭上一辆被重新利用的校车,拖到了这里。然后,那个叫我进去的小妞看到了我的名字和中文名字,很方便地“丢失”了我的文件。我被派到这里等待进一步的处理,而我看着一车的人被处理和接收。当他们“找到”文件的时候,这个地方已经满了,你不知道吗?现在我被困在外面,他们不会考虑让我进去的。" #: lang/json/talk_topic_from_json.py msgid "You think you were treated like that because of your race?" -msgstr "" +msgstr "你认为你是因为你的种族而受到那样的对待?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "这是否意味着你是我听说的后屋疏散的一部分?" #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" -msgstr "" +msgstr "那为什么还要呆在这儿?" #: lang/json/talk_topic_from_json.py msgid "" "I have a camp of my own, away from here. No paperwork required. Want to " "come?" +msgstr "我有自己的营地,离这里很远。不需要文书工作。想来吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." msgstr "" +"哦,是的,那真是一场灾难。我们在那里等了好几个小时的“处理”,病人和伤员都在那里。一个人死了,我们都以为他在睡觉,直到他醒过来。这引起了恐慌,在一个封闭的区域内有枪声,诸如此类。几分钟后,更多的人死了。然后这些混蛋称之为“暴发”并试图阻止我们进入…我们花了很长时间才说服惊慌的卫兵,我们还活着,需要出去。杰森:当他发现活人和僵尸被关在一起的时候,他自己进来了,因为一些刚死去的人开始重新站起来,他挡住他们让我们逃跑。那…这可能是我在世界末日之前看到的唯一真正的好事:他承认自己的错误,并用伤害自己的方式来弥补。对那个家伙非常尊重。所以,当然,他现在成为了丧尸。妈的,谢谢你提醒我阳光下是多么快乐。" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "很抱歉提出来。你在说什么?" #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" " responsible for all this. Do you think there's some other reason they let " "hundreds of other educated people in and I'm sitting out here?" -msgstr "" +msgstr "当然。我的祖父母来自中国。显然这意味着我对这一切负有责任。你认为他们让数百名其他受过教育的人进来,而我却坐在外面还有其他原因吗?" #: lang/json/talk_topic_from_json.py msgid "I don't care if you're Chinese. You can travel with me if you want." -msgstr "" +msgstr "我不在乎你是不是中国人。如果你愿意,你可以和我一起旅行。" #: lang/json/talk_topic_from_json.py msgid "" @@ -123963,8 +125589,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -124024,6 +125650,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -124036,6 +125668,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -124060,12 +125703,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124076,7 +125719,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -124118,6 +125761,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -124128,16 +125777,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -124152,12 +125825,30 @@ msgstr "你为什么这么问?" msgid "Sorry, not interested." msgstr "抱歉,没兴趣。" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " "Help a poor sickly soul out?" msgstr "因为我肯定不适合,所以我现在正坐在这里等着被饿死呢。帮帮我这个得病的可怜人吧?" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "你怎么了?" @@ -124174,6 +125865,25 @@ msgstr "你如果你得了重病,那你还怎么可能来到这里的?" msgid "Why are you camped out here if they won't let you in?" msgstr "既然他们不让你进去,你为什么还要在这里扎营?" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -124183,6 +125893,10 @@ msgid "" msgstr "" "凡是你想得到的!哮喘、糖尿病、关节炎。糖尿病目前没那么严重了,自从我停止,你知道的,吃东西之后。嗯,我猜的。说的好像我还能去叫什么来着,去验血一样,医生过去每隔几个月都要催着我去验血。" +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -124205,6 +125919,95 @@ msgid "" msgstr "" "多亏了他们的恩德。现在我有住的地方、有照明和保暖,如果有丧尸出现,那些警卫还会帮我们处理掉。也没那么糟。如果我一个人在外面的话,我啥都不会有,而且同样得找食物……换句话说,我会必死无疑。或者我该说\"不死\"无疑。" +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "嘿,老铁。" @@ -124217,6 +126020,10 @@ msgstr "你到这来做什么?" msgid "I couldn't help but notice, you're covered in fur." msgstr "我不得不说一句,你浑身上下都长毛了。" +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -124239,9 +126046,8 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" -"这比我自己再去造一个家更安全。必要时我就去森林里搜寻些果子吃。只要我们保持这里干净整洁,并在丧尸来时尽我们一份力,他们就会让我们蹲在这里作为额外的一层防御。他们不太喜欢我给这里的其他人带吃的……我想他们准备让我们慢慢地饿死,尽管我没法让这每个人都吃饱,但我带回来的食物足够维持这些人生存下去。我想他们最终会找个借口把我赶走。" #: lang/json/talk_topic_from_json.py msgid "" @@ -124250,6 +126056,68 @@ msgid "" "them for hating it, I hate it." msgstr "真恶心,不是吗?像个野人一样。大灾难过后不久,我身上就开始到处长毛。不知道是什么引起的。我不怪他们讨厌这玩意,我也讨厌。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -124259,6 +126127,23 @@ msgid "" msgstr "" "哦,好吧,是个好心的提议,我很感激你能不在乎我这身该死的毛。不过很抱歉。我开始觉得自己该照顾门口这群小家伙了。只要我还是唯一一个能养活他们的人,我就没法离开他们。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "嗨,那边那位。" @@ -124523,10 +126408,94 @@ msgstr "你呢,你的故事是什么?" msgid "Why don't we talk about it some other time?" msgstr "我们何不改天再谈呢?" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "你好,又见面了。" +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "哦,嗨。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "哦,你好。" @@ -124575,10 +126544,6 @@ msgstr "嗨。" msgid "Hey again." msgstr "嘿,又来了。" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "哦,嗨。" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -125078,6 +127043,102 @@ msgstr "嗨,巴勃罗,很高兴见到你。不过我得走了。" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "嗨,巴勃罗,见到你我也很高兴。不过我得走了。" +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -125118,6 +127179,57 @@ msgstr "对不起,我经历了一段艰难的时期。求求你现在就让我 msgid "Sorry to hear that." msgstr "听到这消息我很难过。" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "哦,你回来了。" @@ -125140,10 +127252,6 @@ msgstr "嗨,瓦内萨。怎么了?" msgid "Yeah, no. I'm going." msgstr "嗯,不是。我现在就走。" -#: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." -msgstr "后会有期,阳光老兄。" - #: lang/json/talk_topic_from_json.py msgid "" "Well that's good. If you're going to pull your own weight I guess that's an" @@ -125151,8 +127259,137 @@ msgid "" msgstr "那就太好了。如果你能自食其力,我想对这里来说可是个进步。" #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "希望你来这里是来交易的。" +msgid "" +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "请给我理发。" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "请给我刮胡子。" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "实际上,你欠我一个免费的发型,记得吗?" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "你能买些罐头食品吗?" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "我听说你为我工作?" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "滞留在这里的难民似乎有点不满。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "你知道大厅里那些乞丐吗?" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me more about that ranch of yours." +msgstr "再跟我说说你的农场。" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "我得走了。再见!" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "我能帮你什么吗?" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "太棒了。你给我们带来了什么?" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "现在就这些。我们能谈点别的吗?" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "现在就这些。我最好还是走吧。" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "是的,我现在可以买500毫升或3升玻璃瓶。" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -125160,10 +127397,10 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"我管理这个中心的食物库存。在我们刚到达时的一片混乱之中,大部分食物都被带走了。而我负责管理剩下的食物并且尽可能的增加库存。潮湿的地下室中很容易发霉变质,所以我更倾向于易于保存的食物,比如玉米面,肉干,果子酒。" +"我管理这个中心的食品储备。当我们刚到达时,恐慌引发了骚乱,大部分食物都被抢走了。我负责管理剩下的食物并尽我所能增加库存。我们有一些生鲜肉类和蔬菜的来源,所以我优先考虑不易腐烂的食物,如玉米面、肉干和果子酒。" #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -125171,10 +127408,10 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"我管理这个中心的食物库存。在我们刚到达时的一片混乱之中,大部分食物都被带走了。而我负责管理剩下的食物并且尽可能的增加库存。潮湿的地下室中很容易发霉变质,所以我更倾向于易于保存的食物,比如玉米面,肉干,果子酒。" +"我管理这个中心的食品储备。当我们刚到达时,恐慌引发了骚乱,大部分食物都被抢走了。我负责管理剩下的食物并尽我所能增加库存。我们有一些生鲜肉类和蔬菜的来源,所以我优先考虑不易腐烂的食物,如玉米面、肉干和果子酒。" #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -125182,23 +127419,27 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"我管理这个中心的食物库存。在我们刚到达时的一片混乱之中,大部分食物都被带走了。而我负责管理剩下的食物并且尽可能的增加库存。潮湿的地下室中很容易发霉变质,所以我更倾向于易于保存的食物,比如玉米面,肉干,果子酒。" +"我管理这个中心的食品储备。当我们刚到达时,恐慌引发了骚乱,大部分食物都被抢走了。我负责管理剩下的食物并尽我所能增加库存。我们有一些生鲜肉类和蔬菜的来源,所以我优先考虑不易腐烂的食物,如玉米面、肉干和果子酒。" #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "为什么是玉米面,肉干,果子酒?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "好吧,但我的意思是“你是谁”,比如“你的故事是什么?”" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" "这三种很容易大量生产而且不容易变质。我们当地的农夫及一些猎人能够提供我们一些营养的补给,但我们还是需要更多。因为这东西是相当便宜大量的,只要你有的话,我可以付给你特别价格。罐头食品及其他的食物是由前面的商人处理。" @@ -125207,19 +127448,99 @@ msgid "Are you looking to buy anything else?" msgstr "你还想买点其他的吗?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "很好……" +msgid "Very well... let's talk about something else." +msgstr "很好...那,我们换个话题吧。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "对不起,我不是来交朋友的,我有工作要做。" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." -msgstr "我的确接受许多不同的食物:啤酒,糖,面粉,熏肉,熏鱼,烹调油;还有刚才说的,玉米面,肉干,果子酒。" +msgstr "我的确接受许多不同的食物:啤酒,糖,面粉,熏肉,熏鱼,干果和蔬菜,烹调油,盐和醋等防腐剂;还有刚才说的,玉米面,肉干,果子酒。" #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "有意思……" +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "谢谢,我能问你点别的吗?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "谢谢你。我们对这个地区没有任何立即的计划。一旦打扫干净,我想我们会让住在这里的人决定怎么处理它。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" +"我很高兴我们已经开始行动了。其中一个被疏散的人和一个正常运转的牧场有联系,我们尽快把他和一个成员带到了那里。我们希望他们能为我们提供足够的食物,使这个地方自给自足,甚至在他们出现时与其他社区进行贸易。" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -125547,16 +127868,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "女士,你真的不该到处乱跑。" #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "欢迎您,执法官……" - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "欢迎……" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "我刚来……" +msgid "I heard this place was a refugee center..." +msgstr "我听说这是一个难民中心…" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -125566,6 +127879,14 @@ msgstr "有外界的消息吗?" msgid "Is there any way I can join your group?" msgstr "我可以加入你的团队吗?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "这些乞丐怎么了?" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "我处理了你的乞丐问题。" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "[任务]我能为中心做些什么?" @@ -125575,30 +127896,40 @@ msgid "I figured you might be looking for some help..." msgstr "我觉得你似乎正在寻求帮助……" #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." -msgstr "" -"话先说在前头,我们不收人了。几天前我们接纳了太多新难民,结果引起疾病爆发。我们目前急缺补给并且愿意用手头的东西进行交换。如果有肉干,我会付一个合适的价格收购。" +msgid "Well, I'd better be going. Bye." +msgstr "好吧,我最好先走了。再见。" #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "快累死了也不给人歇歇脚……" +msgid "Welcome marshal..." +msgstr "欢迎您,执法官……" + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "欢迎……" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"老实说,一开始我们这有满满六卡车的办公室白领和家庭主妇……在前几天的丧尸爆发事件之后,我们中间那些比较有勇气的都死了。现在我们只想保证这儿的交易足够让我们活下去。我们不在乎你的货从谁手里来的,怎么来的,只要别把麻烦带来就行。" #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." +msgid "It's just as bad out there, if not worse." msgstr "看来这里和外面一样糟,可能还更糟些。" #: lang/json/talk_topic_from_json.py @@ -125611,31 +127942,27 @@ msgid "" msgstr "" "很抱歉,唯一能让我们继续活下去的就是保证地下室大门紧闭。如果你还想去地下室探头探脑的话,我得提醒你,那里的守卫可以随意开火。我不知道为什么外面的拾荒者变得残忍无情,不过我们中可有位不得不亲手杀害自己孩子的人……千万别打使用蛮力的歪主意。" -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "我猜到处都是一团糟……" - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" -msgstr "[智力 12]等等,一开始六卡车和后来的难民……你这里现在还得挤了多少人啊?" +msgstr "[智力 10]等等,一开始六卡车和后来的难民……你这里现在塞了多少人啊?" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"难民们本来在一楼住着,直到有点晚上他们中有人试图从装卸区偷渡进一个快死的家伙。最后你猜怎么着……我们被惨叫声吵醒。大约有二十多人死在当晚。其他难民第二天一早就被赶走了,在外面建了几个拾荒队。这里有二十来个棒小伙和姑娘,但我们真正的力量来自于我们所有那些已经适应了为生存所需而会做任何事情的商业伙伴们。" #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "也许这适合你……" +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -125648,10 +127975,6 @@ msgid "" msgstr "" "前阵子有一个来这的家伙说灾变后他曾试着开车进入雪城。还没到城区他就遇到一大群活死人,多的可以挡下坦克,更别说他那辆小破车了。他拼了命逃了出来,就他说至少有几千只丧尸。想想吧,把一堆丧尸扔在一起,它们就会制造出足以把所有东西吸引过来的噪声。幸运的是,我们这边没有那么大的尸潮。" -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "多谢你的消息。" - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -125739,6 +128062,81 @@ msgstr "难道还有比奇怪的枪械储藏点更好搜刮的地方吗?" msgid "Was hoping for something more..." msgstr "还以为有什么好东西……" +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "如果我能把他们从这里弄出去,会不会有什么回报呢?" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "很乐意帮忙。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "谢谢你的故事。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "你好,执法官……" @@ -126191,11 +128589,11 @@ msgstr "欢迎入队。" #: lang/json/talk_topic_from_json.py msgid "So, do you need something?" -msgstr "" +msgstr "所以,你需要什么吗?" #: lang/json/talk_topic_from_json.py msgid "We haven't changed our mind. Go away." -msgstr "" +msgstr "我们没有改变主意。走开。" #: lang/json/talk_topic_from_json.py msgid "" @@ -126205,11 +128603,11 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "So how's it down there?" -msgstr "" +msgstr "那下面怎么样?" #: lang/json/talk_topic_from_json.py msgid "Lets trade." -msgstr "" +msgstr "让我们交易吧。" #: lang/json/talk_topic_from_json.py msgid "I came looking for valuables, maybe I can trade with you instead?" @@ -126221,19 +128619,19 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Any jobs you need done?" -msgstr "" +msgstr "你需要做什么工作?" #: lang/json/talk_topic_from_json.py msgid "What the hell were you testing out there?" -msgstr "" +msgstr "你到底在那里做什么测试?" #: lang/json/talk_topic_from_json.py msgid "No. Now leave." -msgstr "" +msgstr "不,现在离开。" #: lang/json/talk_topic_from_json.py msgid "I guess the lab can do without some of this stuff." -msgstr "" +msgstr "我想实验室不用这些东西也行。" #: lang/json/talk_topic_from_json.py msgid "" @@ -126244,19 +128642,64 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "Just leave." -msgstr "" +msgstr "离开吧。" #: lang/json/talk_topic_from_json.py msgid "Wait! Maybe I can help you!" -msgstr "" +msgstr "等下!也许我能帮你!" #: lang/json/talk_topic_from_json.py msgid "Alright, I'll leave" +msgstr "好吧,我走" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "一路平安,拾荒者。" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "让我们交易吧。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "您需要理发或者修面吗?" +msgid "Keep safe, then." +msgstr "那么,请注意安全。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "我能帮你修剪一下吗?剪发要花6英镑,否则剪胡子要花3英镑。我也可以做颜色和造型。" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -126767,6 +129210,10 @@ msgid "" msgstr "" "没有,没有……好吧,也许有一点。当我发现它的时候,它就和地面部分一样被毁坏了,但修复起来并不难。欢迎你待在这里的空房间里,只是别独占了。你并不是这里唯一的拾荒者。" +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "有意思……" + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -127228,10 +129675,30 @@ msgstr "反击%s" msgid "Feint" msgstr "佯攻" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "你佯攻%s。" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "佯攻%s。" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "反擒拿" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "%s 试着抓住你,但你挣脱了!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "%s 试着抓住 ,但被挣脱了!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -127431,12 +129898,12 @@ msgstr "锁喉" #: lang/json/technique_from_json.py #, python-format msgid "You put %s in a chokehold" -msgstr "" +msgstr "你对 %s 使出锁喉攻击" #: lang/json/technique_from_json.py #, python-format msgid " puts %s in a chokehold" -msgstr "" +msgstr "对%s使出锁喉攻击" #: lang/json/technique_from_json.py msgid "grab" @@ -127966,24 +130433,28 @@ msgid "Crane Wing" msgstr "鹤翼" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" -msgstr "你举起你的手臂惊吓敌人" +#, python-format +msgid "You raise your arms intimidatingly at %s." +msgstr "你举起你的手臂威吓%s。" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" -msgstr " 摆出鹤翼姿势惊吓敌人" +#, python-format +msgid " performs the Crane Wing at %s." +msgstr " 摆出鹤翼姿势威吓%s。" #: lang/json/technique_from_json.py msgid "Crane Flap" msgstr "白鹤亮翅" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" -msgstr "你摆动手臂挣脱了束缚" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" +msgstr "%s试图抓住你,但你挥动手臂挣脱了!" #: lang/json/technique_from_json.py -msgid " flaps free" -msgstr " 摆动手臂挣脱了束缚" +#, python-format +msgid "The %s tries to grab , but they flap free!" +msgstr "%s 试着抓住 ,但被挣脱了!" #: lang/json/technique_from_json.py msgid "Crane Strike" @@ -128032,12 +130503,14 @@ msgid "Snake Slither" msgstr "蛇形移动" #: lang/json/technique_from_json.py -msgid "You slither free" -msgstr "你蛇形移动脱身而出" +#, python-format +msgid "The %s tries to grab you, but you slither free!" +msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" -msgstr " 蛇形移动脱身而出" +#, python-format +msgid "The %s tries to grab , but they slither free!" +msgstr "" #: lang/json/technique_from_json.py msgid "Snake Strike" @@ -128378,7 +130851,7 @@ msgstr "控惑" msgid "" "50% moves, 77% Bash, 77% Cut, 77% Stab, Down two turns, STR (SS+) greatly " "reduces action cost and adds overall damage (S)" -msgstr "" +msgstr "50%移动,77%钝击,77%斩击,77%刺击,击倒两回合,力量(SS+)大大降低行动消耗,增加整体伤害(S)" #: lang/json/technique_from_json.py #, python-format @@ -128399,7 +130872,7 @@ msgstr "扫荡" msgid "" "15% moves, 35% damage, wide arc, STR (SS+) dramatically reduces action cost," " and adds a (A) damage bonus, min 4 melee" -msgstr "" +msgstr "15%移动,35%伤害,大幅攻击,力量(SS+)显着降低行动消耗,并增加一个(A)伤害加值,需要4近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128409,7 +130882,7 @@ msgstr "你借助武器惯性攻击%s。" #: lang/json/technique_from_json.py #, python-format msgid " inertially strikes %s" -msgstr "" +msgstr "依靠惯性击中了%s" #: lang/json/technique_from_json.py msgid "BISECTION" @@ -128420,7 +130893,7 @@ msgstr "一刀两断" msgid "" "Crit only, 35% move cost, 105% Bash and Stab, 125% Cut, DEX (D) and PER (E) " "reduces action cost and increases overall (B) damage, min 2 melee" -msgstr "" +msgstr "仅暴击,35%的移动消耗,105%的钝击和刺击,125%的斩击,敏捷(D)和感知(E)降低行动消耗,增加整体(B)伤害,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128441,7 +130914,7 @@ msgstr "摔绊" msgid "" "85% moves, 66% Bash, 76% Cut, 86% Stab, Down two turns, STR (C) greatly " "reduces action cost" -msgstr "" +msgstr "85%移动,66%钝击,76%斩击,86%刺击,击倒两回合,力量(C)大大降低行动消耗" #: lang/json/technique_from_json.py #, python-format @@ -128457,7 +130930,7 @@ msgstr "顺势" msgid "" "75% moves, 60% damage, wide arc, STR (S) dramatically reduces action cost, " "and adds a (C) damage bonus, min 4 melee" -msgstr "" +msgstr "75%移动,60%伤害,大幅攻击,力量(S)显着降低行动消耗,并增加一个(C)伤害加成,需要4近战技能" #: lang/json/technique_from_json.py msgid "CHOP" @@ -128469,6 +130942,7 @@ msgid "" "Crit only, 115% move cost, 105% Bash, 105% Stab, 125% Cut, DEX (D) and PER " "(E) reduces action cost and increases overall (B) damage, min 2 melee" msgstr "" +"仅暴击,115%的移动消耗,105%的钝击,105%的刺击,125%的斩击,敏捷(D)和感知(E)降低行动消耗,增加整体(B)伤害,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128485,6 +130959,7 @@ msgid "" "Crit only, 110% move cost, 120% Bash, 105% Stab, 110% Cut, DEX (C) and STR " "(D) reduces action cost and increases overall (C) damage, min 2 melee" msgstr "" +"仅暴击,110%的移动消耗,120%的钝击,105%的刺击,110%的斩击,敏捷(C)和力量(D)降低行动消耗,增加整体(C)伤害,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128505,7 +130980,7 @@ msgstr "阴招" msgid "" "Crit only, 120% moves, 125% damage, Stun for 1.5 turns, STR (A) dramatically" " reduces action cost, min melee 1" -msgstr "" +msgstr "仅暴击,120%移动,125%伤害,眩晕1.5回合,力量(A)显着降低行动消耗,需要1近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128526,7 +131001,7 @@ msgstr "推撞" msgid "" "65% moves, dramatically reduced damage, knockback 2 tiles, stun 1 turn, STR " "(D) and DEX (E) reduce action cost" -msgstr "" +msgstr "65%移动,显着降低伤害,击退2格,眩晕1回合,力量(D)和敏捷(E)降低行动消耗" #: lang/json/technique_from_json.py #, python-format @@ -128547,7 +131022,7 @@ msgstr "武装推撞" msgid "" "65% moves, no cut damage, 110% Bash and Stab damage, knockback 2 tiles, STR " "(B) and DEX (C) reduce action cost, min melee 1" -msgstr "" +msgstr "65%移动,无斩击伤害,110%钝击和刺击伤害,击退2格,力量(B)和敏捷(C)降低行动消耗,需要1近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128561,7 +131036,7 @@ msgstr "撕裂" #. ~ Description for TEAR #: lang/json/technique_from_json.py msgid "Crit only, 110% Cut, 115% Stab, min melee 2" -msgstr "" +msgstr "仅暴击,110%斩击,115%的刺击,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128581,7 +131056,7 @@ msgstr "猛刺" #: lang/json/technique_from_json.py msgid "" "110% Stab damage, STR (E) and PER (D) provides bonus damage, min 1 melee" -msgstr "" +msgstr "110%刺击伤害,力量(E)和感知(D)提供额外伤害,需要1近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128602,7 +131077,7 @@ msgstr "突刺" msgid "" "Crit only, 115% Stab damage, Crit only, Strength (D) and Perception (D) " "provides bonus damage, min 2 melee" -msgstr "" +msgstr "仅暴击,115%刺击伤害,仅暴击,力量(D)和感知(D)提供额外伤害,需要2近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128623,7 +131098,7 @@ msgstr "点刺" msgid "" "66% movecost, 70% Stab damage, STR (E) and PER (C) provides bonus damage, " "DEX (C) reduces action cost, min 3 melee" -msgstr "" +msgstr "66%移动消耗,70%刺击伤害,力量(E)和感知(C)提供额外伤害,敏捷(C)降低行动消耗,需要3近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128644,7 +131119,7 @@ msgstr "刺探" msgid "" "80% movecost, 75% Stab damage, STR (C) and PER (C) provides bonus damage and" " also provides armor pierce (E), min 3 melee" -msgstr "" +msgstr "80%移动消耗,75%刺击伤害,力量(C)和感知(C)提供额外伤害,同时提供穿甲(E),需要3近战技能" #: lang/json/technique_from_json.py #, python-format @@ -128732,12 +131207,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -129282,7 +131757,7 @@ msgstr "由木片相互交织排成的木地板,看上去一点都不像能防 #: lang/json/terrain_from_json.py msgid "wooden floor" -msgstr "" +msgstr "木地板" #. ~ Description for wooden floor #: lang/json/terrain_from_json.py @@ -129477,14 +131952,37 @@ msgstr "未完成的精制木墙,细心点缀其上的钉子为其提供了适 msgid "wattle-and-daub wall" msgstr "木骨泥墙" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "木骨泥墙(破损)" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "木骨泥墙(半成品)" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "木墙" @@ -130675,7 +133173,7 @@ msgstr "一棵在夏天能够结出樱桃果实的树,分类学上属于樱桃 #: lang/json/terrain_from_json.py msgid "juniper tree" -msgstr "" +msgstr "桧树" #. ~ Description for juniper tree #: lang/json/terrain_from_json.py @@ -130864,30 +133362,134 @@ msgstr "" msgid "willow tree" msgstr "柳树" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "枫树" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "山核桃树" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "开心果树" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "杏仁树" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "“李”属的落叶树。这是一棵种植树,并非本地原生。如果你仔细检查树,可以找到新鲜的杏仁。你可以用合适的工具砍倒它。" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "“李”属的落叶树。这是一棵种植树,并非本地原生。树上没留下可采收的杏仁。你可以用合适的工具砍倒它。" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "美洲山核桃树" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "“山核桃”属的高大落叶树。如果你仔细检查树,可以找到山核桃。你可以用合适的工具砍倒它。" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "“山核桃”属的高大落叶树。看起来树上没留下任何山核桃坚果。你可以用合适的工具砍倒它。" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "枯山核桃树" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "“山核桃”属高大落叶树的死亡残余物。这颗贫瘠的死树上采集不到任何堪用之物。你可以用合适的工具砍倒它。" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -130899,10 +133501,30 @@ msgstr "四散在森林中的小型植物和灌木。一个有敏锐观察力的 msgid "brush." msgstr "噗嗤——" +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "四散在森林中的小型植物和灌木。它已经被翻过了,没留下任何能吃能用的东西。" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "四散在森林中的小型植物和灌木。它已经被翻过了,没留下任何能吃能用的东西。冰霜覆盖着它。" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "灌木" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "一丛小灌木。" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "花生丛" @@ -131051,22 +133673,49 @@ msgstr "一小丛还没开丁香花的灌木丛。" msgid "tree trunk" msgstr "树干" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "一截树干,来自一棵被砍倒的树。使用合适的工具可以锯成原木。" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "树桩" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "一截树桩,砍倒树木的残余物。" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "树根墙" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "覆盖根须的土墙。" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "蜡墙" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "完全由蜡制成的墙。" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "蜂蜡地板" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "完全由蜡制成的一方地板。" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "尖桩围栏" @@ -131165,6 +133814,11 @@ msgstr "一扇绳索编织而成的网状围栏,并不复杂。和善地提醒 msgid "railing" msgstr "栏杆" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "一段木栏杆。" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "咔嚓!" @@ -131173,6 +133827,11 @@ msgstr "咔嚓!" msgid "glass railing" msgstr "玻璃栏杆" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "一段玻璃制栏杆。" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "玻璃破裂的声音!" @@ -131185,9 +133844,19 @@ msgstr "咔吱!" msgid "metal railing" msgstr "金属栏杆" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "一段金属栏杆。" + #: lang/json/terrain_from_json.py msgid "concrete railing" -msgstr "" +msgstr "混凝土栏杆" + +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "一段接合的混凝土栏杆。" #: lang/json/terrain_from_json.py msgid "rain gutter" @@ -131361,46 +134030,138 @@ msgstr "这棵树在周围的景色中显得格外显眼。它受到了真菌传 msgid "shallow water" msgstr "浅水" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "这里水不太深。有水密容器的话,可以从这里收集淡水。直接饮用并不安全。" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "深水" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "这里的水深不见底。有水密容器的话,可以从这里收集淡水。直接饮用并不安全。" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "流动浅水" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "这片流动的水不太深。有水密容器的话,可以从这里收集淡水。直接饮用并不安全,虽然可能比静滞水域安全点儿。" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "流动深水" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "这片流动的水看来颇深。有水密容器的话,可以从这里收集淡水。直接饮用并不安全,虽然可能比静滞水域安全点儿。" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "这里水不太深。有水密容器的话,可以从这里收集盐水。" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "这里的水深不见底。有水密容器的话,可以从这里收集盐水。" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "池水" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "充满水的深池。没有救生员在场禁止游泳。即便怪物可能已经吃了他们。" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "污水" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "恶。污水从这里流过。毋庸多言,喝这个不安全。" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "岩浆" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "一种极热、发光的液体,由熔化的岩石和/或金属组成。在某些地方,熔岩烤牛排是一道美味佳肴。" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "沙盒" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "滑道" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" +"一个儿童滑滑梯,对你来说过小了,不能舒服的滑下来。\n" +"“呜,飞机飞啦。”" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "攀爬架" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "背板" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "汽油泵" @@ -131418,14 +134179,31 @@ msgstr "" msgid "tank with gasoline" msgstr "汽油储罐" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "装满汽油的油箱。" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "矮柱" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "一个小支柱。" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "汽油泵(损坏)" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -131440,6 +134218,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "柴油泵(损坏)" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "ATM机" @@ -131462,6 +134247,12 @@ msgstr "到达破坏临界点,自毁程序启动。祝你愉快!" msgid "broken generator" msgstr "发电机(损坏)" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "导弹" @@ -131665,6 +134456,13 @@ msgstr "混凝土柱。" msgid "cloning vat" msgstr "克隆舱" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "啪。" @@ -131673,6 +134471,16 @@ msgstr "啪。" msgid "stairs" msgstr "楼梯" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "一段向下的楼梯。" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "一段向上的楼梯。" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "检修孔" @@ -131689,22 +134497,68 @@ msgstr "" msgid "ladder" msgstr "梯子" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "往上的梯子。" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "向下的梯子。" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "向下斜坡" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "向下的斜坡。" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "向上斜坡" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "向上的斜坡。" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "向上绳索" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "一根绳子。你可以爬上去。" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "只是一个井盖。" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "读卡器" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -131779,54 +134633,121 @@ msgstr "" msgid "elevator" msgstr "电梯" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "黑色基座" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "白色基座" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "红色石块" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "一块红色的石头。" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "绿色石块" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "一块绿色的石头。" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "蓝色石块" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "一块蓝色的石头。" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "红色底板" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "绿色地板" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "蓝色地板" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "黄色开关" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "青色开关" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "紫色开关" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "方格开关" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -131851,6 +134772,18 @@ msgstr "柔软的紫色地毯。" msgid "linoleum tile" msgstr "油毡地砖" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "红墙" @@ -131909,10 +134842,22 @@ msgstr "被漆成紫色的墙。" msgid "stone wall" msgstr "石墙" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "坚固的石墙" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "石墙(半成品)" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "有盖水井" @@ -131932,12 +134877,12 @@ msgstr "一口收集地下水的深井。安装了一个水泵将水提到地面 #: lang/json/terrain_from_json.py msgid "water dispenser" -msgstr "" +msgstr "饮水机" #. ~ Description for water dispenser #: lang/json/terrain_from_json.py msgid "A machine with several taps that dispenses clean water." -msgstr "" +msgstr "一种有几个水龙头的机器,用来分配净水。" #: lang/json/terrain_from_json.py msgid "improvised shelter" @@ -131946,33 +134891,64 @@ msgstr "简易遮蔽处" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." -msgstr "一间自制的简易遮蔽处,能为你稍微挡点风雨。" +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." +msgstr "" #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "平坦的屋顶" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "沥青纸屋顶" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "木瓦屋顶" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "茅草屋顶" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "金属屋顶" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "瓦片屋顶" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "天窗" @@ -132000,22 +134976,51 @@ msgstr "" msgid "telecom cabinet" msgstr "电信机柜" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "电信机柜(损坏)" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "大型金属支架" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "小型金属支架" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "金属支撑梁。" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "高压滑油断路器" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "砰!" @@ -132024,30 +135029,72 @@ msgstr "砰!" msgid "small HV oil circuit breaker" msgstr "小型高压滑油断路器" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "大型开关柜" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "小型开关柜" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "避雷器" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "隔离开关" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "变流器" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "变压器" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "一种特殊类型的电力变压器," + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -132078,6 +135125,11 @@ msgstr "河桥" msgid "bridge pavement" msgstr "桥面" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "由金属和混凝土制成的桥梁部分。" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "混凝土破裂和金属扭曲声!" @@ -132086,22 +135138,61 @@ msgstr "混凝土破裂和金属扭曲声!" msgid "bridge yellow pavement" msgstr "黄色桥面" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "由金属和混凝土制成的桥梁部分。它被漆成了黄色。" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "桥面人行道" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "混凝土桥的人行道。" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "防护栏" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "马利兰德栎树" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "粘土堆" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "一堆黏土。" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "啪叽!" @@ -132110,10 +135201,20 @@ msgstr "啪叽!" msgid "mound of sand" msgstr "沙堆" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "一堆沙子。" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "传送带" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "传送带。用来运输东西。" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "叮!" @@ -132122,18 +135223,38 @@ msgstr "叮!" msgid "light machinery" msgstr "轻型机械" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "各式轻型机械。你可以用它换零件。" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "重型机械" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "各式重型机械。你可以用它换零件。" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "旧机械" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "各式老旧机器。你可以用它换零件。" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "电子机械" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "各种电子机械。你可以用它换零件。" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "低矮的楼梯(起始部分)" @@ -132146,10 +135267,20 @@ msgstr "低矮的楼梯(结束部分)" msgid "milking machine" msgstr "挤奶机" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "一台用来给奶牛挤奶的机械。" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "储奶罐" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "一个大容量的重型坦克。" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "碎石" @@ -132166,26 +135297,77 @@ msgstr "一堆各种大小的用于道路、铁路路基及其他建筑使用的 msgid "railroad track" msgstr "铁轨轨道" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "铁轨枕木" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "染色打蜡地板" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "一块金属背板" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "止冲挡" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "道口信号灯" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "叉标" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "储藏地窖" @@ -132266,22 +135448,22 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "rammed earth wall" -msgstr "" +msgstr "夯土墙" #. ~ Description for rammed earth wall #: lang/json/terrain_from_json.py msgid "" "A solid wall of compressed dirt, sturdy enough to support a roof with enough" " walls and keep out some unwanted visitors." -msgstr "" +msgstr "由压实的泥土组成的坚固的墙,牢靠程度足以支撑有足够墙壁的屋顶,并能阻挡一些不速之客。" #: lang/json/terrain_from_json.py msgid "heavy rumbling!" -msgstr "" +msgstr "沉重的隆隆声!" #: lang/json/terrain_from_json.py msgid "split rail fence" -msgstr "" +msgstr "铁路分隔铁丝网" #. ~ Description for split rail fence #: lang/json/terrain_from_json.py @@ -132292,15 +135474,15 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "closed wooden split rail gate" -msgstr "" +msgstr "木制铁路分隔门(关)" #: lang/json/terrain_from_json.py msgid "open wooden split rail gate" -msgstr "" +msgstr "木制铁路分隔门(开)" #: lang/json/terrain_from_json.py msgid "wooden privacy fence" -msgstr "" +msgstr "木制隐私围栏" #. ~ Description for wooden privacy fence #: lang/json/terrain_from_json.py @@ -132311,43 +135493,57 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "shallow pool water" -msgstr "" +msgstr "浅水池" #. ~ Description for shallow pool water #: lang/json/terrain_from_json.py msgid "A shallow pool of water." -msgstr "" +msgstr "一块浅水池。" #: lang/json/terrain_from_json.py msgid "half-built adobe wall" -msgstr "" +msgstr "土坯墙(半成品)" #. ~ Description for half-built adobe wall #: lang/json/terrain_from_json.py msgid "" "Half of an adobe brick wall, looks like it still requires some more " "resources and effort before being considered a real wall." -msgstr "" +msgstr "半截土坯墙,看来它在算得上真正的墙壁之前,还需要多费点儿资源和操劳。" #: lang/json/terrain_from_json.py msgid "adobe wall" -msgstr "" +msgstr "土坯墙" #. ~ Description for adobe wall #: lang/json/terrain_from_json.py msgid "" "A solid adobe brick wall, sturdy enough to support a roof with enough walls " "and keep out any unwanted visitors." -msgstr "" +msgstr "坚固的土坯砖墙,牢靠程度足以支撑有足够墙壁的屋顶,并阻挡任何不速之客。" #: lang/json/terrain_from_json.py msgid "pine lean-to" msgstr "松枝棚屋" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "一种以松叶为屋顶的小棚屋,可用来躲避大自然的影响或保护篝火不受雨水的侵袭。" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "防水帆布棚屋" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "一个被防水布覆盖的遮蔽处,可用来躲避大自然的影响或保护篝火不受雨水的侵袭。" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "焦土" @@ -132358,7 +135554,7 @@ msgstr "核反应堆核心" #: lang/json/terrain_from_json.py msgid "stick wall" -msgstr "" +msgstr "简易墙" #. ~ Description for stick wall #: lang/json/terrain_from_json.py @@ -132366,7 +135562,7 @@ msgid "" "A cheap wall of planks and sticks with a log pillar to keep it together. It " "is capable of supporting an upper level or roof. Dirt and stones make the " "wall secure. Somewhat flammable." -msgstr "" +msgstr "一堵用木板和支撑梁筑成的墙,能支撑上层楼或屋顶。泥土和石头使得它比较牢固,但是依旧非常易燃。" #: lang/json/terrain_from_json.py msgid "krick!" @@ -132374,14 +135570,14 @@ msgstr "" #: lang/json/terrain_from_json.py msgid "LEGACY hydroponics unit" -msgstr "" +msgstr "水培单元(废弃)" #. ~ Description for LEGACY hydroponics unit #: lang/json/terrain_from_json.py msgid "" "This is a deprecated hydroponics unit. Deconstruct it to recieve your " "materials back." -msgstr "" +msgstr "这是一个废弃的水培单元。你可以拆解它来收回材料。" #: lang/json/terrain_from_json.py msgid "electro furnace" @@ -132475,10 +135671,6 @@ msgstr "麻醉" msgid "smoothing" msgstr "平整" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "焊接" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "锤打" @@ -132527,10 +135719,6 @@ msgstr "蒸馏" msgid "tree cutting" msgstr "伐木" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "挖掘" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "板动螺栓" @@ -132547,14 +135735,6 @@ msgstr "拧动螺丝" msgid "fine screw driving" msgstr "精工拧动螺丝" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "屠宰" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "钻孔" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "撬棍" @@ -133169,7 +136349,7 @@ msgstr "电动SUV(带摩托车托架)" #: lang/json/vehicle_from_json.py msgid "Engine Crane" -msgstr "" +msgstr "引擎起重机" #: lang/json/vehicle_from_json.py msgid "Food Vendor Cart" @@ -133485,7 +136665,7 @@ msgstr "核动力轿车" #: lang/json/vehicle_from_json.py msgid "Flaming Atomic Car" -msgstr "" +msgstr "火焰核动力车" #: lang/json/vehicle_from_json.py msgid "Robotic Taxi" @@ -133554,6 +136734,12 @@ msgid "" "A place to sit, and the backrest reclines to make it an uncomfortable bed." msgstr "一个可以坐的地方,也可以把靠背往后倾斜,像在飞机上一样不那么舒服地睡一觉。" +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "把这部件装备到一只负重动物上,以便让它拉动你的车。" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "追踪装置" @@ -133772,7 +136958,7 @@ msgstr "一块装电池的电池箱。可以快速安装或卸载电池,前提 msgid "" "An armored black box, a device meant to record and preserve data of a " "military vehicle in the field in case it gets destroyed." -msgstr "" +msgstr "这是一台带装甲的黑匣子,用于在战场上记录并保存军用载具数据,以保证载具损毁后仍能还原事故过程。" #. ~ Description for minireactor #: lang/json/vehicle_part_from_json.py @@ -133890,7 +137076,7 @@ msgstr "车载加热器" #: lang/json/vehicle_part_from_json.py msgid "vehicle-mounted cooler" -msgstr "" +msgstr "车载冷却器" #. ~ Description for electronics control unit #: lang/json/vehicle_part_from_json.py @@ -134670,7 +137856,7 @@ msgid "" " the vehicle. Can also burn lamp oil, though somewhat less efficiently. " "Better power-to-weight ratio than a traditional engine, but consumes more " "fuel." -msgstr "" +msgstr "一个先进内燃引擎。燃烧消耗载具水箱内的汽油或柴油。同时也能够消耗乙醇或灯油,但效率会较低。拥有比传统引擎更好的推重比,但会消耗更多燃料。" #: lang/json/vehicle_part_from_json.py msgid "" @@ -134842,7 +138028,7 @@ msgstr "一盏明亮的原子灯,采用内部核能供电,开启时照亮车 #: lang/json/vehicle_part_from_json.py msgid "atomic nightlight" -msgstr "" +msgstr "原子小夜灯" #. ~ Description for atomic nightlight #: lang/json/vehicle_part_from_json.py @@ -135038,7 +138224,7 @@ msgstr "外挂油箱(200升)" #: lang/json/vehicle_part_from_json.py msgid "wooden barrel (100L)" -msgstr "" +msgstr "木桶(100L)" #. ~ Description for wooden barrel (100L) #. ~ Description for steel drum (100L) @@ -135051,6 +138237,7 @@ msgid "" "installed in the vehicle. You can also use a rubber hose to siphon liquids " "out of a tank." msgstr "" +"一个安装在车外的能够装载液体的车载容器。装入车辆引擎所对应消耗的燃料后,引擎启动时将会自动从对应的水箱内抽取燃料。装入水或其他液体后,可以在车辆水龙头处获取对应液体。你也可以使用一根橡胶软管从水箱中抽取液体。" #. ~ Description for fuel bunker #: lang/json/vehicle_part_from_json.py @@ -135127,7 +138314,7 @@ msgstr "一个坚固的车轮,金属圆筒。" msgid "" "A strong metal wheel. A flange helps keep it on a rail, but makes it " "perform terribly when not on a rail." -msgstr "" +msgstr "坚固的金属车轮。轮缘有助于将它保持在轨道上,但如果不在轨道上,它会表现得非常糟糕。" #: lang/json/vehicle_part_from_json.py msgid "rail wheel (steerable)" @@ -136900,12 +140087,12 @@ msgstr "有车的停车场" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Clear section of subway" -msgstr "" +msgstr "净空的地铁路段" #. ~ Vehicle Spawn Description #: lang/json/vehicle_spawn_from_json.py msgid "Vehicle on the subway" -msgstr "" +msgstr "地铁上的车辆" #: lang/json/vitamin_from_json.py msgid "Calcium" @@ -137065,21 +140252,21 @@ msgstr "你需要一个切割工具才能进行完全屠宰。" msgid "" "You need to suspend this corpse to butcher it. While you have a rope to lift" " the corpse, there is no tree nearby to hang it from." -msgstr "" +msgstr "你需要将尸体悬挂起来才能屠宰它,你已经有悬挂绳索但是周围并没有可用的树。" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need either a " "butchering rack or both a long rope in your inventory and a nearby tree to " "hang the corpse from." -msgstr "" +msgstr "要对这么大的尸体进行完整的屠宰,你需要一个屠宰架或者库存中的一根长绳和附近的一棵树来悬挂尸体。" #: src/activity_handlers.cpp msgid "" "To perform a full butchery on a corpse this big, you need a table nearby or " "something else with a flat surface. A leather tarp spread out on the ground " "could suffice." -msgstr "" +msgstr "要对这么大的尸体进行一次彻底的屠宰,你需要附近的一张桌子或是其他平面的东西。铺在地上的皮革布就足够了。" #: src/activity_handlers.cpp msgid "For a corpse this big you need a saw to perform a full butchery." @@ -137420,10 +140607,14 @@ msgstr "你为%s重新上弹。" msgid "You refill the %s." msgstr "你重新装填了%s。" -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "这里没有可以点燃的东西。" +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "这个物品需要明火。" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "你丢失了用于点火的物品。" @@ -137621,11 +140812,11 @@ msgstr "你抓住了一个%s 。" #: src/activity_handlers.cpp msgid "You feel a tug on your line!" -msgstr "" +msgstr "你感觉到有人在拉你的线!" #: src/activity_handlers.cpp msgid "You finish fishing" -msgstr "" +msgstr "你完成了钓鱼。" #: src/activity_handlers.cpp msgid "You finish reading." @@ -137895,27 +141086,27 @@ msgstr "" #: src/activity_handlers.cpp msgid "Stop casting spell? Time spent will be lost." -msgstr "" +msgstr "停止施法?所花的时间将被浪费掉。" #: src/activity_handlers.cpp #, c-format msgid "You gain %i experience. New total %i." -msgstr "" +msgstr "你得到了%i点经验。现有%i。" #: src/activity_handlers.cpp #, c-format msgid "You cast %s!" -msgstr "" +msgstr "你释放%s!" #: src/activity_handlers.cpp msgid "" "Something about how this spell works just clicked! You gained a level!" -msgstr "" +msgstr "关于这个咒语是怎么运作的!你提高了水平!" #: src/activity_handlers.cpp #, c-format msgid "You gained %i experience from your study session." -msgstr "" +msgstr "你从学习中获得了%i点经验。" #: src/activity_handlers.cpp src/iuse_actor.cpp src/iuse_actor.cpp msgid "It's too dark to read." @@ -137923,11 +141114,11 @@ msgstr "光线不足,你无法阅读!" #: src/activity_handlers.cpp msgid "...you finally find the memory banks." -msgstr "" +msgstr "…你终于找到了记忆库。" #: src/activity_handlers.cpp msgid "The kit makes a copy of the data inside the bionic." -msgstr "" +msgstr "该工具复制了生化插件的数据。" #: src/activity_item_handling.cpp #, c-format @@ -138096,6 +141287,11 @@ msgstr "%s没法走到目的地。尝试停止拖拽载具后再整理战利品 msgid "%s sorted out every item possible." msgstr "%s整理了所有能够整理的物品。" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "停止%s?" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "你需要一些尼古丁。" @@ -140269,6 +143465,18 @@ msgstr "再读一遍 %s 对 %s 很无趣。" msgid "Maybe you should find something new to read..." msgstr "也许你应该找些新书来读……" +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "看起来你睡过头了,体内的闹钟没能叫醒你……" + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "看起来你睡过头了,闹钟没能叫醒你……" + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "你干呕了一阵,但胃已经是空的了。" + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "你缩在龟壳里无法移动。先把你的小头小脚钻出来先。" @@ -140318,6 +143526,10 @@ msgstr "路上还有一台车。" msgid "That part of the vehicle is currently unsafe." msgstr "车的一部分目前不安全。" +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "你的坐骑离水远点!" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "潜入水中?" @@ -140374,6 +143586,10 @@ msgstr "你需要呼吸!(按\"%s\"键上浮)" msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "你需要呼吸,但是你游不起来!赶紧爬上岸!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "安装时不能登上车辆。" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "范围内没有敌对生物。等待一回合。" @@ -140431,6 +143647,38 @@ msgstr "你需要站在有效地形/家具附近才能使用这把武器。诸 msgid "The %s can't be fired in its current state." msgstr "%s无法在当前状态下开火。" +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "你缩在龟壳里无法有效投掷物品。" + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "投掷物品" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "你没有可以投掷的物品。" + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "你没有那东西。" + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "这货太重了,不能投掷。" + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "你疯了?这是你身体的一部分…不能投掷。" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "你聚精会神,你的身体开始服从大脑了!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "你无法提起力气投掷任何东西……" + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -140467,35 +143715,23 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" -"说明:\n" +"注意:\n" "%s\n" "\n" -"需求技能: %s\n" +"使用技能: %s\n" "%s\n" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" -"说明:\n" -"%s\n" -"\n" -"技能:%s\n" -"需求等级:%d\n" -"%s\n" "风险:无\n" -"耗时:%s\n" +"时间:%s\n" #: src/basecamp.cpp msgid "Name this camp" @@ -140528,7 +143764,7 @@ msgstr "空扩展区" #: src/bionics.cpp #, c-format msgid "Your %s is shorting out and can't be activated." -msgstr "" +msgstr "你的%s已经短路,无法激活。" #: src/bionics.cpp #, c-format @@ -140789,7 +144025,7 @@ msgstr "在摊开太阳能背包后,你可以将它连接到你的电缆充电 #: src/bionics.cpp #, c-format msgid "Your %s is shorting out and can't be deactivated." -msgstr "" +msgstr "你的%s已经短路,无法停用。" #: src/bionics.cpp #, c-format @@ -140900,7 +144136,7 @@ msgstr "" #: src/bionics.cpp msgid "The operation is a failure." -msgstr "" +msgstr "手术失败了。" #: src/bionics.cpp #, c-format @@ -141276,7 +144512,7 @@ msgstr "开" #: src/bionics_ui.cpp msgid "(incapacitated)" -msgstr "" +msgstr "(丧失能力)" #: src/bionics_ui.cpp #, c-format @@ -141694,6 +144930,11 @@ msgstr "你站了起来。" msgid " stands up." msgstr " 站了起来。" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "%s 挣脱了蛛网的束缚!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "你从网中挣脱出来!" @@ -141706,6 +144947,11 @@ msgstr " 从网中挣脱出来!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "你尝试从网中挣脱出来,但是失败了。" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "%s 从小型捕猎陷阱中脱出!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "你从小型捕猎陷阱中挣扎了出来!" @@ -141718,6 +144964,11 @@ msgstr " 从小型捕猎陷阱中挣扎了出来!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "你尝试从小型捕猎陷阱中挣扎出来,但是失败了。" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "%s 从大型捕猎陷阱中脱出!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "你从大型捕猎陷阱中挣扎了出来!" @@ -141730,6 +144981,16 @@ msgstr " 从大型捕猎陷阱中挣扎了出来!" msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "你尝试从大型捕猎陷阱中挣扎出来,但是失败了。" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "%s 从捕熊陷阱中脱出!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "你的%s尝试从捕熊陷阱里挣脱出来,但是失败了。" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "你从捕熊陷阱中挣脱了出来!" @@ -141766,6 +145027,21 @@ msgstr "你逃离了深坑!" msgid " escapes the pit!" msgstr " 逃离了深坑!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "你的%s试着挣脱但是失败了!" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "你的%s 挣脱了出来!" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "你挣脱了。" @@ -142063,6 +145339,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "一声刺耳的嚎叫!" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "自己发出刺耳的嚎叫!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "一声尖叫!" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "自己大声尖叫!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "大声的喊叫!" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "自己大声喊叫!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "你的声音模糊得不明所以了!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "一个模糊的声音" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "自己含混的喊叫" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "你的声音明显含混不清!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "吐出来了。" + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "吐出来了。" + +#: src/character.cpp +msgid " throws up heavily!" +msgstr " 吐的满地都是!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "你吐得很严重!" + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "禁用自动拾取" @@ -142723,92 +146057,10 @@ msgstr "电梯已启动。请按任意键……" msgid "NEPower Mine(%d:%d) Log" msgstr "东北能源 矿井(%d:%d)日志" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"条目47:\n" -"我们在日常采掘作业中发现了一个规模庞大的石窟。这本来并不奇怪,\n" -"奇怪的是,我们在石窟尽头发现了一完全垂直的断壁。断面上有很多\n" -"怪异的凹坑,让那些迷信的矿工惊惧异常;它们看上去像是人的形状。\n" -"条目48:\n" -"凹坑的高度在10到20英尺之间,遍布整个断层线。每一个都隐约成人\n" -"形,严重拉伸延展的四肢、头、颈弯绕扭曲。\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "继续读下去?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"条目49:\n" -"我们已经停下了这儿的采矿作业。很显然,除非考古学家有机会来检查这儿,\n" -"否则我们就搁在这了。这将会至少把我们的日程延后一个星期。\n" -"这该死的文物保护法已经设立有50多年了,居然还没被终止。\n" -"毕竟矿业可是我们国家经济的支柱啊!\n" -"\n" -"条目52:\n" -"还在等那些考古学家。我们稍微检查了下断层线,\n" -"我们手头的设备无法测量凹面的深度。这个设备的额定深度是15英里,\n" -"但不能用于这种狭窄通道,所以很难说这有多长。\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"条目54:\n" -"我发现一帮家伙用凿子把断壁凿开了一块。\n" -"而我在找别的路。似乎那帮呆头鹅一般的\n" -"考古学家没发现断壁有一小块缺口。一帮傻X。\n" -"\n" -"条目55:\n" -"好吧,这帮考古学者跟着一帮做向导的菜鸟下去了。\n" -"真以为自己是印第安纳琼斯啊。我都怀疑这些人有\n" -"没有沿着这些人形凹坑走20英尺。没想到还得给这帮\n" -"科学家当保姆,可要是他们有个缺胳膊少腿的,天知\n" -"道我们这项目又得叫停多久。\n" -"\n" -"条目58:\n" -"他们又带来了一个考古小组?天啊,不就是几个\n" -"洞窟雕刻吗?好吧,事情是有点大条,可凭我们这些人\n" -"难道还搞不定吗?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "阿米格拉计划" @@ -142822,39 +146074,10 @@ msgstr "" "SITE %d%d%d\n" "相关领班日志将预先考虑记录" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" -"\n" -"矿场作业暂停;控制权紧急移交至\n" -"阿米格拉计划下\n" -" 依据指令 2:07B\n" -"裂痕探测深度已经到达30.09公里\n" -"已检测到断层伤害;\n" -"因违反操作条例 87.08 即刻拘捕东北\n" -"能源矿区所有成员并移送至89-C实验\n" -"室作为测试样本使用\n" -"断层质量未受损坏;\n" -"启动标准地震测试……" - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "文件损坏,请按任意键……" -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "这台机器迅速地把折断的 %s 接上并固定好。" - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--登录成功--" @@ -143873,7 +147096,7 @@ msgstr "这看起来不能吃。" #: src/consumption.cpp msgid "That doesn't look edible to you." -msgstr "" +msgstr "那对你来说似乎并不好吃。" #: src/consumption.cpp msgid "That doesn't look edible in its current form." @@ -144528,7 +147751,7 @@ msgstr "您没有继续制造所需的材料!" #: src/crafting.cpp msgid "Consume the missing components and continue crafting?" -msgstr "" +msgstr "消耗缺少的组件并继续制作?" #: src/crafting.cpp msgid "You stop crafting." @@ -145141,7 +148364,7 @@ msgstr "学会所有法术" #: src/debug_menu.cpp msgid "Level a spell" -msgstr "" +msgstr "法术等级" #: src/debug_menu.cpp msgid "Player..." @@ -145149,11 +148372,11 @@ msgstr "玩家…" #: src/debug_menu.cpp msgid "Take screenshot" -msgstr "" +msgstr "截图" #: src/debug_menu.cpp msgid "Generate game report" -msgstr "" +msgstr "生成游戏报告" #: src/debug_menu.cpp msgid "Check game state" @@ -145187,6 +148410,10 @@ msgstr "切换显示局部气味" msgid "Toggle display temperature" msgstr "切换显示温度" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "切换显示能见度" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "显示变异等级" @@ -145363,6 +148590,10 @@ msgstr "男性" msgid "no faction" msgstr "没有派别" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "无货币" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -145833,7 +149064,7 @@ msgstr "" #: src/debug_menu.cpp #, c-format msgid "Player activity level: %s" -msgstr "" +msgstr "玩家活跃水平:%s" #: src/debug_menu.cpp #, c-format @@ -145995,43 +149226,43 @@ msgstr "还有剪贴板。" #: src/debug_menu.cpp msgid "There are no spells to learn. You must install a mod that adds some." -msgstr "" +msgstr "没有法术可学。你必须安装一个MOD来增加一些。" #: src/debug_menu.cpp msgid "" "You have become an Archwizardpriest! What will you do with your newfound " "power?" -msgstr "" +msgstr "你已经成为了一名大巫师!你将如何利用你新发现的力量?" #: src/debug_menu.cpp msgid "Try learning some spells first." -msgstr "" +msgstr "试着先学一些咒语。" #: src/debug_menu.cpp src/handle_action.cpp msgid "Spell" -msgstr "" +msgstr "法术" #: src/debug_menu.cpp src/handle_action.cpp msgid "LVL" -msgstr "" +msgstr "等级" #: src/debug_menu.cpp src/handle_action.cpp msgid "MAX" -msgstr "" +msgstr "最大" #: src/debug_menu.cpp msgid "Debug level spell:" -msgstr "" +msgstr "调试等级咒语:" #: src/debug_menu.cpp #, c-format msgid "Desired Spell Level: (Current %d)" -msgstr "" +msgstr "期望咒语等级:(当前%d)" #: src/debug_menu.cpp #, c-format msgid "%s is now level %d!" -msgstr "" +msgstr "%s现在等级%d" #: src/defense.cpp #, c-format @@ -146614,7 +149845,7 @@ msgstr "涂鸦:%s" #: src/editmap.cpp src/game.cpp #, c-format msgid "Incription: %s" -msgstr "" +msgstr "归属:%s" #: src/editmap.cpp #, c-format @@ -149235,27 +152466,6 @@ msgstr "" "支付食物: %15d(千卡)\n" "\n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" -"说明:\n" -"%s\n" -"\n" -"技能:%s\n" -"需求等级:%d\n" -"%s\n" -"风险:无\n" -"耗时:%s\n" - #: src/faction_camp.cpp #, c-format msgid "" @@ -150836,6 +154046,18 @@ msgstr "火势看上去很旺,看上去还能继续烧半天。" msgid "Without extra fuel it will burn for %s." msgstr "如果不添燃料的话,火大概还能持续燃烧约%s。" +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "不能在骑乘时这样做。" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "不能在骑乘时与载具互动。" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "挂载时不能使用控制台。" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -151112,38 +154334,6 @@ msgstr "射击" msgid "Drop where?" msgstr "丢在哪里?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "你缩在龟壳里无法有效投掷物品。" - -#: src/game.cpp -msgid "Throw item" -msgstr "投掷物品" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "你没有可以投掷的物品。" - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "你没有那东西。" - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "这货太重了,不能投掷。" - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "你疯了?这是你身体的一部分…不能投掷。" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "你聚精会神,你的身体开始服从大脑了!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "你无法提起力气投掷任何东西……" - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -151454,13 +154644,26 @@ msgid "Really step into %s?" msgstr "真的要走进%s?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "你的%s拒绝移动到那上面!" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." -msgstr "" +msgstr "你松开了抓着的东西。" #: src/game.cpp msgid "Can't find grabbed object." msgstr "找不到抓着的东西。" +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "不能在骑乘时登上载具。" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "不能在骑乘时通过障碍物。" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -151521,12 +154724,27 @@ msgstr "你在%s上弄伤了你的左脚!" msgid "You hurt your right foot on the %s!" msgstr "你在%s上弄伤了你的右脚!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "你的 %1$s 在 %2$s 上划破了!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "你把%s推开了。" + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "没有足够空间把%s推开。" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -151536,6 +154754,10 @@ msgstr "你推开了%s。" msgid "There's something here, but you can't see what it is." msgstr "那儿有些东西,不过看不清。" +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "这里有东西,但你骑的时候摸不到它。" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -151578,6 +154800,11 @@ msgstr "那里有一个载具控制器。" msgid "%s to drive." msgstr "%s开始驾驶。" +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -151634,12 +154861,12 @@ msgstr "东西从%s中泼出来!" #: src/game.cpp #, c-format msgid "You let go of the %s." -msgstr "" +msgstr "你松开了 %s。" #: src/game.cpp #, c-format msgid "You let go of the %1$s as it slides past %2$s." -msgstr "" +msgstr "你在 %1$s 滑过 %2$s 时松开了它。" #: src/game.cpp #, c-format @@ -152378,7 +155605,7 @@ msgstr "武术" #: src/game_inventory.cpp #, c-format msgid "%s to %d (%d)" -msgstr "" +msgstr "%s 到 %d(%d)" #: src/game_inventory.cpp msgid "TRAINS (CURRENT)" @@ -152508,7 +155735,7 @@ msgstr "没有可比较的项目。" msgid "" "Enter new letter. Press SPACE to clear a manually assigned letter, ESCAPE to" " cancel." -msgstr "" +msgstr "输入新字母。按\"空格\"键清除已分配按键,按\"ESC\"键取消。" #: src/game_inventory.cpp msgid "" @@ -152519,66 +155746,66 @@ msgstr "" #: src/game_inventory.cpp msgid "" "Patient has Deadened nerves. Anesthesia unneeded." -msgstr "" +msgstr "病人神经麻痹。不需要麻醉。" #: src/game_inventory.cpp msgid "" "Patient has Sensory Dulling CBM installed. Anesthesia " "unneeded." -msgstr "" +msgstr "病人安装有使神经麻痹得CBM。不需要麻醉。" #: src/game_inventory.cpp #, c-format msgid "Available anesthesia: %i" -msgstr "" +msgstr "有效麻醉: %i" #: src/game_inventory.cpp #, c-format msgid "Bionic installation patient: %s" -msgstr "" +msgstr "生化插件安装者:%s" #: src/game_inventory.cpp msgid "You don't have any bionics to install." -msgstr "" +msgstr "你没有任何仿生装置可以安装。" #: src/game_inventory.cpp msgid "FAILURE CHANCE" -msgstr "" +msgstr "失败概率" #: src/game_inventory.cpp msgid "OPERATION DURATION" -msgstr "" +msgstr "操作持续时间" #: src/game_inventory.cpp msgid "CBM already installed" -msgstr "" +msgstr "CBM已安装" #: src/game_inventory.cpp msgid "No base version installed" -msgstr "" +msgstr "未安装基本版本" #: src/game_inventory.cpp msgid "Superior version installed" -msgstr "" +msgstr "已安装高级版本" #: src/game_inventory.cpp msgid "CBM not compatible with patient" -msgstr "" +msgstr "CBM与受体不兼容" #: src/game_inventory.cpp #, c-format msgid "%i minutes" -msgstr "" +msgstr "%i分钟" #: src/game_inventory.cpp #, c-format msgid "%i hours" -msgstr "" +msgstr "%i小时" #: src/game_inventory.cpp #, c-format msgid "%i hour" -msgstr "" +msgstr "%i小时" #: src/game_inventory.cpp src/player.cpp #, c-format @@ -152646,11 +155873,6 @@ msgstr "%s太大了,你无法把它轻易推开。" msgid "There is too much stuff in the way." msgstr "这里被太多东西堵住了。" -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "你把%s推开了。" - #: src/gates.cpp msgid "stuff" msgstr "填充物" @@ -152659,6 +155881,11 @@ msgstr "填充物" msgid "No vehicle at grabbed point." msgstr "无车辆连在挂钩上。" +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -153072,49 +156299,49 @@ msgstr "蹲伏" #: src/handle_action.cpp msgid "You need your hands free to cast spells!" -msgstr "" +msgstr "你需要空出你的双手来施法!" #: src/handle_action.cpp msgid "You don't know any spells to cast." -msgstr "" +msgstr "你不懂任何法术。" #: src/handle_action.cpp msgid "RNG" -msgstr "" +msgstr "射程" #: src/handle_action.cpp msgid "XP%" -msgstr "" +msgstr "经验%" #: src/handle_action.cpp msgid "Cast Time" -msgstr "" +msgstr "释放时间" #: src/handle_action.cpp msgid "Cost" -msgstr "" +msgstr "耗魔" #: src/handle_action.cpp msgid "DMG" -msgstr "" +msgstr "伤害" #: src/handle_action.cpp msgid "FAIL%" -msgstr "" +msgstr "失败%" #: src/handle_action.cpp #, c-format msgid "%i turns" -msgstr "" +msgstr "%i回合" #: src/handle_action.cpp #, c-format msgid "%i moves" -msgstr "" +msgstr "%i行动点" #: src/handle_action.cpp msgid "You can't cast any of the spells you know!" -msgstr "" +msgstr "你不能施展任何你知道的咒语!" #: src/handle_action.cpp msgid "Choose your spell:" @@ -153123,7 +156350,7 @@ msgstr "选择法术:" #: src/handle_action.cpp #, c-format msgid "You don't have enough %s to cast the spell." -msgstr "" +msgstr "你没有足够的%s来完成此动作。" #: src/handle_action.cpp msgid "You cannot cast Blood Magic without a cutting implement." @@ -153135,7 +156362,7 @@ msgstr "要使用什么?" #: src/handle_action.cpp msgid "Medication" -msgstr "" +msgstr "药物" #: src/handle_action.cpp msgid "Auto-move canceled" @@ -153146,14 +156373,30 @@ msgstr "取消自动移动" msgid "Unknown command: \"%s\" (%ld)" msgstr "未知命令:\"%s\"(%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "你骑乘的时候不能下楼。" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "你骑乘的时候不能上楼梯。" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "你缩在龟壳里无法打开物品。" +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "你骑乘的时候不能打开东西。" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "你缩在龟壳里无法关闭物品。" +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "你不能在骑乘的时候把东西关起来。" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "你缩在龟壳里无法砸碎物品。" @@ -153166,26 +156409,50 @@ msgstr "你缩在龟壳里无法探视四周。" msgid "You can't move mass quantities while you're in your shell." msgstr "你缩在龟壳里无法移动。" +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "你不能在骑乘时移动大量物品。" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "你缩在龟壳里无法拾取物品。" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "你骑乘时什么都拿不到。" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "你缩在龟壳里无法抓住物品。" +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "你骑乘的时候不能拿东西。" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "你缩在龟壳里无法搬运物品。" +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "你骑乘的时候不能拖拽东西。" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "你缩在龟壳里无法屠宰。" +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "你不能在骑乘的时候屠宰。" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "你缩在龟壳里无法拐角窥探。" +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "你骑乘的时候无法进行拐角窥视。" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "你缩在龟壳里无法丢弃物品。" @@ -153195,10 +156462,18 @@ msgstr "你缩在龟壳里无法丢弃物品。" msgid "You can't craft while you're in your shell." msgstr "你缩在龟壳里无法制作物品。" +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "你骑乘的时候不能制作。" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "你在驾驶载具时无法拆解物品。" +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "你不能在骑乘的时候拆东西。" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "你在载具里无法建筑。" @@ -153207,6 +156482,10 @@ msgstr "你在载具里无法建筑。" msgid "You can't construct while you're in your shell." msgstr "你缩在龟壳里无法建筑。" +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "你不能在骑乘的时候建造。" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -153289,6 +156568,7 @@ msgstr "%s 已设为 %s。" #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -153857,7 +157137,7 @@ msgstr "仙人掌的刺刺痛了你!" #: src/iexamine.cpp #, c-format msgid "You don't have a digging tool to dig up roots. Pick %s anyway?" -msgstr "" +msgstr "你没有挖根的工具,仍要摘取%s?" #: src/iexamine.cpp msgid "Nothing can be harvested from this plant in current season." @@ -154722,10 +158002,26 @@ msgid "" "Exiting." msgstr "未能找到躺在已连接诊察台上的病人。无法进行手术。系统已退出。" +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "全自动医疗仪 XI 型。系统状态:已启动。请选择要进行的操作。" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "选择安装生化插件。" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "选择移除生化插件。" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "断肢夹板" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "你至少需要一个麻醉工具箱才能使用全自动医疗仪进行手术。" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name @@ -154774,6 +158070,26 @@ msgstr "你没有任何已安装的生化插件。" msgid "%1$s doesn't have any bionics installed." msgstr "%1$s 没有任何已安装的生化插件。" +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "这台机器迅速地把折断的 %s 接上并固定好。" + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "这台机器迅速地把折断的 %s 接上并固定好。" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "你四肢完好不需要夹板。" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "%1$s四肢完好不需要夹板。" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "这个碾磨机已经装满了面粉。" @@ -155083,7 +158399,7 @@ msgstr "不能拆卸这个烟熏架,因为它正在被使用。" #: src/iexamine.cpp msgid "Disassemble the smoking rack" -msgstr "" +msgstr "拆除烟熏架" #: src/iexamine.cpp msgid "Remove food from smoking rack" @@ -155246,7 +158562,7 @@ msgstr "怪物势力" #: src/init.cpp msgid "Factions" -msgstr "" +msgstr "阵营" #: src/init.cpp msgid "Crafting recipes" @@ -155270,7 +158586,7 @@ msgstr "任务" #: src/init.cpp msgid "Behaviors" -msgstr "" +msgstr "行为" #: src/init.cpp msgid "Harvest lists" @@ -155362,7 +158678,7 @@ msgstr "NPC 模版" #: src/init.cpp msgid "Spells" -msgstr "" +msgstr "法术" #: src/input.cpp msgid "key bindings configuration" @@ -155736,7 +159052,7 @@ msgstr "材质:%s" #: src/item.cpp #, c-format msgid "Owner: %s" -msgstr "" +msgstr "物主:%s" #: src/item.cpp #, c-format @@ -155841,7 +159157,7 @@ msgstr "维生素(RDA):" #: src/item.cpp msgid "* This food will cause an allergic reaction." -msgstr "*吃这个食物会导致过敏反应。" +msgstr "* 吃这个食物会导致过敏反应。" #: src/item.cpp msgid "* This food contains human flesh." @@ -156514,7 +159830,7 @@ msgstr "* 这件物品 导电。" #: src/item.cpp msgid "* This clothing will give you an allergic reaction." -msgstr "" +msgstr "* 穿这件衣物会导致过敏反应。" #: src/item.cpp msgid "* This item can be worn with a helmet." @@ -156559,12 +159875,12 @@ msgstr "* 这件装备是常规尺寸的,不适合undersized and does not " "fit your abnormally large mutated anatomy." -msgstr "" +msgstr "* 这件装备到离谱,不适合异常大的突变躯体。" #: src/item.cpp msgid "" "* This clothing is undersized and does not fit you." -msgstr "" +msgstr "* 这件装备太小不适合你。" #: src/item.cpp msgid "* This clothing can be upsized." @@ -158643,7 +161959,7 @@ msgstr "有辆载具挡住了你!" #: src/iuse.cpp #, c-format msgid "You start drilling into the %1$s with your %2$s." -msgstr "" +msgstr "你开始用你的 %2$s 在 %1$s 上钻孔。" #: src/iuse.cpp msgid "Mine where?" @@ -158656,7 +161972,7 @@ msgstr "你不能挖那里。" #: src/iuse.cpp #, c-format msgid "You strike the %1$s with your %2$s." -msgstr "" +msgstr "你用你的 %2$s 击打 %1$s。" #: src/iuse.cpp msgid "Burrow where?" @@ -158669,7 +161985,7 @@ msgstr "你无法在那里打洞!" #: src/iuse.cpp #, c-format msgid "You start tearing into the %1$s with your %2$s." -msgstr "" +msgstr "你开始用你的 %2$s 撕裂 %1$s。" #: src/iuse.cpp msgid "buzzing" @@ -158685,15 +162001,15 @@ msgstr "喀哒喀哒" #: src/iuse.cpp msgid "geiger_high" -msgstr "" +msgstr "辐射-高" #: src/iuse.cpp msgid "geiger_low" -msgstr "" +msgstr "辐射-低" #: src/iuse.cpp msgid "geiger_medium" -msgstr "" +msgstr "辐射-中" #: src/iuse.cpp msgid "The geiger counter buzzes intensely." @@ -159004,7 +162320,7 @@ msgstr "mp3播放器关掉了。" #: src/iuse.cpp msgid "The phone turns off." -msgstr "" +msgstr "手机关机。" #: src/iuse.cpp #, c-format @@ -159126,7 +162442,7 @@ msgstr "你开始转动%s给%s充电。" #: src/iuse.cpp #, c-format msgid "You could use the %s to charge its %s, but it's already charged." -msgstr "" +msgstr "你可以用%s为充电%s,但它已经充电了。" #: src/iuse.cpp msgid "You need a rechargeable battery cell to charge." @@ -159221,7 +162537,7 @@ msgstr "算了。" #: src/iuse.cpp #, c-format msgid "There's nothing to use the %s on here." -msgstr "" +msgstr "这里没有什么可以使用%s。" #: src/iuse.cpp msgid "You cut the log into planks." @@ -159462,7 +162778,7 @@ msgstr "(按\".\"键删除)" #: src/iuse.cpp msgid "You blur the inscription on the grave." -msgstr "" +msgstr "你模糊了墓碑上的铭文。" #: src/iuse.cpp msgid "You manage to get rid of the message on the ground." @@ -159474,7 +162790,7 @@ msgstr "这里没有能够抹除的东西。" #: src/iuse.cpp msgid "You carve an inscription on the grave." -msgstr "" +msgstr "你在坟墓上刻了一个铭文。" #: src/iuse.cpp msgid "You write a message on the ground." @@ -159689,12 +163005,12 @@ msgstr "你重新校准了 %s。" #: src/iuse.cpp src/iuse_actor.cpp #, c-format msgid "You repair your %s! ( %s-> %s)" -msgstr "" +msgstr "你修理了 %s!(%s->%s)" #: src/iuse.cpp src/iuse_actor.cpp #, c-format msgid "You repair your %s completely! ( %s-> %s)" -msgstr "" +msgstr "你完全修理好了你的 %s!(%s->%s)" #: src/iuse.cpp msgid "Select tool to modify" @@ -160352,6 +163668,11 @@ msgstr "装盘" msgid "Really stop cooking?" msgstr "真的停止烹饪?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "你没有合适的容器来存储你的%s。" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -161194,24 +164515,24 @@ msgstr "%s弹出了刺耳的噪音。" #: src/iuse_actor.cpp msgid "This can teach you a spell." -msgstr "" +msgstr "这可以教你一个咒语。" #: src/iuse_actor.cpp msgid "This can teach you a number of spells." -msgstr "" +msgstr "这可以教你很多咒语。" #: src/iuse_actor.cpp msgid "Spells Contained:" -msgstr "" +msgstr "咒语包含:" #: src/iuse_actor.cpp #, c-format msgid "Level %u" -msgstr "" +msgstr "等级%u" #: src/iuse_actor.cpp msgid " (Max)" -msgstr "" +msgstr "(最大)" #: src/iuse_actor.cpp msgid "Study to Learn" @@ -161264,7 +164585,7 @@ msgstr "" #: src/iuse_actor.cpp msgid "This item never fails." -msgstr "" +msgstr "这个物品绝不失败。" #: src/iuse_actor.cpp #, c-format @@ -162996,11 +166317,11 @@ msgstr "生化能量" #: src/magic.cpp msgid "error: energy_type" -msgstr "" +msgstr "错误:能量类型" #: src/magic.cpp msgid "infinite" -msgstr "" +msgstr "无限的" #: src/magic.cpp #, c-format @@ -163008,6 +166329,8 @@ msgid "" "Learning this spell will make you a %s and lock you out of other unique spells.\n" "Continue?" msgstr "" +"学习此法术将使你获得%s并将使你无法学习其他独特的法术。\n" +"继续?" #: src/magic.cpp #, c-format @@ -163024,19 +166347,19 @@ msgstr "未找到有效的传送目标点。" #: src/magic.cpp msgid "Your injuries even out." -msgstr "" +msgstr "你的伤已经痊愈了。" #: src/magic.cpp msgid "All the dust in the air here falls to the ground." -msgstr "" +msgstr "空气中的灰尘都落到地上了。" #: src/magic.cpp msgid "The pit has deepened further." -msgstr "" +msgstr "深坑进一步加深了。" #: src/magic.cpp msgid "More debris shifts out of the pit." -msgstr "" +msgstr "更多的残骸从坑中移出。" #: src/magic.cpp msgid "The earth moves out of the way for you." @@ -163044,7 +166367,7 @@ msgstr "" #: src/magic.cpp msgid "The rocks here are ground into sand." -msgstr "" +msgstr "这里的岩石被磨成沙子。" #: src/magic.cpp msgid "The earth here does not listen to your command to move." @@ -163703,6 +167026,32 @@ msgid "" "weapon.
" msgstr "该武术流派强制你使用徒手攻击,即便你手持武器。" +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "你可以通过安装合金装甲-手臂CBM来安装臂架。" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "你可以在徒手武术%s中使用臂架" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "你可以通过安装合金装甲-腿部CBM来安装腿架。" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "你可以在徒手武术%s中使用腿架" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -163855,10 +167204,6 @@ msgstr "你躯干的累赘值过高,令你战斗时无法保持平衡。" msgid "You can't hit reliably due to your farsightedness." msgstr "由于远视,不带眼镜你无法可靠命中。" -#: src/melee.cpp -msgid "You feint." -msgstr "你进行了一记佯攻。" - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "你没有击中反而由于惯性跌倒。" @@ -164492,19 +167837,7 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"报酬:$8/小时\n" -"危险:极低\n" -"耗时:至少1小时\n" -" \n" -"派遣同伴到前哨当仆人是学习基础技能和建立声望的最安全的手段。但别指望能有多少奖励。" - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" @@ -164512,7 +167845,9 @@ msgstr "" "危险:极低\n" "耗时:至少1小时\n" " \n" -"名单:\n" +"派遣同伴到前哨当仆人是学习基础技能和建立声望的最安全的手段。但别指望能有多少奖励。\n" +"\n" +"可用人员:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -165970,16 +169305,6 @@ msgstr "%s 向 摸索,但被躲开了!" msgid "The %s tries to grab you as well, but you bat it away!" msgstr "%s 试着抓住你,但你把它打回去了!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "%s 试着抓住你,但你挣脱了!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "%s 试着抓住 ,但被挣脱了!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -166057,7 +169382,7 @@ msgstr "%s正在扫描它的四周。" msgid "" "a soft robotic voice say, \"Welcome doctor %s. I'll be your assistant " "today.\"" -msgstr "" +msgstr "一个柔和的机器声音说,“欢迎,%s医生。我今天会是你的助手。”" #: src/monattack.cpp #, c-format @@ -166089,7 +169414,7 @@ msgstr "一个柔和的机器声音说道:“放开那个病人!再妨碍我 msgid "" "a soft robotic voice say, \"Greetings kinbot. Please take good care of this" " patient.\"" -msgstr "" +msgstr "一个柔和的机器人声音说,“问候金博特。请好好照顾这个病人。”" #: src/monattack.cpp #, c-format @@ -166195,7 +169520,7 @@ msgstr "%s 展开了它的步枪!" #: src/monattack.cpp msgid "Thee eye o dat divil be upon me!" -msgstr "" +msgstr "你的眼睛盯着我!" #: src/monattack.cpp msgid "Those laser dots don't seem very friendly..." @@ -166361,7 +169686,7 @@ msgstr "你的 %1$s 被连续猛击,受到 %2$d 点伤害!" #: src/monattack.cpp #, c-format msgid "The %1$s quivers hungrily in the direction of the %2$s." -msgstr "" +msgstr "这%1$s饥渴地朝着%2$s" #: src/monattack.cpp #, c-format @@ -166978,6 +170303,11 @@ msgstr "丢下除护甲外的所有东西" msgid "Attach bag" msgstr "带上背包" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "移除马具从%s" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -167015,6 +170345,54 @@ msgstr "撕下费洛蒙球体" msgid "Milk %s" msgstr "给%s挤奶" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "将鞍座连接到%s" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "将鞍座从%s" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "你不知道怎么装鞍%s" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "安装%s" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "%s无法安装" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "%s太小了不能承受你的重量" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "你根本不懂如何骑马" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "你太重了,不能上马%s" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "你没有马鞍驾驭马匹还不够熟练" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "尽管有马鞍,你还是不知道怎么骑%s" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -167028,6 +170406,11 @@ msgstr "真的终结这个丧尸奴仆吗?" msgid "Pet armor" msgstr "宠物防护" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "你移除了%s的安全带" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -167091,6 +170474,11 @@ msgstr "你的%1$s 对%2$s 来说太重了。" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "你将 %1$s 放在 %2$s 上,避免它受到伤害。" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "你解开了%s从车上" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -167130,7 +170518,7 @@ msgstr "%s生产一个装满半透明液体的注射器。" msgid "" "a soft robotic voice say, \"Please step away from the autodoc, this patient " "needs immediate care.\"" -msgstr "" +msgstr "一个柔和的机器声音说,“请离开全自动医疗仪,这个病人需要立即护理。”" #: src/monmove.cpp msgid "footsteps." @@ -167565,26 +170953,6 @@ msgstr "你感觉到毒素涌入你的身体!" msgid "The %s climbs to its feet!" msgstr "%s 爬了起来!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "%s 挣脱了蛛网的束缚!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "%s 从小型捕猎陷阱中脱出!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "%s 从大型捕猎陷阱中脱出!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "%s 从捕熊陷阱中脱出!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -168449,7 +171817,7 @@ msgid "activated" msgstr "已启用" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "宠物:" #: src/newcharacter.cpp @@ -170728,7 +174096,7 @@ msgstr "侧边栏日志信息在删除前保留的回合数。设为\"0\"将禁 #: src/options.cpp msgid "Message cooldown" -msgstr "" +msgstr "消息冷却时间" #: src/options.cpp msgid "" @@ -170905,7 +174273,7 @@ msgstr "边缘滚动" #: src/options.cpp msgid "Edge scrolling with the mouse." -msgstr "" +msgstr "用鼠标滚动屏幕。" #: src/options.cpp msgid "Slow" @@ -172789,7 +176157,7 @@ msgstr "脚:" #: src/panels.cpp #, c-format msgid "Goal: %s" -msgstr "" +msgstr "目标:%s" #: src/panels.cpp msgid "Weather :" @@ -173018,7 +176386,7 @@ msgstr "你输入的筛选没有任何结果" #: src/pickup.cpp #, c-format msgid "%s %s of %s" -msgstr "" +msgstr "%s%s装着%s" #: src/pickup.cpp #, c-format @@ -173123,7 +176491,7 @@ msgstr "你属性因为口渴而削弱了。" #: src/player.cpp #, c-format msgid "You have learned a new style: %s!" -msgstr "" +msgstr "你学到了一种新的风格:%s!" #: src/player.cpp msgid "You lost your book! You stop reading." @@ -173215,57 +176583,33 @@ msgid " attempts to put out the fire on them!" msgstr " 尝试扑灭身上的火焰!" #: src/player.cpp -msgid "a piercing howl!" -msgstr "一声刺耳的嚎叫!" - -#: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "自己发出刺耳的嚎叫!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "一声尖叫!" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "自己大声尖叫!" - -#: src/player.cpp -msgid "a loud shout!" -msgstr "大声的喊叫!" - -#: src/player.cpp -msgid "yourself shout loudly!" -msgstr "自己大声喊叫!" - -#: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "你的声音模糊得不明所以了!" - -#: src/player.cpp -msgid "an indistinct voice" -msgstr "一个模糊的声音" - -#: src/player.cpp -msgid "your muffled shout" -msgstr "自己含混的喊叫" - -#: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "你的声音明显含混不清!" +msgid "You spur your steed into a gallop." +msgstr "你策马疾驰。" #: src/player.cpp msgid "You start running." msgstr "你加快速度,开始奔跑。" +#: src/player.cpp +msgid "Your steed is too tired to go faster." +msgstr "你的马太累了,跑不动了。" + #: src/player.cpp msgid "You're too tired to run." msgstr "你力竭了,无法奔跑。" +#: src/player.cpp +msgid "You slow your steed to a walk." +msgstr "你令自己的马缓慢下来" + #: src/player.cpp msgid "You start crouching." msgstr "你开始蹲伏。" +#: src/player.cpp +msgid "You nudge your steed to a steady trot." +msgstr "你轻轻触碰你的马,使它平稳地小跑" + #: src/player.cpp msgid "You start walking." msgstr "你开始行走。" @@ -174445,28 +177789,6 @@ msgstr "折断的 %s 开始自愈。" msgid "Your %s has started to mend!" msgstr "你的 %s 开始自愈!" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "吐出来了。" - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "吐出来了。" - -#: src/player.cpp -msgid " throws up heavily!" -msgstr " 吐的满地都是!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "你吐得很严重!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "你干呕了一阵,但胃已经是空的了。" - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -175089,14 +178411,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "进入冬眠。" -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "看起来你睡过头了,体内的闹钟没能叫醒你……" - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "看起来你睡过头了,闹钟没能叫醒你……" - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -175191,6 +178505,32 @@ msgstr "你停止搬运地面上的物品。" msgid "Your body strains under the weight!" msgstr "你的身体由于负重过高而感到疼痛!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "你从山上摔下来了!" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "你伤到了你自己!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "从山上摔下来" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "从山上摔下来" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "在哪里下马?" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "你不能在那里下马!" + #: src/player.cpp msgid "Wielding: " msgstr "手持:" @@ -176382,7 +179722,7 @@ msgstr "你没有足够的%s来完成此动作" #: src/ranged.cpp #, c-format msgid "Casting: %s (Level %u)" -msgstr "" +msgstr "施放:%s(等级:%u)" #: src/ranged.cpp #, c-format @@ -176406,17 +179746,17 @@ msgstr "有效半径:%i%s" #: src/ranged.cpp msgid " WARNING! IN RANGE" -msgstr "" +msgstr "警告!在射程内" #: src/ranged.cpp #, c-format msgid "Cone Arc: %i degrees" -msgstr "" +msgstr "锥弧:%i度" #: src/ranged.cpp #, c-format msgid "Line width: %i" -msgstr "" +msgstr "线宽:%i" #: src/ranged.cpp #, c-format @@ -176507,6 +179847,10 @@ msgstr "咔嘣!" msgid "none" msgstr "无" +#: src/recipe.cpp +msgid "none" +msgstr "空" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -176775,6 +180119,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "踩上气泡袋。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "你的%s踩到了一些气泡袋!" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "砰!" @@ -176828,6 +180177,11 @@ msgstr "一个捕熊陷阱夹住了你的腿!" msgid "A bear trap closes on 's foot!" msgstr "一个捕熊陷阱夹住了 的腿!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "你的%s被捕熊陷阱夹住了。" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -176846,6 +180200,11 @@ msgstr "你踩到了一块钉板!" msgid " steps on a spiked board!" msgstr " 踩到了一块钉板!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "你的%s踩到了一块钉板!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -176864,6 +180223,11 @@ msgstr "你踩到了一块锋利的铁蒺藜!" msgid " steps on a sharp metal caltrop!" msgstr " 踩到了一块锋利的铁蒺藜!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "你的%s踩到了一块锋利的铁蒺藜!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -176904,6 +180268,16 @@ msgstr "你被绊索绊倒了!" msgid " trips over a tripwire!" msgstr " 被绊索绊倒了!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "你的%s被绊索绊倒了!" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "你的%s踩到弩陷阱了!" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "你踩到弩陷阱了!" @@ -176950,6 +180324,11 @@ msgstr "弩箭射出,但没有命中 %s。" msgid "Kerblam!" msgstr "喀砰!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "你的%s踩到霰弹枪陷阱了!" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "你触发了一个霰弹枪陷阱!" @@ -176973,6 +180352,11 @@ msgstr "触发了一个霰弹枪陷阱。" msgid "A shotgun fires and hits the %s!" msgstr "霰弹枪陷阱开火命中了 %s!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "弹起的刀刃砍到了你的%s!" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "弹起的刀刃砍到了你的躯干!" @@ -176995,6 +180379,11 @@ msgstr "触发了一个刀片陷阱。" msgid "Snap!" msgstr "劈啪!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "你的%s的腿被捕猎陷阱缠住了!" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "你的腿被捕猎陷阱缠住了。" @@ -177013,7 +180402,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "触发了一个小型捕猎陷阱。" -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "你的%s的腿被捕猎陷阱缠住了" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -177147,6 +180540,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "进入解剖台。" +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "地板上发出了电弧,你的%s触电了!" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr " 掉到了深坑里!" @@ -177175,14 +180573,15 @@ msgid "" "admirably!" msgstr "你重重地摔在地上,但是减震器吸收了所有的伤害!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "你伤到了你自己!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "你漂亮地落地。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "你的%s掉进了一个坑里!" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "你掉进了一个尖刺陷坑里!" @@ -177261,6 +180660,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "踩到了岩浆。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "你的%s被熔岩烧到了!" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "你什么也没够着……" @@ -177278,6 +180682,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr " 踩进了一个陷坑,但是安全地爬了出来。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "你的%s掉进了陷坑深处!" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -178628,6 +182037,11 @@ msgstr "%s 卡住了。" msgid "The %s's engine emits a sneezing sound." msgstr "%s 的引擎发出了扑哧声。" +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "你的%s不够快,无法跟上%s。" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -178677,6 +182091,10 @@ msgstr "%1$s 的 %2$s 从 %3$s 上压了过去。" msgid "The %1$s's %2$s runs over something." msgstr "%1$s 的 %2$s 从什么东西上压了过去。" +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "你不能在没有系好动物的情况下驾驶动物拉车。" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "这辆载具缺少转向轴,你无法转弯。" @@ -178868,7 +182286,7 @@ msgstr "加热器" #: src/vehicle_use.cpp msgid "cooler" -msgstr "" +msgstr "冷藏器" #: src/vehicle_use.cpp msgid "recharger" @@ -179238,6 +182656,36 @@ msgid "" " on. The washing machine is being filled with water from vehicle tanks." msgstr "你往洗衣机内加入了一些洗涤剂,关上盖子并启动了机器。洗衣机会自行从车辆水箱里取水。" +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "这个生物在哪里?" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "你解开你的%s。" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "这个生物不友好!" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "这种生物无法驾驭。" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "马具被堵住了。" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "那里没有生物。" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "检查载具" @@ -179278,6 +182726,10 @@ msgstr "捕捉/释放动物" msgid "Load or unload a vehicle" msgstr "装载/卸下载具" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "驯服动物" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "重新装填播种机" diff --git a/lang/po/zh_TW.po b/lang/po/zh_TW.po index fcc4abf213b9d..c393715765dd2 100644 --- a/lang/po/zh_TW.po +++ b/lang/po/zh_TW.po @@ -18,19 +18,19 @@ # 嵩憲 楊 , 2019 # KTISME , 2019 # Maynard , 2019 -# kiddragon Chung , 2019 # Laughing Man, 2019 # Hsinyu Chan, 2019 -# xap, 2019 # Brett Dong , 2019 +# xap, 2019 +# kiddragon Chung , 2019 # msgid "" msgstr "" "Project-Id-Version: cataclysm-dda 0.D\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-31 15:51+0800\n" +"POT-Creation-Date: 2019-06-07 17:32+0800\n" "PO-Revision-Date: 2018-04-26 14:47+0000\n" -"Last-Translator: Brett Dong , 2019\n" +"Last-Translator: kiddragon Chung , 2019\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/cataclysm-dda-translators/teams/2217/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1361,6 +1361,15 @@ msgid "" "create a beaded curtain door." msgstr "這是一個木珠。它可以用來製作漂亮的首飾或串珠門簾。" +#: lang/json/AMMO_from_json.py +msgid "rosin" +msgstr "" + +#. ~ Description for rosin +#: lang/json/AMMO_from_json.py +msgid "This is a chunk of yellowish rosin, usable as a flux for soldering." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "crude wooden bolt" msgstr "" @@ -2273,6 +2282,18 @@ msgid "reloaded .38 Super" msgid_plural "reloaded .38 Super" msgstr[0] ".38 超級彈 (重填彈)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .38 Special" +msgstr "" + +#. ~ Description for blackpowder .38 Special +#: lang/json/AMMO_from_json.py +msgid "" +"This .38 Special cartridge is loaded with a 200gr cast lead hollowpoint and " +"23gr of blackpowder. While it's much slower than a regular .38, it has " +"tremendous stopping power." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".380 ACP FMJ" msgstr "" @@ -2307,7 +2328,7 @@ msgstr "" #: lang/json/AMMO_from_json.py msgid "" "Overpressure .380 ACP ammunition with a 90gr jacketed hollow point bullet. " -"These defensive loadings are designed to maximise performance and tend to be" +"These defensive loadings are designed to maximize performance and tend to be" " more accurate than practice ammo. One should be careful not to chamber it " "in 9x18mm Makarov or 9x19mm firearms." msgstr "" @@ -2489,6 +2510,17 @@ msgid "" "incapacitating gas." msgstr "內含催淚瓦斯的 40mm 榴彈, 爆炸時散發出的氣體會令人失去行動力。" +#: lang/json/AMMO_from_json.py +msgid "40mm slug" +msgstr "" + +#. ~ Description for 40mm slug +#: lang/json/AMMO_from_json.py +msgid "" +"A 40mm shell loaded with a massive bullet. Say goodbye to your shoulder, I " +"guess." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 Magnum FMJ" msgstr ".44 麥格農全金屬彈" @@ -2520,6 +2552,17 @@ msgstr ".44 麥格農全金屬彈 (重填彈)" msgid "reloaded .44 Magnum" msgstr ".44 麥格農子彈 (重填彈)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .44 Magnum" +msgstr "" + +#. ~ Description for blackpowder .44 Magnum +#: lang/json/AMMO_from_json.py +msgid "" +"This .44 Magnum cartridge is loaded with 39gr of blackpowder and a 200gr " +"cast lead semi-wadcutter." +msgstr "" + #: lang/json/AMMO_from_json.py msgid ".44 paper cartridge" msgstr ".44 紙卷彈" @@ -2600,6 +2643,104 @@ msgstr "" msgid "reloaded .454 Casull" msgstr ".454 卡蘇爾子彈 (重填彈)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder .454 Casull" +msgstr "" + +#. ~ Description for blackpowder .454 Casull +#: lang/json/AMMO_from_json.py +msgid "" +"This strange anachronism of a cartridge is loaded with 45gr of blackpowder " +"and a relatively light 190gr cast lead hollowpoint." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 SP" +msgstr "" + +#. ~ Description for .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 +P penetrator" +msgstr "" + +#. ~ Description for .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid ".45-70 LFN cowboy" +msgstr "" + +#. ~ Description for .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 SP" +msgstr "" + +#. ~ Description for reloaded .45-70 SP +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 305 grain soft point round. One " +"of the oldest cartridges still in use, it is still a favorite for large game" +" hunting at short ranges. This one has been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 +P penetrator" +msgstr "" + +#. ~ Description for reloaded .45-70 +P penetrator +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government +P ammunition loaded with a 305 grain solid copper " +"penetrator projectile. Designed for maximum penetration through thick hide " +"and bone while maintaining ideal wounding characteristics. This one has " +"been hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 LFN cowboy" +msgstr "" + +#. ~ Description for reloaded .45-70 LFN cowboy +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"to original specifications for safe use in antique firearms. Quite a bit " +"less powerful than modern ammo, but still packs a punch. This one has been " +"hand-loaded." +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "reloaded .45-70 black powder" +msgstr "" + +#. ~ Description for reloaded .45-70 black powder +#: lang/json/AMMO_from_json.py +msgid "" +".45-70 Government ammunition loaded with a 405 grain lead flat nose bullet " +"using black powder to original specifications. Quite a bit less powerful " +"and a lot dirtier than modern ammo, but still packs a punch. This one has " +"been hand-loaded." +msgstr "" + #: lang/json/AMMO_from_json.py msgid "4.6x30mm" msgstr "4.6x30mm 子彈" @@ -3362,6 +3503,22 @@ msgstr "鋼鏢霰彈 (重填彈)" msgid "reloaded shotgun slug" msgstr "獨頭霰彈 (重填彈)" +#: lang/json/AMMO_from_json.py +msgid "blackpowder birdshot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder 00 shot" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder flechette shell" +msgstr "" + +#: lang/json/AMMO_from_json.py +msgid "blackpowder shotgun slug" +msgstr "" + #: lang/json/AMMO_from_json.py msgid "00 shot" msgstr "獵鹿霰彈" @@ -5184,10 +5341,10 @@ msgstr[0] "廢金屬裝" #. ~ Description for scrap suit #: lang/json/ARMOR_from_json.py msgid "" -"A suit of armor made from scraps of metal secured by simple strings; " -"provides decent protection, but the loose collection of plates doesn't make " -"for the most convenient protection." -msgstr "一套護甲, 由廢金屬製成, 並以簡單的繩子固定。能提供不錯的防護能力, 但是這堆鬆散的板子穿起來並不是很方便。" +"A suit of armor made from scraps of metal secured by simple strings; the " +"loose collection of plates provides decent but not the most convenient " +"protection." +msgstr "" #: lang/json/ARMOR_from_json.py msgid "camo tank top" @@ -12038,6 +12195,36 @@ msgstr[0] "潛水靴" msgid "A pair of neoprene swimming booties, with individual toes." msgstr "一雙橡膠製潛水靴, 腳趾部分是分開的。" +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (off)" +msgid_plural "pairs of heelys (off)" +msgstr[0] "" + +#. ~ Use action msg for pair of heelys (off). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels out." +msgstr "" + +#. ~ Description for pair of heelys (off) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are hidden." +msgstr "" + +#: lang/json/ARMOR_from_json.py +msgid "pair of heelys (on)" +msgid_plural "pairs of heelys (on)" +msgstr[0] "" + +#. ~ Use action msg for pair of heelys (on). +#: lang/json/ARMOR_from_json.py +msgid "You pop the wheels back in." +msgstr "" + +#. ~ Description for pair of heelys (on) +#: lang/json/ARMOR_from_json.py +msgid "A pair of sneakers with wheels, currently the wheels are out." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "back holster" msgid_plural "back holsters" @@ -12792,6 +12979,19 @@ msgid "" "they make it difficult to move on rough terrain." msgstr "" +#: lang/json/ARMOR_from_json.py +msgid "flesh pouch" +msgid_plural "flesh pouchs" +msgstr[0] "" + +#. ~ Description for flesh pouch +#: lang/json/ARMOR_from_json.py +msgid "" +"A large pouch of tough flesh on your back, filled with tiny tentacles that " +"grasp and hold anything you place inside. It shifts and adjusts itself to " +"minimize encumbrance." +msgstr "" + #: lang/json/ARMOR_from_json.py msgid "Corinthian helm" msgid_plural "Corinthian helms" @@ -15264,6 +15464,7 @@ msgid_plural "schematics generics" msgstr[0] "" #. ~ Description for schematics generic +#. ~ Description for animal #. ~ Description for nearby fire #. ~ Description for muscle #. ~ Description for wind @@ -15272,7 +15473,8 @@ msgstr[0] "" #. ~ Description for weapon #. ~ Description for seeing this is a bug #: lang/json/BOOK_from_json.py lang/json/GENERIC_from_json.py -#: lang/json/GENERIC_from_json.py lang/json/TOOL_from_json.py +#: lang/json/GENERIC_from_json.py lang/json/GENERIC_from_json.py +#: lang/json/TOOL_from_json.py lang/json/TOOL_from_json.py #: lang/json/skill_from_json.py msgid "seeing this is a bug" msgid_plural "seeing this is a bugs" @@ -18901,7 +19103,7 @@ msgstr[0] "" #. ~ Description for gin mash #: lang/json/COMESTIBLE_from_json.py msgid "" -"Gin mash, after the junipers have had time to add flavour, ready to be " +"Gin mash, after the junipers have had time to add flavor, ready to be " "distilled or drunk as is." msgstr "" @@ -19306,8 +19508,8 @@ msgstr[0] "生肺片" msgid "" "A portion of lung from an animal. It's spongy and pink, and spoils very " "quickly. It can be a delicacy if properly prepared - but if improperly " -"prepared, it's a chewy lump of flavourless connective tissue." -msgstr "一塊海綿狀、粉紅色的動物肺,腐敗的非常快。如果處理得當,將是一道珍饈;反之,則僅僅是耐嚼而無味的結締組織團塊。" +"prepared, it's a chewy lump of flavorless connective tissue." +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "cooked piece of lung" @@ -19317,10 +19519,10 @@ msgstr[0] "煮熟的肺片" #. ~ Description for cooked piece of lung #: lang/json/COMESTIBLE_from_json.py msgid "" -" Prepared in this way, it's a chewy grayish lump of flavourless connective " +" Prepared in this way, it's a chewy grayish lump of flavorless connective " "tissue. It doesn't look any tastier than it did raw, but the parasites are " "all cooked out." -msgstr "耐嚼的灰色塊狀無味結締組織。它看起來並不比生吃更美味,但至少寄生蟲都死光了。" +msgstr "" #: lang/json/COMESTIBLE_from_json.py msgid "raw liver" @@ -24540,7 +24742,7 @@ msgstr[0] "" #. ~ Description for handful of junipers #: lang/json/COMESTIBLE_from_json.py msgid "" -"Junipers, for making gin and earthy flavours. Spicy, tastes similar to " +"Junipers, for making gin and earthy flavors. Spicy, tastes similar to " "rosemary." msgstr "" @@ -28874,7 +29076,7 @@ msgstr "外科醫生警告: 吸煙引致肺癌、心臟病、肺氣腫, 更有 #: lang/json/CONTAINER_from_json.py msgid "small cardboard box" msgid_plural "small cardboard boxes" -msgstr[0] "" +msgstr[0] "小型紙盒" #. ~ Description for small cardboard box #: lang/json/CONTAINER_from_json.py @@ -29403,6 +29605,26 @@ msgstr[0] "塑膠碗" msgid "A plastic bowl with a convenient sealing lid. Holds 750 ml of liquid." msgstr "" +#: lang/json/CONTAINER_from_json.py +msgid "steel bottle" +msgid_plural "steel bottles" +msgstr[0] "鋼瓶" + +#. ~ Description for steel bottle +#: lang/json/CONTAINER_from_json.py +msgid "A stainless steel water bottle, holds 750ml of liquid." +msgstr "一個不銹鋼水瓶, 能裝入 750 毫升的液體。" + +#: lang/json/CONTAINER_from_json.py +msgid "foldable plastic bottle" +msgid_plural "foldable plastic bottles" +msgstr[0] "折疊式塑膠瓶" + +#. ~ Description for foldable plastic bottle +#: lang/json/CONTAINER_from_json.py +msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." +msgstr "一個便於存放的軟性塑膠瓶, 能裝入 500 毫升的液體。" + #: lang/json/CONTAINER_from_json.py msgid "small metal tank" msgid_plural "small metal tanks" @@ -29447,16 +29669,6 @@ msgid "" " for maximum yield. It can be crafted with various seeds to plant them." msgstr "用於種植植物的小盆,使其保持在舒適環境以獲得最大產量。它可以種植各種種子。" -#: lang/json/CONTAINER_from_json.py -msgid "steel bottle" -msgid_plural "steel bottles" -msgstr[0] "鋼瓶" - -#. ~ Description for steel bottle -#: lang/json/CONTAINER_from_json.py -msgid "A stainless steel water bottle, holds 750ml of liquid." -msgstr "一個不銹鋼水瓶, 能裝入 750 毫升的液體。" - #: lang/json/CONTAINER_from_json.py msgid "aluminum foil wrap" msgid_plural "aluminum foil wraps" @@ -29467,16 +29679,6 @@ msgstr[0] "鋁箔紙" msgid "A half crumpled sheet of aluminum foil, used for cooking and baking." msgstr "皺巴巴的鋁箔片, 用於烹飪和烘焙。" -#: lang/json/CONTAINER_from_json.py -msgid "foldable plastic bottle" -msgid_plural "foldable plastic bottles" -msgstr[0] "折疊式塑膠瓶" - -#. ~ Description for foldable plastic bottle -#: lang/json/CONTAINER_from_json.py -msgid "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid." -msgstr "一個便於存放的軟性塑膠瓶, 能裝入 500 毫升的液體。" - #: lang/json/CONTAINER_from_json.py msgid "wooden canteen" msgid_plural "wooden canteens" @@ -30033,6 +30235,10 @@ msgstr[0] "屍體" msgid "A dead body." msgstr "一個屍體。" +#: lang/json/GENERIC_from_json.py +msgid "animal" +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "nearby fire" msgstr "靠近火源" @@ -30068,8 +30274,10 @@ msgstr[0] "枯萎的植物" #. ~ Description for withered plant #: lang/json/GENERIC_from_json.py -msgid "A dead plant. Good for starting fires." -msgstr "枯死的植物, 可幫助生火。" +msgid "" +"A dead plant. Good for starting fires or making a pile of leaves to sleep " +"on." +msgstr "" #: lang/json/GENERIC_from_json.py msgid "fur pelt" @@ -35723,6 +35931,16 @@ msgstr[0] ".45 ACP 彈殼" msgid "An empty casing from a .45 ACP round." msgstr "一個空的 .45 ACP 子彈殼。" +#: lang/json/GENERIC_from_json.py +msgid ".45-70 casing" +msgid_plural ".45-70 casings" +msgstr[0] "" + +#. ~ Description for .45-70 casing +#: lang/json/GENERIC_from_json.py +msgid "An empty casing from a .45-70 Government round." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "4.6x30mm casing" msgid_plural "4.6x30mm casings" @@ -35906,6 +36124,18 @@ msgid "" msgstr "" "自由商會信用票也被稱為“C票”或“商票”,是基於舊美鈔的貨幣。五十美元或更大幣值的鈔票擁有復雜的設計,並且由自由商會的財務主管簽署。這上面說,這可以與難民中心的自由商會換取食物,水和其他服務。" +#: lang/json/GENERIC_from_json.py +msgid "Hub 01 Gold Coin" +msgid_plural "Hub 01 Gold Coins" +msgstr[0] "" + +#. ~ Description for Hub 01 Gold Coin +#: lang/json/GENERIC_from_json.py +msgid "" +"This is a small but surprisingly heavy gold coin. One side is etched with " +"circuitry and the other side reads 'Hub 01 exchange currency'." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "FlatCoin" msgid_plural "FlatCoins" @@ -36845,6 +37075,16 @@ msgid "" "string." msgstr "臨時拼湊而成的刺刀, 僅僅是一根纏上繩子的尖刺。" +#: lang/json/GENERIC_from_json.py +msgid "stone spear" +msgid_plural "stone spears" +msgstr[0] "石矛" + +#. ~ Description for stone spear +#: lang/json/GENERIC_from_json.py +msgid "A stout wooden pole with a sharp stone spearhead." +msgstr "一根有著尖石槍頭的結實木棒。" + #: lang/json/GENERIC_from_json.py msgid "aluminum ingot" msgid_plural "aluminum ingots" @@ -36941,6 +37181,19 @@ msgid "" "might have to cut it to size before doing smaller projects." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "mess tin" +msgid_plural "mess tins" +msgstr[0] "軍用飯盒" + +#. ~ Description for mess tin +#: lang/json/GENERIC_from_json.py +msgid "" +"A compact military-style pan and tray, designed for heating food over a fire" +" or portable stove. It is shallower than a proper pot or pan, and lacks the" +" integrated heating elements modern mess kits have." +msgstr "一套簡潔精巧具軍事風格的平鍋和盤子, 專為在火堆或便攜式爐子上加熱食物。它比一般的鍋子來得淺, 且缺乏野炊用具組常有的集成加熱元件。" + #: lang/json/GENERIC_from_json.py msgid "radio car box" msgid_plural "radio car boxes" @@ -39352,6 +39605,28 @@ msgid "" "can punch and defend yourself with it in melee combat." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "vicious tentacle whip" +msgid_plural "vicious tentacle whips" +msgstr[0] "" + +#. ~ Description for vicious tentacle whip +#: lang/json/GENERIC_from_json.py +msgid "" +"A long, writhing, tentacle covered in sharp bonelike blades and spikey " +"protrusions." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "Wicked Bonespear" +msgid_plural "Wicked Bonespears" +msgstr[0] "" + +#. ~ Description for Wicked Bonespear +#: lang/json/GENERIC_from_json.py +msgid "This is a wicked spear/halberd hybrid entirely created of bone." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "A Technomancer's Guide to Debugging C:DDA" msgid_plural "A Technomancer's Guide to Debugging C:DDAs" @@ -39467,6 +39742,26 @@ msgstr[0] "" msgid "A small book, containing spells created by a novice magician." msgstr "" +#: lang/json/GENERIC_from_json.py +msgid "The Tome of Flesh" +msgid_plural "The Tome of Fleshs" +msgstr[0] "" + +#. ~ Description for The Tome of Flesh +#: lang/json/GENERIC_from_json.py +msgid "A small tome, seemingly covered in tanned human skin." +msgstr "" + +#: lang/json/GENERIC_from_json.py +msgid "The Book of Trees" +msgid_plural "The Book of Treess" +msgstr[0] "" + +#. ~ Description for The Book of Trees +#: lang/json/GENERIC_from_json.py +msgid "A bark covered book." +msgstr "" + #: lang/json/GENERIC_from_json.py msgid "The Medieval Warrior" msgid_plural "The Medieval Warrior" @@ -40001,29 +40296,6 @@ msgid "integral EMP projector" msgid_plural "integral EMP projectors" msgstr[0] "內置電磁脈衝發射器" -#: lang/json/GENERIC_from_json.py -msgid "stone spear" -msgid_plural "stone spears" -msgstr[0] "石矛" - -#. ~ Description for stone spear -#: lang/json/GENERIC_from_json.py -msgid "A stout wooden pole with a sharp stone spearhead." -msgstr "一根有著尖石槍頭的結實木棒。" - -#: lang/json/GENERIC_from_json.py -msgid "mess tin" -msgid_plural "mess tins" -msgstr[0] "軍用飯盒" - -#. ~ Description for mess tin -#: lang/json/GENERIC_from_json.py -msgid "" -"A compact military-style pan and tray, designed for heating food over a fire" -" or portable stove. It is shallower than a proper pot or pan, and lacks the" -" integrated heating elements modern mess kits have." -msgstr "一套簡潔精巧具軍事風格的平鍋和盤子, 專為在火堆或便攜式爐子上加熱食物。它比一般的鍋子來得淺, 且缺乏野炊用具組常有的集成加熱元件。" - #: lang/json/GENERIC_from_json.py msgid "makeshift pot" msgid_plural "makeshift pots" @@ -43820,6 +44092,17 @@ msgstr "擴充真實槍械" msgid "Adds more overlapping ammo types and more real-world firearms." msgstr "加入更多重疊的彈藥類型和更多的現實世界槍械。" +#: lang/json/MOD_INFO_from_json.py +msgid "sees-player icon, HitButton_iso" +msgstr "" + +#. ~ Description for sees-player icon, HitButton_iso +#: lang/json/MOD_INFO_from_json.py +msgid "" +"Adds indicator icon if a creature sees the player. Designed for the " +"HitButton isometric tileset." +msgstr "" + #: lang/json/MOD_INFO_from_json.py msgid "sees-player icon, +attitude" msgstr "" @@ -43922,9 +44205,9 @@ msgstr "疤面殭屍" #. ~ Description for scarred zombie #: lang/json/MONSTER_from_json.py msgid "" -"A deformed human body, its skin has been transformed into one thick, " -"calloused envelope of scar tissue." -msgstr "一個畸形的人類身體, 其皮膚已經轉變成類似於傷疤的厚厚組織。" +"A deformed human body, its skin transformed into one thick, calloused " +"envelope of scar tissue." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "blank body" @@ -44171,9 +44454,9 @@ msgstr "幽靈" #. ~ Description for wraith #: lang/json/MONSTER_from_json.py msgid "" -"A gigantic shadow, chaotically changing in shape and volume , two piercing " +"A gigantic shadow, chaotically changing in shape and volume. Two piercing " "orbs of light dominate what can only be described as its head." -msgstr "一個巨大的陰影, 毫無規則的變換形狀與體積, 從陰影中透出兩道光, 大概就是他的頭吧。" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "dementia" @@ -44229,8 +44512,8 @@ msgstr "腐爛犬屍" #: lang/json/MONSTER_from_json.py msgid "" "Acrid smell accompanies this corpse of canine. Its whole body is covered in" -" chains of pulsing cysts and slime dribbling ulcers." -msgstr "刺鼻的氣味籠罩著這具犬類腐屍。它全身都佈滿了脈動的囊腫, 從中滴下粘稠的潰瘍膿汁。" +" chains of pulsing cysts and slime-dribbling ulcers." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "eyebot" @@ -44239,9 +44522,12 @@ msgstr "眼球機器人" #. ~ Description for eyebot #: lang/json/MONSTER_from_json.py msgid "" -"A fusion-driven UAV largely comprised of a high-resolution camera lens and a" -" speaker, this spheroid robot hovers above the ground, documenting the " -"carnage and mayhem around it." +"A quadcopter drone largely comprised of a high-resolution camera lens and a " +"speaker, this robot hovers above the ground, documenting the carnage and " +"mayhem around it. While it is no longer able to report to a central " +"authority, it's likely that some of its automated alert systems are still " +"functional, given that the thing seems to have an operational charging " +"station somewhere." msgstr "" #: lang/json/MONSTER_from_json.py @@ -44947,9 +45233,9 @@ msgstr "殭屍" #. ~ Description for zombie #: lang/json/MONSTER_from_json.py msgid "" -"A human body, swaying as it moves, an unstoppable rage is visible in its " -"oily black eyes." -msgstr "一個人的軀體, 搖搖晃晃的移動, 從他黑色的眼睛看得出他無法阻擋的憤怒。" +"A human body, swaying as it moves, an unstoppable rage visible in its oily " +"black eyes." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "acidic zombie" @@ -45794,9 +46080,9 @@ msgstr "電磁脈衝手榴彈無人機" #. ~ Description for EMP hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have an EMP " -"grenade inside." -msgstr "一架自殺式無人機, 這架拳頭大小的機器人裡面似乎有一顆電磁脈衝手榴彈。" +"An automated kamikaze drone, this small quadcopter robot appears to have an " +"EMP grenade inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "C-4 hack" @@ -45805,9 +46091,9 @@ msgstr "C-4 無人機" #. ~ Description for C-4 hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have some C-4 " -"inside." -msgstr "一架自殺式無人機, 這架拳頭大小的機器人裡面似乎有一些C-4。" +"An automated kamikaze drone, this small quadcopter robot appears to have " +"some C-4 inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "flashbang hack" @@ -45816,9 +46102,9 @@ msgstr "閃光彈無人機" #. ~ Description for flashbang hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a " +"An automated kamikaze drone, this small quadcopter robot appears to have a " "flashbang inside." -msgstr "一架自殺式無人機, 這架拳頭大小的機器人裡面似乎有一顆閃光彈。" +msgstr "" #: lang/json/MONSTER_from_json.py msgid "tear gas hack" @@ -45827,9 +46113,9 @@ msgstr "催涙彈無人機" #. ~ Description for tear gas hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a tear " -"gas canister inside." -msgstr "一架自殺式無人機, 這架拳頭大小的機器人裡面似乎有一顆催淚瓦斯彈。" +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"tear gas canister inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "grenade hack" @@ -45838,9 +46124,9 @@ msgstr "手榴彈無人機" #. ~ Description for grenade hack #: lang/json/MONSTER_from_json.py msgid "" -"An automated kamikaze drone, this fist-sized robot appears to have a grenade" -" inside." -msgstr "一架自殺式無人機, 這架拳頭大小的機器人裡面似乎有一顆手榴彈。" +"An automated kamikaze drone, this small quadcopter robot appears to have a " +"grenade inside." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "manhack" @@ -45849,9 +46135,9 @@ msgstr "鋸鳥" #. ~ Description for manhack #: lang/json/MONSTER_from_json.py msgid "" -"An automated anti-personnel drone, a fist-sized robot surrounded by whirring" -" blades." -msgstr "反人員自動飛行器, 一種拳頭大小的機器人, 身上覆蓋著旋轉的刀片。" +"An automated anti-personnel drone, a small quadcopter robot surrounded by " +"whirring blades." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "mininuke hack" @@ -45860,9 +46146,9 @@ msgstr "迷你核彈無人機" #. ~ Description for mininuke hack #: lang/json/MONSTER_from_json.py msgid "" -"Many times as large as a normal manhack, this flying drone appears to have a" -" mininuke inside. If this is targeting you... Run." -msgstr "很多時候像正常人一樣大,這架飛行的無人機似乎裡面有一個迷你核彈。如果這在瞄準你...快跑。" +"Many times as large as a normal manhack, this flying quadcopter drone " +"appears to have a mininuke inside. If this is targeting you... Run." +msgstr "" #: lang/json/MONSTER_from_json.py msgid "tiny fish" @@ -49987,6 +50273,61 @@ msgstr "" msgid "Evens out damage among your limbs." msgstr "" +#: lang/json/SPELL_from_json.py +msgid "Vicious Tentacle" +msgstr "" + +#. ~ Description for Vicious Tentacle +#: lang/json/SPELL_from_json.py +msgid "" +"This spell extrudes a long nasty whiplike tentacle of sharp bones and oozing" +" acid from your body, it has a long reach attack and vicious damage." +msgstr "" + +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Grotesque Enhancement" +msgstr "" + +#. ~ Description for Grotesque Enhancement +#: lang/json/SPELL_from_json.py +msgid "" +"A spell that warps your body in alien ways to increase your physical " +"abilities and strength." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Acidic Spray" +msgstr "" + +#. ~ Description for Acidic Spray +#: lang/json/SPELL_from_json.py +msgid "" +"When cast, the mage opens his mouth and sprays acid in a wide cone to " +"dissolve his foes into goo. Just imagine what he'll do with the goo." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Flesh Pouch" +msgstr "" + +#. ~ Description for Flesh Pouch +#: lang/json/SPELL_from_json.py +msgid "" +"This spell grows a large pouch out of your skin on your back, allowing you " +"to store your gear in it." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Conjure Bonespear" +msgstr "" + +#. ~ Description for Conjure Bonespear +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a long shaft of bone with a wicked point and blades along" +" its length." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Megablast" msgstr "" @@ -50089,6 +50430,50 @@ msgstr "" msgid "Adds an effect to the target" msgstr "" +#: lang/json/SPELL_from_json.py lang/json/effects_from_json.py +msgid "Vegetative Grasp" +msgstr "" + +#. ~ Description for Vegetative Grasp +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots and vines to burst forth from the ground and grab " +"your foes, slowing them and doing a small amount of damage as they dig in." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Root Strike" +msgstr "" + +#. ~ Description for Root Strike +#: lang/json/SPELL_from_json.py +msgid "" +"This spell causes roots to spear out the ground and stab into your foes in " +"an arc, impaling them." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Wooden Shaft" +msgstr "" + +#. ~ Description for Wooden Shaft +#: lang/json/SPELL_from_json.py +msgid "" +"This spell creates a projectile of hardwood that shoots forth from the " +"caster's hand at high speed to stab into an enemy." +msgstr "" + +#: lang/json/SPELL_from_json.py +msgid "Nature's Bow" +msgstr "" + +#. ~ Description for Nature's Bow +#: lang/json/SPELL_from_json.py +msgid "" +"This spell conjures a magical wooden recurve bow that fires endless arrows " +"for as long as it lasts." +msgstr "" + #: lang/json/SPELL_from_json.py msgid "Stonefist" msgstr "" @@ -52609,6 +52994,18 @@ msgid "" "EMP field that damages robots and drains bionic energy." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "riding saddle" +msgid_plural "riding saddles" +msgstr[0] "" + +#. ~ Description for riding saddle +#: lang/json/TOOL_from_json.py +msgid "" +"A saddle that can be placed on a tamed animal that is capable of being " +"ridden." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "active EMP grenade" msgid_plural "active EMP grenades" @@ -56533,8 +56930,8 @@ msgstr "你點燃了鋼管炸彈的引信。" #: lang/json/TOOL_from_json.py msgid "" "This is a section of a pipe filled with explosive materials. Use this item " -"to light the fuse, which gives you three turns to get away from it before it" -" detonates. You'll need a lighter or some matches to use it." +"to light the fuse, which gives you five turns to get away from it before it " +"detonates. You'll need a lighter or some matches to use it." msgstr "" #: lang/json/TOOL_from_json.py @@ -57292,9 +57689,9 @@ msgstr[0] "" #. ~ Description for homemade halfpike #: lang/json/TOOL_from_json.py msgid "" -"A short do-it-yourself spear made of a smooth wooden shaft with a shaped " -"metal shape seated and bound into place at its tip. Its functional grip and" -" decent construction makes it a usable, if not effective, weapon." +"A short do-it-yourself spear made out of a smooth wooden shaft with a metal " +"spike seated and bound into place at its tip. Its functional grip and " +"decent construction makes it a usable, if not effective, weapon." msgstr "" #: lang/json/TOOL_from_json.py @@ -58453,6 +58850,31 @@ msgid "" "supplies." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "stone hand axe" +msgid_plural "stone hand axes" +msgstr[0] "" + +#. ~ Description for stone hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a broad piece of sharpened stone, with enough left untouched to hold" +" safely. The Swiss Army knife of the lower paleolithic." +msgstr "" + +#: lang/json/TOOL_from_json.py +msgid "metal hand axe" +msgid_plural "metal hand axes" +msgstr[0] "" + +#. ~ Description for metal hand axe +#: lang/json/TOOL_from_json.py +msgid "" +"This is a chunk of steel with one edge hammered down to something resembling" +" a cutting edge. It works passably well as an axe but really can't compare " +"to a proper axe." +msgstr "" + #: lang/json/TOOL_from_json.py lang/json/vehicle_part_from_json.py msgid "military black box" msgid_plural "military black boxes" @@ -58595,6 +59017,18 @@ msgid "" "reinforce plastic items." msgstr "這是一個塑膠塊, 能用於製造、修理或強化塑膠製成的物品。" +#: lang/json/TOOL_from_json.py +msgid "hexamine stove" +msgid_plural "hexamine stoves" +msgstr[0] "烏洛托品爐" + +#. ~ Description for hexamine stove +#: lang/json/TOOL_from_json.py +msgid "" +"Known as an Esbit stove, this is a lightweight, folding stove designed to " +"use small hexamine tablets for cooking." +msgstr "被稱為 Esbit 爐, 這是一種輕量的折疊式煮食爐, 使用小烏洛托品片作燃料。" + #: lang/json/TOOL_from_json.py lang/json/furniture_from_json.py msgid "brazier" msgid_plural "braziers" @@ -58718,6 +59152,18 @@ msgid "" "used as a comfortable sleeping place. It's rolled and ready for carrying." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "flint and steel" +msgid_plural "sets of flint and steel" +msgstr[0] "一套打火石" + +#. ~ Description for flint and steel +#: lang/json/TOOL_from_json.py +msgid "" +"This is a magnesium bar and a carbon steel striker. Use it to spark a " +"flame." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "electric lantern (off)" msgid_plural "electric lanterns (off)" @@ -59714,6 +60160,18 @@ msgid "" "Kelvinist could cast them more efficiently, though." msgstr "" +#: lang/json/TOOL_from_json.py +msgid "wand of magic missiles" +msgid_plural "wand of magic missiless" +msgstr[0] "" + +#. ~ Description for wand of magic missiles +#: lang/json/TOOL_from_json.py +msgid "" +"A classic, this wand shoots magic missiles without fail. A more skilled " +"Magus could cast them more efficiently, though." +msgstr "" + #: lang/json/TOOL_from_json.py msgid "Dusk" msgid_plural "Dusks" @@ -60064,18 +60522,6 @@ msgid "" " 9mm ammo." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "flint and steel" -msgid_plural "sets of flint and steel" -msgstr[0] "一套打火石" - -#. ~ Description for flint and steel -#: lang/json/TOOL_from_json.py -msgid "" -"This is a carefully-selected piece of flint and a carbon steel fire starter." -" Use it to spark a flame." -msgstr "這是一塊精心挑選的燧石和一個碳化鋼點火器。使用它來點燃火種。" - #: lang/json/TOOL_from_json.py msgid "ember carrier" msgid_plural "ember carriers" @@ -60112,18 +60558,6 @@ msgid "" "used to start a campfire." msgstr "" -#: lang/json/TOOL_from_json.py -msgid "hand axe" -msgid_plural "hand axes" -msgstr[0] "手斧" - -#. ~ Description for hand axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a broad piece of sharpened stone, with enough left untouched to hold" -" safely. The Swiss Army knife of the lower paleolithic." -msgstr "" - #: lang/json/TOOL_from_json.py msgid "small batch of curdling milk" msgid_plural "small batches of curdling milk" @@ -60176,30 +60610,6 @@ msgid "" "become a crude form of cheese, having had vinegar and natural rennet added." msgstr "一個密封的大皮製水袋, 裝滿了牛奶。牛奶添加了醋和天然凝乳酶, 正在轉化成一種原始的起司。" -#: lang/json/TOOL_from_json.py -msgid "hexamine stove" -msgid_plural "hexamine stoves" -msgstr[0] "烏洛托品爐" - -#. ~ Description for hexamine stove -#: lang/json/TOOL_from_json.py -msgid "" -"Known as an Esbit stove, this is a lightweight, folding stove designed to " -"use small hexamine tablets for cooking." -msgstr "被稱為 Esbit 爐, 這是一種輕量的折疊式煮食爐, 使用小烏洛托品片作燃料。" - -#: lang/json/TOOL_from_json.py -msgid "makeshift axe" -msgid_plural "makeshift axes" -msgstr[0] "粗製斧頭" - -#. ~ Description for makeshift axe -#: lang/json/TOOL_from_json.py -msgid "" -"This is a sharpened chunk of steel affixed to a stick. It works passably " -"well as an axe but really can't compare to a proper axe." -msgstr "一把綁著鋒利鋼塊的木棍, 讓它有類似斧頭的功能, 但與真正的斧頭還差的遠。" - #: lang/json/TOOL_from_json.py msgid "makeshift shovel" msgid_plural "makeshift shovels" @@ -61266,6 +61676,17 @@ msgid "" "of coma, awaiting your orders. Use this item to wake up the minion." msgstr "只屬於你的不死奴僕, 有一顆黏球怪控制了它的身體, 現在正處於昏迷狀態, 你現在可以叫醒它。" +#: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py +msgid "yoke and harness" +msgstr "" + +#. ~ Description for yoke and harness +#: lang/json/WHEEL_from_json.py +msgid "" +"A bar and harness to attach a creature to a wheeled vehicle, they then " +"should be able to pull it." +msgstr "" + #: lang/json/WHEEL_from_json.py lang/json/vehicle_part_from_json.py msgid "wheel" msgstr "輪胎" @@ -61589,303 +62010,303 @@ msgid "" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop reloading?" -msgstr "停止裝填?" - -#: lang/json/activity_type_from_json.py -msgid "Stop reading?" -msgstr "停止閱讀?" - -#: lang/json/activity_type_from_json.py -msgid "Stop playing?" -msgstr "停止播放?" - -#: lang/json/activity_type_from_json.py -msgid "Stop waiting?" -msgstr "停止等待?" - -#: lang/json/activity_type_from_json.py -msgid "Stop crafting?" -msgstr "停止製作?" - -#: lang/json/activity_type_from_json.py -msgid "Stop disassembly?" -msgstr "停止拆解?" - -#: lang/json/activity_type_from_json.py -msgid "Stop butchering?" -msgstr "停止屠宰?" - -#: lang/json/activity_type_from_json.py -msgid "Stop field dressing?" -msgstr "停止去除臟器?" - -#: lang/json/activity_type_from_json.py -msgid "Stop skinning?" +msgid "reloading" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop quartering?" -msgstr "停止四等分?" - -#: lang/json/activity_type_from_json.py -msgid "Stop dismembering?" +msgid "reading" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dissecting?" -msgstr "停止解剖?" - -#: lang/json/activity_type_from_json.py -msgid "Stop salvaging?" -msgstr "停止回收?" - -#: lang/json/activity_type_from_json.py -msgid "Stop foraging?" -msgstr "停止採集?" - -#: lang/json/activity_type_from_json.py -msgid "Stop construction?" -msgstr "停止建造?" +msgid "playing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the vehicle?" -msgstr "停止與車輛的互動?" +msgid "waiting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop training?" -msgstr "停止訓練?" +msgid "crafting" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop socializing?" +msgid "disassembly" msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop using first aid?" -msgstr "停止使用急救箱?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "butchering" +msgstr "屠宰" #: lang/json/activity_type_from_json.py -msgid "Stop fishing?" -msgstr "停止釣魚?" +msgid "field dressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mining?" -msgstr "停止採礦?" +msgid "skinning" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop burrowing?" -msgstr "停止挖洞?" +msgid "quartering" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop smashing?" -msgstr "停止砸爛?" +msgid "dismembering" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cranking?" +msgid "dissecting" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop de-stressing?" -msgstr "停止紓壓?" +msgid "salvaging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting tissues?" -msgstr "停止切割組織?" +msgid "foraging" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop dropping?" -msgstr "停止丟棄?" +msgid "construction" +msgstr "建設" #: lang/json/activity_type_from_json.py -msgid "Stop stashing?" -msgstr "停止存放?" +msgid "interacting with the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop picking up?" -msgstr "停止撿取?" +msgid "training" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop moving items?" -msgstr "停止移動物品?" +msgid "socializing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop sorting out the loot?" -msgstr "停止整理物資?" +msgid "using first aid" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop tilling the farm plot?" -msgstr "停止耕地?" +msgid "fishing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop planting seeds?" -msgstr "停止播種?" +msgid "mining" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop harvesting plots?" +msgid "burrowing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fertilizing plots?" +msgid "smashing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with inventory?" -msgstr "停止與物品的互動?" +msgid "cranking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop fiddling with your clothes?" -msgstr "停止擺弄你的衣服?" +msgid "de-stressing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop lighting the fire?" -msgstr "停止生火?" +msgid "cutting tissues" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop working the winch?" -msgstr "停止操作絞盤?" +msgid "dropping" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling the container?" -msgstr "停止裝填容器?" +msgid "stashing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hotwiring the vehicle?" -msgstr "停止短接發動車輛?" +msgid "picking up" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop aiming?" -msgstr "停止瞄準?" +msgid "moving items" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the ATM?" -msgstr "停止使用提款機?" +msgid "sorting out the loot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to start the vehicle?" -msgstr "停止嘗試啟動車輛?" +msgid "tilling the farm plot" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop welding?" -msgstr "停止焊接?" +msgid "planting seeds" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cracking?" -msgstr "停止撬鎖?" +msgid "harvesting plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop repairing?" -msgstr "停止修理?" +msgid "fertilizing plots" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop mending?" -msgstr "停止縫補?" +msgid "interacting with inventory" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying gun?" -msgstr "停止調校槍械?" +msgid "fiddling with your clothes" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop modifying tool?" -msgstr "停止調校工具?" +msgid "lighting the fire" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop interacting with the NPC?" -msgstr "停止與 NPC 的互動?" +msgid "working the winch" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop clearing that rubble?" -msgstr "停止清理瓦礫?" +msgid "filling the container" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop meditating?" -msgstr "停止冥想?" +msgid "hotwiring the vehicle" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop washing?" -msgstr "停止清洗?" +msgid "aiming" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting the metal?" -msgstr "停止裁切金屬?" +msgid "using the ATM" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop chopping down?" -msgstr "停止伐木?" +msgid "trying to start the vehicle" +msgstr "" -#: lang/json/activity_type_from_json.py -msgid "Stop drilling?" -msgstr "停止鑽洞?" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "welding" +msgstr "焊接" #: lang/json/activity_type_from_json.py -msgid "Stop digging?" -msgstr "停止挖掘?" +msgid "cracking" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop filling?" -msgstr "停止裝填?" +msgid "repairing" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop shaving?" -msgstr "停止刮鬍?" +msgid "mending" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop cutting your hair?" -msgstr "停止理髮?" +msgid "modifying gun" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop playing with your pet?" +msgid "modifying tool" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop trying to fall asleep?" -msgstr "停止嘗試入睡?" +msgid "interacting with the NPC" +msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop unloading?" +msgid "clearing that rubble" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop programming override?" +msgid "meditating" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop putting on items?" +msgid "washing" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop communing with the trees?" +msgid "cutting the metal" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop eating?" +msgid "chopping down" msgstr "" +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "drilling" +msgstr "鑽穿" + +#: lang/json/activity_type_from_json.py lang/json/tool_quality_from_json.py +msgid "digging" +msgstr "挖掘" + #: lang/json/activity_type_from_json.py -msgid "Stop consuming?" +msgid "filling" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop casting?" +msgid "shaving" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop studying?" +msgid "cutting your hair" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop drinking?" +msgid "playing with your pet" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using drugs?" +msgid "trying to fall asleep" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop using the mind splicer?" +msgid "unloading" msgstr "" #: lang/json/activity_type_from_json.py -msgid "Stop hacking console?" +msgid "programming override" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "putting on items" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "communing with the trees" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "eating" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "consuming" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "casting" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "studying" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "drinking" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "using drugs" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "using the mind splicer" +msgstr "" + +#: lang/json/activity_type_from_json.py +msgid "hacking console" msgstr "" #: lang/json/ammunition_type_from_json.py @@ -61896,6 +62317,10 @@ msgstr ".700 Nitro Express" msgid ".50 BMG" msgstr ".50 BMG" +#: lang/json/ammunition_type_from_json.py +msgid ".45-70" +msgstr "" + #: lang/json/ammunition_type_from_json.py msgid "nails" msgstr "鐵釘" @@ -63800,6 +64225,10 @@ msgstr "建造簡便床鋪" msgid "Build Straw Bed" msgstr "建造稻草床" +#: lang/json/construction_from_json.py +msgid "Build Pile of Leaves" +msgstr "" + #: lang/json/construction_from_json.py msgid "Build Bed from Scratch" msgstr "" @@ -65026,6 +65455,26 @@ msgid "" "AI tag for when monsters are hit by player. This is a bug if you have it." msgstr "AI 用來標記怪物被玩家攻擊的狀態。如果你有這個標記, 那就是 bug。" +#: lang/json/effects_from_json.py +msgid "Ridden" +msgstr "" + +#. ~ Description of effect 'Ridden'. +#: lang/json/effects_from_json.py +msgid "AI tag for when critter is being ridden. This is a bug if you have it." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Harnessed" +msgstr "" + +#. ~ Description of effect 'Harnessed'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag for when critter is being harnessed by a vehicle. This is a bug if " +"you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Docile Monster" msgstr "馴服的怪物" @@ -65299,6 +65748,16 @@ msgstr "" msgid "AI tag used for critters wearing armor. This is a bug if you have it." msgstr "" +#: lang/json/effects_from_json.py +msgid "Has Saddle" +msgstr "" + +#. ~ Description of effect 'Has Saddle'. +#: lang/json/effects_from_json.py +msgid "" +"AI tag used for critters wearing a saddle. This is a bug if you have it." +msgstr "" + #: lang/json/effects_from_json.py msgid "Tied Up" msgstr "栓緊" @@ -65440,6 +65899,20 @@ msgstr "你很明顯地被搞得心神不寧, 很難專心注意正發生在自 msgid "The scream dazes you!" msgstr "尖叫聲使你暈眩!" +#: lang/json/effects_from_json.py +msgid "Riding" +msgstr "" + +#. ~ Description of effect 'Riding'. +#: lang/json/effects_from_json.py +msgid "You are riding an animal." +msgstr "" + +#. ~ Apply message for effect(s) 'Riding'. +#: lang/json/effects_from_json.py src/monexamine.cpp +msgid "You mount your steed." +msgstr "" + #: lang/json/effects_from_json.py msgid "On Fire" msgstr "著火" @@ -67255,6 +67728,54 @@ msgstr "" msgid "Your Frost Armor melts away." msgstr "" +#. ~ Description of effect 'Grotesque Enhancement'. +#. ~ Apply message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "" +"Your body ripples with writhing alien muscles, your limbs lengthen, and your" +" eyes glow with a faint green." +msgstr "" + +#. ~ Remove message for effect(s) 'Grotesque Enhancement'. +#: lang/json/effects_from_json.py +msgid "Your body rapidly returns to normal." +msgstr "" + +#. ~ Description of effect 'Vegetative Grasp'. +#. ~ Description of effect 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes." +msgstr "" + +#. ~ Apply message for effect(s) 'Vegetative Grasp'. +#: lang/json/effects_from_json.py +msgid "Roots and vines entangle your foes to slow them!" +msgstr "" + +#. ~ Remove message for effect(s) 'Vegetative Grasp'. +#. ~ Remove message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "The roots and vines wither up and die." +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Root Impale" +msgstr "" + +#. ~ Apply message for effect(s) 'Root Impale'. +#: lang/json/effects_from_json.py +msgid "Roots rip out from the ground and impale your enemies!" +msgstr "" + +#: lang/json/effects_from_json.py +msgid "Acidic burn" +msgstr "" + +#. ~ Description of effect 'Acidic burn'. +#: lang/json/effects_from_json.py +msgid "Burned with acid" +msgstr "" + #: lang/json/effects_from_json.py msgid "Stuck in a light snare" msgstr "被輕型繩套工具纏住" @@ -67845,6 +68366,15 @@ msgid "" msgstr "" "由流氓或強盜所組成, 當前最強大的幫派組織, 專門掠奪其他生存者, 如果你身上沒有值錢的東西, 沒關係, 他們仍然需要奴隸, 或者… 新鮮的肉。" +#: lang/json/faction_from_json.py +msgid "Mutants Bees" +msgstr "" + +#. ~ Description for Mutants Bees +#: lang/json/faction_from_json.py +msgid "Mutant bees who hate everyone." +msgstr "" + #: lang/json/faction_from_json.py msgid "God's Community" msgstr "" @@ -68052,8 +68582,7 @@ msgstr "" msgid "smash!" msgstr "碰!" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "whump." msgstr "呼。" @@ -68108,8 +68637,8 @@ msgid "" "notes for other survivors to read." msgstr "" -#: lang/json/furniture_from_json.py lang/json/furniture_from_json.py -#: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/iuse.cpp +#: lang/json/furniture_from_json.py lang/json/terrain_from_json.py +#: lang/json/terrain_from_json.py src/iuse.cpp msgid "crunch!" msgstr "匡噹!" @@ -68205,6 +68734,17 @@ msgstr "稻草床" msgid "Kinda itches when you lay on it." msgstr "" +#: lang/json/furniture_from_json.py +msgid "pile of leaves" +msgstr "" + +#. ~ Description for pile of leaves +#: lang/json/furniture_from_json.py +msgid "" +"A sizeable pile of leaves. You could sleep on it if you don't care about " +"comfort or warmth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "sink" msgstr "水槽" @@ -68675,10 +69215,20 @@ msgstr "" msgid "canvas wall" msgstr "帆布牆" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/terrain_from_json.py msgid "slap!" msgstr "啪!" +#. ~ Description for canvas wall +#: lang/json/furniture_from_json.py +msgid "A wall made of stretched, heavy-duty, waterproof cloth." +msgstr "" + #: lang/json/furniture_from_json.py msgid "canvas flap" msgstr "帆布簾" @@ -69095,6 +69645,16 @@ msgstr "" msgid "A metal shooting target in the rough shape of a human." msgstr "" +#. ~ Description for bluebell +#: lang/json/furniture_from_json.py +msgid "A common bluebell flower. Pretty." +msgstr "" + +#. ~ Description for dahlia +#: lang/json/furniture_from_json.py +msgid "A puffy flower with many tightly layered petals." +msgstr "" + #. ~ Description for datura #: lang/json/furniture_from_json.py msgid "A pretty moonflower." @@ -69112,15 +69672,32 @@ msgid "" "and... delicious?" msgstr "" +#. ~ Description for dandelion +#: lang/json/furniture_from_json.py +msgid "" +"A common weed with a yellow flower. Produces seeds that get carried on the " +"wind by thin, gray filaments." +msgstr "" + #. ~ Description for chamomile #: lang/json/furniture_from_json.py msgid "Ahh, soothing chamomile tea." msgstr "" +#. ~ Description for tulip +#: lang/json/furniture_from_json.py +msgid "A bright, colorful flower with petals forming a small cup at its top." +msgstr "" + #: lang/json/furniture_from_json.py msgid "spurge flower" msgstr "" +#. ~ Description for spurge flower +#: lang/json/furniture_from_json.py +msgid "A yellow-green flower that grows in densely packed bushes." +msgstr "" + #: lang/json/furniture_from_json.py msgid "cattails" msgstr "香蒲" @@ -69132,6 +69709,32 @@ msgid "" "edible." msgstr "" +#. ~ Description for black eyed susan +#: lang/json/furniture_from_json.py +msgid "" +"A yellow flower that has a dark ball in the middle. Sometimes known as an " +"oxe-eye daisy." +msgstr "" + +#. ~ Description for lily +#: lang/json/furniture_from_json.py +msgid "A pretty flower that comes in a variety of colors." +msgstr "" + +#. ~ Description for lotus +#: lang/json/furniture_from_json.py +msgid "" +"A lovely flower that grows on the surface of bodies of freshwater. " +"Traditionally connected with many Eastern cultures." +msgstr "" + +#. ~ Description for sunflower +#: lang/json/furniture_from_json.py +msgid "" +"A tall, wide-headed flower with a large dark center. Produces many " +"nutritious seeds." +msgstr "" + #: lang/json/furniture_from_json.py msgid "lilypad" msgstr "睡蓮" @@ -69241,6 +69844,13 @@ msgstr "" msgid "ergometer" msgstr "功率計" +#. ~ Description for ergometer +#: lang/json/furniture_from_json.py +msgid "" +"An rowing exercise machine. Without power, it can no longer help you with " +"your workout. Might have useful electronic parts in it." +msgstr "" + #: lang/json/furniture_from_json.py lang/json/furniture_from_json.py #: lang/json/terrain_from_json.py lang/json/terrain_from_json.py src/map.cpp #: src/mapdata.cpp @@ -69304,6 +69914,13 @@ msgstr "呼。" msgid "canvas floor" msgstr "帆布地板" +#. ~ Description for canvas floor +#: lang/json/furniture_from_json.py +msgid "" +"Flooring made out of stretched, waterproof cloth. Helps keep the dirt out " +"of the tent." +msgstr "" + #. ~ Description for charcoal kiln #. ~ Description for filled charcoal kiln #: lang/json/furniture_from_json.py @@ -69411,6 +70028,13 @@ msgstr "陶製碳化爐" msgid "A kiln designed to bake clay pottery and bricks." msgstr "專門用來燒製陶器和磚塊的窯。" +#. ~ Description for stepladder +#: lang/json/furniture_from_json.py +msgid "" +"A short, foldable ladder. Can help you climb to a rooftop, or maybe slow " +"something down." +msgstr "" + #: lang/json/furniture_from_json.py msgid "small boulder" msgstr "小圓石" @@ -69446,6 +70070,11 @@ msgstr "" msgid "stone slab" msgstr "石板" +#. ~ Description for stone slab +#: lang/json/furniture_from_json.py +msgid "A flat slab of heavy stone." +msgstr "" + #: lang/json/furniture_from_json.py msgid "manacles" msgstr "手銬" @@ -70280,14 +70909,21 @@ msgid "" " holding a project in your hands, but readily available." msgstr "" -#: lang/json/furniture_from_json.py -msgid "mutated cactus" -msgstr "突變仙人掌" - #: lang/json/furniture_from_json.py msgid "tatami mat" msgstr "榻榻米" +#. ~ Description for tatami mat +#: lang/json/furniture_from_json.py +msgid "" +"A tatami is a type of mat used as a flooring material in traditional " +"Japanese-style rooms." +msgstr "" + +#: lang/json/furniture_from_json.py +msgid "mutated cactus" +msgstr "突變仙人掌" + #. ~ Description for vehicle refrigerator #: lang/json/furniture_from_json.py msgid "" @@ -70567,8 +71203,7 @@ msgstr "能夠發射酸液球的槍。" msgid "auto" msgstr "自動" -#: lang/json/gun_from_json.py lang/json/gun_from_json.py -#: lang/json/gunmod_from_json.py lang/json/gunmod_from_json.py +#: lang/json/gun_from_json.py lang/json/gunmod_from_json.py msgctxt "gun_type_type" msgid "rifle" msgstr "步槍" @@ -72486,6 +73121,43 @@ msgid "" "has impressive stopping power." msgstr "蠻牛左輪手槍是一把 5 發裝左輪, 能夠發射 .454 卡蘇爾子彈。擁有非常強大的遏止力。" +#: lang/json/gun_from_json.py +msgid "Marlin 1895 SBL" +msgid_plural "Marlin 1895 SBLs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A handy but powerful lever-action rifle chambered for .45-70 Government. " +"Designed for wilderness guides for defense against large predators such as " +"grizzly bears, moose, and dinosaurs." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "Magnum Research BFR" +msgid_plural "Magnum Research BFRs" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A massive single-action revolver. While the .45-70 rifle round loses " +"significant velocity in its short pistol barrel, it still competes with " +"other large magnum handguns in terms of power." +msgstr "" + +#: lang/json/gun_from_json.py +msgid "1874 Sharps" +msgid_plural "1874 Sharps" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A reproduction of an antique single-shot .45-70 rifle once used to hunt " +"buffalo and other large game in the late 19th Century. Highly accurate and " +"powerful for the time, this one is made to handle modern smokeless " +"ammunition." +msgstr "" + #: lang/json/gun_from_json.py msgid "H&K MP7A2" msgid_plural "H&K MP7A2s" @@ -73263,6 +73935,14 @@ msgid "fusion blaster" msgid_plural "fusion blasters" msgstr[0] "核融合砲" +#: lang/json/gun_from_json.py +msgid "single shot" +msgstr "" + +#: lang/json/gun_from_json.py +msgid "triple shot" +msgstr "" + #: lang/json/gun_from_json.py msgid "laser finger" msgid_plural "laser fingers" @@ -74548,6 +75228,17 @@ msgid "" "reusable, multi-role recoilless rifle commonly used by the US military." msgstr "" +#: lang/json/gun_from_json.py +msgid "Woodbow" +msgid_plural "Woodbows" +msgstr[0] "" + +#: lang/json/gun_from_json.py +msgid "" +"A magically conjured ornate recurve bow of solid flexible wood. A matching " +"conjured wooden arrow appears when you draw the string back for firing." +msgstr "" + #: lang/json/gun_from_json.py msgid "fire lance" msgid_plural "fire lances" @@ -75781,6 +76472,21 @@ msgid "" "shooting. Increases damage output and weapon range." msgstr "" +#: lang/json/gunmod_from_json.py +msgid "Power shot" +msgid_plural "Power shots" +msgstr[0] "" + +#: lang/json/gunmod_from_json.py +msgid "" +"This is a pseudo item -- the builtin part of a fusion blaster for the " +"maximum power firing mode." +msgstr "" + +#: lang/json/gunmod_from_json.py +msgid "underbarrel" +msgstr "槍管附掛" + #: lang/json/gunmod_from_json.py msgid "brass catcher" msgid_plural "brass catchers" @@ -76040,7 +76746,7 @@ msgstr "滅音器可以減少槍械發射時所產生的聲音與火光。發射 #: lang/json/gunmod_from_json.py msgid "mp5sd integral suppressor" msgid_plural "mp5sd integral suppressors" -msgstr[0] "" +msgstr[0] "MP5SD固有滅音器" #: lang/json/gunmod_from_json.py msgid "The integrated suppressor for the mp5sd." @@ -76390,10 +77096,6 @@ msgid "" "any sort of firearm, greatly expanding its lethality." msgstr "這把手工打造的小型火焰噴射器能夠掛載於幾乎所有槍械上, 大大增加殺傷力。" -#: lang/json/gunmod_from_json.py -msgid "underbarrel" -msgstr "槍管附掛" - #: lang/json/gunmod_from_json.py msgid "bipod" msgid_plural "bipods" @@ -80415,6 +81117,10 @@ msgstr "檢視嗅覺地圖" msgid "View Temperature Map" msgstr "" +#: lang/json/keybinding_from_json.py +msgid "View Visibility Map" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Switch Sidebar Style" msgstr "切換側邊欄形式" @@ -80455,6 +81161,10 @@ msgstr "切換自動採礦" msgid "Toggle Auto Foraging" msgstr "切換自動採集" +#: lang/json/keybinding_from_json.py +msgid "Toggle Auto Pickup" +msgstr "" + #: lang/json/keybinding_from_json.py msgid "Action Menu" msgstr "動作選單" @@ -81299,16 +82009,6 @@ msgstr "離心機" msgid "Analyze blood" msgstr "分析血液" -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#. ~ Computer name -#. ~ Computer option -#: lang/json/mapgen_from_json.py -msgid "Bonesetting Treatment" -msgstr "" - #. ~ Computer name #: lang/json/mapgen_from_json.py msgid "Irradiation Facility Operation Console" @@ -84567,7 +85267,7 @@ msgid "" msgstr "" #: lang/json/mission_def_from_json.py -msgid "You look like a resourcful sort, maybe you can hack it or something." +msgid "You look like a resourceful sort, maybe you can hack it or something." msgstr "" #: lang/json/mission_def_from_json.py @@ -84773,99 +85473,237 @@ msgid "" msgstr "我會盡力向隊長匯報信號調查的最新狀況。" #: lang/json/mission_def_from_json.py -msgid "Return Field Data" +msgid "Reach Refugee Center" +msgstr "到達難民中心" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave a roll of duct tape." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"No, I said ... [*You hear a short, muffled conversation from across the " -"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" -" are likely to die, but if you complete it we will allow you limited access " -"to our resources." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring me the Force!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh man, thanks so much my friend. You won't regret it." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I didn't think so." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Watch out, he's looking for it too." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "... eh?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh this is so great, so great!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad. Guess they're eating it all." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave small cardboard boxes." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"One of our scientists recently left the lab to perform a field test on a " -"prototype robot, but failed to return, and has not been heard of since. " -"Investigate the test and return with her and the prototype. Failing that, " -"return with the data recorder that was attached to our prototype." +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em." msgstr "" #: lang/json/mission_def_from_json.py -msgid "We appreciate your help, good luck." +msgid "" +"Gotta start small right? Little ones for keeping little things safe. I " +"could use 'em. I need a bunch of 'em. Little ones, you know? Can you " +"bring me like... like... forty?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't expect our help then." +msgid "Got the little ones yet?" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"If the robot remains operational don’t try to fight it head on, because it " -"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " -"those to disable the robot." +"These ones are good, good ones. They need something to, you know, bind them" +" together. Surround them, light side, dark side. Bring me the Force!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Don't you have a job to do?" +msgid "It's all around us... but did you get it in a crude matter form?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave medium-sized cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Unfortunate only the data was salvageable, but you have our thanks for " -"returning it nonetheless." +"Ten bigger ones now please. The list doesn't lie. You've done so well." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Simply useless..." +msgid "" +"Ten bigger ones now please. The list doesn't lie. You've done so well. I " +"got a little more on the list, but we're more than half there." msgstr "" #: lang/json/mission_def_from_json.py -msgid "Steal a dead man's mind" +msgid "Any luck? Bigger ones?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I'm so happy now!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave some large plastic sheets" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"When the portal storms started, the Government issued an evacuation order " -"for critical XEDRA personnel and sent convoys to retrieve them, with our " -"head of AI research among the recalled. We recently discovered that he died" -" when the convoy transferring him was ambushed in the initial chaos, but his" -" corpse and memory bionic might remain intact enough for us to extract " -"valuable knowledge. We want you to travel to the location, make a copy of " -"his Bionic Memory Unit, and return it to us." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Remember, do extraction /exactly/ as specified, otherwise the bionic will " -"self-destruct." +"If I can set it up in here I won't need it, but they might drive me out, so " +"I guess I need some plastic just in case. I don't like it, the sandman can " +"smell through plastic, but I think the cardboard is stronger. Please bring " +"me some plastic sheets." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We're almost there, now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "They keep a lot of this stuff in hardware stores and lumber yards." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"Yes, we recognize that our request is exceptional. Return if you change " -"your mind." +"I really feel bad sending you on this one, it's dangerous. Have you found " +"anything?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Nice, this will do perfectly!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh, that's too bad." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Bring Dino Dave large cardboard boxes" msgstr "" #: lang/json/mission_def_from_json.py msgid "" -" You do know what a memory unit looks like, right? Matte gray, pill-sized, " -"right in front of the corpus callosum. We suggest a forceps through the eye" -" socket, shaking slightly, then slowly and carefully..." +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes?" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Do you have the scan?" +msgid "" +"This is the last thing I need from you. I've been collecting the other " +"parts myself, it's been easier with more cardboard around. Can you bring me" +" five more really big cardboard boxes? Five more cardboard boxes, as big as" +" it gets. I have a few already stored up, that should be all I need." msgstr "" #: lang/json/mission_def_from_json.py -msgid "You have our thanks and payment." +msgid "Yes! The home stretch!" msgstr "" #: lang/json/mission_def_from_json.py -msgid "Reach Refugee Center" -msgstr "到達難民中心" +msgid "Oh man, but we're so close!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Try looking in cargo storage areas." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Did you bring me those last few boxes?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Brilliant! You're a true hero. I'll see if I can find a place to set these" +" up now." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "No! Oh god, no, this can't be happening..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a copy of the Quran for Fatima" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I could use a bit of help to find a copy of the Quran." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I feel silly asking this, but here goes. I've never been really into " +"reading holy books and stuff like that. I usually went to the mosque on " +"Friday, and I try to pray five times a day but I hardly ever manage it. I " +"guess I'm not a very good Muslim, but with all that's happened I would " +"really love to have a copy of the Quran to read. This seems like a time to " +"get back in touch with God, you know?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thank you. I'll see if I can save up a little reward for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. Thanks for offering." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's not as common as the bible, but you should be able to find copies in " +"most libraries and bookstores. Make sure you get the translated version, I " +"can't read Arabic!" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you so much. Just having a copy to keep at hand does actually feel " +"pretty comforting. I did a few extra rounds of chores and saved the " +"proceeds for if you managed this, here you go. It's not much but I hope it " +"helps." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "What good does this do me?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"It's okay. I don't know how much comfort I'd have found in an old book " +"anyway." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Bring Jenny a motor for her compressor." @@ -84958,6 +85796,157 @@ msgid "" "guess." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Find 5 first aid kits" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"There's the doc out front helping anyone that can pay... but for us up here," +" money mostly goes to food. I could do a lot for basic cuts, bruises, and " +"common stuff if I had some supplies to help out. Could you bring me a few " +"extra first aid kits? Five would probably have enough to last us a while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Thanks so much. It's a small thing but it'd be really helpful." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "That's okay. I'm sure we'll make do somehow." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Lots of people used to have first aid kits in their bathrooms. I'm sure " +"they can't all have been looted." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. It's not much but I hope it " +"helps... these are merch, the local money, you can trade them for goods from" +" the shop." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 6 bottles of prozac for Uyen" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We could still use your help..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I probably shouldn't be prescribing things, but there's a ton of people " +"needing help with sleep in here. If you could get us some antidepressants, " +"Rhyzaea and I can probably make sure they're doled out appropriately without" +" people having to starve to pay for them. Three month's worth - about 6 " +"bottles - would last us a little while." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Prozac was really common. You can probably find it in most medicine " +"cabinets and pharmacies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thanks so much. Listen, I told some of the others what you were up to for " +"us and we pooled our cash to thank you. You've done a lot to help us out." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find a haircut kit for Vanessa" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "If I had some equipment, I could do some hairdresser work here." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I didn't think to pack my hairdressing equipment when I was evacuated. If " +"you could put together a basic hair cutting kit for me, I could do a bit of " +"styling for people around here. I'll even give you a free haircut for your " +"troubles." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Cool, thanks. It'll be good to have something useful to do, and to not be " +"staring at so many shaggy slobs." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Whatever, I'll keep twiddling my thumbs then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"I don't need too much. Scissors, a small mirror, a bit of cloth, and some " +"way to keep it all stored clean when I'm not using it, like a leather pouch " +"or something. I can get the rest of what I need from shelter supplies." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Well, this is pretty serviceable. Heck, these scissors are nice enough that" +" I could probably inexplicably make your hair longer or a different color " +"with them." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Seriously? You failed to find *scissors*? How do you tie your shoes in the" +" morning?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Find 50 3L jars" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I do have some work for you." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"You heard right. When you brought in those canning jars, it got us thinking" +" about expanding our food storage from dehydrated to include cans. We could" +" use some larger jars though for big stock items. Can you bring me 50 large" +" three liter jars? I'll pay you a Certified Note per two." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Thank you. Once we get a cottage industry set up with some of our " +"inhabitants, I'll be able to start buying these from you and other " +"scavengers in smaller lots. This should be enough to test out our " +"equipment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Oh well. I'll see if I can find another supplier, thanks." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Grocery stores, house kitchens, there's plenty of places to look." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Wow, that's a lot more jars than it sounded on paper. Thanks. Here's your " +"payment." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "I wonder where all the jars went..." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Clear Back Bay" msgstr "清除後灣區" @@ -84969,11 +85958,9 @@ msgid "" " cataclysm we ended up throwing our dead and the zombies we managed to kill " "in the sealed back bay. Our promising leader at the time even fell... he " "turned into something different. Kill all of them and make sure they won't " -"bother us again. We can't pay much but it would help us to reclaim the bay." +"bother us again. We can't pay much, besides some of our own internal money " +"which isn't good for that much yet, but it would help us to reclaim the bay." msgstr "" -"如果你真的想幫我們, 可以去把後灣區的殭屍清掉。大災變發生的第一天我們都慌慘了, " -"只好把充滿殭屍的後灣區封鎖起來。我們原本抱持著希望的領導者最後也放棄了… 甚至變得我們都認不出來。 去把它們清光, " -"讓我們不再受到威脅。我們沒辦法給你什麼, 但至少這能幫我們奪回後灣區。" #: lang/json/mission_def_from_json.py msgid "Please be careful, we don't need any more deaths." @@ -84995,8 +85982,11 @@ msgstr "他們還會令我們困擾嗎?" #: lang/json/mission_def_from_json.py msgid "" -"Thank you, having that big of a threat close to home was nerve wrecking." -msgstr "謝謝你, 在家附近有這麼大的威脅會讓人神經衰弱。" +"Thank you, having that big of a threat close to home was nerve wracking. " +"Here's some of our local certified notes, we've been paying these to our " +"workers in exchange for supplies. They're getting some value in the center " +"as a trade item, I'm afraid they're all we have to spare at the moment." +msgstr "" #: lang/json/mission_def_from_json.py msgid "Missing Caravan" @@ -85010,11 +86000,9 @@ msgid "" "give you the coordinates of their last radio message but little else. In " "either case, deal with the threat so that the scavengers can continue to " "pass through in relative safety. The best reward I can offer is a claim to " -"the supplies they were carrying." +"the supplies they were carrying, plus thirty certified notes - that's our " +"own internal money, good for trading and such." msgstr "" -"這次的任務比上次的更複雜了點, 我們最近跟常往來交易的拾荒者集團失聯了, " -"希望你能去調查。我們強烈懷疑是強盜集團幹的或是他們遇到屍潮。你能給你上次無線電失聯時的座標, 但就這樣而已。換個角度來看, 若處理掉威脅後, " -"拾荒者們就能夠繼續透過相對安全的路線來跟我們交易。我能提供給你的最好獎勵就是他們攜帶的貨物。" #: lang/json/mission_def_from_json.py msgid "Our community survives on trade, we appreciate it." @@ -85042,10 +86030,13 @@ msgstr "取得牧場創建計劃書" #: lang/json/mission_def_from_json.py msgid "" -"The new outpost that we've started could use your assistance. I need you to" -" get the foreman's prospectus before we begin to send additional refugees to" -" the farming commune. Consult with the foreman to get more detailed tasks." -msgstr "需要你幫忙支援新的哨站。我希望你可以在我們把更多難民們送到農團前跟領班拿到創建計劃書。請跟他連絡, 他會告訴你相關的細節。" +"We recently set out some skilled people to start an outpost, to secure us " +"some food supplies in a safer location. The new outpost that we've started " +"could use your assistance. I need you to get the foreman's prospectus " +"before we begin to send additional refugees to the farming commune. Consult" +" with the foreman to get more detailed tasks. We've got 50 Certified Notes " +"for you if you can do this for us." +msgstr "" #: lang/json/mission_def_from_json.py msgid "I'm sure the outpost will expand quickly with your assistance." @@ -85062,11 +86053,11 @@ msgstr "你拿到計劃書了嗎?" #: lang/json/mission_def_from_json.py msgid "" "With this we'll be able to convince others to invest in the commune. Thank " -"you." -msgstr "有這個我們就可以派人去加入工舍了, 謝謝你。" +"you, here's your money." +msgstr "" #: lang/json/mission_def_from_json.py -msgid "Find 25 Plutonium Fuel Cells" +msgid "Find 10 solar panels" msgstr "" #: lang/json/mission_def_from_json.py @@ -85074,11 +86065,9 @@ msgid "" "We are starting to build new infrastructure here and would like to get a few" " new electrical systems online... unfortunately our existing system relies " "on an array of something called RTGs. Running generators isn't a viable " -"option underground, of course. The military was using some kind of high " -"density energy batteries for experimental weaponry before the cataclysm, and" -" I'm told that we can use those for a temporary solution, and when we burn " -"through the high density part our eggheads say they might be able to reuse " -"the plutonium core to build more RTGs. It's a big job." +"option underground, of course. We have a big flat roof up top, and if we " +"had a few solar panels we could use them to top up our usage. We could pay " +"you pretty handsomely to bring us, say, ten solar panels?" msgstr "" #: lang/json/mission_def_from_json.py @@ -85086,10 +86075,7 @@ msgid "If you can do this for us our survival options would vastly increase." msgstr "如果你可以幫我們作這件事, 我們存活下去的機會就能大幅度提高。" #: lang/json/mission_def_from_json.py -msgid "" -"Can't help you much, I've never even seen one of these plutonium " -"batteries... or whatever they are, I keep getting a lecture whenever I call " -"them that." +msgid "Solar panels are pretty common on electric cars and on rooftops." msgstr "" #: lang/json/mission_def_from_json.py @@ -85099,17 +86085,19 @@ msgid "" msgstr "好了, 我知道這不算太多, 但我們能會繼續搜索下去, 感謝您的協助。" #: lang/json/mission_def_from_json.py -msgid "Find 40 Canned Food" +msgid "Find 100 canning jars" msgstr "" #: lang/json/mission_def_from_json.py msgid "" "While we've managed to secure day to day food supplies, it's very much hand " "to mouth. Our reserves would barely last a few days if something kept our " -"people locked in. We need a stockpile to avoid that. It would have to be " -"made of something that would be long lasting though, so canned food's the " -"way to go. Get us about 40 cans and we should be able to ride out anything " -"that comes our way." +"people locked in. We need a stockpile to avoid that. Thanks to our outpost" +" we have a bit of meat and vegetables coming in, but we need a better way to" +" preserve them. Some of our people know enough about food canning that if " +"we had a good stock of canning jars, we could make pickles and canned meats " +"to get us set for the winter. I'll pay you a premium rate if you can bring " +"us around a hundred jars to get us started." msgstr "" #: lang/json/mission_def_from_json.py @@ -85121,17 +86109,17 @@ msgstr "" #: lang/json/mission_def_from_json.py msgid "" "We'll hold for the moment, but I'll get an ulcer if I have to keep worrying." -" If you reconsider let me know." -msgstr "" - -#: lang/json/mission_def_from_json.py -msgid "Grocery stores, house kitchens, there's plenty of places to look." +" If you reconsider let me know." msgstr "" #: lang/json/mission_def_from_json.py msgid "" -"That's one less thing to worry about. Glad to have someone like you on our " -"side." +"That's one less thing to worry about. Glad to have someone like you on our " +"side. Here's 25 merch, and the broker will buy any further glass jars you " +"can find - at a reduced price, we can't keep up the premium rate. Actually," +" the broker was saying they had some jobs like this for you, and that it " +"might be easier to just go straight through their office if you want more " +"work." msgstr "" #: lang/json/mission_def_from_json.py @@ -85424,6 +86412,97 @@ msgid "" "when meeting with them. Thank you once again marshal." msgstr "" +#: lang/json/mission_def_from_json.py +msgid "Return Field Data" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"No, I said ... [*You hear a short, muffled conversation from across the " +"intercom*]/nWell, it seems we do have a use for you. It's dangerous and you" +" are likely to die, but if you complete it we will allow you limited access " +"to our resources." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"One of our scientists recently left the lab to perform a field test on a " +"prototype robot, but failed to return, and has not been heard of since. " +"Investigate the test and return with her and the prototype. Failing that, " +"return with the data recorder that was attached to our prototype." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "We appreciate your help, good luck." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't expect our help then." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"If the robot remains operational don’t try to fight it head on, because it " +"WILL kill you. Dr. Prado left the Hub with a handful of EMP grenades, use " +"those to disable the robot." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Don't you have a job to do?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Unfortunate only the data was salvageable, but you have our thanks for " +"returning it nonetheless." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Simply useless..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Steal a dead man's mind" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"When the portal storms started, the Government issued an evacuation order " +"for critical XEDRA personnel and sent convoys to retrieve them, with our " +"head of AI research among the recalled. We recently discovered that he died" +" when the convoy transferring him was ambushed in the initial chaos, but his" +" corpse and memory bionic might remain intact enough for us to extract " +"valuable knowledge. We want you to travel to the location, make a copy of " +"his Bionic Memory Unit, and return it to us." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Remember, do extraction /exactly/ as specified, otherwise the bionic will " +"self-destruct." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +"Yes, we recognize that our request is exceptional. Return if you change " +"your mind." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "" +" You do know what a memory unit looks like, right? Matte gray, pill-sized, " +"right in front of the corpus callosum. We suggest a forceps through the eye" +" socket, shaking slightly, then slowly and carefully..." +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "Do you have the scan?" +msgstr "" + +#: lang/json/mission_def_from_json.py +msgid "You have our thanks and payment." +msgstr "" + #: lang/json/mission_def_from_json.py msgid "Make 2 Stills" msgstr "製作 2 個蒸餾器" @@ -94369,6 +95448,168 @@ msgid "" " A powerful druid is as much a part of that world as the human one." msgstr "" +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Efficiency" +msgstr "" + +#. ~ Description for Lesser Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Efficiency" +msgstr "" + +#. ~ Description for Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Efficiency" +msgstr "" + +#. ~ Description for Greater Mana Efficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot more mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Inefficiency" +msgstr "" + +#. ~ Description for Lesser Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a little less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Inefficiency" +msgstr "" + +#. ~ Description for Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Inefficiency" +msgstr "" + +#. ~ Description for Greater Mana Inefficiency +#: lang/json/mutation_from_json.py +msgid "You are able to store a lot less mana in your body than usual." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Regeneration" +msgstr "" + +#. ~ Description for Lesser Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Regeneration" +msgstr "" + +#. ~ Description for Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Regeneration" +msgstr "" + +#. ~ Description for Greater Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much faster than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slightly slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Regeneration" +msgstr "" + +#. ~ Description for Very Poor Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Regeneration" +msgstr "" + +#. ~ Description for Abysmal Mana Regeneration +#: lang/json/mutation_from_json.py +msgid "Your natural mana regeneration is much slower than normal." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Lesser Mana Sensitivity" +msgstr "" + +#. ~ Description for Lesser Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body slightly better than normal, allowing " +"you to tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Mana Sensitivity" +msgstr "" + +#. ~ Description for Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body better than normal, allowing you to tap " +"into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Greater Mana Sensitivity" +msgstr "" + +#. ~ Description for Greater Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You can sense the mana in your body much better than normal, allowing you to" +" tap into more of your reserves." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Poor Mana Sensitivity" +msgstr "" + +#. ~ Description for Poor Mana Sensitivity +#. ~ Description for Very Poor Mana Sensitivity +#. ~ Description for Abysmal Mana Sensitivity +#: lang/json/mutation_from_json.py +msgid "" +"You have a hard time sensing the mana in your body, making less of your " +"reserves available for use." +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Very Poor Mana Sensitivity" +msgstr "" + +#: lang/json/mutation_from_json.py +msgid "Abysmal Mana Sensitivity" +msgstr "" + #. ~ Description for Melee Weapon Training #: lang/json/mutation_from_json.py msgid "" @@ -94550,7 +95791,8 @@ msgstr "" msgid "Beggar" msgstr "" -#: lang/json/npc_class_from_json.py lang/json/npc_from_json.py +#: lang/json/npc_class_from_json.py lang/json/npc_class_from_json.py +#: lang/json/npc_from_json.py lang/json/npc_from_json.py msgid "Refugee" msgstr "難民" @@ -94574,6 +95816,14 @@ msgstr "" msgid "Reading this line is a bug" msgstr "" +#: lang/json/npc_class_from_json.py +msgid "Caravaneer" +msgstr "" + +#: lang/json/npc_class_from_json.py +msgid "I'm the owner of a trade caravan." +msgstr "" + #: lang/json/npc_class_from_json.py lang/json/npc_from_json.py #: lang/json/npc_from_json.py msgid "Captive" @@ -94809,14 +96059,6 @@ msgstr "" msgid "Tester" msgstr "" -#: lang/json/npc_from_json.py -msgid "CPT" -msgstr "" - -#: lang/json/npc_from_json.py -msgid "SFC" -msgstr "" - #: lang/json/npc_from_json.py msgid "Bandit" msgstr "強盜" @@ -94833,6 +96075,14 @@ msgstr "" msgid "officer" msgstr "" +#: lang/json/npc_from_json.py +msgid "CPT" +msgstr "" + +#: lang/json/npc_from_json.py +msgid "SFC" +msgstr "" + #: lang/json/npc_from_json.py msgid "beggar" msgstr "" @@ -94881,6 +96131,10 @@ msgstr "" msgid "Draco Dune" msgstr "" +#: lang/json/npc_from_json.py +msgid "Fatima al Jadir" +msgstr "" + #: lang/json/npc_from_json.py msgid "Garry Villeneuve" msgstr "" @@ -94909,10 +96163,18 @@ msgstr "" msgid "Pablo Nunez" msgstr "" +#: lang/json/npc_from_json.py +msgid "Rhyzaea Johnny" +msgstr "" + #: lang/json/npc_from_json.py msgid "Stan Borichenko" msgstr "" +#: lang/json/npc_from_json.py +msgid "Uyen Tran" +msgstr "" + #: lang/json/npc_from_json.py msgid "Vanessa Toby" msgstr "" @@ -94941,6 +96203,10 @@ msgstr "商人" msgid "the intercom" msgstr "" +#: lang/json/npc_from_json.py +msgid "Free Merchant" +msgstr "" + #: lang/json/npc_from_json.py msgid "Barber" msgstr "理髮師" @@ -95377,10 +96643,6 @@ msgstr "小屋地下室" msgid "cabin" msgstr "小屋" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt lot" -msgstr "污泥場" - #: lang/json/overmap_terrain_from_json.py msgid "ruined cabin" msgstr "廢棄小屋" @@ -95708,6 +96970,30 @@ msgstr "" msgid "farm house roof" msgstr "" +#: lang/json/overmap_terrain_from_json.py +msgid "dirt road" +msgstr "泥土路" + +#: lang/json/overmap_terrain_from_json.py +msgid "silos" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons building" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus commons roof" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall" +msgstr "" + +#: lang/json/overmap_terrain_from_json.py +msgid "campus lecture hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "gas station" msgstr "加油站" @@ -95910,6 +97196,10 @@ msgstr "旅館地下室" msgid "motel" msgstr "汽車旅館" +#: lang/json/overmap_terrain_from_json.py +msgid "motel roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "home improvement superstore entrance" msgstr "家具裝飾大賣場入口" @@ -95962,6 +97252,10 @@ msgstr "" msgid "dollar store" msgstr "十元商店" +#: lang/json/overmap_terrain_from_json.py +msgid "dollar store roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "LAN center" msgstr "區網中心" @@ -95982,6 +97276,10 @@ msgstr "舊貨店" msgid "daycare center" msgstr "托兒所" +#: lang/json/overmap_terrain_from_json.py +msgid "daycare center roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "pet supply store" msgstr "寵物用品店" @@ -96690,6 +97988,10 @@ msgstr "停屍間" msgid "fire station" msgstr "消防局" +#: lang/json/overmap_terrain_from_json.py +msgid "fire station roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "homeless shelter" msgstr "" @@ -96870,6 +98172,10 @@ msgstr "音樂廳" msgid "gambling hall" msgstr "賭場大廳" +#: lang/json/overmap_terrain_from_json.py +msgid "gambling hall roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "strip club" msgstr "脫衣舞俱樂部" @@ -96902,6 +98208,10 @@ msgstr "健身房" msgid "dojo" msgstr "道場" +#: lang/json/overmap_terrain_from_json.py +msgid "dojo roof" +msgstr "" + #: lang/json/overmap_terrain_from_json.py msgid "private park" msgstr "" @@ -96986,10 +98296,6 @@ msgstr "公廁" msgid "roadside foodcart" msgstr "路邊攤" -#: lang/json/overmap_terrain_from_json.py -msgid "dirt road" -msgstr "泥土路" - #: lang/json/overmap_terrain_from_json.py msgid "railroad" msgstr "" @@ -98245,6 +99551,32 @@ msgid "" "at least you have a loyal friend." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Crazy Cat Dude" +msgstr "" + +#. ~ Profession (Crazy Cat Dude) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Crazy Cat Lady" +msgstr "" + +#. ~ Profession (Crazy Cat Lady) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"Everyone is dead? Well, it doesn't matter... your cats are all the friends " +"you need!" +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Police Officer" @@ -102375,6 +103707,58 @@ msgid "" "serene with the world falling down around you." msgstr "" +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (male Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Pyromaniac Kelvinist" +msgstr "" + +#. ~ Profession (female Pyromaniac Kelvinist) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"You have loved fire all of your life. You have now discovered your inner " +"fire, and want to exercise that upon the world." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_male" +msgid "Druid" +msgstr "" + +#. ~ Profession (male Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_male" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + +#: lang/json/professions_from_json.py +msgctxt "profession_female" +msgid "Druid" +msgstr "" + +#. ~ Profession (female Druid) description +#: lang/json/professions_from_json.py +msgctxt "prof_desc_female" +msgid "" +"The ancient circle of druids is gone with the cataclysm. Nature must " +"thrive." +msgstr "" + #: lang/json/professions_from_json.py msgctxt "profession_male" msgid "Brave of the King" @@ -106343,6 +107727,10 @@ msgstr "解剖某些屍體會給你生化插件。" msgid "Don't be too greedy. Loot doesn't matter if you're dead." msgstr "別太貪心,你死了的話戰利品就不再重要了。" +#: lang/json/snippet_from_json.py +msgid "The floor is too hard to sleep on? Try gathering a pile of leaves." +msgstr "" + #: lang/json/snippet_from_json.py msgid "" "You feel great! It doesn't seem like wounds could even slow you down for " @@ -110449,6 +111837,41 @@ msgstr "" "XE037 復活已達到臨界水平, 迅速壓倒現有的軍事和地區警方的戰鬥力。每一個在現場的團隊都遇到了敵對樣本, " "部分團體甚至已經失去聯絡。薩維奇博士提出了一個戰略重新部署方案, 地點是稱為 \"避難所\" 的大型地下都市, 並將在該處繼續生產 PE062。" +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 47:\n" +"Our normal mining routine has unearthed a hollow chamber. This would not be out of the ordinary, save for the odd, perfectly vertical faultline found. This faultline has several odd concavities in it which have the more superstitious crew members alarmed; they seem to be of human origin.\n" +"ENTRY 48:\n" +"The concavities are between 10 and 20 feet tall, and run the length of the faultline. Each one is vaguely human in shape, but with the proportions of the limbs, neck and head greatly distended, all twisted and curled in on themselves." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 49:\n" +"We've stopped mining operations in this area, obviously, until archaeologists have the chance to inspect the area. This is going to set our schedule back by at least a week. This stupid artifact-preservation law has been in place for 50 years, and hasn't even been up for termination despite the fact that these mining operations are the backbone of our economy.\n" +"ENTRY 52:\n" +"Still waiting on the archaeologists. We've done a little light inspection of the faultline; our sounding equipment is insufficient to measure the depth of the concavities. The equipment is rated at 15 miles depth, but it isn't made for such narrow tunnels, so it's hard to say exactly how far back they go." +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"ENTRY 54:\n" +"I noticed a couple of the guys down in the chamber with a chisel, breaking off a piece of the sheer wall. I'm looking the other way. It's not like the eggheads are going to notice a little piece missing. Fuck em.\n" +"ENTRY 55:\n" +"Well, the archaeologists are down there now with a couple of the boys as guides. They're hardly Indiana Jones types; I doubt they been below 20 feet. I hate taking guys off assignment just to babysit the scientists, but if they get hurt we'll be shut down for god knows how long.\n" +"ENTRY 58:\n" +"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I know that's sort of a big deal, but come on, these guys can't handle it?" +msgstr "" + +#: lang/json/snippet_from_json.py +msgid "" +"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER IMPERATIVE 2:07B.\n" +"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM.\n" +"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS SUBJECTS.\n" +"QUALITY OF FAULTLINE NOT COMPROMISED.\n" +"INITIATING STANDARD TREMOR TEST..." +msgstr "" + #: lang/json/snippet_from_json.py msgid "This is a test of the sign snippet system" msgstr "這是個標誌摘錄系統的測試" @@ -111335,8 +112758,8 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"Police brutality lives on it seems. It's just more mechnical now, with all " -"the cops dead and cop robots roaming free on the loose. If you'll get " +"Police brutality lives on it seems. It's just more mechanical now, with all" +" the cops dead and cop robots roaming free on the loose. If you'll get " "arrested who will give you justice? A zombie judge? Will they put you in a" " zombie prison? No thanks, I'll pass." msgstr "" @@ -111471,7 +112894,7 @@ msgstr "" #: lang/json/snippet_from_json.py msgid "" -"If you're into electronics, you may try to make a noise emmiter from a " +"If you're into electronics, you may try to make a noise emitter from a " "talking doll, or something that has a speaker. Why? To distract the " "zombies, of course." msgstr "" @@ -117828,6 +119251,10 @@ msgstr "我想更了解你一點…" msgid "I want you to use this item." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Let's talk about your current activity." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hold on to this item." msgstr "" @@ -117881,11 +119308,11 @@ msgid "Change your bionic power recharge rules..." msgstr "" #: lang/json/talk_topic_from_json.py src/activity_handlers.cpp src/avatar.cpp -#: src/crafting.cpp src/game.cpp src/game.cpp src/game.cpp -#: src/handle_action.cpp src/handle_action.cpp src/handle_action.cpp -#: src/handle_liquid.cpp src/handle_liquid.cpp src/iexamine.cpp -#: src/iexamine.cpp src/iexamine.cpp src/iuse.cpp src/iuse.cpp src/iuse.cpp -#: src/iuse_actor.cpp src/iuse_actor.cpp src/monexamine.cpp src/pickup.cpp +#: src/avatar_action.cpp src/crafting.cpp src/game.cpp src/game.cpp +#: src/game.cpp src/handle_action.cpp src/handle_action.cpp +#: src/handle_liquid.cpp src/iexamine.cpp src/iexamine.cpp src/iexamine.cpp +#: src/iuse.cpp src/iuse.cpp src/iuse_actor.cpp src/iuse_actor.cpp +#: src/monexamine.cpp src/pickup.cpp src/player.cpp src/player.cpp #: src/player.cpp src/veh_interact.cpp msgid "Never mind." msgstr "沒事。" @@ -118035,6 +119462,22 @@ msgstr "" msgid "Show me what needs to be done at the camp." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I'm not doing much currently." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Carry on." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please stop your current activity." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please sort out some of these items nearby." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "*pssshht* ten-four, I'll make my way there, over." msgstr "" @@ -119127,174 +120570,6 @@ msgstr "" msgid "I'm joining no stinking cult! Take your berry and shove it!" msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "About the mission..." -msgstr "關於任務…" - -#: lang/json/talk_topic_from_json.py -msgid "About one of those missions..." -msgstr "關於那些其中之一的任務…" - -#: lang/json/talk_topic_from_json.py -msgid "Hello, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm afraid I can't talk now." -msgstr "元帥, 抱歉我現在無法跟你交談。" - -#: lang/json/talk_topic_from_json.py -msgid "I'm not in charge here, marshal." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "I'm supposed to direct all questions to my leadership, marshal." -msgstr "法警, 我想這些問題該交由我的領導回答。" - -#: lang/json/talk_topic_from_json.py -msgid "Hey, citizen... I'm not sure you belong here." -msgstr "嘿, 市民… 你不該在這裡。" - -#: lang/json/talk_topic_from_json.py -msgid "You should mind your own business, nothing to see here." -msgstr "你應該管好自己的事, 這裡沒什麼好看的。" - -#: lang/json/talk_topic_from_json.py -msgid "If you need something you'll need to talk to someone else." -msgstr "如果你想要什麼的話, 你該找別人去。" - -#: lang/json/talk_topic_from_json.py -msgid "Sir." -msgstr "先生。" - -#: lang/json/talk_topic_from_json.py -msgid "Dude, if you can hold your own you should look into enlisting." -msgstr "老兄, 如果你靠得住, 你該去報名參軍的。" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am" -msgstr "夫人" - -#: lang/json/talk_topic_from_json.py -msgid "Hey miss, don't you think it would be safer if you stuck with me?" -msgstr "嘿小姐, 難道你不覺得和我一起會更安全麼?" - -#: lang/json/talk_topic_from_json.py -msgid "Don't mind me..." -msgstr "別在意我…" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I hope you're here to assist us." -msgstr "法警, 我希望你是來幫忙的。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Sir, I don't know how the hell you got down here but if you have any sense " -"you'll get out while you can." -msgstr "先生, 我不知道你是怎麼到這裡來的。如果你還有點理智的話, 趁現在你還能離開, 趕緊走吧。" - -#: lang/json/talk_topic_from_json.py -msgid "" -"Ma'am, I don't know how the hell you got down here but if you have any sense" -" you'll get out while you can." -msgstr "女士, 我不知道你是怎麼到這裡來的。如果你還有點理智的話, 趁現在你還能離開, 趕緊走吧。" - -#: lang/json/talk_topic_from_json.py -msgid "What are you doing down here?" -msgstr "你在做什麼?" - -#: lang/json/talk_topic_from_json.py -msgid "Can you tell me about this facility?" -msgstr "你能告訴我有關這個設施?" - -#: lang/json/talk_topic_from_json.py -msgid "What do you need done?" -msgstr "你需要什麼呢?" - -#: lang/json/talk_topic_from_json.py -msgid "I've got to go..." -msgstr "我得走了…" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I'm leading what remains of my company on a mission to re-secure this " -"facility. We entered the complex with two dozen men and immediately went " -"about securing this control room. From here I dispatched my men to secure " -"vital systems located on this floor and the floors below this one. If we " -"are successful, this facility can be cleared and used as a permanent base of" -" operations in the region. Most importantly it will allow us to redirect " -"refugee traffic away from overcrowded outposts and free up more of our " -"forces to conduct recovery operations." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Seems like a decent plan..." -msgstr "似乎是個不俗的計畫…" - -#: lang/json/talk_topic_from_json.py -msgid "" -"This facility was constructed to provide a safe haven in the event of a " -"global conflict. The vault can support several thousand people for a few " -"years if all systems are operational and sufficient notification is given. " -"Unfortunately, the power system was damaged or sabotaged at some point and " -"released a single extremely lethal burst of radiation. The catastrophic " -"event lasted for several minutes and resulted in the deaths of most people " -"located on the 2nd and lower floors. Those working on this floor were able " -"to seal the access ways to the lower floors before succumbing to radiation " -"sickness. The only other thing the logs tell us is that all water pressure " -"was diverted to the lower levels." -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "Whatever they did it must have worked since we are still alive..." -msgstr "無論他們做了什麼, 都一定成功了。因為我們現在還活著…" - -#: lang/json/talk_topic_from_json.py -msgid "Marshal, I'm rather surprised to see you here." -msgstr "法警, 在這看到你令我有點驚訝。" - -#: lang/json/talk_topic_from_json.py -msgid "Sir you are not authorized to be here... you should leave." -msgstr "先生你不屬於這裡, 請你離開。" - -#: lang/json/talk_topic_from_json.py -msgid "Ma'am you are not authorized to be here... you should leave." -msgstr "小姐你不屬於這裡, 請你離開。" - -#: lang/json/talk_topic_from_json.py -msgid "[MISSION] The captain sent me to get a frequency list from you." -msgstr "[任務] 隊長派我來向你取得頻率列表。" - -#: lang/json/talk_topic_from_json.py -msgid "Do you need any help?" -msgstr "你需要幫忙嗎?" - -#: lang/json/talk_topic_from_json.py -msgid "I should be going" -msgstr "" - -#: lang/json/talk_topic_from_json.py -msgid "" -"We are securing the external communications array for this facility. I'm " -"rather restricted in what I can release... go find my commander if you have " -"any questions." -msgstr "我們是這個設施的保全人員。不過事實上我寧願… 唉, 你有什麼事情要問的話, 去找我的指揮官吧。" - -#: lang/json/talk_topic_from_json.py -msgid "I'll try and find your commander then..." -msgstr "我會嘗試找到你的指揮官, 然後…" - -#: lang/json/talk_topic_from_json.py -msgid "" -"I was expecting the captain to send a runner. Here is the list you are " -"looking for. What we can identify from here are simply the frequencies that" -" have traffic on them. Many of the transmissions are indecipherable without" -" repairing or replacing the equipment here. When the facility was being " -"overrun, standard procedure was to destroy encryption hardware to protect " -"federal secrets and maintain the integrity of the comms network. We are " -"hoping a few plain text messages can get picked up though." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Hey, I didn't expect to live long enough to see another living human!" msgstr "" @@ -122424,6 +123699,174 @@ msgstr "" msgid "What were you saying before that?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I hope you're here to assist us." +msgstr "法警, 我希望你是來幫忙的。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sir, I don't know how the hell you got down here but if you have any sense " +"you'll get out while you can." +msgstr "先生, 我不知道你是怎麼到這裡來的。如果你還有點理智的話, 趁現在你還能離開, 趕緊走吧。" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Ma'am, I don't know how the hell you got down here but if you have any sense" +" you'll get out while you can." +msgstr "女士, 我不知道你是怎麼到這裡來的。如果你還有點理智的話, 趁現在你還能離開, 趕緊走吧。" + +#: lang/json/talk_topic_from_json.py +msgid "What are you doing down here?" +msgstr "你在做什麼?" + +#: lang/json/talk_topic_from_json.py +msgid "Can you tell me about this facility?" +msgstr "你能告訴我有關這個設施?" + +#: lang/json/talk_topic_from_json.py +msgid "What do you need done?" +msgstr "你需要什麼呢?" + +#: lang/json/talk_topic_from_json.py +msgid "About the mission..." +msgstr "關於任務…" + +#: lang/json/talk_topic_from_json.py +msgid "About one of those missions..." +msgstr "關於那些其中之一的任務…" + +#: lang/json/talk_topic_from_json.py +msgid "I've got to go..." +msgstr "我得走了…" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm leading what remains of my company on a mission to re-secure this " +"facility. We entered the complex with two dozen men and immediately went " +"about securing this control room. From here I dispatched my men to secure " +"vital systems located on this floor and the floors below this one. If we " +"are successful, this facility can be cleared and used as a permanent base of" +" operations in the region. Most importantly it will allow us to redirect " +"refugee traffic away from overcrowded outposts and free up more of our " +"forces to conduct recovery operations." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Seems like a decent plan..." +msgstr "似乎是個不俗的計畫…" + +#: lang/json/talk_topic_from_json.py +msgid "" +"This facility was constructed to provide a safe haven in the event of a " +"global conflict. The vault can support several thousand people for a few " +"years if all systems are operational and sufficient notification is given. " +"Unfortunately, the power system was damaged or sabotaged at some point and " +"released a single extremely lethal burst of radiation. The catastrophic " +"event lasted for several minutes and resulted in the deaths of most people " +"located on the 2nd and lower floors. Those working on this floor were able " +"to seal the access ways to the lower floors before succumbing to radiation " +"sickness. The only other thing the logs tell us is that all water pressure " +"was diverted to the lower levels." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Whatever they did it must have worked since we are still alive..." +msgstr "無論他們做了什麼, 都一定成功了。因為我們現在還活著…" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm rather surprised to see you here." +msgstr "法警, 在這看到你令我有點驚訝。" + +#: lang/json/talk_topic_from_json.py +msgid "Sir you are not authorized to be here... you should leave." +msgstr "先生你不屬於這裡, 請你離開。" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am you are not authorized to be here... you should leave." +msgstr "小姐你不屬於這裡, 請你離開。" + +#: lang/json/talk_topic_from_json.py +msgid "[MISSION] The captain sent me to get a frequency list from you." +msgstr "[任務] 隊長派我來向你取得頻率列表。" + +#: lang/json/talk_topic_from_json.py +msgid "Do you need any help?" +msgstr "你需要幫忙嗎?" + +#: lang/json/talk_topic_from_json.py +msgid "I should be going" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We are securing the external communications array for this facility. I'm " +"rather restricted in what I can release... go find my commander if you have " +"any questions." +msgstr "我們是這個設施的保全人員。不過事實上我寧願… 唉, 你有什麼事情要問的話, 去找我的指揮官吧。" + +#: lang/json/talk_topic_from_json.py +msgid "I'll try and find your commander then..." +msgstr "我會嘗試找到你的指揮官, 然後…" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was expecting the captain to send a runner. Here is the list you are " +"looking for. What we can identify from here are simply the frequencies that" +" have traffic on them. Many of the transmissions are indecipherable without" +" repairing or replacing the equipment here. When the facility was being " +"overrun, standard procedure was to destroy encryption hardware to protect " +"federal secrets and maintain the integrity of the comms network. We are " +"hoping a few plain text messages can get picked up though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hello, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Marshal, I'm afraid I can't talk now." +msgstr "元帥, 抱歉我現在無法跟你交談。" + +#: lang/json/talk_topic_from_json.py +msgid "I'm not in charge here, marshal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm supposed to direct all questions to my leadership, marshal." +msgstr "法警, 我想這些問題該交由我的領導回答。" + +#: lang/json/talk_topic_from_json.py +msgid "Hey, citizen... I'm not sure you belong here." +msgstr "嘿, 市民… 你不該在這裡。" + +#: lang/json/talk_topic_from_json.py +msgid "You should mind your own business, nothing to see here." +msgstr "你應該管好自己的事, 這裡沒什麼好看的。" + +#: lang/json/talk_topic_from_json.py +msgid "If you need something you'll need to talk to someone else." +msgstr "如果你想要什麼的話, 你該找別人去。" + +#: lang/json/talk_topic_from_json.py +msgid "Sir." +msgstr "先生。" + +#: lang/json/talk_topic_from_json.py +msgid "Dude, if you can hold your own you should look into enlisting." +msgstr "老兄, 如果你靠得住, 你該去報名參軍的。" + +#: lang/json/talk_topic_from_json.py +msgid "Ma'am" +msgstr "夫人" + +#: lang/json/talk_topic_from_json.py +msgid "Hey miss, don't you think it would be safer if you stuck with me?" +msgstr "嘿小姐, 難道你不覺得和我一起會更安全麼?" + +#: lang/json/talk_topic_from_json.py +msgid "Don't mind me..." +msgstr "別在意我…" + #: lang/json/talk_topic_from_json.py msgid "" "So, any luck with convincing the others to come on your crazy adventure yet?" @@ -122449,6 +123892,12 @@ msgstr "請幫幫我,我需要食物。你不是他們的警長嗎?難道你 msgid "Please, help me. I need food." msgstr "請幫幫我,我需要食物。" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've talked to the others, and they're all willing to come. So, you joining" +" us?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey, here, I might have some food for you. Let me check." msgstr "" @@ -122615,10 +124064,26 @@ msgstr "" msgid "OK, I'll talk to them too." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "All right! Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Have I told you about cardboard, friend? Do you have any?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "About that shopping list of yours..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything else I can do for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you going to do with all that cardboard now?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Cardboard?" msgstr "" @@ -122631,6 +124096,30 @@ msgstr "" msgid "Are you seriously wearing a dinosaur costume?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Do you need something to eat?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh nice. Crunchings and munchings. That's a cool, a cool thing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, I'm real hungry and they put drugs in most of the food. I can see " +"you're not like that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can tell when it has stuff in it, it's got a sandy texture. But this " +"doesn't. Thanks again." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I'm building a house out of cardboard. The sandman doesn't want me to, but " @@ -122641,6 +124130,14 @@ msgstr "" msgid "Why cardboard?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "The sandman?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Would you like me to give you some cardboard?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "I think I have to get going..." msgstr "" @@ -122653,6 +124150,27 @@ msgid "" " damage." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Kind of a question's that? Yeah man, you got cardboard, I got a whole... a " +"whole shopping list. Got it here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's next on the list?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"If you don't know who he is, I definitely can't tell you. He talks to " +"everyone, if you didn't hear him that means you can't be trusted, except to " +"help me out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "... What were you saying before?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "These cowards are afraid of me. They won't let me into their base. I'm " @@ -122660,17 +124178,56 @@ msgid "" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Building a house?" -msgstr "蓋一間房子?" +msgid "You said you were building a house?" +msgstr "" #: lang/json/talk_topic_from_json.py src/handle_action.cpp msgid "No." msgstr "否。" +#: lang/json/talk_topic_from_json.py +msgid "I... I can see you wearing it. Why are you wearing that?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What was that about cardboard?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"You ask me what I can see, but I don't tell you what you see. Sometimes we " +"have shields up, to protect ourselves." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I had it all pretty together, but the others have left, and now the " +"masters won't let me build my sanctuary. Can you help me figure them out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's it! I'm just gonna need a little time to get it all set up. Thanks." +" You've helped me a lot. I'm feeling much more myself with all this to " +"keep me going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Why don't you leave this place? Come with me, I could use some help out " +"there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well. No problem, glad to be of service. Talk to you later." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"No! I just got everything together. I am not leaving, not now. " +"Everything's finally coming together!" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Fuck off, dickwaddle." msgstr "" @@ -122730,10 +124287,6 @@ msgid "" "but I wouldn't say no." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Actually can I ask you something else?" -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "Thanks, I really appreciate this." msgstr "" @@ -122773,6 +124326,11 @@ msgstr "" msgid "You think you were treated like that because of your race?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Does that mean you were part of that back room evacuation I heard about?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Why stay out here then?" msgstr "" @@ -122783,6 +124341,28 @@ msgid "" "come?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh yeah, that was a hell of a shitstorm. We were waiting back there for " +"'processing' for hours and hours, with the sick and wounded. One guy died, " +"we all thought he was sleeping until he got back up. That started a panic, " +"gunshots in a closed area, that kind of stuff. In just a few minutes, a " +"bunch more people were dead. Then the assholes called it an 'outbreak' and " +"tried to barricade us in... took us way too long to convince the panicking " +"guards that we were alive and needed to get out. I'll give the one guy " +"credit, Jason: when he found out they'd locked living people in with " +"zombies, he came in himself, as some of the newly dead were starting to get " +"back up, and he held them off for us to escape. That... that was probably " +"the only actual good thing I've seen since before the end of the world: he " +"owned his error and he put himself in harm's way to make up for it. Massive" +" respect to that guy. So, of course, he's a zombie now. Fuck, thanks for " +"reminding me of all that sunny fun." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Sorry for bringing it up. What were you saying?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Sure. My grandparents were from China. That means I'm obviously personally" @@ -122802,8 +124382,8 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"That's awful kind of you, but look at me. I'm not travelling material, I've" -" managed to stay fifty pounds overweight on a diet of pine nuts and wilted " +"That's awful kind of you, but look at me. I'm not traveling material, I've " +"managed to stay fifty pounds overweight on a diet of pine nuts and wilted " "rhubarb, and I scream and shake uncontrollably at the sight of blood." msgstr "" @@ -122863,6 +124443,12 @@ msgid "" " me a place to live. Call me crazy." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, come on. I'm not a random stranger anymore, I brought you that crazy " +"mushroom didn't I?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "What better choice do you have? It's not like it would be just you and me, " @@ -122875,6 +124461,17 @@ msgid "" "you, it's just that I don't really trust you." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"Aw damn, I was worried you'd say that. Okay, listen: you've got yourself a " +"deal. I'll come to your base, but you've gotta get me hooked up with a " +"microscope as soon as you can. This could be the beginning of something " +"really cool. Oh, and it should go without saying that I'm not coming unless" +" you can find a place for my friends here in your base. I'm sure you " +"anticipated that. Talk them into going and I'm in. It should be easy, " +"they're a bunch of sweet hearted saps." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well, before ended I was working at a university bookstore." @@ -122899,12 +124496,12 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "Yeah, yeah, it's all very glamorous. Sure, I trained in the great ivory " -"tower, got my PhD in mycology. Did my dissertation on signalling pathways " -"in hyphae formation, and a postdoc in plant-fungus communication in " -"rhyzomes. Then I got the job at the bookstore because there wasn't a ton of" -" work for a doctor of mycology, although I'd had a few nibbles before things" -" really got crazy. Now, people are just breaking down my door to get my " -"sweet sweet knowledge of mold to help them fight the incoming zombie threat." +"tower, got my PhD in mycology. Did my dissertation on signaling pathways in" +" hyphae formation, and a postdoc in plant-fungus communication in rhyzomes." +" Then I got the job at the bookstore because there wasn't a ton of work for" +" a doctor of mycology, although I'd had a few nibbles before things really " +"got crazy. Now, people are just breaking down my door to get my sweet sweet" +" knowledge of mold to help them fight the incoming zombie threat." msgstr "" #: lang/json/talk_topic_from_json.py @@ -122915,7 +124512,7 @@ msgstr "" msgid "" "Heh. Yeah, that was a great use of my time. As you can see it really " "helped my employment prospects. Yeah, I have a PhD in mycology. Did my " -"dissertation on signalling pathways in hyphae formation, and a postdoc in " +"dissertation on signaling pathways in hyphae formation, and a postdoc in " "plant-fungus communication in rhyzomes. Then I got the job at the bookstore" " because there wasn't a ton of work for a doctor of mycology, although I'd " "had a few nibbles before things really got crazy. Now, people are just " @@ -122957,6 +124554,12 @@ msgid "" " sound, maybe make sure it's not a sporulating body." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I dunno, scientific interest? If you don't bring me anything, no worries. " +"I'm positively swimming in entertainment here, as you can see." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "It just so happens I have a chunk of fungal matter on me right now." msgstr "" @@ -122967,16 +124570,40 @@ msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well. Well, well, well. This is really interesting. Look, you can see " -"reticulations here, it looks sort of like an enlarged piece of a stipe from " -"a basidiocarp... but look at this, these fibres are clearly unlike anything " -"I've seen before. I wonder if they're motile?/n/nOkay, listen: you've got " -"yourself a deal. I'll come to your base, but you've gotta get me hooked up " -"with a microscope as soon as you can. This could be the beginning of " -"something really cool. Oh, and it should go without saying that I'm not " -"coming unless you can find a place for my friends here in your base. I'm " -"sure you anticipated that. Talk them into going and I'm in. It should be " -"easy, they're a bunch of sweet hearted saps." +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Okay, listen: you've got yourself a deal. I'll come to your base, but you've gotta get me hooked up with a microscope as soon as you can. This could be the beginning of something really cool. Oh, and it should go without saying that I'm not coming unless you can find a place for my friends here in your base. I'm sure you anticipated that. Talk them into going and I'm in. It should be easy, they're a bunch of sweet hearted saps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Great! I'll go see what I can do about that." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well. Well, well, well. This is really interesting. Look, you can see reticulations here, it looks sort of like an enlarged piece of a stipe from a basidiocarp... but look at this, these fibers are clearly unlike anything I've seen before. I wonder if they're motile?\n" +"\n" +"Sorry. I could stare at this all day. I owe you one, a big one. Thanks for this. Let me know if you ever need a favor from a chubby beggar woman." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Glad you like it. If I think of something you can do in return, I'll let " +"you know." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well good. Let's get going, I want to see some more of these crazy " +"mushrooms." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'll see what I can do." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks again for the grub, my friend." msgstr "" #: lang/json/talk_topic_from_json.py @@ -122991,12 +124618,30 @@ msgstr "你為什麼問?" msgid "Sorry, not interested." msgstr "抱歉,沒興趣。" +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you too, what's up?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to see you. I gotta be going though." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh you know, the usual: sittin' out here until I starve to death, playin' " +"cards with Dave, that kinda thing." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Because I sure ain't fit, so I'm sittin' out here until I starve to death. " "Help a poor sickly soul out?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "I could maybe help you out... want something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "What's wrong with you?" msgstr "" @@ -123013,6 +124658,25 @@ msgstr "" msgid "Why are you camped out here if they won't let you in?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "That's awful kind of you, you really are a wonderful person." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, wow! You're a real gem, you know that? Thanks for even thinking of it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's good to know there are still people like you in the world, it really " +"is." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What are you up to?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "You name it! Asthma, diabetes, arthritis. Diabetes hasn't been so bad " @@ -123021,6 +124685,10 @@ msgid "" "bug me about every couple months." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "You seem awfully happy considering the situation." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "They got enough mouths to feed that can pull their own weight. I got a lot " @@ -123042,6 +124710,95 @@ msgid "" "dead as a doornail. Or I guess undead." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"What's the alternative? You take the hand you're dealt. I've given " +"eulogies for two of the people I love most on this earth, and the third " +"wrote me off. I've already been through the end of the world. Came out the" +" other side with my bits intact. And you know, I've been pretty lonely " +"since my wife passed. Here I've got friends. We might be hungry but we're " +"close. Reena's been teaching me math and science, Luo is one of the " +"smartest folks I've ever met - she's got a doctorate you know - and Yusuke " +"is the only one here that can beat me at poker. And Dave, well, he's Dave." +" There's more goin' on under the surface there, mark my words. We may be " +"unfit, but we aren't worthless." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I used to be a roofer, but I had a bad fall and wrecked my back around" +" '06. Tried to get into other kinds of carpentry but I just don't have the " +"head for it. My wife managed to support both of us with the extra bit I " +"made from odd jobs, but she had a stroke in 2016 and left me on my own the " +"last few years slowly draining my savings dry while I work whatever junk " +"jobs I can handle. Couple days before I got the notice that" +" the bank was going to foreclose on my crappy little trailer." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You have any kids?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Would you like to travel with me? Someone good with a trade could be " +"helpful, and it's got to be better than wasting away here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I have a camp. It's a damn sight better than those place, and there are " +"regular meals. Someone with your trades experience would be welcome, even " +"if you can't do the big jobs anymore." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, we had two. My daughter died of an OD right at the start of that " +"fentanyl stuff. It did a real number on my son - they were twins you see - " +"and he cut ties to me and my wife. Wasn't even there for her funeral. I " +"can't blame him, it messed us all up pretty fierce. As far as I'm concerned" +" he's still out there with my grandkids, hiding away somewhere safe. These " +"days, no news is good news." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's sweet of you to say that, but I'm just not up to the wandering life, " +"not with these knees." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"That's awful nice of you. Tell you what: if you can help Dave get himself " +"sorted out, so I don't feel like I've gotta stay here keeping an eye on the " +"poor fella, then I'll come along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I think I've sorted Dave out pretty well, don't you? Would you consider " +"coming with me now?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well... I'll be honest, I didn't even think Dave could be sorted out, and " +"you've gone and called my bluff! It's a darn fine thing you've done for " +"that poor soul. Listen, I wasn't... entirely serious about wanting to come " +"with you, but if you can convince the others to go, then I guess I'll come " +"along." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Golly. I didn't expect that, but I'm as good as my word. Let's get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's get going." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there, friend." msgstr "" @@ -123054,6 +124811,10 @@ msgstr "" msgid "I couldn't help but notice, you're covered in fur." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Would you like something to eat?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "I live here. Too mutant to join the cool kids club, but not mutant enough " @@ -123076,7 +124837,7 @@ msgid "" "food for the other squatters though... I think they are trying to slowly " "starve us out, and even though I can't keep everyone's bellies full, I've " "been able to bring back enough to keep these folk in better shape. I " -"suspect they'll find an excuse kick me out eventually." +"suspect they'll find an excuse to kick me out eventually." msgstr "" #: lang/json/talk_topic_from_json.py @@ -123086,6 +124847,68 @@ msgid "" "them for hating it, I hate it." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I do okay for myself actually. I eat a lot of things close to spoilage " +"while I'm foraging. If you've got food to spare, please give it to my " +"friends." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Nothing too exciting. I was in trade college, learning to be a computer " +"technician. Those skills aren't too helpful, but when I was a kid I was an " +"Eagle scout. I learned all kinds of useful stuff about plants and foraging," +" and that's come in pretty handy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What about your family, stuff like that?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't want to think about it. I grew up in Rhode Island, they're still " +"there. I haven't heard from them since the insanity with the Governor and " +"that secession stuff. All communication lines got closed off. I haven't " +"met anyone who knows what happened to the people there but I don't have much" +" hope." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Why don't you go back there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you tell me more about what happened with Rhode Island?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Same reason as I'm stuck here... it's way too dangerous, for one thing. " +"Almost a hundred miles, through zombie infested territory, on foot, to get " +"to the shoreline? No thank you. And then, how would I get from the" +" shore to Block Island? My family moved out there when Dad retired, and I " +"get the impression the ferry probably isn't running anymore. Even if I got " +"there, I don't know what I'd find, and I think maybe that scares me the " +"most." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You don't know? The governor went nuts, like a lot of people did leading up" +" to the end, only he had a lot more power to work with. One day he just " +"showed up to work with a militia of rowdies and loyalists and staged a coup," +" taking over the government completely, killing those that opposed him, and " +"moving as many people as he could get behidn him onto the islands. The " +"rumors I've heard is that most of them survived the cataclysm and are still " +"running the show there, but that seems kind of impossible to me." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you think you'd go back and look for your family?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Well now, that's quite a kind offer, and I appreciate you looking past my " @@ -123094,6 +124917,23 @@ msgid "" "for them, I don't think I can leave." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "" +"I've spoken to all your friends, and except for Dave, they're good to go. " +"Dave wants to stay here. How about you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Huh. Getting those three to sign on to a suicide mission is quite the " +"feat... sounds like you're pretty dedicated to this. OK, I'm with you. " +"Let's round up the others and hit the road." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Right. Let's go." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hey there." msgstr "" @@ -123356,10 +125196,94 @@ msgstr "" msgid "Why don't we talk about it some other time?" msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "How are things here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "How did you wind up here at the center?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Is there anything I can do to help you out?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Hello again." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Good to see you're still around." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, hi." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, hey, a new face. Hi, I'm Fatima. Just visiting I hope? It's nice to " +"meet new people but there are no beds to share." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Fatima. I'm just passing through." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Fatima. How are things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm afraid I can't talk right now." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, cool. Anything I can help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Oh, you know, the usual. Trapped in a tight space with a bunch of strangers" +" getting along tenuously at best. Good times, good times." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Before I had just finished welding school actually, and was " +"about to start looking for a job. That was fun, being a young Muslim woman " +"in a Massachussets trade college, let me tell you." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Welding seems like a pretty non-traditional occupational choice; is there a " +"story there?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You'd be surprised actually! Metal art has been part of Muslim traditions for years, although that's not why I got into it. I'm not a very traditional girl. My parents aren't very traditional either, but my grandparents are really old fashioned and strict. My sister came out as gay and they made her life really hard; mom and dad thought she should keep it secret, but she didn't believe in that. I always loved mechanics and working with my hands, so when they started harassing my parents about getting my sister and I married off to nice men so we'd stop being so immoral, I decided to pick a job I liked that would bother them as much as possible. It was a good choice, not only did it make them livid but I love welding. I love the feel of standing back and looking at my work, knowing I took a few chunks of scrap metal and made them into something useful. I love how it feels to make it fit together perfectly. It just puts me at peace.\n" +"\n" +"I... I do hope my grandparents are okay though. They were old fashioned, and they made choices I didn't like, but they were family and I still have sweet memories of them from when I was little. I've had to do a lot more thinking about God since , and while I'd never agree with the decisions they made, I understand more why they thought they had to make them. They just wanted the whole family to share their relationship with God, in their messed up way." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was on my way to visit my parents back in Burlington, waiting at a bus station, when the evacuation notices started sounding. I'd been a little out of touch for a bit and didn't realize how bad the rioting was getting. When my bus arrived it got repurposed into an evacuation vehicle, and took me here. I... I didn't used to be very religious, it's just something I was born to, but since this happened I've been thinking a lot more about God, and how grateful I am for His help in surviving. With things still so difficult, it helps to know He's got some plan for me.\n" +"\n" +"Anyway, mine was the second bus to arrive, and they were just getting some triage and processing stuff set up. I was put in charge of helping with the wounded, along with Uyen. Things went a little strange later on... one of the women doing triage and processing had a bit of a hang-up about particular, um, colors of people being allowed into the center. She claimed to have lost our 'papers', along with a lot of other peoples'. Thankfully because we'd helped so many we were able to argue that they could't leave us out, but there was no space left downstairs by the time we got that sorted, so here we are." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's tense here. I know I'd feel a lot better if I had something to do with" +" my skills, or even if I just had a quiet place to pray sometimes. I feel a" +" bit self-conscious praying in the common areas. Jenny was talking about " +"some project ideas she had that could get me doing my job again, but I admit" +" I'm pretty nervous about going outside." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Well, hello." msgstr "" @@ -123408,10 +125332,6 @@ msgstr "" msgid "Hey again." msgstr "" -#: lang/json/talk_topic_from_json.py -msgid "Oh, hi." -msgstr "" - #: lang/json/talk_topic_from_json.py msgid "" "Oh, hello. I don't think I've seen you around before. I'm Guneet, people " @@ -123886,6 +125806,102 @@ msgstr "" msgid "Hi Pablo, nice to see you too. I gotta go though." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "What brings you around here? We don't see a lot of new faces." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Need to talk?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Hi there. I don't think we've met before. I'm Rhyzaea, people call me Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you, Rhy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Rhy. How's it going?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "So, what's your story? We don't see a lot of new people back here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a curious traveller. What's up with you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm doing as well as can be expected, I suppose. Nice of you to ask." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It's a long, long story. I'm not from around here, I'm actually from way " +"out in Western Canada. I'd always wanted to see New England, and I was down " +"here on vacation when, well, you know. I got evacuated, but because I'm not" +" a US citizen they weren't willing to take me downstairs. I can understand " +"that, even if I don't like it much. To tell you the truth I'm still coming " +"to terms with the fact that I'll probably never know how my family and my " +"band are doing." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about yourself." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your family." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Tell me about your band." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a counsellor actually, I worked for my band, Gitxsan. Did a lot of " +"mental health and addictions for people that had been through some really " +"tough stuff. Maybe not zombies eating your child level tough, but " +"surprisingly not far off. My people have gone through some real messy crap." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Well, it's been nice talking to you, but I need to head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My band is Gitxsan, we're from Northwestern British Columbia, around the " +"Skeena River. I'm from Hazelton, myself. It's a beautiful place. Tall " +"mountains, temperate rainforests... I partly came here because I love those " +"wet coastal forests, and I love exploring them in other countries. I've " +"been to Korea and Slovakia for the same reason. I guess I'm a bit of a " +"forest tourist? I don't know if I'll ever see my own forest again, and the " +"thought breaks my heart." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"My mom and dad are back in Hazelton, they live with my grandma and my older " +"brother; he took a hard knock to the head doing dumb things as a kid, and he" +" can't really take care of himself now. I have a daughter, Angel, she's " +"sixteen and didn't want to come with me on this trip. God help me, I can't " +"bear to think of her, she must think I'm dead." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"People up here are barely hanging on. I've seen trauma before, a lot, but " +"this is pretty much the worst imaginable. Everyone has lost everything, " +"with a huge dose of nightmare on top of it all. We're putting on a brave " +"face, but without help, things are going to break, really soon." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "Hello. I'm sorry, if we've met before, I don't really remember. I'm not " @@ -123926,6 +125942,57 @@ msgstr "" msgid "Sorry to hear that." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Hi there. You look new, nice to meet you. My name's Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Nice to meet you too, Uyen." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hi, Uyen. Got a minute?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just a traveller. Can I ask you a few things?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm always good for a talk. It gets pretty boring down here." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I was a paramedic. I was there through some of the absolute worst of it, to" +" this day I can't tell you how I made it out. One thing led to another and " +"I got pushed onto a bus to help take care of a couple people who needed " +"assistance for travel. Broken arms, that kinda stuff. I got here early, I " +"was one of the first to arrive. Then, this woman in processing 'lost' my " +"paperwork while I was busy helping a guy with a bad gash on his head. If I " +"hadn't made a stink about it, I'd probably be out in the lobby with those " +"poor souls that couldn't get in at all." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We've got it okay, I guess, as long as this doesn't last too long. The " +"situation is pretty tight, though. If we're stuck here for too long people " +"are going to start getting a bit stir crazy." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd like to hire out those scissors of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this haircut a little please?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Hmm, can we change this shave a little please?" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Oh, you're back." msgstr "" @@ -123949,18 +126016,143 @@ msgid "Yeah, no. I'm going." msgstr "" #: lang/json/talk_topic_from_json.py -msgid "See you later, sunshine." +msgid "" +"Well that's good. If you're going to pull your own weight I guess that's an" +" improvement." msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well that's good. If you're going to pull your own weight I guess that's an" -" improvement." +"Not much is up. Not enough, in fact. Here we are stuck in this slum pit " +"with a bunch of strangers, and all we can do is sit around staring at our " +"hands." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't really want to talk about my life before this shit-show, if that's " +"what you mean. I don't need a shoulder to cry on. I'm a hairdresser, is " +"that enough personal information for you?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Could you give me a haircut?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, I'm stuck in a dank shitty brick building with two dozen strangers, " +"the world's dead, and there's not enough food to go around. At least I can " +"do some work to keep me busy though, and the extra merch does go a long way " +"to keeping my belly full. People like getting a good haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"You want the sarcastic version, or the really sarcastic version? I'm stuck " +"in a dank shitty brick building with two dozen strangers, the world's dead, " +"and there's not enough food to go around. Why don't you fuckin' figure it " +"out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I can see you need one, but last time I used these shears it was to stab a " +"zombie in the face. I don't think you'd want them in your hair. Maybe you " +"could help me get set up properly?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I do to help you out?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Sure, I can give you a haircut. It'll be six merch for a haircut, or three " +"for a shave, okay?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a haircut." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Please give me a shave." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Actually, you owe me a free haircut, remember?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. What were you saying before?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's a bit rich for my blood. I better head out." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm here to deliver some food supplies." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Are you able to buy some canning supplies?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I was told you had work for me?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with this written-on paper money you guys use?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "The refugees stuck up here seem a bit disgruntled." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Do you know about those beggars in the lobby?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What's the deal with the closed-off areas of the building?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"What are you going to do with that back bay area now that I've cleaned it " +"out for you?" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Hope you're here to trade." -msgstr "希望你來這是要交易的。" +msgid "Tell me more about that ranch of yours." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'd better get going. Bye!" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What can I help you with?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Excellent. What've you brought us?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. Can we discuss something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "That's all for now. I'd best get going." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Yes, I can buy 500 mL or 3 L glass jars at the moment." +msgstr "" #: lang/json/talk_topic_from_json.py msgctxt "npc:f" @@ -123968,12 +126160,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"我為中心負責糧食的庫存。動亂時有趁亂搶劫的情形, " -"當我們初次到這時大多數的食物都被搶走了。我管理所剩下的並且盡可能的增加我們的補給。在潮濕的地下室容易出現腐敗與發霉的情形, " -"因此我們優先考慮不容易腐敗的食物, 像玉米粉, 肉乾及水果酒。" #: lang/json/talk_topic_from_json.py msgctxt "npc:m" @@ -123981,12 +126170,9 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"我為中心負責糧食的庫存。動亂時有趁亂搶劫的情形, " -"當我們初次到這時大多數的食物都被搶走了。我管理所剩下的並且盡可能的增加我們的補給。在潮濕的地下室容易出現腐敗與發霉的情形, " -"因此我們優先考慮不容易腐敗的食物, 像玉米粉, 肉乾及水果酒。" #: lang/json/talk_topic_from_json.py msgctxt "npc:n" @@ -123994,47 +126180,125 @@ msgid "" "I oversee the food stocks for the center. There was significant looting " "during the panic when we first arrived so most of our food was carried away." " I manage what we have left and do everything I can to increase our " -"supplies. Rot and mold are more significant in the damp basement so I " -"prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." +"supplies. We've got a few growing sources of fresh meats and vegetables, so" +" I prioritize non-perishable food, such as cornmeal, jerky, and fruit wine." msgstr "" -"我為中心負責糧食的庫存。動亂時有趁亂搶劫的情形, " -"當我們初次到這時大多數的食物都被搶走了。我管理所剩下的並且盡可能的增加我們的補給。在潮濕的地下室容易出現腐敗與發霉的情形, " -"因此我們優先考慮不容易腐敗的食物, 像玉米粉, 肉乾及水果酒。" #: lang/json/talk_topic_from_json.py msgid "Why cornmeal, jerky, and fruit wine?" msgstr "為何是玉米粉, 肉乾, 和水果酒?" +#: lang/json/talk_topic_from_json.py +msgid "Okay, but I meant \"who are you\", like, \"what's your story?\"" +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "" "All three are easy to locally produce in significant quantities and are non-" "perishable. We have a local farmer or two and a few hunter types that have " "been making attempts to provide us with the nutritious supplies. We do " -"always need more suppliers though. Because this stuff is rather cheap in " -"bulk I can pay a premium for any you have on you. Canned food and other " -"edibles are handled by the merchant in the front." +"always need more suppliers though. This stuff is rather cheap in bulk, so I" +" can pay a premium for any you have on you. Canned food and other edibles " +"are handled by the merchant in the front in trade." msgstr "" -"這三種很容易生產許多數量而且不容易腐敗。我們當地的農夫及一些獵人能夠提供我們一些營養的補給。我們還是很需要更多的補給。因為這東西是相當便宜大量的, " -"只要你有的話, 我可以付給你特別價格。罐頭食品及其他的食物是由前面的商人處理。" #: lang/json/talk_topic_from_json.py msgid "Are you looking to buy anything else?" msgstr "你有要買其他東西嗎?" #: lang/json/talk_topic_from_json.py -msgid "Very well..." -msgstr "很好…" +msgid "Very well... let's talk about something else." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I'm sorry, but I'm not here to make friends, I've got a job to do." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "I'm actually accepting a number of different foodstuffs: beer, sugar, flour," -" smoked meat, smoked fish, cooking oil; and as mentioned before, jerky, " +" smoked meat, smoked fish, dried fruit and vegetables, cooking oil, " +"preservatives like salt and vinegar; and as mentioned before, jerky, " "cornmeal, and fruit wine." -msgstr "事實上, 我接受許多不同的食物: 啤酒、糖、麵粉、煙燻肉、煙燻魚、烹飪油, 還有之前說過的、肉乾、玉米粉以及水果酒。" +msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Interesting..." -msgstr "有意思…" +msgid "" +"We call them \"Free Merchant Certified Notes\". We started signing money " +"almost as soon as we got here as a way of showing it represented actual " +"goods and services we had to trade. Within a few days we'd organized the " +"system, and now it's been evolving into a form of cash. Internally they're " +"traded for labor and services in exchange for food rations and other trade " +"goods, but we've been using them with suppliers we regularly trade with as " +"well, those that have faith in us." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Yeah, it's a tough situation. When we started out here nobody was really in" +" charge, and we let more in than we really had capacity to feed and support." +" When the dust settled and we'd established a little order, there were " +"still all these people upstairs waiting for a place to live, and no space. " +"We've set up a little space for them, but it's not ideal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I do. I don't know what you did to convince them to move out, but our " +"supply chain and I both thank you. I hope it wasn't too unseemly." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Even once we got things sorted out, there weren't enough beds for everyone, " +"and definitely not enough supplies. These are harsh times. We're doing what" +" we can for those folks... at least they've got shelter." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Well, there's the downstairs section, we can't fit more people down there so" +" it's out of bounds. Then there's the second bay that we were using as a " +"staging area at first. Things went... wrong. I hear the shopkeeper is " +"offering a reward to clear it out, if you're feeling suicidal." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "What went wrong with your staging area?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We didn't have great organization when we first arrived. A few of the " +"earliest arrivals set up a triage and sorting system, with the sick and " +"infirm getting set aside to wait. It's cruel, but we could see there was " +"only space for so many, and we didn't know what was causing people to turn " +"into zombies at the time, so we were trying to quarantine out infection. A " +"couple folks died in there, and it escalated. One of the first people here," +" Jacob, had taken charge of the whole thing. When the triage area had to be" +" evacuated he stayed behind to make sure everyone who could get out got out." +" It was a hell of a loss." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks, can I ask you something else?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Thank you for that. We don't have any immediate plans for the area. Once " +"it's cleaned up I suppose we'll let the people living up here decide what to" +" do with it." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I'm so glad we've got that up and running. One of the people evacuated here" +" had a connection to a functioning ranch, and we got him and a crew out " +"there as quickly as we were able. We're hoping they'll be able to supply us" +" in enough foodstuffs to make this place self-sufficient and even to trade " +"with other communities as they arise." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Hello marshal." @@ -124363,16 +126627,8 @@ msgid "Ma'am, you really shouldn't be traveling out there." msgstr "夫人, 你真的不應該旅行到那裏。" #: lang/json/talk_topic_from_json.py -msgid "Welcome marshal..." -msgstr "歡迎法警…" - -#: lang/json/talk_topic_from_json.py -msgid "Welcome..." -msgstr "歡迎…" - -#: lang/json/talk_topic_from_json.py -msgid "I'm actually new..." -msgstr "我其實是新來的…" +msgid "I heard this place was a refugee center..." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "Heard anything about the outside world?" @@ -124382,6 +126638,14 @@ msgstr "有外面世界的新聞嗎?" msgid "Is there any way I can join your group?" msgstr "有辦法讓我加入你們的隊伍嗎?" +#: lang/json/talk_topic_from_json.py +msgid "What's with these beggars?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I took care of your beggar problem." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Can I do anything for the center?" msgstr "我能為中心做些什麼事嗎?" @@ -124391,31 +126655,41 @@ msgid "I figured you might be looking for some help..." msgstr "我想你可能正在尋找一些幫助…" #: lang/json/talk_topic_from_json.py -msgid "" -"Before you say anything else, we're full. Few days ago we had an outbreak " -"due to lett'n in too many new refugees. We do desperately need supplies and" -" are willing to trade what we can for it. Pay top dollar for jerky if you " -"have any." -msgstr "先別說別的, 我們滿員了。幾天前, 我們因為讓太多新人加入導致爆發疫情。我們急需補給並且不排除進行交易。若你有肉乾的話我們會高價收購。" +msgid "Well, I'd better be going. Bye." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Welcome marshal..." +msgstr "歡迎法警…" + +#: lang/json/talk_topic_from_json.py +msgid "Welcome..." +msgstr "歡迎…" #: lang/json/talk_topic_from_json.py -msgid "No rest for the weary..." -msgstr "沒有休息…" +msgid "" +"Before you say anything else, we're full. We don't have the space, nor the " +"food, to take in more refugees. We do desperately need supplies and are " +"willing to trade what we can for it. Pay top dollar for jerky if you have " +"any; just talk to the broker in the back." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" "To be honest, we started out with six buses full of office workers and " -"soccer moms... after the refugee outbreak a day or two ago the more " -"courageous ones in our party ended up dead. The only thing we want now is " -"to run enough trade through here to keep us alive. Don't care who your " -"goods come from or how you got them, just don't bring trouble." +"soccer moms... we did what we could to sort through the masses, take the " +"people with the best chance of survival first. It sounds harsh but it was " +"the only option. The only thing we want now is to run enough trade through " +"here to keep us alive... with our address in the evac shelter computers, " +"people keep coming here and we have to turn them away, but we've found we " +"can trade their salvage for what we've got. We plan to turn that into a " +"business model. Don't care who your goods come from or how you got them, " +"just don't bring trouble." msgstr "" -"說老實話, 我們一開始有 6 輛公車, 滿載上班族和家庭主婦… 在災難爆發一兩天後, 團隊中最勇敢的都死了。我們現在想要的就是讓交易通道順暢, " -"我們才能存活。別在意貨物是從哪來的, 就不會有麻煩。" #: lang/json/talk_topic_from_json.py -msgid "It's just as bad out here, if not worse." -msgstr "沒有最糟, 只有更糟。" +msgid "It's just as bad out there, if not worse." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -124428,32 +126702,27 @@ msgstr "" "我很抱歉, 但是我們能做的就是讓大門關閉的快點。在地下室的守衛有格殺勿論的命令, 假如你過於窺探樓下。我不知道是什麼讓拾荒者變得這麼狠, " "害得我們有些人不得不手刃自己的小孩… 我們甚至沒有想過要武裝自己。" -#: lang/json/talk_topic_from_json.py -msgid "Guess shit's a mess everywhere..." -msgstr "我看到處都有鳥事…" - #: lang/json/talk_topic_from_json.py msgid "" -"[INT 12] Wait, six buses and refugees... how many people do you still have " +"[INT 10] Wait, six buses and refugees... how many people do you still have " "crammed in here?" -msgstr "[智力 12] 等等, 6 輛公車跟難民… 你們有多少人還擠在這裡?" +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" -"Well the refugees were staying here on the first floor when one their " -"parties tried to sneak a dying guy in through the loading bay, we ended up " -"being awoken to shrieks and screams. Maybe two dozen people died that " -"night. The remaining refugees were banished the next day and went on to " -"form a couple of scavenging bands. I'd say we got twenty decent men or " -"women still here but our real strength comes from all of our business " -"partners that are accustomed to doing whatever is needed to survive." +"Downstairs, a few dozen. Seventeen more living up here, until we can figure" +" out a way to make space for them. There used to be quite a few more, but " +"things were handled poorly in the chaos, and we lost a few, and their loss " +"triggered a few more. It wasn't a good time." msgstr "" -"難民之前待在一樓那邊, 直到他們其中有人試圖透過裝載區偷渡一個垂死之人, 最後我們被慘叫聲吵醒。大約有兩打人死在當晚。剩下的難民在隔天被放逐, " -"並且陸續組成了幾個拾荒者集團。我想說的是, 我們還有約 20 位可用的男女, 但我們真正的力量來自於所有習慣為生存付出一切努力的我們的合作夥伴。" #: lang/json/talk_topic_from_json.py -msgid "Guess it works for you..." -msgstr "看來這對你有用…" +msgid "" +"Well, like many, I'd rather not get into my life before this. That's all " +"gone, dead, risen, dead again. I used to own a little store though, that's " +"why they've got me up here doing this... and that's all I'm going to say " +"about myself. I'm on the clock, after all." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "" @@ -124467,10 +126736,6 @@ msgstr "" "前陣子有個來到這的人說他在災變後, 曾經試著開著車進入雪城。都還沒到市區就遇到一堆殭屍海。他逃了出來並說那裏至少有上千的殭屍。想想看, " "一堆殭屍就會因為噪音而吸引更多的殭屍。幸運的是, 我們這裡還沒遇過這樣的情形。" -#: lang/json/talk_topic_from_json.py -msgid "Thanks for the tip." -msgstr "感謝提示。" - #: lang/json/talk_topic_from_json.py msgid "" "Well, there is a party of about a dozen 'scavengers' that found some sort of" @@ -124559,6 +126824,81 @@ msgstr "有聽過比稀有槍枝上膛聲音更棒的嗎?" msgid "Was hoping for something more..." msgstr "要是有更多東西就好了…" +#: lang/json/talk_topic_from_json.py +msgid "" +"They're folks that wanted to come down to our shelter, but we're too full " +"and have neither space nor supplies to share. Most like them have turned " +"and gone seeking their own place, but these ones... these ones didn't. " +"We've been trying to find them a safe place, but there's a shortage of " +"safety going around. Until then we're letting them crash here so long as " +"they don't mess the place up." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I don't suppose there'd be some kind of reward if I could clear them out of " +"here?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We don't have much to share, but I'm sure we could pay you in our own " +"currency if you could clean up our burgeoning health hazard without anyone " +"getting hurt, yeah." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"It was a fine thing you did, taking those poor souls somewhere safe. I " +"assume that's what you did. If you have other plans, I still appreciate " +"having the lobby clear, but please let me live in my happy imaginings. I'm " +"sure they're out frolicking in a nice field somewhere. It's a shame that " +"cardboard fellow didn't go too, but he's relatively easy to handle alone." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "I do believe we discussed a reward?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Just glad to help." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"And so we did. You didn't do the full job, but we're fair people here. " +"Here's five merch a head for the folks you found a new home for." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"One of the people that got evacuated here was actually on a charter bus " +"taking him back to his ranch, 'til it was commandeered to be an evacuation " +"vehicle and brought him here. Once the dust shook out we made a deal to get" +" him home and provide him with labour in return for making the ranch into a " +"subsidiary of our dealings here. It worked out pretty well for everyone, " +"most of the people with skills for that kind of work are already out there." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Didn't that free up some space for the beggars and people stuck upstairs?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Thanks for the story." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Unfortunately, no. Most of the people who left were already stuck upstairs," +" they were taking on less risk than those with a safe bed already. We only " +"got a few people out of the basement, and it was already overcrowded when we" +" started. We're kind of hoping more folk will head out to the ranch for " +"sun, fresh air, and hard work... but people are a bit afraid of getting " +"attacked by zombie hordes, as you might guess." +msgstr "" + #: lang/json/talk_topic_from_json.py msgid "Marshal..." msgstr "法警…" @@ -125080,8 +127420,53 @@ msgid "Alright, I'll leave" msgstr "" #: lang/json/talk_topic_from_json.py -msgid "Can I interest you in a trim?" -msgstr "你需要理髮或者刮鬍子嗎?" +msgid "" +"Still plenty of outlaws in the roads, perhaps you should tend to your job, " +"marshal..." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "You see anything you want, marshal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Oh, a U.S. marshal, how quaint." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Here to trade, I hope?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Safe travels, scavenger." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Let's trade." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"I keep to my own business, and you keep to yours, marshal. Seems like a " +"fair deal?" +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"We have been supplying this lab here with food from a few hunting and " +"farming communities nearby. The roads are though and dangerous, but it " +"makes good money, and beats scavenging the cities for scraps." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "Keep safe, then." +msgstr "" + +#: lang/json/talk_topic_from_json.py +msgid "" +"Can I interest you in a trim? It'll cost you 6 merch for a haircut or 3 for" +" a beard trim. I can do color and styling too." +msgstr "" #: lang/json/talk_topic_from_json.py msgid "What is your job here?" @@ -125593,6 +127978,10 @@ msgid "" "there." msgstr "" +#: lang/json/talk_topic_from_json.py +msgid "Interesting..." +msgstr "有意思…" + #: lang/json/talk_topic_from_json.py msgid "" "Just a scav who got lucky. Now I'm content to sit around here on my pile of" @@ -126054,10 +128443,30 @@ msgstr " 反擊 %s" msgid "Feint" msgstr "虛擊" +#: lang/json/technique_from_json.py +#, python-format +msgid "You feint at %s." +msgstr "" + +#: lang/json/technique_from_json.py +#, python-format +msgid " feints at %s." +msgstr "" + #: lang/json/technique_from_json.py msgid "Grab Break" msgstr "反擒拿" +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab you, but you break its grab!" +msgstr "%s 嘗試抓住你, 但你掙脫了!" + +#: lang/json/technique_from_json.py src/monattack.cpp +#, c-format, python-format +msgid "The %s tries to grab , but they break its grab!" +msgstr "%s 嘗試抓住 , 但他掙脫了!" + #: lang/json/technique_from_json.py #, python-format msgid "You jab deftly at %s" @@ -126792,11 +129201,13 @@ msgid "Crane Wing" msgstr "鶴拳展翅" #: lang/json/technique_from_json.py -msgid "You raise your arms intimidatingly" +#, python-format +msgid "You raise your arms intimidatingly at %s." msgstr "" #: lang/json/technique_from_json.py -msgid " performs the Crane Wing" +#, python-format +msgid " performs the Crane Wing at %s." msgstr "" #: lang/json/technique_from_json.py @@ -126804,11 +129215,13 @@ msgid "Crane Flap" msgstr "鶴拳振翅" #: lang/json/technique_from_json.py -msgid "You swing your arms and break free" +#, python-format +msgid "The %s tries to grab you, but you swing your arms and break free!" msgstr "" #: lang/json/technique_from_json.py -msgid " flaps free" +#, python-format +msgid "The %s tries to grab , but they flap free!" msgstr "" #: lang/json/technique_from_json.py @@ -126858,11 +129271,13 @@ msgid "Snake Slither" msgstr "蛇形滑步" #: lang/json/technique_from_json.py -msgid "You slither free" +#, python-format +msgid "The %s tries to grab you, but you slither free!" msgstr "" #: lang/json/technique_from_json.py -msgid " slithers free" +#, python-format +msgid "The %s tries to grab , but they slither free!" msgstr "" #: lang/json/technique_from_json.py @@ -127558,12 +129973,12 @@ msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid "You kick %s and spin around" +msgid "The %s tries to grab you, but you kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py #, python-format -msgid " kicks %s and spins around" +msgid "The %s tries to grab , but they kick free and spin around!" msgstr "" #: lang/json/technique_from_json.py @@ -128303,14 +130718,37 @@ msgstr "" msgid "wattle-and-daub wall" msgstr "編泥牆" +#. ~ Description for wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"A relatively primitive wall made by daubing together a lattice of wooden " +"strips using some combination of wet soil, clay, sand, animal dung and " +"straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "broken wattle-and-daub wall" msgstr "損壞的編泥牆" +#. ~ Description for broken wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall section has been destroyed, leaving mostly just " +"frame, and is barely held together." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built wattle-and-daub wall" msgstr "半建成編泥牆" +#. ~ Description for half-built wattle-and-daub wall +#: lang/json/terrain_from_json.py +msgid "" +"This wattle-and-daub wall has some of the wooden strip lattice in place, and" +" still requires the rest of the lattice and supporting wet compound to be " +"filled in." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wooden wall" msgstr "木牆" @@ -129669,30 +132107,134 @@ msgstr "" msgid "willow tree" msgstr "柳樹" +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. You could tear off some bark. You " +"could cut it down with the right tools." +msgstr "" + +#. ~ Description for willow tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall, wide deciduous tree of the 'Salix' genus, with long thin leafy " +"branches that hang down like curtains. Looks like all usable bark has been " +"torn off, and new rhytidomes have not formed yet. You could cut it down " +"with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "maple tree" msgstr "楓樹" +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. It could be tapped in order to extract maple " +"syrup. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for maple tree +#: lang/json/terrain_from_json.py +msgid "" +"A large deciduous tree of the 'Acer' genus. The leaves are distinctively " +"shaped with five prongs. A spigot is wedged into the trunk, and sweet maple" +" syrup can be extracted. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "hickory tree" msgstr "山核桃樹" +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts" +" if you examined the tree more closely. You could cut it down with the " +"right tools." +msgstr "" + +#. ~ Description for hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It looks like the tree has been" +" picked clean of hickory nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pistachio tree" msgstr "阿月渾子樹" +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. You could look for pistachio nuts if you " +"examined the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for pistachio tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is" +" not native to this region. Unfortunately, it looks like it has been picked" +" clean of pistachio nuts. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "almond tree" msgstr "" +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. You could look for fresh almonds if you examined" +" the tree more closely. You could cut it down with the right tools." +msgstr "" + +#. ~ Description for almond tree +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the 'Prunus' genus. This is a cultivated tree, and is " +"not native to this region. There are no almonds left to pick on the tree. " +"You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pecan tree" msgstr "胡桃樹" +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. You could look for pecan nuts " +"if you examined the tree more closely. You could cut it down with the right" +" tools." +msgstr "" + +#. ~ Description for pecan tree +#: lang/json/terrain_from_json.py +msgid "" +"A tall deciduous tree of the 'Carya' genus. It doesn't look like there are " +"any pecan nuts left on the tree. You could cut it down with the right " +"tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dead hickory tree" msgstr "枯死的山核桃樹" +#. ~ Description for dead hickory tree +#: lang/json/terrain_from_json.py +msgid "" +"The dead remnants of a tall deciduous tree of the 'Carya' genus. Nothing " +"useful can be foraged from this poor, dead tree. You could cut it down with" +" the right tools." +msgstr "" + #. ~ Description for underbrush #: lang/json/terrain_from_json.py msgid "" @@ -129704,10 +132246,30 @@ msgstr "" msgid "brush." msgstr "唰唰聲。" +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it." +msgstr "" + +#. ~ Description for underbrush +#: lang/json/terrain_from_json.py +msgid "" +"Small plants and shrubs that decorate the forest. It has been rummaged " +"through and doesn't have anything useful left to forage from it. Frost " +"covers it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shrub" msgstr "灌木" +#. ~ Description for shrub +#: lang/json/terrain_from_json.py +msgid "A small shrub." +msgstr "" + #: lang/json/terrain_from_json.py msgid "peanut bush" msgstr "花生灌木" @@ -129856,22 +132418,49 @@ msgstr "" msgid "tree trunk" msgstr "樹幹" +#. ~ Description for tree trunk +#: lang/json/terrain_from_json.py +msgid "" +"A section of trunk from a tree that has been cut down. Can be sawn into " +"logs with the right tool." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tree stump" msgstr "樹樁" +#. ~ Description for tree stump +#: lang/json/terrain_from_json.py +msgid "A tree stump, remnant of a tree that has been cut down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root wall" msgstr "植根牆" +#. ~ Description for root wall +#: lang/json/terrain_from_json.py +msgid "A dirt wall covered with roots." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax wall" msgstr "蠟質牆" +#. ~ Description for wax wall +#: lang/json/terrain_from_json.py +msgid "A wall made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "wax floor" msgstr "蠟質地" +#. ~ Description for wax floor +#: lang/json/terrain_from_json.py +msgid "A floor section made entirely out of wax." +msgstr "" + #: lang/json/terrain_from_json.py msgid "picket fence" msgstr "柵欄" @@ -129970,6 +132559,11 @@ msgstr "" msgid "railing" msgstr "欄杆" +#. ~ Description for railing +#: lang/json/terrain_from_json.py +msgid "A section of wooden railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crack!" msgstr "喀啦!" @@ -129978,6 +132572,11 @@ msgstr "喀啦!" msgid "glass railing" msgstr "" +#. ~ Description for glass railing +#: lang/json/terrain_from_json.py +msgid "A section of railing made out of glass." +msgstr "" + #: lang/json/terrain_from_json.py msgid "glass braking!" msgstr "" @@ -129990,10 +132589,20 @@ msgstr "咔-啦!" msgid "metal railing" msgstr "" +#. ~ Description for metal railing +#: lang/json/terrain_from_json.py +msgid "A section of metal railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete railing" msgstr "" +#. ~ Description for concrete railing +#: lang/json/terrain_from_json.py +msgid "A section of cemented concrete railing." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rain gutter" msgstr "" @@ -130166,46 +132775,136 @@ msgstr "" msgid "shallow water" msgstr "淺水" +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather fresh water from here. Not safe to drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "deep water" msgstr "深水" +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather fresh water from here. Not safe to " +"drink as is." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing shallow water" msgstr "" +#. ~ Description for flowing shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water isn't too deep here. With a watertight container, you " +"could gather fresh water from here. Not safe to drink as is, although " +"probably safer than stagnant water." +msgstr "" + #: lang/json/terrain_from_json.py msgid "flowing deep water" msgstr "" +#. ~ Description for flowing deep water +#: lang/json/terrain_from_json.py +msgid "" +"The streaming water looks deep here. With a watertight container, you could" +" gather fresh water from here. Not safe to drink as is, although probably " +"safer than stagnant water." +msgstr "" + +#. ~ Description for shallow water +#: lang/json/terrain_from_json.py +msgid "" +"The water isn't too deep here. With a watertight container, you could " +"gather salt water from here." +msgstr "" + +#. ~ Description for deep water +#: lang/json/terrain_from_json.py +msgid "" +"You're having trouble seeing the bottom through the deep water here. With a" +" watertight container, you could gather salt water from here." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pool water" msgstr "池水" +#. ~ Description for pool water +#: lang/json/terrain_from_json.py +msgid "" +"A deep pool full of water. Never swim without a lifeguard present. Even " +"though monsters probably ate them." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sewage" msgstr "污水" +#. ~ Description for sewage +#: lang/json/terrain_from_json.py +msgid "" +"Gross. Sewage water flows through here. As if it needed saying, this isn't" +" safe to drink." +msgstr "" + #: lang/json/terrain_from_json.py lang/json/trap_from_json.py msgid "lava" msgstr "岩漿" +#. ~ Description for lava +#: lang/json/terrain_from_json.py +msgid "" +"An extremely hot, glowing liquid, composed of molten rock and/or metal. In " +"some places, lava-grilled steak is a delicacy." +msgstr "" + #: lang/json/terrain_from_json.py msgid "sandbox" msgstr "沙盒" +#. ~ Description for sandbox +#: lang/json/terrain_from_json.py +msgid "" +"Children used to play in this sandbox. The population of lice probably " +"diminished considerably now that they no longer do." +msgstr "" + #: lang/json/terrain_from_json.py msgid "slide" msgstr "滑道" +#. ~ Description for slide +#: lang/json/terrain_from_json.py +msgid "A children's slide. Too small to slide on comfortably anymore." +msgstr "" + #: lang/json/terrain_from_json.py msgid "monkey bars" msgstr "單槓" +#. ~ Description for monkey bars +#: lang/json/terrain_from_json.py +msgid "" +"A set of monkey bars, to be used by children to train their arms by hanging " +"from the bars, and have fun." +msgstr "" + #: lang/json/terrain_from_json.py msgid "backboard" msgstr "籃板" +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A basketball backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gasoline pump" msgstr "汽油泵" @@ -130223,14 +132922,31 @@ msgstr "" msgid "tank with gasoline" msgstr "裝著汽油的油箱" +#. ~ Description for tank with gasoline +#: lang/json/terrain_from_json.py +msgid "A tank filled with gasoline." +msgstr "" + #: lang/json/terrain_from_json.py msgid "little column" msgstr "矮欄柱" +#. ~ Description for little column +#: lang/json/terrain_from_json.py +msgid "A small support column." +msgstr "" + #: lang/json/terrain_from_json.py msgid "smashed gas pump" msgstr "損壞的汽油泵" +#. ~ Description for smashed gas pump +#: lang/json/terrain_from_json.py +msgid "" +"The horror! This gasoline pump has been destroyed, denying you access to " +"the liquid gold." +msgstr "" + #. ~ Description for diesel pump #: lang/json/terrain_from_json.py msgid "" @@ -130245,6 +132961,13 @@ msgstr "" msgid "smashed diesel pump" msgstr "損壞的柴油泵" +#. ~ Description for smashed diesel pump +#: lang/json/terrain_from_json.py +msgid "" +"You're not getting any diesel out of this pump any time soon. Some " +"barbarian decided to take their frustration out on it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ATM" msgstr "自動櫃員機" @@ -130267,6 +132990,12 @@ msgstr "瀕臨嚴重故障, 自毀裝置啟動。祝你有美好的一天!" msgid "broken generator" msgstr "損壞的發電機" +#. ~ Description for broken generator +#: lang/json/terrain_from_json.py +msgid "" +"This generator is broken and will not help you produce usable electricity." +msgstr "" + #: lang/json/terrain_from_json.py msgid "missile" msgstr "飛彈" @@ -130470,6 +133199,13 @@ msgstr "" msgid "cloning vat" msgstr "複製艙" +#. ~ Description for cloning vat +#: lang/json/terrain_from_json.py +msgid "" +"A vat full of solution, probably intended to hold growing clones of people " +"or other life forms." +msgstr "" + #: lang/json/terrain_from_json.py msgid "plunk." msgstr "啪。" @@ -130478,6 +133214,16 @@ msgstr "啪。" msgid "stairs" msgstr "樓梯" +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading down." +msgstr "" + +#. ~ Description for stairs +#: lang/json/terrain_from_json.py +msgid "A flight of stairs leading up." +msgstr "" + #: lang/json/terrain_from_json.py msgid "manhole" msgstr "人孔蓋" @@ -130494,22 +133240,68 @@ msgstr "" msgid "ladder" msgstr "梯子" +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading up." +msgstr "" + +#. ~ Description for ladder +#: lang/json/terrain_from_json.py +msgid "A ladder leading down." +msgstr "" + #: lang/json/terrain_from_json.py msgid "downward slope" msgstr "下坡" +#. ~ Description for downward slope +#: lang/json/terrain_from_json.py +msgid "A downward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "upward slope" msgstr "上坡" +#. ~ Description for upward slope +#: lang/json/terrain_from_json.py +msgid "An upward facing slope." +msgstr "" + #: lang/json/terrain_from_json.py msgid "rope leading up" msgstr "向上延伸的繩子" +#. ~ Description for rope leading up +#: lang/json/terrain_from_json.py +msgid "A rope. You could climb up it." +msgstr "" + +#. ~ Description for manhole cover +#: lang/json/terrain_from_json.py +msgid "Just a manhole cover." +msgstr "" + +#. ~ Description for intercom +#: lang/json/terrain_from_json.py +msgid "" +"An intercom panel. For when you want to scare the crap out of someone, or " +"just talk to them over the intercom system, if you're boring like that." +msgstr "" + #: lang/json/terrain_from_json.py msgid "card reader" msgstr "讀卡機" +#. ~ Description for card reader +#: lang/json/terrain_from_json.py +msgid "" +"This is a smartcard reader. It sports the stylized symbol of an atom inside" +" a flask that is universally known to indicate SCIENCE. An ominous red LED " +"reminds you of a robot gone haywire from an old sci-fi flick. You could " +"swipe a scientific ID badge near it if you do not fear the machine." +msgstr "" + #. ~ Description for card reader #: lang/json/terrain_from_json.py msgid "" @@ -130584,54 +133376,121 @@ msgstr "" msgid "elevator" msgstr "電梯" +#. ~ Description for elevator +#: lang/json/terrain_from_json.py +msgid "The interior section of an elevator." +msgstr "" + #: lang/json/terrain_from_json.py msgid "dark pedestal" msgstr "黑暗的台座" +#. ~ Description for dark pedestal +#: lang/json/terrain_from_json.py +msgid "" +"A dark stone pedestal covered in ancient, unintelligible symbols. Looks " +"ominous." +msgstr "" + #: lang/json/terrain_from_json.py msgid "light pedestal" msgstr "發亮的台座" +#. ~ Description for light pedestal +#: lang/json/terrain_from_json.py +msgid "A light stone pedestal covered in ancient, unintelligible symbols." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red stone" msgstr "紅色石頭" +#. ~ Description for red stone +#: lang/json/terrain_from_json.py +msgid "A red stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green stone" msgstr "綠色石頭" +#. ~ Description for green stone +#: lang/json/terrain_from_json.py +msgid "A green stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue stone" msgstr "藍色石頭" +#. ~ Description for blue stone +#: lang/json/terrain_from_json.py +msgid "A blue stone." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red floor" msgstr "紅色地板" +#. ~ Description for red floor +#: lang/json/terrain_from_json.py +msgid "A red section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "green floor" msgstr "綠色地板" +#. ~ Description for green floor +#: lang/json/terrain_from_json.py +msgid "A green section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blue floor" msgstr "藍色地板" +#. ~ Description for blue floor +#: lang/json/terrain_from_json.py +msgid "A blue section of flooring." +msgstr "" + #: lang/json/terrain_from_json.py msgid "yellow switch" msgstr "黃色地板" +#. ~ Description for yellow switch +#: lang/json/terrain_from_json.py +msgid "A yellow switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "cyan switch" msgstr "青色開關" +#. ~ Description for cyan switch +#: lang/json/terrain_from_json.py +msgid "A cyan switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "purple switch" msgstr "紫色開關" +#. ~ Description for purple switch +#: lang/json/terrain_from_json.py +msgid "A purple switch. Should you activate it?" +msgstr "" + #: lang/json/terrain_from_json.py msgid "checkered switch" msgstr "花紋開關" +#. ~ Description for checkered switch +#: lang/json/terrain_from_json.py +msgid "A checkered switch. Should you activate it?" +msgstr "" + #. ~ Description for red carpet #: lang/json/terrain_from_json.py msgid "Soft red carpet." @@ -130656,6 +133515,18 @@ msgstr "" msgid "linoleum tile" msgstr "油氈磚" +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "" +"A section of flooring made out of a tough, rubbery material. Coloured a " +"simple white." +msgstr "" + +#. ~ Description for linoleum tile +#: lang/json/terrain_from_json.py +msgid "A section of flooring made out of a tough, gray, rubbery material." +msgstr "" + #: lang/json/terrain_from_json.py msgid "red wall" msgstr "紅色牆" @@ -130714,10 +133585,22 @@ msgstr "" msgid "stone wall" msgstr "石牆" +#. ~ Description for stone wall +#: lang/json/terrain_from_json.py +msgid "A sturdy stone wall." +msgstr "" + #: lang/json/terrain_from_json.py msgid "half-built stone wall" msgstr "半建成石牆" +#. ~ Description for half-built stone wall +#: lang/json/terrain_from_json.py +msgid "" +"Half of a sturdy stone wall. Some work still needs to be done before this " +"stone wall is complete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "covered well" msgstr "加蓋的井" @@ -130751,33 +133634,64 @@ msgstr "臨時避難所" #. ~ Description for improvised shelter #: lang/json/terrain_from_json.py msgid "" -"Improvised shelter providing little bit of protection from the elements." +"Improvised shelter providing little bit of protection, that can be used to " +"take refuge from the elements or to protect a campfire from the rain." msgstr "" #: lang/json/terrain_from_json.py msgid "flat roof" msgstr "平屋頂" +#. ~ Description for flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tar paper flat roof" msgstr "" +#. ~ Description for tar paper flat roof +#: lang/json/terrain_from_json.py +msgid "A flat, gray section of rooftop covered with tar paper." +msgstr "" + #: lang/json/terrain_from_json.py msgid "shingle flat roof" msgstr "" +#. ~ Description for shingle flat roof +#: lang/json/terrain_from_json.py +msgid "A flat section of rooftop covered in shingles." +msgstr "" + #: lang/json/terrain_from_json.py msgid "thatched roof" msgstr "" +#. ~ Description for thatched roof +#: lang/json/terrain_from_json.py +msgid "A section of roof made out of straw." +msgstr "" + #: lang/json/terrain_from_json.py msgid "metal flat roof" msgstr "" +#. ~ Description for metal flat roof +#: lang/json/terrain_from_json.py +msgid "A secton of flat, sheet metal rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tile flat roof" msgstr "" +#. ~ Description for tile flat roof +#: lang/json/terrain_from_json.py +msgid "A section of tiled, flat rooftop." +msgstr "" + #: lang/json/terrain_from_json.py msgid "skylight" msgstr "" @@ -130805,22 +133719,51 @@ msgstr "" msgid "telecom cabinet" msgstr "通信櫃" +#. ~ Description for telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A cabinet full of telecoms equipment. With the lines down, you might be " +"able to take it apart for its useful electronics." +msgstr "" + #: lang/json/terrain_from_json.py msgid "damaged telecom cabinet" msgstr "受損的通信櫃" +#. ~ Description for damaged telecom cabinet +#: lang/json/terrain_from_json.py +msgid "" +"A damaged telecoms cabinet. Might still be able to salvage some useful " +"electronics scrap from it." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large metal support" msgstr "大金屬支架" +#. ~ Description for large metal support +#: lang/json/terrain_from_json.py +msgid "A heavy-duty metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small metal support" msgstr "小金屬支架" +#. ~ Description for small metal support +#: lang/json/terrain_from_json.py +msgid "A metal support beam." +msgstr "" + #: lang/json/terrain_from_json.py msgid "HV oil circuit breaker" msgstr "高壓油斷路器" +#. ~ Description for HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "pow!" msgstr "碰!" @@ -130829,30 +133772,72 @@ msgstr "碰!" msgid "small HV oil circuit breaker" msgstr "小型高壓油斷路器" +#. ~ Description for small HV oil circuit breaker +#: lang/json/terrain_from_json.py +msgid "A small circuit breaker that uses oil in its arc supression chamber." +msgstr "" + #: lang/json/terrain_from_json.py msgid "large switchgear" msgstr "大型開關" +#. ~ Description for large switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A switchgear panel. It's covered in breaker switches, fuses, and gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "small switchgear" msgstr "小型開關" +#. ~ Description for small switchgear +#: lang/json/terrain_from_json.py +msgid "" +"A small switchgear panel. It's covered in breaker switches, fuses, and " +"gauges." +msgstr "" + #: lang/json/terrain_from_json.py msgid "lightning arrester" msgstr "避雷器" +#. ~ Description for lightning arrester +#: lang/json/terrain_from_json.py +msgid "" +"A component designed to protect insulation and conductors in an electrical " +"system by directing lightning through itself and into the ground." +msgstr "" + #: lang/json/terrain_from_json.py msgid "disconnect switch" msgstr "斷路開關" +#. ~ Description for disconnect switch +#: lang/json/terrain_from_json.py +msgid "" +"A switch used to make sure an electrical system doesn't have any current " +"flowing through it, for maintenance periods." +msgstr "" + #: lang/json/terrain_from_json.py msgid "current transformer" msgstr "電流互感器" +#. ~ Description for current transformer +#: lang/json/terrain_from_json.py +msgid "An electronic component used to transform the voltage of a current." +msgstr "" + #: lang/json/terrain_from_json.py msgid "potential transformer" msgstr "電壓互感器" +#. ~ Description for potential transformer +#: lang/json/terrain_from_json.py +msgid "A specialised type of electrical transformer, " +msgstr "" + #. ~ Description for dock #. ~ Description for shallow bridge #: lang/json/terrain_from_json.py @@ -130883,6 +133868,11 @@ msgstr "" msgid "bridge pavement" msgstr "橋面" +#. ~ Description for bridge pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete." +msgstr "" + #: lang/json/terrain_from_json.py msgid "concrete cracking and metal screeching!" msgstr "混凝土崩裂及金屬嘎嘎聲!" @@ -130891,22 +133881,61 @@ msgstr "混凝土崩裂及金屬嘎嘎聲!" msgid "bridge yellow pavement" msgstr "黃色橋面" +#. ~ Description for bridge yellow pavement +#: lang/json/terrain_from_json.py +msgid "A bridge section made out of metal and concrete. It's painted yellow." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bridge sidewalk" msgstr "橋人行道" +#. ~ Description for bridge sidewalk +#: lang/json/terrain_from_json.py +msgid "The sidewalk section of a concrete bridge." +msgstr "" + #: lang/json/terrain_from_json.py msgid "guard rail" msgstr "護欄" +#. ~ Description for guard rail +#: lang/json/terrain_from_json.py +msgid "" +"A section of metal railing, put in place to prevent people from falling or " +"taking the easy way out." +msgstr "" + #: lang/json/terrain_from_json.py msgid "blackjack oak" msgstr "馬列蘭櫟" +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. You could peel off the bark " +"sections if you examined the tree more closely. You could cut it down with " +"the right tools." +msgstr "" + +#. ~ Description for blackjack oak +#: lang/json/terrain_from_json.py +msgid "" +"A deciduous tree of the genus 'Quercus', with bark cracked into rectangular " +"black plates split by narrow orange fissures. All usable bark has been " +"stripped off. You could cut it down with the right tools." +msgstr "" + #: lang/json/terrain_from_json.py msgid "mound of clay" msgstr "黏土堆" +#. ~ Description for mound of clay +#: lang/json/terrain_from_json.py +msgid "A mound of clay soil." +msgstr "" + #: lang/json/terrain_from_json.py msgid "splosh!" msgstr "啪啦!" @@ -130915,10 +133944,20 @@ msgstr "啪啦!" msgid "mound of sand" msgstr "沙堆" +#. ~ Description for mound of sand +#: lang/json/terrain_from_json.py +msgid "A mound of sand." +msgstr "" + #: lang/json/terrain_from_json.py msgid "conveyor belt" msgstr "輸送帶" +#. ~ Description for conveyor belt +#: lang/json/terrain_from_json.py +msgid "A convetor belt. Used to transport things." +msgstr "" + #: lang/json/terrain_from_json.py msgid "ting." msgstr "汀。" @@ -130927,18 +133966,38 @@ msgstr "汀。" msgid "light machinery" msgstr "輕型機械" +#. ~ Description for light machinery +#: lang/json/terrain_from_json.py +msgid "Assorted light machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "heavy machinery" msgstr "重型機械" +#. ~ Description for heavy machinery +#: lang/json/terrain_from_json.py +msgid "Assorted heavy machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "old machinery" msgstr "舊機械" +#. ~ Description for old machinery +#: lang/json/terrain_from_json.py +msgid "Assorted old machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "electronic machinery" msgstr "電子機械" +#. ~ Description for electronic machinery +#: lang/json/terrain_from_json.py +msgid "Assorted electronic machinery. You could scavenge it for parts." +msgstr "" + #: lang/json/terrain_from_json.py msgid "low stairs (beginning section)" msgstr "矮梯 (開頭部分)" @@ -130951,10 +134010,20 @@ msgstr "矮梯 (結尾部分)" msgid "milking machine" msgstr "擠奶機" +#. ~ Description for milking machine +#: lang/json/terrain_from_json.py +msgid "A machine used in the dairy industry to milk cows." +msgstr "" + #: lang/json/terrain_from_json.py msgid "bulk tank" msgstr "巨大貯水罐" +#. ~ Description for bulk tank +#: lang/json/terrain_from_json.py +msgid "A heavy, high capacity tank." +msgstr "" + #: lang/json/terrain_from_json.py msgid "gravel" msgstr "" @@ -130971,26 +134040,77 @@ msgstr "" msgid "railroad track" msgstr "鐵路軌道" +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad tie" msgstr "鐵路枕木" +#. ~ Description for railroad tie +#: lang/json/terrain_from_json.py +msgid "This crosstie is used to support the rails." +msgstr "" + +#. ~ Description for railroad track +#: lang/json/terrain_from_json.py +msgid "" +"Trains used to chug along on these. These rail tracks stand unused in the " +"face of the Cataclysm. A crosstie sits underneath, supporting the rails." +msgstr "" + #: lang/json/terrain_from_json.py msgid "painted waxed floor" msgstr "" +#. ~ Description for painted waxed floor +#: lang/json/terrain_from_json.py +msgid "This section of wax flooring has been painted." +msgstr "" + +#. ~ Description for backboard +#: lang/json/terrain_from_json.py +msgid "A metal backboard." +msgstr "" + #: lang/json/terrain_from_json.py msgid "buffer stop" msgstr "" +#. ~ Description for buffer stop +#: lang/json/terrain_from_json.py +msgid "" +"A tiny blockade on the train tracks, meant to signify the end of a track, or" +" mark a 'no-go' zone for trains." +msgstr "" + #: lang/json/terrain_from_json.py msgid "railroad crossing signal" msgstr "" +#. ~ Description for railroad crossing signal +#: lang/json/terrain_from_json.py +msgid "" +"Traffic lights meant to light and make noise when a train approaches, to " +"prevent people from turning into meaty mush while they cross the tracks. " +"Won't stop people from turning into meaty mush by other means, though." +msgstr "" + #: lang/json/terrain_from_json.py msgid "crossbuck" msgstr "" +#. ~ Description for crossbuck +#: lang/json/terrain_from_json.py +msgid "" +"A traffic sign intended to indicate a level railway crossing. If the trains" +" were still running." +msgstr "" + #: lang/json/terrain_from_json.py msgid "root cellar" msgstr "" @@ -131147,10 +134267,24 @@ msgstr "" msgid "pine lean-to" msgstr "松木棚" +#. ~ Description for pine lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter roofed with pine leaves, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "tarp lean-to" msgstr "篷布棚" +#. ~ Description for tarp lean-to +#: lang/json/terrain_from_json.py +msgid "" +"A small shelter covered by waterproof tarp, that can be used to take refuge " +"from the elements or to protect a campfire from the rain." +msgstr "" + #: lang/json/terrain_from_json.py msgid "scorched earth" msgstr "焦土" @@ -131278,10 +134412,6 @@ msgstr "" msgid "smoothing" msgstr "整平" -#: lang/json/tool_quality_from_json.py -msgid "welding" -msgstr "焊接" - #: lang/json/tool_quality_from_json.py msgid "hammering" msgstr "敲擊" @@ -131330,10 +134460,6 @@ msgstr "蒸餾" msgid "tree cutting" msgstr "砍伐" -#: lang/json/tool_quality_from_json.py -msgid "digging" -msgstr "挖掘" - #: lang/json/tool_quality_from_json.py msgid "bolt turning" msgstr "螺栓扭轉" @@ -131350,14 +134476,6 @@ msgstr "螺絲旋轉" msgid "fine screw driving" msgstr "精密螺絲旋轉" -#: lang/json/tool_quality_from_json.py -msgid "butchering" -msgstr "屠宰" - -#: lang/json/tool_quality_from_json.py -msgid "drilling" -msgstr "鑽穿" - #: lang/json/tool_quality_from_json.py msgid "prying" msgstr "撬開" @@ -132368,6 +135486,12 @@ msgid "" "A place to sit, and the backrest reclines to make it an uncomfortable bed." msgstr "一個可以坐下的地方, 後仰的靠背讓它變成一張睡起來不太舒服的床。" +#. ~ Description for yoke and harness +#: lang/json/vehicle_part_from_json.py +msgid "" +"Attach this part to a beast of burden to allow it to pull your vehicle." +msgstr "" + #: lang/json/vehicle_part_from_json.py msgid "tracking device" msgstr "追蹤裝置" @@ -136214,10 +139338,14 @@ msgstr "你把彈藥裝入了 %s。" msgid "You refill the %s." msgstr "你裝填了 %s。" -#: src/activity_handlers.cpp +#: src/activity_handlers.cpp src/iuse_actor.cpp msgid "There's nothing to light there." msgstr "這裡沒有能點燃的東西。" +#: src/activity_handlers.cpp +msgid "This item requires tinder to light." +msgstr "" + #: src/activity_handlers.cpp msgid "You have lost the item you were using to start the fire." msgstr "你失去了你用來生火的這項道具。" @@ -136890,6 +140018,11 @@ msgstr "" msgid "%s sorted out every item possible." msgstr "" +#: src/activity_type.cpp +#, c-format +msgid "Stop %s?" +msgstr "" + #: src/addiction.cpp msgid "You need some nicotine." msgstr "你需要來點尼古丁。" @@ -139080,6 +142213,18 @@ msgstr "再讀一次 %s 對 %s 來說不是那麼有趣。" msgid "Maybe you should find something new to read..." msgstr "你也許該找點新的閱讀材料…" +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through your internal alarm..." +msgstr "看來你睡過頭了…" + +#: src/avatar.cpp src/player_hardcoded_effects.cpp +msgid "It looks like you've slept through the alarm..." +msgstr "看來你睡過頭了…" + +#: src/avatar.cpp +msgid "You retched, but your stomach is empty." +msgstr "你乾嘔, 但你的胃是空的。" + #: src/avatar_action.cpp msgid "You can't move while in your shell. Deactivate it to go mobile." msgstr "你在殼中的時候無法移動。取消之後才能移動。" @@ -139129,6 +142274,10 @@ msgstr "有另一部車輛在路線上。" msgid "That part of the vehicle is currently unsafe." msgstr "這個車輛上的部件目前是不安全的。" +#: src/avatar_action.cpp +msgid "Your mount shies away from the water!" +msgstr "" + #: src/avatar_action.cpp msgid "Dive into the water?" msgstr "潛到水裡?" @@ -139185,6 +142334,10 @@ msgstr "你需要空氣! (按 %s 浮出水面)" msgid "You need to breathe but you can't swim! Get to dry land, quick!" msgstr "你需要空氣但是你無法游泳! 快到陸地上!" +#: src/avatar_action.cpp +msgid "You cannot board a vehicle while mounted." +msgstr "" + #: src/avatar_action.cpp msgid "No hostile creature in reach. Waiting a turn." msgstr "範圍內沒有敵對生物。等待一回合。" @@ -139242,6 +142395,38 @@ msgstr "你必須站在適合的地形或是家具附近才能使用這個武器 msgid "The %s can't be fired in its current state." msgstr "%s 在目前的狀態下無法發射。" +#: src/avatar_action.cpp +msgid "You can't effectively throw while you're in your shell." +msgstr "你在殼中無法有效率的投擲。" + +#: src/avatar_action.cpp +msgid "Throw item" +msgstr "投擲物品" + +#: src/avatar_action.cpp +msgid "You don't have any items to throw." +msgstr "你沒有可以投擲的物品。" + +#: src/avatar_action.cpp src/player.cpp +msgid "You don't have that item." +msgstr "你沒有那個物品。" + +#: src/avatar_action.cpp +msgid "That is too heavy to throw." +msgstr "太重了無法投擲。" + +#: src/avatar_action.cpp +msgid "That's part of your body, you can't throw that!" +msgstr "那是你身體的一部分無法投擲!" + +#: src/avatar_action.cpp +msgid "You concentrate mightily, and your body obeys!" +msgstr "你聚精會神, 你的身體開始服從大腦了!" + +#: src/avatar_action.cpp +msgid "You can't muster up the effort to throw anything..." +msgstr "你無法提起力氣投擲東西…" + #: src/ballistics.cpp #, c-format msgid "The %s shatters!" @@ -139278,19 +142463,13 @@ msgid "" "Notes:\n" "%s\n" "\n" -"Skill used: %s\n" +"Skills used: %s\n" "%s\n" msgstr "" #: src/basecamp.cpp #, c-format msgid "" -"Notes:\n" -"%s\n" -"\n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" "Risk: None\n" "Time: %s\n" msgstr "" @@ -140492,6 +143671,11 @@ msgstr "你站起來了。" msgid " stands up." msgstr " 站起來了。" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s breaks free of the webs!" +msgstr "%s 掙脫了網子!" + #: src/character.cpp msgid "You free yourself from the webs!" msgstr "你從網子中掙脫了!" @@ -140504,6 +143688,11 @@ msgstr " 從網子中掙脫了!" msgid "You try to free yourself from the webs, but can't get loose!" msgstr "你嘗試從網子中掙脫, 但失敗了!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the light snare!" +msgstr "%s 掙脫輕型繩套!" + #: src/character.cpp msgid "You free yourself from the light snare!" msgstr "你從輕型圈套中掙脫了!" @@ -140516,6 +143705,11 @@ msgstr " 從輕型圈套中掙脫了!" msgid "You try to free yourself from the light snare, but can't get loose!" msgstr "你嘗試從輕型圈套中掙脫, 但失敗了!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the heavy snare!" +msgstr "%s 掙脫重型繩套!" + #: src/character.cpp msgid "You free yourself from the heavy snare!" msgstr "你從重型圈套中掙脫了!" @@ -140528,6 +143722,16 @@ msgstr " 從重型圈套中掙脫了!" msgid "You try to free yourself from the heavy snare, but can't get loose!" msgstr "你嘗試從重型圈套中掙脫, 但失敗了!" +#: src/character.cpp src/monster.cpp +#, c-format +msgid "The %s escapes the bear trap!" +msgstr "%s 逃出捕獸陷阱!" + +#: src/character.cpp +#, c-format +msgid "Your %s tries to free itself from the bear trap, but can't get loose!" +msgstr "" + #: src/character.cpp msgid "You free yourself from the bear trap!" msgstr "你從捕熊陷阱中掙脫!" @@ -140564,6 +143768,21 @@ msgstr "你逃出坑了!" msgid " escapes the pit!" msgstr " 逃出坑了!" +#: src/character.cpp +#, c-format +msgid "Your %s tries to break free, but fails!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "Your %s breaks free from the grab!" +msgstr "" + +#: src/character.cpp +#, c-format +msgid "You are pulled from your %s!" +msgstr "" + #: src/character.cpp msgid "You find yourself no longer grabbed." msgstr "你不再被束縛了。" @@ -140861,6 +144080,64 @@ msgstr "" msgid "EXTRA_EXERCISE" msgstr "" +#: src/character.cpp +msgid "a piercing howl!" +msgstr "一聲刺耳的嚎叫!" + +#: src/character.cpp +msgid "yourself let out a piercing howl!" +msgstr "你發出一聲刺耳的嚎叫!" + +#: src/character.cpp +msgid "a loud scream!" +msgstr "一聲尖叫!" + +#: src/character.cpp +msgid "yourself scream loudly!" +msgstr "你發出一聲尖叫!" + +#: src/character.cpp +msgid "a loud shout!" +msgstr "一聲大叫" + +#: src/character.cpp +msgid "yourself shout loudly!" +msgstr "你發出一聲大叫!" + +#: src/character.cpp +msgid "The sound of your voice is almost completely muffled!" +msgstr "你的聲音幾乎被完全阻隔了!" + +#: src/character.cpp +msgid "an indistinct voice" +msgstr "" + +#: src/character.cpp +msgid "your muffled shout" +msgstr "" + +#: src/character.cpp +msgid "The sound of your voice is significantly muffled!" +msgstr "你的聲音被大幅阻隔了!" + +#: src/character.cpp +msgctxt "memorial_male" +msgid "Threw up." +msgstr "嘔吐了。" + +#: src/character.cpp +msgctxt "memorial_female" +msgid "Threw up." +msgstr "嘔吐了。" + +#: src/character.cpp +msgid " throws up heavily!" +msgstr " 嘔吐的很嚴重!" + +#: src/character.cpp +msgid "You throw up heavily!" +msgstr "你嘔吐的很嚴重!" + #: src/clzones.cpp msgid "No Auto Pickup" msgstr "關閉自動撿取" @@ -141521,91 +144798,10 @@ msgstr "升降梯啟動。請按任意鍵…" msgid "NEPower Mine(%d:%d) Log" msgstr "東北能源礦坑 (%d:%d) 日誌" -#: src/computer.cpp -msgid "" -"ENTRY 47:\n" -"Our normal mining routine has unearthed a hollow chamber. This would not be\n" -"out of the ordinary, save for the odd, perfectly vertical faultline found.\n" -"This faultline has several odd concavities in it which have the more\n" -"superstitious crew members alarmed; they seem to be of human origin.\n" -"\n" -"ENTRY 48:\n" -"The concavities are between 10 and 20 feet tall, and run the length of the\n" -"faultline. Each one is vaguely human in shape, but with the proportions of\n" -"the limbs, neck and head greatly distended, all twisted and curled in on\n" -"themselves.\n" -msgstr "" -"記錄 47:\n" -"我們在日常的採礦工作挖掘出一個中空的空間。另外更不正常的是,\n" -"還找到了一個有完美垂直的斷層。\n" -"這個斷層上有數個詭異的凹洞, 一些迷信的工人們非常緊張,\n" -"並且這些凹洞像是人造的。\n" -"\n" -"記錄 48:\n" -"這些凹洞大約 10 到 20 呎高, 大大小小分布在整個斷層上。\n" -"每個看起來都像人的形狀, 但四肢、頸部與頭部的卻是拉長的,\n" -"整個凹洞是扭曲的。\n" - #: src/computer.cpp msgid "Continue reading?" msgstr "繼續閱讀?" -#: src/computer.cpp -msgid "" -"ENTRY 49:\n" -"We've stopped mining operations in this area, obviously, until archaeologists\n" -"have the chance to inspect the area. This is going to set our schedule back\n" -"by at least a week. This stupid artifact-preservation law has been in place\n" -"for 50 years, and hasn't even been up for termination despite the fact that\n" -"these mining operations are the backbone of our economy.\n" -"\n" -"ENTRY 52:\n" -"Still waiting on the archaeologists. We've done a little light inspection of\n" -"the faultline; our sounding equipment is insufficient to measure the depth of\n" -"the concavities. The equipment is rated at 15 miles depth, but it isn't made\n" -"for such narrow tunnels, so it's hard to say exactly how far back they go.\n" -msgstr "" -"記錄 49:\n" -"我們在這個區域停止了一切的採礦作業, 顯然是要等到考古學家研究完這個地區。\n" -"而時間表得先推延至少一個星期。這個愚蠢的文化資產保護法已經存在 50 年了,\n" -"居然還沒有被廢除, 完全沒有考量到礦業是這個國家的經濟命脈。\n" -"\n" -"記錄 52:\n" -"目前還在等這些考古學家完事, 我們已經對這斷層做了一些小分析。\n" -"我們的聲納設備還不足以探查這些凹洞的深度。\n" -"這個設備只能測到 15 英里深, 並且不適合測這種狹隘的孔洞,\n" -"所以也很難以確定到底正確深度是多少。\n" - -#: src/computer.cpp -msgid "" -"ENTRY 54:\n" -"I noticed a couple of the guys down in the chamber with a chisel, breaking\n" -"off a piece of the sheer wall. I'm looking the other way. It's not like\n" -"the eggheads are going to notice a little piece missing. Fuck em.\n" -"\n" -"ENTRY 55:\n" -"Well, the archaeologists are down there now with a couple of the boys as\n" -"guides. They're hardly Indiana Jones types; I doubt they been below 20\n" -"feet. I hate taking guys off assignment just to babysit the scientists, but\n" -"if they get hurt we'll be shut down for god knows how long.\n" -"\n" -"ENTRY 58:\n" -"They're bringing in ANOTHER CREW? Christ, it's just some cave carvings! I\n" -"know that's sort of a big deal, but come on, these guys can't handle it?\n" -msgstr "" -"記錄 54:\n" -"我發現有一些人下到那個空間裡用鑿子敲岩壁, 並採集斷崖的碎片。\n" -"我正在想辦法, 讓這些傻子不會發現碎片不見了, 爽啦。\n" -"\n" -"記錄 55:\n" -"嗯, 現在這些考古學家跟一些看起來不像印第安瓊斯的男性嚮導在下面。\n" -"我看他們應該連 20 英呎都下不去, 我討厭當這些科學家的保母,\n" -"但如果他們受傷了, 天知道這礦坑會被封閉多久。\n" -"\n" -"記錄 58:\n" -"他們居然帶來了另一組人? 老天, 這只是一堆洞穴啊!\n" -"我知道這沒有什麼大不了, 但是拜託, 現有人力沒辦法處理嗎?\n" - #: src/computer.cpp msgid "AMIGARA PROJECT" msgstr "阿彌殼斷層計畫" @@ -141617,28 +144813,10 @@ msgid "" "PERTINENT FOREMAN LOGS WILL BE PREPENDED TO NOTES" msgstr "" -#: src/computer.cpp -msgid "" -"\n" -"MINE OPERATIONS SUSPENDED; CONTROL TRANSFERRED TO AMIGARA PROJECT UNDER\n" -" IMPERATIVE 2:07B\n" -"FAULTLINE SOUNDING HAS PLACED DEPTH AT 30.09 KM\n" -"DAMAGE TO FAULTLINE DISCOVERED; NEPOWER MINE CREW PLACED UNDER ARREST FOR\n" -" VIOLATION OF REGULATION 87.08 AND TRANSFERRED TO LAB 89-C FOR USE AS\n" -" SUBJECTS\n" -"QUALITY OF FAULTLINE NOT COMPROMISED\n" -"INITIATING STANDARD TREMOR TEST..." -msgstr "" - #: src/computer.cpp msgid "FILE CORRUPTED, PRESS ANY KEY..." msgstr "檔案已損毀, 請按任意鍵…" -#: src/computer.cpp -#, c-format -msgid "The machine rapidly sets and splints your broken %s." -msgstr "" - #: src/computer.cpp msgid "--ACCESS GRANTED--" msgstr "--獲准存取--" @@ -143919,6 +147097,10 @@ msgstr "" msgid "Toggle display temperature" msgstr "" +#: src/debug_menu.cpp +msgid "Toggle display visibility" +msgstr "" + #: src/debug_menu.cpp msgid "Show mutation category levels" msgstr "顯示突變分類等級" @@ -144091,6 +147273,10 @@ msgstr "男性" msgid "no faction" msgstr "" +#: src/debug_menu.cpp +msgid "no currency" +msgstr "" + #: src/debug_menu.cpp #, c-format msgid "Destination: %d:%d:%d (%s)" @@ -147715,19 +150901,6 @@ msgstr "" "食物: %15d (大卡)\n" " \n" -#: src/faction_camp.cpp -#, c-format -msgid "" -"Notes:\n" -"%s\n" -" \n" -"Skill used: %s\n" -"Difficulty: %d\n" -"%s \n" -"Risk: None\n" -"Time: %s\n" -msgstr "" - #: src/faction_camp.cpp #, c-format msgid "" @@ -149277,6 +152450,18 @@ msgstr "" msgid "Without extra fuel it will burn for %s." msgstr "" +#: src/game.cpp +msgid "You cannot do that while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot interact with a vehicle while mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot use a console while mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "The %s is too unstable to remove anything." @@ -149553,38 +152738,6 @@ msgstr "來射擊" msgid "Drop where?" msgstr "丟棄到哪邊?" -#: src/game.cpp -msgid "You can't effectively throw while you're in your shell." -msgstr "你在殼中無法有效率的投擲。" - -#: src/game.cpp -msgid "Throw item" -msgstr "投擲物品" - -#: src/game.cpp -msgid "You don't have any items to throw." -msgstr "你沒有可以投擲的物品。" - -#: src/game.cpp src/player.cpp -msgid "You don't have that item." -msgstr "你沒有那個物品。" - -#: src/game.cpp -msgid "That is too heavy to throw." -msgstr "太重了無法投擲。" - -#: src/game.cpp -msgid "That's part of your body, you can't throw that!" -msgstr "那是你身體的一部分無法投擲!" - -#: src/game.cpp -msgid "You concentrate mightily, and your body obeys!" -msgstr "你聚精會神, 你的身體開始服從大腦了!" - -#: src/game.cpp -msgid "You can't muster up the effort to throw anything..." -msgstr "你無法提起力氣投擲東西…" - #. ~ Name and number of items listed for cutting up #: src/game.cpp #, c-format @@ -149894,6 +153047,11 @@ msgid "Really step into %s?" msgstr "確定踏入 %s?" #: src/game.cpp +#, c-format +msgid "Your %s refuses to move over that ledge!" +msgstr "" + +#: src/game.cpp src/monexamine.cpp msgid "You let go of the grabbed object." msgstr "" @@ -149901,6 +153059,14 @@ msgstr "" msgid "Can't find grabbed object." msgstr "找不到抓著的物件。" +#: src/game.cpp +msgid "You cannot board a vehicle whilst mounted." +msgstr "" + +#: src/game.cpp +msgid "You cannot pass obstacles whilst mounted." +msgstr "" + #: src/game.cpp #, c-format msgid "Moving onto this %s is slow!" @@ -149961,12 +153127,27 @@ msgstr "你在 %s 上傷到你的左腳掌!" msgid "You hurt your right foot on the %s!" msgstr "你在 %s 上傷到你的右腳掌!" +#: src/game.cpp +#, c-format +msgid "Your %s gets cut!" +msgstr "" + #. ~ 1$s - bodypart name in accusative, 2$s is terrain name. #: src/game.cpp #, c-format msgid "You cut your %1$s on the %2$s!" msgstr "你的 %1$s 被 %2$s 割到了!" +#: src/game.cpp src/gates.cpp +#, c-format +msgid "You push the %s out of the way." +msgstr "你把擋路的 %s 推開。" + +#: src/game.cpp +#, c-format +msgid "There is no room to push the %s out of the way." +msgstr "" + #: src/game.cpp #, c-format msgid "You displace the %s." @@ -149976,6 +153157,10 @@ msgstr "你和 %s 互換位置。" msgid "There's something here, but you can't see what it is." msgstr "有什麼東西在這裡, 但你看不到它。" +#: src/game.cpp +msgid "There's something here, but you can't reach it whilst mounted." +msgstr "" + #. ~ number of items: " " #: src/game.cpp #, c-format @@ -150018,6 +153203,11 @@ msgstr "這裡有車輛控制器。" msgid "%s to drive." msgstr "使用 %s 來駕駛。" +#: src/game.cpp +msgid "" +"There are vehicle controls here but you cannot reach them whilst mounted." +msgstr "" + #: src/game.cpp msgid "" "You try to quantum tunnel through the barrier but are reflected! Try again " @@ -151085,11 +154275,6 @@ msgstr "擋路的 %s 太大了, 推不開。" msgid "There is too much stuff in the way." msgstr "太多物品擋在路中間了。" -#: src/gates.cpp -#, c-format -msgid "You push the %s out of the way." -msgstr "你把擋路的 %s 推開。" - #: src/gates.cpp msgid "stuff" msgstr "東西" @@ -151098,6 +154283,11 @@ msgstr "東西" msgid "No vehicle at grabbed point." msgstr "這裡沒車啦!" +#: src/grab.cpp +#, c-format +msgid "You cannot move this vehicle whilst your %s is harnessed!" +msgstr "" + #: src/grab.cpp #, c-format msgid "The %s is too bulky for you to move by hand." @@ -151585,14 +154775,30 @@ msgstr "自動移動取消" msgid "Unknown command: \"%s\" (%ld)" msgstr "未知的指令: '%s' (%ld)" +#: src/handle_action.cpp +msgid "You can't go down stairs while you're riding." +msgstr "" + +#: src/handle_action.cpp +msgid "You can't go up stairs while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't open things while you're in your shell." msgstr "你在殼中的時候不能打開東西。" +#: src/handle_action.cpp +msgid "You can't open things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't close things while you're in your shell." msgstr "你在殼中的時候不能關閉東西。" +#: src/handle_action.cpp +msgid "You can't close things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't smash things while you're in your shell." msgstr "你在殼中的時候不能砸東西。" @@ -151605,26 +154811,50 @@ msgstr "你在殼中的時候不能環顧四周。" msgid "You can't move mass quantities while you're in your shell." msgstr "你無法在殼中時移動大量東西。" +#: src/handle_action.cpp +msgid "You can't move mass quantities while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't pick anything up while you're in your shell." msgstr "" +#: src/handle_action.cpp +msgid "You can't pick anything up while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't grab things while you're in your shell." msgstr "你在殼中的時候不能抓取東西。" +#: src/handle_action.cpp +msgid "You can't grab things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't haul things while you're in your shell." msgstr "你在殼中的時候不能搬運物品。" +#: src/handle_action.cpp +msgid "You can't haul things while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't butcher while you're in your shell." msgstr "你在殼中的時候不能進行屠宰。" +#: src/handle_action.cpp +msgid "You can't butcher while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't peek around corners while you're in your shell." msgstr "你在殼中的時候不能窺視轉角。" +#: src/handle_action.cpp +msgid "You can't peek around corners while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't drop things to another tile while you're in your shell." msgstr "你在殼中的時候不能丟棄東西到鄰近格子。" @@ -151634,10 +154864,18 @@ msgstr "你在殼中的時候不能丟棄東西到鄰近格子。" msgid "You can't craft while you're in your shell." msgstr "你在殼中的時候不能進行製作。" +#: src/handle_action.cpp +msgid "You can't craft while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't disassemble items while driving." msgstr "你無法邊駕駛邊拆解物品。" +#: src/handle_action.cpp +msgid "You can't disassemble items while you're riding." +msgstr "" + #: src/handle_action.cpp msgid "You can't construct while in a vehicle." msgstr "你不能在車輛上進行建造。" @@ -151646,6 +154884,10 @@ msgstr "你不能在車輛上進行建造。" msgid "You can't construct while you're in your shell." msgstr "你在殼中的時候不能進行建造。" +#: src/handle_action.cpp +msgid "You can't construct while you're riding." +msgstr "" + #: src/handle_action.cpp #, c-format msgid "Vehicle control has moved, %s" @@ -151728,6 +154970,7 @@ msgstr "" #. ~ Auto Pulp/Pulp Adjacent/Butcher is now set to x #. ~ Auto Foraging is now set to x +#. ~ Auto pickup is now set to x #: src/handle_action.cpp #, c-format msgid "%s is now set to %s." @@ -153154,10 +156397,26 @@ msgid "" "Exiting." msgstr "找不到位於連接沙發上的病人。無法操作。退出。" +#: src/iexamine.cpp +msgid "Autodoc Mk. XI. Status: Online. Please choose operation" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose Compact Bionic Module to install" +msgstr "" + +#: src/iexamine.cpp +msgid "Choose installed bionic to uninstall" +msgstr "" + +#: src/iexamine.cpp +msgid "Splint broken limbs" +msgstr "" + #: src/iexamine.cpp msgid "" "You need an anesthesia kit with at least one charge for autodoc to perform " -"any operation." +"any bionic manipulation." msgstr "" #. ~ %1$s is the bionic CBM display name, %2$s is the patient name @@ -153206,6 +156465,26 @@ msgstr "你並未有安裝任何生化插件。" msgid "%1$s doesn't have any bionics installed." msgstr "%1$s並未有安裝任何生化插件。" +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints your broken %s." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "The machine rapidly sets and splints 's broken %s." +msgstr "" + +#. ~ %1$s is patient name +#: src/iexamine.cpp +msgid "You have no limbs that require splinting." +msgstr "" + +#: src/iexamine.cpp +#, c-format +msgid "%1$s doesn't have limbs that require splinting." +msgstr "" + #: src/iexamine.cpp msgid "This mill already contains flour." msgstr "" @@ -158781,6 +162060,11 @@ msgstr "拿出餐點" msgid "Really stop cooking?" msgstr "確定停止烹飪?" +#: src/iuse.cpp +#, c-format +msgid "You don't have a suitable container to store your %s." +msgstr "" + #: src/iuse.cpp #, c-format msgid "You got the dish from the multi-cooker. The %s smells delicious." @@ -162129,6 +165413,32 @@ msgid "" "weapon." msgstr "這個招式會強制你使用徒手攻擊, 即使已經手持武器。" +#: src/martialarts.cpp +msgid "" +"You can arm block by installing the Arms Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can arm block at unarmed combat: " +"%s" +msgstr "" + +#: src/martialarts.cpp +msgid "" +"You can leg block by installing the Legs Alloy Plating " +"CBM" +msgstr "" + +#: src/martialarts.cpp +#, c-format +msgid "" +"You can leg block at unarmed combat: " +"%s" +msgstr "" + #: src/martialarts.cpp #, c-format msgid "
%s buffs:
" @@ -162283,10 +165593,6 @@ msgstr "你的軀幹累贅讓你失去平衡。" msgid "You can't hit reliably due to your farsightedness." msgstr "你由於遠視無法準確命中目標。" -#: src/melee.cpp -msgid "You feint." -msgstr "你進行虛擊。" - #: src/melee.cpp msgid "You miss and stumble with the momentum." msgstr "你失手並跌跌撞撞。" @@ -162915,27 +166221,10 @@ msgid "" "Danger: Minimal\n" "Time: 1 hour minimum\n" " \n" -"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though." -msgstr "" -"報酬: $8/小時\n" -"危險: 最低\n" -"需時: 最少1小時\n" -"\n" -"派遣其中一位同伴進行粗重勞動。這是學習基礎技能和建立聲望的安全手段, 但別指望能有多少報酬。" - -#: src/mission_companion.cpp -msgid "" -"Profit: $8/hour\n" -"Danger: Minimal\n" -"Time: 1 hour minimum\n" +"Assigning one of your allies to menial labor is a safe way to teach them basic skills and build reputation with the outpost. Don't expect much of a reward though.\n" " \n" "Labor Roster:\n" msgstr "" -"報酬: $8/小時\n" -"危險: 最低\n" -"需時: 最少1小時\n" -"\n" -"勞工名單:\n" #: src/mission_companion.cpp msgid "Recover Ally from Menial Labor" @@ -164378,16 +167667,6 @@ msgstr "%s 嘗試抓著, 但是他躲開了!" msgid "The %s tries to grab you as well, but you bat it away!" msgstr "%s 嘗試抓住你, 但你把它擊退了!" -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab you, but you break its grab!" -msgstr "%s 嘗試抓住你, 但你掙脫了!" - -#: src/monattack.cpp -#, c-format -msgid "The %s tries to grab , but they break its grab!" -msgstr "%s 嘗試抓住 , 但他掙脫了!" - #: src/monattack.cpp #, c-format msgid "The %s grabs !" @@ -165385,6 +168664,11 @@ msgstr "" msgid "Attach bag" msgstr "連接袋子" +#: src/monexamine.cpp +#, c-format +msgid "Remove vehicle harness from %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Remove armor from %s" @@ -165422,6 +168706,54 @@ msgstr "撕開費洛蒙球" msgid "Milk %s" msgstr "擠奶 %s" +#: src/monexamine.cpp +#, c-format +msgid "Attach a saddle to %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Remove the saddle from %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You don't know how to saddle %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Mount %s" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s cannot be mounted" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "%s is too small to carry your weight" +msgstr "" + +#: src/monexamine.cpp +msgid "You have no knowledge of riding at all" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "You are too heavy to mount %s" +msgstr "" + +#: src/monexamine.cpp +msgid "You are not skilled enough to ride without a saddle" +msgstr "" + +#: src/monexamine.cpp +#, c-format +msgid "Despite the saddle, you still don't know how to ride %s" +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Spend a few minutes to play with your %s?" @@ -165435,6 +168767,11 @@ msgstr "確定殺掉屍奴?" msgid "Pet armor" msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You remove the %s's harness." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "You swap positions with your %s." @@ -165498,6 +168835,11 @@ msgstr "" msgid "You put the %1$s on your %2$s, protecting it from future harm." msgstr "" +#: src/monexamine.cpp +#, c-format +msgid "You unhitch %s from the vehicle." +msgstr "" + #: src/monexamine.cpp #, c-format msgid "Your %1$s isn't wearing armor!" @@ -165972,26 +169314,6 @@ msgstr "" msgid "The %s climbs to its feet!" msgstr "%s 腳步踉蹌!" -#: src/monster.cpp -#, c-format -msgid "The %s breaks free of the webs!" -msgstr "%s 掙脫了網子!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the light snare!" -msgstr "%s 掙脫輕型繩套!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the heavy snare!" -msgstr "%s 掙脫重型繩套!" - -#: src/monster.cpp -#, c-format -msgid "The %s escapes the bear trap!" -msgstr "%s 逃出捕獸陷阱!" - #: src/monster.cpp #, c-format msgid "The %s frees itself from the rubble!" @@ -166866,7 +170188,7 @@ msgid "activated" msgstr "啟動" #: src/newcharacter.cpp -msgid "Pet:" +msgid "Pets:" msgstr "" #: src/newcharacter.cpp @@ -171642,55 +174964,31 @@ msgid " attempts to put out the fire on them!" msgstr " 嘗試撲滅他身上的火炎!" #: src/player.cpp -msgid "a piercing howl!" -msgstr "一聲刺耳的嚎叫!" - -#: src/player.cpp -msgid "yourself let out a piercing howl!" -msgstr "你發出一聲刺耳的嚎叫!" - -#: src/player.cpp -msgid "a loud scream!" -msgstr "一聲尖叫!" - -#: src/player.cpp -msgid "yourself scream loudly!" -msgstr "你發出一聲尖叫!" +msgid "You spur your steed into a gallop." +msgstr "" #: src/player.cpp -msgid "a loud shout!" -msgstr "一聲大叫" +msgid "You start running." +msgstr "你開始跑步。" #: src/player.cpp -msgid "yourself shout loudly!" -msgstr "你發出一聲大叫!" +msgid "Your steed is too tired to go faster." +msgstr "" #: src/player.cpp -msgid "The sound of your voice is almost completely muffled!" -msgstr "你的聲音幾乎被完全阻隔了!" +msgid "You're too tired to run." +msgstr "你累到無法繼續跑。" #: src/player.cpp -msgid "an indistinct voice" +msgid "You slow your steed to a walk." msgstr "" #: src/player.cpp -msgid "your muffled shout" +msgid "You start crouching." msgstr "" #: src/player.cpp -msgid "The sound of your voice is significantly muffled!" -msgstr "你的聲音被大幅阻隔了!" - -#: src/player.cpp -msgid "You start running." -msgstr "你開始跑步。" - -#: src/player.cpp -msgid "You're too tired to run." -msgstr "你累到無法繼續跑。" - -#: src/player.cpp -msgid "You start crouching." +msgid "You nudge your steed to a steady trot." msgstr "" #: src/player.cpp @@ -172872,28 +176170,6 @@ msgstr "殘破的 %s 開始修補。" msgid "Your %s has started to mend!" msgstr "你的 %s 開始修補。" -#: src/player.cpp -msgctxt "memorial_male" -msgid "Threw up." -msgstr "嘔吐了。" - -#: src/player.cpp -msgctxt "memorial_female" -msgid "Threw up." -msgstr "嘔吐了。" - -#: src/player.cpp -msgid " throws up heavily!" -msgstr " 嘔吐的很嚴重!" - -#: src/player.cpp -msgid "You throw up heavily!" -msgstr "你嘔吐的很嚴重!" - -#: src/player.cpp -msgid "You retched, but your stomach is empty." -msgstr "你乾嘔, 但你的胃是空的。" - #: src/player.cpp src/sounds.cpp #, c-format msgid "From the %1$s you hear %2$s" @@ -173516,14 +176792,6 @@ msgctxt "memorial_female" msgid "Entered hibernation." msgstr "開始冬眠。" -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through your internal alarm..." -msgstr "看來你睡過頭了…" - -#: src/player.cpp src/player_hardcoded_effects.cpp -msgid "It looks like you've slept through the alarm..." -msgstr "看來你睡過頭了…" - #. ~ %s is armor name #: src/player.cpp #, c-format @@ -173618,6 +176886,32 @@ msgstr "你停止搬運物品。" msgid "Your body strains under the weight!" msgstr "你的身體被超重拖累!" +#: src/player.cpp +msgid "You fall off your mount!" +msgstr "" + +#: src/player.cpp src/trapfunc.cpp +msgid "You hurt yourself!" +msgstr "你傷到了自己!" + +#: src/player.cpp +msgctxt "memorial_male" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgctxt "memorial_female" +msgid "Fell off a mount." +msgstr "" + +#: src/player.cpp +msgid "Dismount where?" +msgstr "" + +#: src/player.cpp +msgid "You cannot dismount there!" +msgstr "" + #: src/player.cpp msgid "Wielding: " msgstr "手持: " @@ -174941,6 +178235,10 @@ msgstr "咔-啦-碰!" msgid "none" msgstr "無" +#: src/recipe.cpp +msgid "none" +msgstr "" + #: src/recipe.cpp #, c-format msgid "%s%% at >%s units" @@ -175209,6 +178507,11 @@ msgctxt "memorial_female" msgid "Stepped on bubble wrap." msgstr "踩到了泡泡紙。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on some bubble wrap!" +msgstr "" + #: src/trapfunc.cpp src/vehicle_move.cpp msgid "Pop!" msgstr "碰!" @@ -175262,6 +178565,11 @@ msgstr "捕獸夾夾到你的腳!" msgid "A bear trap closes on 's foot!" msgstr "捕獸夾夾到 的腳!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is caught by a beartrap!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a spiked board." @@ -175280,6 +178588,11 @@ msgstr "你踩到了釘板陷阱!" msgid " steps on a spiked board!" msgstr " 踩到了釘板陷阱!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s stepped on a spiked board!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a caltrop." @@ -175298,6 +178611,11 @@ msgstr "你踩到了銳利的金屬雞爪釘!" msgid " steps on a sharp metal caltrop!" msgstr " 踩到了銳利的金屬雞爪釘!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s steps on a sharp metal caltrop!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped on a glass caltrop." @@ -175338,6 +178656,16 @@ msgstr "你被絆索陷阱絆倒了!" msgid " trips over a tripwire!" msgstr " 被絆索陷阱絆倒了!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s trips over a tripwire!" +msgstr "" + +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a crossbow trap." +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a crossbow trap!" msgstr "你觸動了十字弓陷阱!" @@ -175384,6 +178712,11 @@ msgstr "一支弩箭射出, 但是沒有命中 %s。" msgid "Kerblam!" msgstr "喀碰!" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s triggers a shotgun trap!" +msgstr "" + #: src/trapfunc.cpp msgid "You trigger a shotgun trap!" msgstr "你觸發了霰彈槍陷阱!" @@ -175407,6 +178740,11 @@ msgstr "觸發了霰彈槍陷阱。" msgid "A shotgun fires and hits the %s!" msgstr "霰彈槍射中了 %s!" +#: src/trapfunc.cpp +#, c-format +msgid "A blade swings out and hacks your %s!" +msgstr "" + #: src/trapfunc.cpp msgid "A blade swings out and hacks your torso!" msgstr "刀刃伸出揮砍你的軀幹!" @@ -175429,6 +178767,11 @@ msgstr "觸發了刀刃陷阱。" msgid "Snap!" msgstr "啪!" +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg!" +msgstr "" + #: src/trapfunc.cpp msgid "A snare closes on your leg." msgstr "一個圈套綁住了你的腳。" @@ -175447,7 +178790,11 @@ msgctxt "memorial_female" msgid "Triggered a light snare." msgstr "觸發輕型圈套。" -#. ~ %s is bodypart name in accusative. +#: src/trapfunc.cpp +#, c-format +msgid "A snare closes on your %s's leg" +msgstr "" + #: src/trapfunc.cpp #, c-format msgid "A snare closes on your %s." @@ -175581,6 +178928,11 @@ msgctxt "memorial_female" msgid "Stepped into a dissector." msgstr "踏上了解剖器。" +#: src/trapfunc.cpp +#, c-format +msgid "Electrical beams emit from the floor and slice your %s!" +msgstr "" + #: src/trapfunc.cpp msgid " falls in a pit!" msgstr " 掉到坑裡!" @@ -175609,14 +178961,15 @@ msgid "" "admirably!" msgstr "你摔到堅硬的地面上, 但你的減震器完美地抵銷了衝擊力道!" -#: src/trapfunc.cpp -msgid "You hurt yourself!" -msgstr "你傷到了自己!" - #: src/trapfunc.cpp msgid "You land nimbly." msgstr "你靈巧地著地。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a pit!" +msgstr "" + #: src/trapfunc.cpp msgid "You fall in a spiked pit!" msgstr "你掉到尖刺坑裡!" @@ -175695,6 +179048,11 @@ msgctxt "memorial_female" msgid "Stepped into lava." msgstr "踩入岩漿。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s is burned by the lava!" +msgstr "" + #: src/trapfunc.cpp msgid "You fail to attach it..." msgstr "你未能連接到它…" @@ -175712,6 +179070,11 @@ msgid "" " steps on a sinkhole, but manages to pull themselves to safety." msgstr " 踩進了一個流沙坑, 但設法把自己拉回安全的地方了。" +#: src/trapfunc.cpp +#, c-format +msgid "Your %s falls into a sinkhole!" +msgstr "" + #: src/trapfunc.cpp msgctxt "memorial_male" msgid "Stepped into a sinkhole." @@ -177053,6 +180416,11 @@ msgstr "%s 被卡住了!" msgid "The %s's engine emits a sneezing sound." msgstr "%s 的引擎發出了嘶嘶聲。" +#: src/vehicle_move.cpp +#, c-format +msgid "Your %s is not fast enough to keep up with the %s" +msgstr "" + #. ~ 1$s - vehicle name, 2$s - part name, 3$s - NPC or monster #: src/vehicle_move.cpp #, c-format @@ -177102,6 +180470,10 @@ msgstr "%1$s 的 %2$s 輾過了 %3$s。" msgid "The %1$s's %2$s runs over something." msgstr "%1$s 的 %2$s 輾過了某些東西。" +#: src/vehicle_move.cpp +msgid "You cannot steer an animal-drawn vehicle with no animal harnessed." +msgstr "" + #: src/vehicle_move.cpp msgid "This vehicle has no steering system installed, you can't turn it." msgstr "這台車沒有安裝轉向軸, 你無法轉彎。" @@ -177663,6 +181035,36 @@ msgid "" " on. The washing machine is being filled with water from vehicle tanks." msgstr "你把一些洗衣粉倒進洗衣機中, 把蓋子蓋上, 然後開著洗衣機。洗衣機正從儲水箱注入水。" +#: src/vehicle_use.cpp +msgid "Where is the creature to harness?" +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You harness your %s to the %s." +msgstr "" + +#: src/vehicle_use.cpp +#, c-format +msgid "You untie your %s." +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature is not friendly!" +msgstr "" + +#: src/vehicle_use.cpp +msgid "This creature cannot be harnessed." +msgstr "" + +#: src/vehicle_use.cpp +msgid "The harness is blocked." +msgstr "" + +#: src/vehicle_use.cpp +msgid "No creature there." +msgstr "" + #: src/vehicle_use.cpp msgid "Examine vehicle" msgstr "檢視車輛" @@ -177703,6 +181105,10 @@ msgstr "捕捉或釋放生物" msgid "Load or unload a vehicle" msgstr "" +#: src/vehicle_use.cpp +msgid "Harness an animal" +msgstr "" + #: src/vehicle_use.cpp msgid "Reload seed drill with seeds" msgstr "" From c53cf0f2f0e7102d083101246ecb307559997970 Mon Sep 17 00:00:00 2001 From: I-am-Erk <45136638+I-am-Erk@users.noreply.github.com> Date: Fri, 14 Jun 2019 00:53:01 -0700 Subject: [PATCH 47/76] Research facility upgrade (#31358) * add more monsters and chaos to research centers --- data/json/monstergroups/lab.json | 38 +++++++++++++++------------- data/json/overmap_terrain_lab.json | 9 ++++--- data/json/regional_map_settings.json | 25 ++++++++++++++++++ 3 files changed, 52 insertions(+), 20 deletions(-) diff --git a/data/json/monstergroups/lab.json b/data/json/monstergroups/lab.json index a714f1328ad9b..7f50e81061b6b 100644 --- a/data/json/monstergroups/lab.json +++ b/data/json/monstergroups/lab.json @@ -27,6 +27,7 @@ { "monster": "mon_zombie_bio_op", "freq": 50, "cost_multiplier": 5 }, { "monster": "mon_zombie_armored", "freq": 5, "cost_multiplier": 5 }, { "monster": "mon_zombie_electric", "freq": 50, "cost_multiplier": 3 }, + { "monster": "mon_zombie_necro", "freq": 15, "cost_multiplier": 15 }, { "monster": "mon_zombie_brute_shocker", "freq": 10, "cost_multiplier": 5 } ] }, @@ -35,27 +36,29 @@ "name": "GROUP_LAB_SURFACE", "default": "mon_zombie_scientist", "monsters": [ - { "monster": "mon_blob_small", "freq": 10, "cost_multiplier": 0, "pack_size": [ 1, 4 ] }, - { "monster": "mon_zombie", "freq": 200, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, - { "monster": "mon_zombie_fat", "freq": 100, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, - { "monster": "mon_zombie_tough", "freq": 100, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, - { "monster": "mon_zombie_crawler", "freq": 100, "cost_multiplier": 0 }, { "monster": "mon_zombie_labsecurity", "freq": 400, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, - { "monster": "mon_zombie_scientist", "freq": 500, "cost_multiplier": 1 }, - { "monster": "mon_zombie_scientist", "freq": 200, "cost_multiplier": 1, "pack_size": [ 1, 5 ] }, + { "monster": "mon_zombie_scientist", "freq": 600, "cost_multiplier": 1 }, + { "monster": "mon_zombie_scientist", "freq": 400, "cost_multiplier": 1, "pack_size": [ 1, 5 ] }, { "monster": "mon_zombie_technician", "freq": 100, "cost_multiplier": 2 }, - { "monster": "mon_zombie_hazmat", "freq": 100, "cost_multiplier": 0 }, - { "monster": "mon_science_bot", "freq": 80, "cost_multiplier": 15 }, - { "monster": "mon_manhack", "freq": 200, "cost_multiplier": 0 }, - { "monster": "mon_manhack", "freq": 45, "cost_multiplier": 0, "pack_size": [ 2, 3 ] }, - { "monster": "mon_mutant_experimental", "freq": 3, "cost_multiplier": 0 }, - { "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 0 }, - { "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 0, "pack_size": [ 2, 3 ] }, - { "monster": "mon_skitterbot", "freq": 10, "cost_multiplier": 0, "pack_size": [ 8, 12 ] }, - { "monster": "mon_secubot", "freq": 1, "cost_multiplier": 10 }, + { "monster": "mon_zombie_hazmat", "freq": 200, "cost_multiplier": 1 }, + { "monster": "mon_zombie_necro", "freq": 15, "cost_multiplier": 5 }, + { "monster": "mon_zombie_electric", "freq": 50, "cost_multiplier": 2 }, + { "monster": "mon_science_bot", "freq": 80, "cost_multiplier": 5 }, + { "monster": "mon_secubot", "freq": 1, "cost_multiplier": 5 }, + { "monster": "mon_zombie", "freq": 100, "cost_multiplier": 1, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_fat", "freq": 20, "cost_multiplier": 1, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_tough", "freq": 40, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_brute", "freq": 10, "cost_multiplier": 5 }, + { "monster": "mon_zombie_crawler", "freq": 50, "cost_multiplier": 1 }, + { "monster": "mon_manhack", "freq": 200, "cost_multiplier": 1 }, + { "monster": "mon_manhack", "freq": 45, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, + { "monster": "mon_mutant_experimental", "freq": 3, "cost_multiplier": 1 }, + { "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 1 }, + { "monster": "mon_skitterbot", "freq": 85, "cost_multiplier": 1, "pack_size": [ 2, 3 ] }, + { "monster": "mon_skitterbot", "freq": 10, "cost_multiplier": 1, "pack_size": [ 8, 12 ] }, + { "monster": "mon_blob_small", "freq": 10, "cost_multiplier": 1, "pack_size": [ 1, 4 ] }, { "monster": "mon_zombie_bio_op", "freq": 50, "cost_multiplier": 5 }, { "monster": "mon_zombie_armored", "freq": 5, "cost_multiplier": 5 }, - { "monster": "mon_zombie_electric", "freq": 10, "cost_multiplier": 3 }, { "monster": "mon_zombie_brute_shocker", "freq": 5, "cost_multiplier": 5 } ] }, @@ -76,6 +79,7 @@ { "monster": "mon_zombie_bio_op", "freq": 50, "cost_multiplier": 5 }, { "monster": "mon_zombie_armored", "freq": 5, "cost_multiplier": 8 }, { "monster": "mon_zombie_electric", "freq": 50, "cost_multiplier": 3 }, + { "monster": "mon_zombie_necro", "freq": 15, "cost_multiplier": 15 }, { "monster": "mon_zombie_brute_shocker", "freq": 10, "cost_multiplier": 5 } ] }, diff --git a/data/json/overmap_terrain_lab.json b/data/json/overmap_terrain_lab.json index 33ebd9f7f6a51..407541c540e4f 100644 --- a/data/json/overmap_terrain_lab.json +++ b/data/json/overmap_terrain_lab.json @@ -416,7 +416,8 @@ "name": "parking lot", "sym": "_", "color": "dark_gray", - "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 1, 10 ], "chance": 30 }, + "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 5, 20 ], "chance": 50 }, + "extras": "research_facility_lot", "see_cost": 5, "mondensity": 2 }, @@ -471,7 +472,8 @@ "name": "research facility", "sym": "l", "color": "light_gray", - "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 5, 15 ], "chance": 50 }, + "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 10, 25 ], "chance": 60 }, + "extras": "research_facility_interior", "see_cost": 5, "mondensity": 2 }, @@ -511,7 +513,8 @@ "name": "research facility entrance", "sym": "L", "color": "white", - "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 5, 25 ], "chance": 50 }, + "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 8, 25 ], "chance": 50 }, + "extras": "research_facility_interior", "see_cost": 5, "mondensity": 2 }, diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index d1e84627943c2..caca0ac729891 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -544,6 +544,31 @@ "mx_portal_in": 1, "mx_anomaly": 3 } + }, + "research_facility_lot": { + "chance": 3, + "extras": { + "mx_helicopter": 90, + "mx_military": 65, + "mx_collegekids": 1, + "mx_portal": 200, + "mx_crater": 180, + "mx_fumarole": 10, + "mx_portal_in": 20, + "mx_anomaly": 10, + "mx_point_burned_ground": 100 + } + }, + "research_facility_interior": { + "chance": 2, + "extras": { + "mx_jabberwock": 1, + "mx_military": 5, + "mx_portal": 100, + "mx_crater": 300, + "mx_portal_in": 40, + "mx_point_burned_ground": 125 + } } }, "city": { From 2ab38036982ea8be03f0397863bb3e27e3fb8aca Mon Sep 17 00:00:00 2001 From: Inglonias <2125926+Inglonias@users.noreply.github.com> Date: Fri, 14 Jun 2019 03:54:24 -0400 Subject: [PATCH 48/76] Ups flag fix (#31388) * Removed RECHARGE flag from UPS_off * Adjusted battery_ups mod description --- data/json/items/toolmod.json | 2 +- data/json/items/tools.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/data/json/items/toolmod.json b/data/json/items/toolmod.json index f96c9c49fac48..38f1d32d09004 100644 --- a/data/json/items/toolmod.json +++ b/data/json/items/toolmod.json @@ -16,7 +16,7 @@ "type": "TOOLMOD", "category": "spare_parts", "name": "UPS conversion mod", - "description": "This device replaces conventional battery connections with a rechargeable power cell that runs off of a Unified Power System. Having the UPS on or placing a tool in a special recharging station will slowly charge it.", + "description": "This device replaces conventional battery connections with a connector port that can plug into a UPS. Any device modified with this can be used without a battery as long as you have a charged UPS with you", "ammo_modifier": "battery", "flags": [ "USE_UPS", "NO_UNLOAD", "NO_RELOAD" ] }, diff --git a/data/json/items/tools.json b/data/json/items/tools.json index 677019c6d0a72..81bdd7f13e914 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -117,7 +117,6 @@ "symbol": ";", "color": "light_gray", "ammo": "battery", - "flags": [ "RECHARGE" ], "magazines": [ [ "battery", [ "heavy_plus_battery_cell", "heavy_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] ], From d14ecb15e55277e119b706c4497a26530deea849 Mon Sep 17 00:00:00 2001 From: Kevin Granade Date: Fri, 14 Jun 2019 07:55:30 +0000 Subject: [PATCH 49/76] Period --- data/json/items/toolmod.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/json/items/toolmod.json b/data/json/items/toolmod.json index 38f1d32d09004..46357fa672463 100644 --- a/data/json/items/toolmod.json +++ b/data/json/items/toolmod.json @@ -16,7 +16,7 @@ "type": "TOOLMOD", "category": "spare_parts", "name": "UPS conversion mod", - "description": "This device replaces conventional battery connections with a connector port that can plug into a UPS. Any device modified with this can be used without a battery as long as you have a charged UPS with you", + "description": "This device replaces conventional battery connections with a connector port that can plug into a UPS. Any device modified with this can be used without a battery as long as you have a charged UPS with you.", "ammo_modifier": "battery", "flags": [ "USE_UPS", "NO_UNLOAD", "NO_RELOAD" ] }, From 87dab618bdcc5ca66005f8f963398caf43363b30 Mon Sep 17 00:00:00 2001 From: Curtis Merrill Date: Fri, 14 Jun 2019 03:57:20 -0400 Subject: [PATCH 50/76] nerf deadened pain awareness (#31401) --- src/panels.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/panels.cpp b/src/panels.cpp index 1a2abdac8ca90..c8f5397a146d3 100644 --- a/src/panels.cpp +++ b/src/panels.cpp @@ -50,6 +50,7 @@ #include "tileray.h" #include "type_id.h" +static const trait_id trait_NOPAIN( "NOPAIN" ); static const trait_id trait_SELFAWARE( "SELFAWARE" ); static const trait_id trait_THRESH_FELINE( "THRESH_FELINE" ); static const trait_id trait_THRESH_BIRD( "THRESH_BIRD" ); @@ -861,7 +862,8 @@ static int get_int_digits( const int &digits ) static void draw_limb_health( avatar &u, const catacurses::window &w, int limb_index ) { - const bool is_self_aware = u.has_trait( trait_SELFAWARE ); + const bool no_feeling = u.has_trait( trait_NOPAIN ); + const bool is_self_aware = u.has_trait( trait_SELFAWARE ) && !no_feeling; static auto print_symbol_num = []( const catacurses::window & w, int num, const std::string & sym, const nc_color & color ) { while( num-- > 0 ) { @@ -882,11 +884,13 @@ static void draw_limb_health( avatar &u, const catacurses::window &w, int limb_i if( is_self_aware || u.has_effect( effect_got_checked ) ) { limb = string_format( "=%2d%%=", mend_perc ); color = c_blue; - } else { + } else if( !no_feeling ) { const int num = mend_perc / 20; print_symbol_num( w, num, "#", c_blue ); print_symbol_num( w, 5 - num, "=", c_blue ); return; + } else { + color = c_blue; } } @@ -894,10 +898,17 @@ static void draw_limb_health( avatar &u, const catacurses::window &w, int limb_i return; } - const auto &hp = get_hp_bar( u.hp_cur[limb_index], u.hp_max[limb_index] ); + std::pair hp = get_hp_bar( u.hp_cur[limb_index], u.hp_max[limb_index] ); if( is_self_aware || u.has_effect( effect_got_checked ) ) { wprintz( w, hp.second, "%3d ", u.hp_cur[limb_index] ); + } else if( no_feeling ) { + if( u.hp_cur[limb_index] < u.hp_max[limb_index] / 2 ) { + hp = std::make_pair( string_format( " %s", _( "Bad" ) ), c_red ); + } else { + hp = std::make_pair( string_format( " %s", _( "Good" ) ), c_green ); + } + wprintz( w, hp.second, hp.first ); } else { wprintz( w, hp.second, hp.first ); From 6384b4884cfcb6d9977c3c9c72022c9e3d0bc34c Mon Sep 17 00:00:00 2001 From: Rail-Runner Date: Fri, 14 Jun 2019 10:59:35 +0300 Subject: [PATCH 51/76] Extra constructions, part 2: Metal constructs (#31299) --- data/json/construction.json | 118 ++++++++++++++++++++++++++++++++++++ data/json/furniture.json | 36 +++++++++-- 2 files changed, 148 insertions(+), 6 deletions(-) diff --git a/data/json/construction.json b/data/json/construction.json index 6ef30bb35aec8..ac5cd16adbea8 100644 --- a/data/json/construction.json +++ b/data/json/construction.json @@ -1750,6 +1750,124 @@ "pre_special": "check_empty", "post_terrain": "f_wardrobe" }, + { + "type": "construction", + "description": "Build Safe", + "category": "FURN", + "required_skills": [ [ "fabrication", 9 ] ], + "time": "420 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ], [ { "id": "SMOOTH", "level": 2 } ] ], + "using": [ [ "welding_standard", 15 ] ], + "tools": [ [ [ "con_mix", 50 ] ] ], + "components": [ + [ [ "hdframe", 1 ] ], + [ [ "steel_lump", 2 ], [ "steel_chunk", 8 ], [ "scrap", 40 ] ], + [ [ "sheet_metal", 2 ] ], + [ [ "rebar", 16 ] ], + [ [ "concrete", 6 ] ], + [ [ "water", 4 ], [ "water_clean", 4 ] ], + [ [ "cargo_lock", 1 ] ], + [ [ "hard_plate", 1 ] ] + ], + "pre_special": "check_empty", + "post_terrain": "f_safe_o" + }, + { + "type": "construction", + "description": "Build Dumpster", + "category": "FURN", + "required_skills": [ [ "fabrication", 6 ] ], + "time": "180 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ] ], + "using": [ [ "welding_standard", 15 ] ], + "components": [ [ [ "frame", 4 ] ], [ [ "sheet_metal", 16 ] ], [ [ "steel_lump", 2 ], [ "steel_chunk", 8 ], [ "scrap", 40 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_dumpster" + }, + { + "type": "construction", + "description": "Build Mailbox", + "category": "FURN", + "required_skills": [ [ "fabrication", 4 ] ], + "time": "60 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "using": [ [ "welding_standard", 1 ] ], + "components": [ [ [ "sheet_metal", 1 ] ], [ [ "2x4", 2 ] ], [ [ "nail", 5 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_mailbox" + }, + { + "type": "construction", + "description": "Build Bar Door", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 6 ] ], + "time": "180 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ] ], + "using": [ [ "welding_standard", 8 ] ], + "components": [ [ [ "rebar", 16 ] ], [ [ "sheet_metal_small", 12 ] ] ], + "pre_terrain": "t_mdoor_frame", + "post_terrain": "t_door_bar_c" + }, + { + "type": "construction", + "description": "Install Bars Onto Window", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": "90 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ] ], + "using": [ [ "welding_standard", 4 ] ], + "components": [ [ [ "rebar", 8 ] ], [ [ "sheet_metal_small", 6 ] ] ], + "pre_terrain": "t_window", + "post_terrain": "t_window_bars" + }, + { + "type": "construction", + "description": "Install Bars Onto Window", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": "90 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ] ], + "using": [ [ "welding_standard", 4 ] ], + "components": [ [ [ "rebar", 8 ] ], [ [ "sheet_metal_small", 6 ] ] ], + "pre_terrain": "t_window_no_curtains", + "post_terrain": "t_window_bars" + }, + { + "type": "construction", + "description": "Install Bars Onto Window", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 5 ] ], + "time": "90 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ] ], + "using": [ [ "welding_standard", 3 ] ], + "components": [ [ [ "rebar", 8 ] ], [ [ "sheet_metal_small", 6 ] ] ], + "pre_terrain": "t_window_alarm", + "post_terrain": "t_window_bars_alarm" + }, + { + "type": "construction", + "description": "Build Large Metal Support", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 9 ] ], + "time": "600 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "WRENCH", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ] ], + "using": [ [ "welding_standard", 20 ] ], + "components": [ [ [ "frame", 10 ] ] ], + "pre_terrain": "t_concrete", + "post_terrain": "t_support_l" + }, + { + "type": "construction", + "description": "Build Small Metal Support", + "category": "CONSTRUCT", + "required_skills": [ [ "fabrication", 8 ] ], + "time": "240 m", + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "WRENCH", "level": 1 } ], [ { "id": "SCREW", "level": 1 } ] ], + "using": [ [ "welding_standard", 10 ] ], + "components": [ [ [ "pipe", 18 ] ] ], + "pre_terrain": "t_concrete", + "post_terrain": "t_support_s" + }, { "type": "construction", "description": "Paint Grass White", diff --git a/data/json/furniture.json b/data/json/furniture.json index ca178f716ebcf..84192655ac92a 100644 --- a/data/json/furniture.json +++ b/data/json/furniture.json @@ -2114,7 +2114,11 @@ "str_max": 200, "sound": "screeching metal!", "sound_fail": "whump!", - "items": [ { "item": "steel_chunk", "count": [ 1, 5 ] }, { "item": "scrap", "count": [ 1, 5 ] } ] + "items": [ + { "item": "steel_chunk", "count": [ 1, 5 ] }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "rock", "count": [ 1, 2 ] } + ] } }, { @@ -2135,7 +2139,11 @@ "str_max": 200, "sound": "screeching metal!", "sound_fail": "whump!", - "items": [ { "item": "steel_chunk", "count": [ 1, 5 ] }, { "item": "scrap", "count": [ 1, 5 ] } ] + "items": [ + { "item": "steel_chunk", "count": [ 1, 5 ] }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "rock", "count": [ 1, 2 ] } + ] } }, { @@ -2156,7 +2164,11 @@ "str_max": 200, "sound": "screeching metal!", "sound_fail": "whump!", - "items": [ { "item": "steel_chunk", "count": [ 1, 5 ] }, { "item": "scrap", "count": [ 1, 5 ] } ] + "items": [ + { "item": "steel_chunk", "count": [ 1, 5 ] }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "rock", "count": [ 1, 2 ] } + ] } }, { @@ -2176,7 +2188,11 @@ "str_max": 200, "sound": "screeching metal!", "sound_fail": "whump!", - "items": [ { "item": "steel_chunk", "count": [ 1, 5 ] }, { "item": "scrap", "count": [ 1, 5 ] } ] + "items": [ + { "item": "steel_chunk", "count": [ 1, 5 ] }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "rock", "count": [ 1, 2 ] } + ] } }, { @@ -2197,7 +2213,11 @@ "str_max": 200, "sound": "screeching metal!", "sound_fail": "whump!", - "items": [ { "item": "steel_chunk", "count": [ 1, 5 ] }, { "item": "scrap", "count": [ 1, 5 ] } ] + "items": [ + { "item": "steel_chunk", "count": [ 1, 5 ] }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "rock", "count": [ 1, 2 ] } + ] } }, { @@ -2218,7 +2238,11 @@ "str_max": 200, "sound": "screeching metal!", "sound_fail": "whump!", - "items": [ { "item": "steel_chunk", "count": [ 1, 5 ] }, { "item": "scrap", "count": [ 1, 5 ] } ] + "items": [ + { "item": "steel_chunk", "count": [ 1, 5 ] }, + { "item": "scrap", "count": [ 1, 5 ] }, + { "item": "rock", "count": [ 1, 2 ] } + ] } }, { From d7fb63d57d05e12fd100c2af2a585dc12b94894f Mon Sep 17 00:00:00 2001 From: Fris0uman <41293484+Fris0uman@users.noreply.github.com> Date: Fri, 14 Jun 2019 10:00:58 +0200 Subject: [PATCH 52/76] Variable weight for characters (#31373) * character's weight varies with bodyweight() * character's height depends on height at character creation and current size --- src/character.cpp | 24 ++++++++++++++++++++++-- src/character.h | 4 ++++ src/game_constants.h | 3 --- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/character.cpp b/src/character.cpp index 0f0b6b28801c0..6f16de2eec5e3 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -1654,7 +1654,7 @@ units::mass Character::get_weight() const return sum + itm.weight(); } ); - ret += CHARACTER_WEIGHT; // The base weight of the player's body + ret += bodyweight(); // The base weight of the player's body ret += inv.weight(); // Weight of the stored inventory ret += wornWeight; // Weight of worn items ret += weapon.weight(); // Weight of wielded item @@ -3328,8 +3328,28 @@ units::mass Character::bodyweight() const int Character::height() const { + int height = init_height; + int height_pos = 15; + + const static std::array v = { 290, 240, 190, 140, 90 }; + for( const int up_bound : v ) { + if( up_bound >= init_height && up_bound - init_height < 40 ) { + height_pos = up_bound - init_height; + } + } + + if( get_size() == MS_TINY ) { + height = 90 - height_pos; + } else if( get_size() == MS_SMALL ) { + height = 140 - height_pos; + } else if( get_size() == MS_LARGE ) { + height = 240 - height_pos; + } else if( get_size() == MS_HUGE ) { + height = 290 - height_pos; + } + // TODO: Make this a player creation option - return 175; + return height; } int Character::get_bmr() const diff --git a/src/character.h b/src/character.h index 13fc711e50502..e9856ba472adf 100644 --- a/src/character.h +++ b/src/character.h @@ -878,6 +878,10 @@ class Character : public Creature, public visitable /** How healthy the character is. */ int healthy; int healthy_mod; + + /**height at character creation*/ + int init_height = 175; + // the player's activity level for metabolism calculations float activity_level = NO_EXERCISE; diff --git a/src/game_constants.h b/src/game_constants.h index 697a5cfd5c433..b33607af4f0d8 100644 --- a/src/game_constants.h +++ b/src/game_constants.h @@ -146,9 +146,6 @@ constexpr double accuracy_grazing = 1.0; /** New England base spring temperature = 65F/18C rounded to int */ #define SPRING_TEMPERATURE 65 -/** Character's base weight in units::mass */ -constexpr units::mass CHARACTER_WEIGHT = 81500_gram; - /** Used to limit the random seed during noise calculation. A large value flattens the noise generator to zero. Windows has a rand limit of 32768, other operating systems can have higher limits. */ constexpr int SIMPLEX_NOISE_RANDOM_SEED_LIMIT = 32768; From 49e1b7ba84ffc01f1cbf044516b1672d4d4188ea Mon Sep 17 00:00:00 2001 From: Mark Schreiber Date: Fri, 14 Jun 2019 03:03:46 -0700 Subject: [PATCH 53/76] Classes and Scenarios mod grammar fixes --- data/mods/more_classes_scenarios/cs_scenarios.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/mods/more_classes_scenarios/cs_scenarios.json b/data/mods/more_classes_scenarios/cs_scenarios.json index 956f50c2269c6..8f71bb7ec9a1d 100644 --- a/data/mods/more_classes_scenarios/cs_scenarios.json +++ b/data/mods/more_classes_scenarios/cs_scenarios.json @@ -2,7 +2,7 @@ { "type": "scenario", "name": "Bunker Evacuee", - "description": "You had connections, or intel somehow..., and because of it, you found this LMOE Shelter. It's summer now and you somehow survived, now things get a little bit easier.", + "description": "You had connections, or intel somehow...and because of it, you found this LMOE Shelter. It's summer now, and you somehow survived. Now things get a little bit easier.", "flags": [ "SUR_START", "SUM_START" ], "ident": "bunker", "points": 2, @@ -27,7 +27,7 @@ "ident": "fema_help", "name": "Challenge-FEMA Death Camp", "points": -6, - "description": "You were one of the many law enforcement and military personnel alike called in to keep order on one of the FEMA camps, it all went to shit fast...wounded, infected, surrounded by fire you lay...and they just keep coming...", + "description": "You were one of the many law-enforcement and military personnel alike called in to keep order on one of the FEMA camps. It all went to shit fast...wounded, infected, surrounded by fire you lie on the ground...and they just keep coming...", "allowed_locs": [ "fema_entrance_s", "fema_s" ], "professions": [ "cop", @@ -50,7 +50,7 @@ "ident": "mansion_scen", "name": "Mansion Holdout", "points": -1, - "description": "While the world ended, you felt relatively safe inside the mansion you have serviced for years. Now the dead have come knocking at your doorstep, it might be time to leave", + "description": "While the world ended, you felt relatively safe inside the mansion you have serviced for years. Now the dead have come knocking at your doorstep, and it might be time to leave.", "allowed_locs": [ "mansion_e2_s", "mansion_+2_s" ], "professions": [ "maid" ], "start_name": "Mansion", @@ -61,7 +61,7 @@ "ident": "last_crime", "name": "The Last Gig", "points": -6, - "description": "You were on your way to another routine job, it might of been a target to kill, an item to steal or intel to gather. Whatever it was doesn't matter anymore; you did your best to avoid the horde and when you arrive, the place is surrounded, not by cops as you might expected, but by the dead. Worse, you got a cut somewhere along the way and it's looking infected.", + "description": "You were on your way to another routine job. It might have been a target to kill, an item to steal or intel to gather. Whatever it was doesn't matter anymore; you did your best to avoid the horde and when you arrived, the place was surrounded. Not by cops, as you might have expected, but by the dead. Worse, you got a cut somewhere along the way and it's looking infected.", "allowed_locs": [ "house", "bank", "pawn", "s_gun", "s_gas_s" ], "professions": [ "convict", "scoundrel", "gangster", "burglar", "bionic_thief", "razorgirl", "bionic_hitman", "bio_gangster" ], "start_name": "Intended Crime Scene", From 07125b4872cbeedf7c851c011b4c95ce73757cfa Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Fri, 14 Jun 2019 12:38:44 +0200 Subject: [PATCH 54/76] Add braces to fix build warning --- src/character.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/character.cpp b/src/character.cpp index 6f16de2eec5e3..cdb55cfc43171 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -3331,7 +3331,7 @@ int Character::height() const int height = init_height; int height_pos = 15; - const static std::array v = { 290, 240, 190, 140, 90 }; + const static std::array v = {{ 290, 240, 190, 140, 90 }}; for( const int up_bound : v ) { if( up_bound >= init_height && up_bound - init_height < 40 ) { height_pos = up_bound - init_height; From e7ca42c3cecf22bb667b57fd657e2292e54a2f7c Mon Sep 17 00:00:00 2001 From: nexusmrsep <39925111+nexusmrsep@users.noreply.github.com> Date: Fri, 14 Jun 2019 13:33:58 +0200 Subject: [PATCH 55/76] Starting bank money, millionaire profession, debt & savings traits (#31306) * Starting bank money, millionaire profession, debt & savings traits --- data/json/mutations.json | 33 +++++++++++++++++++++++++++++++++ data/json/professions.json | 33 +++++++++++++++++++++++++++++++++ src/defense.cpp | 10 +++++----- src/gamemode.h | 6 +++--- src/iexamine.cpp | 9 ++++++++- src/mission_companion.cpp | 4 ++-- src/monattack.cpp | 9 +++++++-- src/newcharacter.cpp | 14 ++++++++++++++ src/npctalk.cpp | 4 ++-- src/npctalk_funcs.cpp | 4 ++-- src/output.h | 2 +- src/player.h | 2 +- 12 files changed, 111 insertions(+), 19 deletions(-) diff --git a/data/json/mutations.json b/data/json/mutations.json index ab52e047d5a83..41d3d1280c5ba 100644 --- a/data/json/mutations.json +++ b/data/json/mutations.json @@ -655,6 +655,39 @@ "cancels": [ "TRUTHTELLER" ], "social_modifiers": { "lie": 40 } }, + { + "type": "mutation", + "id": "SAVINGS", + "name": "Savings", + "points": 1, + "description": "You had some money stashed at the bank for a rainy day. Now that the storm is raging, it's a last call to use it maybe?", + "starting_trait": true, + "purifiable": false, + "valid": false, + "cancels": [ "DEBT", "MILLIONAIRE" ] + }, + { + "type": "mutation", + "id": "DEBT", + "name": "Debt", + "points": -1, + "description": "You needed money and had a big loan in a bank. Good thing nobody will come to collect it now, right? Right?", + "starting_trait": true, + "purifiable": false, + "valid": false, + "cancels": [ "SAVINGS", "MILLIONAIRE" ] + }, + { + "type": "mutation", + "id": "MILLIONAIRE", + "name": "Millionaire", + "points": 3, + "description": "At the time of Cataclysm you were an owner of a fortune stashed in a bank. Does that have any meaning now?", + "valid": false, + "purifiable": false, + "starting_trait": true, + "cancels": [ "DEBT", "SAVINGS" ] + }, { "type": "mutation", "id": "PRETTY", diff --git a/data/json/professions.json b/data/json/professions.json index fb1f5b99601a1..18274d1aa903d 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -2335,6 +2335,39 @@ "female": [ "bra", "panties" ] } }, + { + "type": "profession", + "ident": "millionaire", + "name": "Millionaire", + "description": "You had a fortune, whether inherited, built by hard work, or gained by pure luck. You invested in trade and nothing was beyond your reach. Now it's not worth a dime and no money in the world can guarantee your safety and well being. Hard times are ahead, so it's time to undust your skills and try to sell some ice to the Innuit. What currency do they accept?", + "points": 3, + "traits": [ "MILLIONAIRE" ], + "skills": [ { "level": 3, "name": "barter" }, { "level": 2, "name": "speech" } ], + "items": { + "both": { + "items": [ + "suit", + "skinny_tie", + "tieclip", + "socks", + "dress_shoes", + "smart_phone", + "money_bundle", + "gold_watch", + "gold_ear", + "gold_bracelet", + "gasdiscount_platinum", + "diamond_ring", + "gold_small", + "silver_small", + "platinum_small" + ], + "entries": [ { "item": "cash_card", "charges": 1000000 }, { "item": "diamond", "count": 5 } ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, { "type": "profession", "ident": "priest", diff --git a/src/defense.cpp b/src/defense.cpp index d349f160792ec..38ecd4c1f0b5f 100644 --- a/src/defense.cpp +++ b/src/defense.cpp @@ -59,7 +59,7 @@ int caravan_price( player &u, int price ); void draw_caravan_borders( const catacurses::window &w, int current_window ); void draw_caravan_categories( const catacurses::window &w, int category_selected, - unsigned total_price, unsigned long cash ); + signed total_price, signed long cash ); void draw_caravan_items( const catacurses::window &w, std::vector *items, std::vector *counts, int offset, int item_selected ); @@ -919,7 +919,7 @@ void defense_game::caravan() } } - unsigned total_price = 0; + signed total_price = 0; catacurses::window w = catacurses::newwin( FULL_SCREEN_HEIGHT, FULL_SCREEN_WIDTH, 0, 0 ); @@ -1280,7 +1280,7 @@ void draw_caravan_borders( const catacurses::window &w, int current_window ) } void draw_caravan_categories( const catacurses::window &w, int category_selected, - unsigned total_price, unsigned long cash ) + signed total_price, signed long cash ) { // Clear the window for( int i = 1; i <= 10; i++ ) { @@ -1324,8 +1324,8 @@ void draw_caravan_items( const catacurses::window &w, std::vector *ite item::nname( ( *items )[i], ( *counts )[i] ) ); wprintz( w, c_white, " x %2d", ( *counts )[i] ); if( ( *counts )[i] > 0 ) { - unsigned long price = caravan_price( g->u, item( ( *items )[i], - 0 ).price( false ) * ( *counts )[i] ); + signed long price = caravan_price( g->u, item( ( *items )[i], + 0 ).price( false ) * ( *counts )[i] ); wprintz( w, ( price > g->u.cash ? c_red : c_green ), " (%s)", format_money( price ) ); } } diff --git a/src/gamemode.h b/src/gamemode.h index 1e740d7ef4efe..b01e3d20afb86 100644 --- a/src/gamemode.h +++ b/src/gamemode.h @@ -163,9 +163,9 @@ struct defense_game : public special_game { time_duration time_between_waves; // Cooldown / building / healing time int waves_between_caravans; // How many waves until we get to trade? - unsigned long initial_cash; // How much cash do we start with? - unsigned long cash_per_wave; // How much cash do we get per wave? - unsigned long cash_increase; // How much does the above increase per wave? + signed long initial_cash; // How much cash do we start with? + signed long cash_per_wave; // How much cash do we get per wave? + signed long cash_increase; // How much does the above increase per wave? bool zombies; bool specials; diff --git a/src/iexamine.cpp b/src/iexamine.cpp index d984b7c593688..11001dc8a35ac 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -360,6 +360,9 @@ class atm_menu add_choice( withdraw_money, _( "Withdraw Money" ) ); } else if( u.cash > 0 ) { add_info( withdraw_money, _( "You need a cash card before you can withdraw money!" ) ); + } else if( u.cash < 0 ) { + add_info( withdraw_money, + _( "You need to pay down your debt first!" ) ); } else { add_info( withdraw_money, _( "You need money in your account before you can withdraw money!" ) ); @@ -380,7 +383,11 @@ class atm_menu //! print a bank statement for @p print = true; void finish_interaction( const bool print = true ) { if( print ) { - add_msg( m_info, _( "Your account now holds %s." ), format_money( u.cash ) ); + if( u.cash < 0 ) { + add_msg( m_info, _( "Your debt is now %s." ), format_money( u.cash ) ); + } else { + add_msg( m_info, _( "Your account now holds %s." ), format_money( u.cash ) ); + } } u.moves -= to_turns( 5_seconds ); diff --git a/src/mission_companion.cpp b/src/mission_companion.cpp index b0245ba535380..8265a5b462eda 100644 --- a/src/mission_companion.cpp +++ b/src/mission_companion.cpp @@ -992,7 +992,7 @@ void talk_function::field_plant( npc &p, const std::string &place ) limiting_number = empty_plots; } - unsigned int a = limiting_number * 300; + signed int a = limiting_number * 300; if( a > g->u.cash ) { popup( _( "I'm sorry, you don't have enough money to plant those seeds..." ) ); return; @@ -1110,7 +1110,7 @@ void talk_function::field_harvest( npc &p, const std::string &place ) int money = ( number_plants * tmp.price( true ) - number_plots * 2 ) / 100; bool liquidate = false; - unsigned int a = number_plots * 2; + signed int a = number_plots * 2; if( a > g->u.cash ) { liquidate = true; popup( _( "You don't have enough to pay the workers to harvest the crop so you are forced " diff --git a/src/monattack.cpp b/src/monattack.cpp index 632b62e836bd5..295af4c2e05aa 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -3035,8 +3035,13 @@ bool mattack::photograph( monster *z ) } else if( g->u.is_armed() ) { sounds::sound( z->pos(), 15, sounds::sound_t::alert, _( "\"Drop your weapon! Now!\"" ) ); } - const SpeechBubble &speech = get_speech( z->type->id.str() ); - sounds::sound( z->pos(), speech.volume, sounds::sound_t::alert, speech.text ); + if( cname == g->u.name && g->u.cash < 0 && g->u.has_trait( trait_id( "DEBT" ) ) ) { + sounds::sound( z->pos(), 15, sounds::sound_t::alert, + _( "\"Wanted debtor in sight! Commencing debt enforcement proceedings!\"" ) ); + } else { + const SpeechBubble &speech = get_speech( z->type->id.str() ); + sounds::sound( z->pos(), speech.volume, sounds::sound_t::alert, speech.text ); + } g->events.add( EVENT_ROBOT_ATTACK, calendar::turn + rng( 15_turns, 30_turns ), 0, g->u.global_sm_location() ); diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index 56c993aa5704f..bc543fd759c88 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -550,6 +550,20 @@ bool avatar::create( character_type type, const std::string &tempname ) mod_skill_level( e.first, e.second ); } + // setup staring bank money + + cash = rng( -200000, 200000 ); + + if( has_trait( trait_id( "MILLIONAIRE" ) ) ) { + cash = rng( 500000000, 1000000000 ); + } + if( has_trait( trait_id( "DEBT" ) ) ) { + cash = rng( -1500000, -3000000 ); + } + if( has_trait( trait_id( "SAVINGS" ) ) ) { + cash = rng( 1500000, 2000000 ); + } + // Learn recipes for( const auto &e : recipe_dict ) { const auto &r = e.second; diff --git a/src/npctalk.cpp b/src/npctalk.cpp index d81f4b15593ff..3b5e2055eb138 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -2784,7 +2784,7 @@ void conditional_t::set_npc_allies( JsonObject &jo ) void conditional_t::set_npc_service( JsonObject &jo ) { - const unsigned long service_price = jo.get_int( "npc_service" ); + const signed long service_price = jo.get_int( "npc_service" ); condition = [service_price]( const dialogue & d ) { return !d.beta->has_effect( effect_currently_busy ) && d.alpha->cash >= service_price; }; @@ -2792,7 +2792,7 @@ void conditional_t::set_npc_service( JsonObject &jo ) void conditional_t::set_u_has_cash( JsonObject &jo ) { - const unsigned long min_cash = jo.get_int( "u_has_cash" ); + const signed long min_cash = jo.get_int( "u_has_cash" ); condition = [min_cash]( const dialogue & d ) { return d.alpha->cash >= min_cash; }; diff --git a/src/npctalk_funcs.cpp b/src/npctalk_funcs.cpp index 00077148483d2..8f30d00ce5654 100644 --- a/src/npctalk_funcs.cpp +++ b/src/npctalk_funcs.cpp @@ -378,7 +378,7 @@ void talk_function::bionic_install( npc &p ) const item tmp = item( bionic_types[bionic_index], 0 ); const itype &it = *tmp.type; - unsigned int price = tmp.price( true ) * 2; + signed int price = tmp.price( true ) * 2; if( price > g->u.cash ) { popup( _( "You can't afford the procedure..." ) ); @@ -429,7 +429,7 @@ void talk_function::bionic_remove( npc &p ) return; } - unsigned int price; + signed int price; if( item::type_is_defined( bionic_types[bionic_index] ) ) { price = 50000 + ( item( bionic_types[bionic_index], 0 ).price( true ) / 4 ); } else { diff --git a/src/output.h b/src/output.h index cf52efe3f0d5c..6c0ede63fc262 100644 --- a/src/output.h +++ b/src/output.h @@ -803,7 +803,7 @@ std::string format_volume( const units::volume &volume ); std::string format_volume( const units::volume &volume, int width, bool *out_truncated, double *out_value ); -inline const std::string format_money( unsigned long cents ) +inline const std::string format_money( signed long cents ) { return string_format( _( "$%.2f" ), cents / 100.0 ); } diff --git a/src/player.h b/src/player.h index fac99313951bf..2aaea45e9db3b 100644 --- a/src/player.h +++ b/src/player.h @@ -1547,7 +1547,7 @@ class player : public Character int blocks_left; int stim; int radiation; - unsigned long cash; + signed long cash; int movecounter; std::shared_ptr mounted_creature; bool death_drops;// Turned to false for simulating NPCs on distant missions so they don't drop all their gear in sight From 7ab2823fa7ea0c28c4b2a8618d31bfe42a533f54 Mon Sep 17 00:00:00 2001 From: Sergey Alirzaev Date: Fri, 14 Jun 2019 19:29:46 +0300 Subject: [PATCH 56/76] game.cpp: invalidate map cache after peeking fixes https://github.com/CleverRaven/Cataclysm-DDA/issues/31384 --- src/game.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game.cpp b/src/game.cpp index 9930be213d586..4ae84babf6bbf 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -5609,6 +5609,7 @@ void game::peek( const tripoint &p ) if( result.peek_action && *result.peek_action == PA_BLIND_THROW ) { avatar_action::plthrow( u, INT_MIN, p ); } + m.invalidate_map_cache( p.z ); draw_ter(); wrefresh( w_terrain ); From 9abec57f891ff89380d70632f7db5c77cde9a0e5 Mon Sep 17 00:00:00 2001 From: John Bytheway Date: Sun, 9 Jun 2019 22:17:36 +0100 Subject: [PATCH 57/76] Treat input and output chars as int, not long --- src/action.cpp | 4 ++-- src/action.h | 2 +- src/avatar.cpp | 4 ++-- src/avatar.h | 4 ++-- src/bionics_ui.cpp | 10 +++++----- src/catacharset.cpp | 2 +- src/catacharset.h | 2 +- src/cursesport.cpp | 2 +- src/dialogue_win.cpp | 2 +- src/dialogue_win.h | 2 +- src/editmap.cpp | 2 +- src/game.cpp | 4 ++-- src/generic_factory.h | 12 ++++++------ src/handle_action.cpp | 4 ++-- src/input.cpp | 32 ++++++++++++++++---------------- src/input.h | 40 ++++++++++++++++++++-------------------- src/lru_cache.cpp | 2 +- src/map.cpp | 18 +++++++++--------- src/map.h | 2 +- src/map_memory.cpp | 4 ++-- src/map_memory.h | 6 +++--- src/mapdata.cpp | 2 +- src/mapdata.h | 4 ++-- src/mutation_ui.cpp | 6 +++--- src/ncurses_def.cpp | 4 ++-- src/newcharacter.cpp | 6 +++--- src/npctalk.cpp | 4 ++-- src/output.cpp | 16 ++++++++-------- src/output.h | 22 +++++++++++----------- src/overmap_ui.cpp | 2 +- src/pickup.cpp | 2 +- src/tileray.cpp | 2 +- src/tileray.h | 2 +- src/trap.h | 2 +- src/ui.h | 6 +++--- src/veh_interact.cpp | 4 ++-- src/veh_type.h | 2 +- src/worldfactory.cpp | 2 +- tests/map_memory.cpp | 6 +++--- 39 files changed, 127 insertions(+), 127 deletions(-) diff --git a/src/action.cpp b/src/action.cpp index e565bef001ebc..783a271a47ca9 100644 --- a/src/action.cpp +++ b/src/action.cpp @@ -107,7 +107,7 @@ std::vector keys_bound_to( action_id act, const bool restrict_to_printable action_id action_from_key( char ch ) { input_context ctxt = get_default_mode_input_context(); - const input_event event( static_cast( ch ), CATA_INPUT_KEYBOARD ); + const input_event event( ch, CATA_INPUT_KEYBOARD ); const std::string &action = ctxt.input_to_action( event ); return look_up_action( action ); } @@ -536,7 +536,7 @@ point get_delta_from_movement_direction( action_id act ) } } -long hotkey_for_action( action_id action, const bool restrict_to_printable ) +int hotkey_for_action( action_id action, const bool restrict_to_printable ) { auto is_valid_key = []( char key ) { return key != '?'; diff --git a/src/action.h b/src/action.h index c6032ca9ba8e5..f5ee6e1776080 100644 --- a/src/action.h +++ b/src/action.h @@ -354,7 +354,7 @@ std::vector keys_bound_to( action_id act, bool restrict_to_printable = tru * @returns the key code for the hotkey or -1 if no key is associated with the given action. * @note We ignore bindings to '?' because that will already do something else in this menu (open the menu keybindings). */ -long hotkey_for_action( action_id action, bool restrict_to_printable = true ); +int hotkey_for_action( action_id action, bool restrict_to_printable = true ); /** * Lookup an action ID by its unique string identifier diff --git a/src/avatar.cpp b/src/avatar.cpp index 938d2057bf086..e06948eb36943 100644 --- a/src/avatar.cpp +++ b/src/avatar.cpp @@ -304,12 +304,12 @@ void avatar::memorize_tile( const tripoint &pos, const std::string &ter, const i player_map_memory.memorize_tile( max_memorized_tiles(), pos, ter, subtile, rotation ); } -void avatar::memorize_symbol( const tripoint &pos, const long symbol ) +void avatar::memorize_symbol( const tripoint &pos, const int symbol ) { player_map_memory.memorize_symbol( max_memorized_tiles(), pos, symbol ); } -long avatar::get_memorized_symbol( const tripoint &p ) const +int avatar::get_memorized_symbol( const tripoint &p ) const { return player_map_memory.get_symbol( p ); } diff --git a/src/avatar.h b/src/avatar.h index 06fae4b735ec4..8200dcbfa1b82 100644 --- a/src/avatar.h +++ b/src/avatar.h @@ -33,9 +33,9 @@ class avatar : public player /** Returns last stored map tile in given location in tiles mode */ memorized_terrain_tile get_memorized_tile( const tripoint &p ) const; /** Memorizes a given tile in curses mode; finalize_terrain_memory_curses needs to be called after it */ - void memorize_symbol( const tripoint &pos, const long symbol ); + void memorize_symbol( const tripoint &pos, const int symbol ); /** Returns last stored map tile in given location in curses mode */ - long get_memorized_symbol( const tripoint &p ) const; + int get_memorized_symbol( const tripoint &p ) const; /** Returns the amount of tiles survivor can remember. */ size_t max_memorized_tiles() const; void clear_memorized_tile( const tripoint &pos ); diff --git a/src/bionics_ui.cpp b/src/bionics_ui.cpp index e67add9d2bad8..317ab0d439e0d 100644 --- a/src/bionics_ui.cpp +++ b/src/bionics_ui.cpp @@ -202,7 +202,7 @@ static void draw_connectors( const catacurses::window &win, const int start_y, c // symbol is defined incorrectly for case ( y == start_y ) but // that's okay because it's overlapped by bionic_chr anyway - long bp_chr = ( y > start_y ) ? LINE_XXOO : LINE_OXXO; + int bp_chr = ( y > start_y ) ? LINE_XXOO : LINE_OXXO; if( ( max_y > y && y > start_y ) || ( min_y < y && y < start_y ) ) { bp_chr = LINE_XXXO; } @@ -220,7 +220,7 @@ static void draw_connectors( const catacurses::window &win, const int start_y, c } // define and draw a proper intersection character - long bionic_chr = LINE_OXOX; // '-' // 001 + int bionic_chr = LINE_OXOX; // '-' // 001 if( move_up && !move_down && !move_same ) { // 100 bionic_chr = LINE_XOOX; // '_|' } else if( move_up && move_down && !move_same ) { // 110 @@ -478,7 +478,7 @@ void player::power_bionics() } const std::string action = ctxt.handle_input(); - const long ch = ctxt.get_raw_input().get_first_input(); + const int ch = ctxt.get_raw_input().get_first_input(); bionic *tmp = nullptr; bool confirmCheck = false; @@ -527,8 +527,8 @@ void player::power_bionics() continue; } redraw = true; - const long newch = popup_getkey( _( "%s; enter new letter. Space to clear. Esc to cancel." ), - tmp->id->name ); + const int newch = popup_getkey( _( "%s; enter new letter. Space to clear. Esc to cancel." ), + tmp->id->name ); wrefresh( wBio ); if( newch == ch || newch == KEY_ESCAPE ) { continue; diff --git a/src/catacharset.cpp b/src/catacharset.cpp index 8116fc8dc2d5a..cecd917c4e974 100644 --- a/src/catacharset.cpp +++ b/src/catacharset.cpp @@ -573,7 +573,7 @@ utf8_wrapper utf8_wrapper::substr_byte( size_t bytestart, size_t length, return utf8_wrapper( _data.substr( bytestart, bend - bytestart ) ); } -long utf8_wrapper::at( size_t start ) const +uint32_t utf8_wrapper::at( size_t start ) const { const size_t bstart = byte_start( 0, start ); const char *utf8str = _data.c_str() + bstart; diff --git a/src/catacharset.h b/src/catacharset.h index c4ab1c7beb41a..b376d62a66b77 100644 --- a/src/catacharset.h +++ b/src/catacharset.h @@ -120,7 +120,7 @@ class utf8_wrapper } // Returns Unicode character at position start - long at( size_t start ) const; + uint32_t at( size_t start ) const; // Returns number of Unicode characters size_t size() const { diff --git a/src/cursesport.cpp b/src/cursesport.cpp index 866058fd51514..5dc3f79788bc7 100644 --- a/src/cursesport.cpp +++ b/src/cursesport.cpp @@ -564,7 +564,7 @@ void catacurses::wattroff( const window &win_, int ) void catacurses::waddch( const window &win, const chtype ch ) { - return printstring( win.get(), string_from_long( ch ) ); + return printstring( win.get(), string_from_int( ch ) ); } static constexpr int A_BLINK = 0x00000800; /* Added characters are blinking. */ diff --git a/src/dialogue_win.cpp b/src/dialogue_win.cpp index 917afdf2fdbf8..6932326913ed8 100644 --- a/src/dialogue_win.cpp +++ b/src/dialogue_win.cpp @@ -132,7 +132,7 @@ void dialogue_window::refresh_response_display() void dialogue_window::display_responses( const int hilight_lines, const std::vector &responses, - const long &ch ) + const int &ch ) { if( text_only ) { return; diff --git a/src/dialogue_win.h b/src/dialogue_win.h index 918b337e5692b..063360e1fc732 100644 --- a/src/dialogue_win.h +++ b/src/dialogue_win.h @@ -23,7 +23,7 @@ class dialogue_window void clear_window_texts(); void display_responses( int hilight_lines, const std::vector &responses, - const long &ch ); + const int &ch ); void refresh_response_display(); /** * Folds and adds the folded text to @ref history. Returns the number of added lines. diff --git a/src/editmap.cpp b/src/editmap.cpp index dc66bc468ee6f..8f6d1a7333e66 100644 --- a/src/editmap.cpp +++ b/src/editmap.cpp @@ -467,7 +467,7 @@ void editmap::uber_draw_ter( const catacurses::window &w, map *m ) for( int x = start.x, sx = 0; x <= end.x; x++, sx++ ) { for( int y = start.y, sy = 0; y <= end.y; y++, sy++ ) { tripoint p{ x, y, target.z }; - long sym = ( game_map ? '%' : ' ' ); + int sym = ( game_map ? '%' : ' ' ); if( x >= 0 && x < msize && y >= 0 && y < msize ) { if( game_map ) { Creature *critter = g->critter_at( p ); diff --git a/src/game.cpp b/src/game.cpp index 9930be213d586..691522d8d3c5e 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -246,7 +246,7 @@ void intro(); extern std::map> quick_shortcuts_map; extern bool add_best_key_for_action_to_quick_shortcuts( action_id action, const std::string &category, bool back ); -extern bool add_key_to_quick_shortcuts( long key, const std::string &category, bool back ); +extern bool add_key_to_quick_shortcuts( int key, const std::string &category, bool back ); #endif //The one and only game instance @@ -7734,7 +7734,7 @@ static int get_initial_hotkey( const size_t menu_index ) { int hotkey = -1; if( menu_index == 0 ) { - const long butcher_key = inp_mngr.get_previously_pressed_key(); + const int butcher_key = inp_mngr.get_previously_pressed_key(); if( butcher_key != 0 ) { hotkey = butcher_key; } diff --git a/src/generic_factory.h b/src/generic_factory.h index 0588338ceda64..909500afe3539 100644 --- a/src/generic_factory.h +++ b/src/generic_factory.h @@ -562,7 +562,7 @@ inline bool translated_string_reader( JsonObject &jo, const std::string &member_ * Reads a string and stores the first byte of it in `sym`. Throws if the input contains more * or less than one byte. */ -inline bool one_char_symbol_reader( JsonObject &jo, const std::string &member_name, long &sym, +inline bool one_char_symbol_reader( JsonObject &jo, const std::string &member_name, int &sym, bool ) { std::string sym_as_string; @@ -577,20 +577,20 @@ inline bool one_char_symbol_reader( JsonObject &jo, const std::string &member_na } /** - * Reads a UTF-8 string (or long as legacy fallback) and stores Unicode codepoint of it in `symbol`. + * Reads a UTF-8 string (or int as legacy fallback) and stores Unicode codepoint of it in `symbol`. * Throws if the inputs width is more than one console cell wide. */ inline bool unicode_codepoint_from_symbol_reader( JsonObject &jo, const std::string &member_name, uint32_t &member, bool ) { - long sym_as_long; + int sym_as_int; std::string sym_as_string; if( !jo.read( member_name, sym_as_string ) ) { - // Legacy fallback to long `sym`. - if( !jo.read( member_name, sym_as_long ) ) { + // Legacy fallback to integer `sym`. + if( !jo.read( member_name, sym_as_int ) ) { return false; } else { - sym_as_string = string_from_long( sym_as_long ); + sym_as_string = string_from_int( sym_as_int ); } } uint32_t sym_as_codepoint = UTF8_getch( sym_as_string ); diff --git a/src/handle_action.cpp b/src/handle_action.cpp index ea45b6c762593..95e5af2161f7a 100644 --- a/src/handle_action.cpp +++ b/src/handle_action.cpp @@ -86,7 +86,7 @@ const skill_id skill_melee( "melee" ); extern std::map> quick_shortcuts_map; extern bool add_best_key_for_action_to_quick_shortcuts( action_id action, const std::string &category, bool back ); -extern bool add_key_to_quick_shortcuts( long key, const std::string &category, bool back ); +extern bool add_key_to_quick_shortcuts( int key, const std::string &category, bool back ); #endif class user_turn @@ -1475,7 +1475,7 @@ bool game::handle_action() if( act == ACTION_NULL ) { const input_event &&evt = ctxt.get_raw_input(); if( !evt.sequence.empty() ) { - const long ch = evt.get_first_input(); + const int ch = evt.get_first_input(); const std::string &&name = inp_mngr.get_keyname( ch, evt.type, true ); if( !get_option( "NO_UNKNOWN_COMMAND_MSG" ) ) { add_msg( m_info, _( "Unknown command: \"%s\" (%ld)" ), name, ch ); diff --git a/src/input.cpp b/src/input.cpp index 8f2392b7d620e..9e0a83dd3443a 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -49,17 +49,17 @@ struct ContainsPredicate { } }; -static long str_to_long( const std::string &number ) +static int str_to_int( const std::string &number ) { // ensure user's locale doesn't interfere with number format std::istringstream buffer( number ); buffer.imbue( std::locale::classic() ); - long result; + int result; buffer >> result; return result; } -static std::string long_to_str( long number ) +static std::string int_to_str( int number ) { // ensure user's locale doesn't interfere with number format std::ostringstream buffer; @@ -94,7 +94,7 @@ std::string get_input_string_from_file( const std::string &fname ) return ret; } -long input_event::get_first_input() const +int input_event::get_first_input() const { if( sequence.empty() ) { return UNKNOWN_UNICODE; @@ -319,13 +319,13 @@ void input_manager::save() }, _( "key bindings configuration" ) ); } -void input_manager::add_keycode_pair( long ch, const std::string &name ) +void input_manager::add_keycode_pair( int ch, const std::string &name ) { keycode_to_keyname[ch] = name; keyname_to_keycode[name] = ch; } -void input_manager::add_gamepad_keycode_pair( long ch, const std::string &name ) +void input_manager::add_gamepad_keycode_pair( int ch, const std::string &name ) { gamepad_keycode_to_keyname[ch] = name; keyname_to_keycode[name] = ch; @@ -386,20 +386,20 @@ void input_manager::init_keycode_mapping() keyname_to_keycode["MOUSE_MOVE"] = MOUSE_MOVE; } -long input_manager::get_keycode( const std::string &name ) const +int input_manager::get_keycode( const std::string &name ) const { const t_name_to_key_map::const_iterator a = keyname_to_keycode.find( name ); if( a != keyname_to_keycode.end() ) { return a->second; } - // Not found in map, try to parse as long + // Not found in map, try to parse as int if( name.compare( 0, 8, "UNKNOWN_" ) == 0 ) { - return str_to_long( name.substr( 8 ) ); + return str_to_int( name.substr( 8 ) ); } return 0; } -std::string input_manager::get_keyname( long ch, input_event_t inp_type, bool portable ) const +std::string input_manager::get_keyname( int ch, input_event_t inp_type, bool portable ) const { if( inp_type == CATA_INPUT_KEYBOARD ) { const t_key_to_name_map::const_iterator a = keycode_to_keyname.find( ch ); @@ -427,7 +427,7 @@ std::string input_manager::get_keyname( long ch, input_event_t inp_type, bool po return "UNKNOWN"; } if( portable ) { - return std::string( "UNKNOWN_" ) + long_to_str( ch ); + return std::string( "UNKNOWN_" ) + int_to_str( ch ); } return string_format( _( "unknown key %ld" ), ch ); } @@ -440,7 +440,7 @@ const std::vector &input_manager::get_input_for_action( const std:: return attributes.input_events; } -long input_manager::get_first_char_for_action( const std::string &action_descriptor, +int input_manager::get_first_char_for_action( const std::string &action_descriptor, const std::string &context ) { std::vector input_events = get_input_for_action( action_descriptor, context ); @@ -632,7 +632,7 @@ void input_context::register_manual_key( manual_key mk ) registered_manual_keys.push_back( mk ); } -void input_context::register_manual_key( long key, const std::string text ) +void input_context::register_manual_key( int key, const std::string text ) { // Prevent duplicates for( const manual_key &manual_key : registered_manual_keys ) @@ -701,7 +701,7 @@ std::string input_context::get_available_single_char_hotkeys( std::string reques // Only consider keyboard events without modifiers if( events_event.type == CATA_INPUT_KEYBOARD && events_event.modifiers.empty() ) { requested_keys.erase( std::remove_if( requested_keys.begin(), requested_keys.end(), - ContainsPredicate, char>( + ContainsPredicate, char>( events_event.sequence ) ), requested_keys.end() ); } @@ -1016,7 +1016,7 @@ void input_context::display_menu() std::vector filtered_registered_actions = org_registered_actions; std::string filter_phrase; std::string action; - long raw_input_char = 0; + int raw_input_char = 0; string_input_popup spopup; spopup.window( w_help, 4, 8, legwidth ) .max_length( legwidth ) @@ -1228,7 +1228,7 @@ input_event input_context::get_raw_input() return next_action; } -long input_manager::get_previously_pressed_key() const +int input_manager::get_previously_pressed_key() const { return previously_pressed_key; } diff --git a/src/input.h b/src/input.h index 951ea71dd40db..0846cf83098cf 100644 --- a/src/input.h +++ b/src/input.h @@ -72,7 +72,7 @@ enum input_event_t { /** * An instance of an input, like a keypress etc. * - * Gamepad, mouse and keyboard keypresses will be represented as `long`. + * Gamepad, mouse and keyboard keypresses will be represented as `int`. * Whether a gamepad, mouse or keyboard was used can be checked using the * `type` member. * @@ -80,10 +80,10 @@ enum input_event_t { struct input_event { input_event_t type; - std::vector modifiers; // Keys that need to be held down for + std::vector modifiers; // Keys that need to be held down for // this event to be activated. - std::vector sequence; // The sequence of key or mouse events that + std::vector sequence; // The sequence of key or mouse events that // triggers this event. For single-key // events, simply make this of size 1. @@ -107,7 +107,7 @@ struct input_event { shortcut_last_used_action_counter = 0; #endif } - input_event( long s, input_event_t t ) + input_event( int s, input_event_t t ) : type( t ) { mouse_x = mouse_y = 0; sequence.push_back( s ); @@ -116,9 +116,9 @@ struct input_event { #endif } - long get_first_input() const; + int get_first_input() const; - void add_input( const long input ) { + void add_input( const int input ) { sequence.push_back( input ); } @@ -222,8 +222,8 @@ class input_manager /** * Return first char associated with an action ID in a given context. */ - long get_first_char_for_action( const std::string &action_descriptor, - const std::string &context = "default" ); + int get_first_char_for_action( const std::string &action_descriptor, + const std::string &context = "default" ); /** * Initializes the input manager, aka loads the input mapping configuration JSON. @@ -239,12 +239,12 @@ class input_manager * Return the previously pressed key, or 0 if there is no previous input * or the previous input wasn't a key. */ - long get_previously_pressed_key() const; + int get_previously_pressed_key() const; /** * Get the keycode associated with the given key name. */ - long get_keycode( const std::string &name ) const; + int get_keycode( const std::string &name ) const; /** * Get the key name associated with the given keyboard keycode. @@ -255,7 +255,7 @@ class input_manager * of the key. This acts as the inverse to get_keyname: * get_keyname(get_keycode(a), , true) == a */ - std::string get_keyname( long ch, input_event_t input_type, bool portable = false ) const; + std::string get_keyname( int ch, input_event_t input_type, bool portable = false ) const; /** * curses getch() replacement. @@ -292,20 +292,20 @@ class input_manager t_action_contexts action_contexts; using t_string_string_map = std::map; - using t_key_to_name_map = std::map; + using t_key_to_name_map = std::map; t_key_to_name_map keycode_to_keyname; t_key_to_name_map gamepad_keycode_to_keyname; - using t_name_to_key_map = std::map; + using t_name_to_key_map = std::map; t_name_to_key_map keyname_to_keycode; // See @ref get_previously_pressed_key - long previously_pressed_key; + int previously_pressed_key; // Maps the key names we see in keybindings.json and in-game to // the keycode integers. void init_keycode_mapping(); - void add_keycode_pair( long ch, const std::string &name ); - void add_gamepad_keycode_pair( long ch, const std::string &name ); + void add_keycode_pair( int ch, const std::string &name ); + void add_gamepad_keycode_pair( int ch, const std::string &name ); /** * Load keybindings from a json file, override existing bindings. @@ -399,8 +399,8 @@ class input_context // hack to allow creating manual keybindings for getch() instances, uilists etc. that don't use an input_context outside of the Android version struct manual_key { - manual_key( long _key, const std::string &_text ) : key( _key ), text( _text ) {} - long key; + manual_key( int _key, const std::string &_text ) : key( _key ), text( _text ) {} + int key; std::string text; bool operator==( const manual_key &other ) const { return key == other.key && text == other.text; @@ -414,9 +414,9 @@ class input_context bool allow_text_entry; void register_manual_key( manual_key mk ); - void register_manual_key( long key, const std::string text = "" ); + void register_manual_key( int key, const std::string text = "" ); - std::string get_action_name_for_manual_key( long key ) { + std::string get_action_name_for_manual_key( int key ) { for( const auto &manual_key : registered_manual_keys ) { if( manual_key.key == key ) { return manual_key.text; diff --git a/src/lru_cache.cpp b/src/lru_cache.cpp index afd9087689a12..d2ea4261a114e 100644 --- a/src/lru_cache.cpp +++ b/src/lru_cache.cpp @@ -69,4 +69,4 @@ const std::list::Pair> &lru_cache::li // explicit template initialization for lru_cache of all types template class lru_cache; -template class lru_cache; +template class lru_cache; diff --git a/src/map.cpp b/src/map.cpp index 3f76f963e437f..798f31efa9600 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -5682,7 +5682,7 @@ visibility_type map::get_visibility( const lit_level ll, const visibility_variab bool map::apply_vision_effects( const catacurses::window &w, const visibility_type vis ) const { - long symbol = ' '; + int symbol = ' '; nc_color color = c_black; switch( vis ) { @@ -5714,7 +5714,7 @@ bool map::apply_vision_effects( const catacurses::window &w, const visibility_ty bool map::draw_maptile_from_memory( const catacurses::window &w, const tripoint &p, const tripoint &view_center, bool move_cursor ) const { - long sym = g->u.get_memorized_symbol( getabs( p ) ); + int sym = g->u.get_memorized_symbol( getabs( p ) ); if( sym == 0 ) { return false; } @@ -5866,12 +5866,12 @@ bool map::draw_maptile( const catacurses::window &w, const player &u, const trip const furn_t &curr_furn = curr_maptile.get_furn_t(); const trap &curr_trap = curr_maptile.get_trap().obj(); const field &curr_field = curr_maptile.get_field(); - long sym; + int sym; bool hi = false; bool graf = false; bool draw_item_sym = false; - long terrain_sym; + int terrain_sym; if( curr_ter.has_flag( TFLAG_AUTO_WALL_SYMBOL ) ) { terrain_sym = determine_wall_corner( p ); } else { @@ -5963,7 +5963,7 @@ bool map::draw_maptile( const catacurses::window &w, const player &u, const trip } // TODO: change the local variable sym to std::string and use it instead of this hack. - // Currently this are different variables because terrain/... uses long as symbol type and + // Currently this are different variables because terrain/... uses int as symbol type and // item now use string. Ideally they should all be strings. std::string item_sym; @@ -5985,7 +5985,7 @@ bool map::draw_maptile( const catacurses::window &w, const player &u, const trip } } - long memory_sym = sym; + int memory_sym = sym; int veh_part = 0; const vehicle *veh = veh_at_internal( p, veh_part ); if( veh != nullptr ) { @@ -6054,10 +6054,10 @@ void map::draw_from_above( const catacurses::window &w, const player &u, const t const tripoint &view_center, bool low_light, bool bright_light, bool inorder ) const { - static const long AUTO_WALL_PLACEHOLDER = 2; // this should never appear as a real symbol! + static const int AUTO_WALL_PLACEHOLDER = 2; // this should never appear as a real symbol! nc_color tercol = c_dark_gray; - long sym = ' '; + int sym = ' '; const ter_t &curr_ter = curr_tile.get_ter_t(); const furn_t &curr_furn = curr_tile.get_furn_t(); @@ -7628,7 +7628,7 @@ bool map::has_graffiti_at( const tripoint &p ) const return current_submap->has_graffiti( l ); } -long map::determine_wall_corner( const tripoint &p ) const +int map::determine_wall_corner( const tripoint &p ) const { int test_connect_group = ter( tripoint( p.x, p.y, p.z ) ).obj().connect_group; uint8_t connections = get_known_connections( p, test_connect_group ); diff --git a/src/map.h b/src/map.h index 0a8d8ac59f952..696a40aed33fa 100644 --- a/src/map.h +++ b/src/map.h @@ -1568,7 +1568,7 @@ class map const tripoint &view_center, bool low_light, bool bright_light, bool inorder ) const; - long determine_wall_corner( const tripoint &p ) const; + int determine_wall_corner( const tripoint &p ) const; // apply a circular light pattern immediately, however it's best to use... void apply_light_source( const tripoint &p, float luminance ); // ...this, which will apply the light after at the end of generate_lightmap, and prevent redundant diff --git a/src/map_memory.cpp b/src/map_memory.cpp index de8465b7c3d2e..ce5f1a1c65ad6 100644 --- a/src/map_memory.cpp +++ b/src/map_memory.cpp @@ -13,12 +13,12 @@ void map_memory::memorize_tile( int limit, const tripoint &pos, const std::strin tile_cache.insert( limit, pos, memorized_terrain_tile{ ter, subtile, rotation } ); } -long map_memory::get_symbol( const tripoint &pos ) const +int map_memory::get_symbol( const tripoint &pos ) const { return symbol_cache.get( pos, 0 ); } -void map_memory::memorize_symbol( int limit, const tripoint &pos, const long symbol ) +void map_memory::memorize_symbol( int limit, const tripoint &pos, const int symbol ) { symbol_cache.insert( limit, pos, symbol ); } diff --git a/src/map_memory.h b/src/map_memory.h index 3939b46af8b64..6884dae2b6ff9 100644 --- a/src/map_memory.h +++ b/src/map_memory.h @@ -27,13 +27,13 @@ class map_memory /** Returns last stored map tile in given location */ memorized_terrain_tile get_tile( const tripoint &pos ) const; - void memorize_symbol( int limit, const tripoint &pos, const long symbol ); - long get_symbol( const tripoint &pos ) const; + void memorize_symbol( int limit, const tripoint &pos, const int symbol ); + int get_symbol( const tripoint &pos ) const; void clear_memorized_tile( const tripoint &pos ); private: lru_cache tile_cache; - lru_cache symbol_cache; + lru_cache symbol_cache; }; #endif diff --git a/src/mapdata.cpp b/src/mapdata.cpp index f57c61e1f3703..6677e42e07fdc 100644 --- a/src/mapdata.cpp +++ b/src/mapdata.cpp @@ -398,7 +398,7 @@ void map_data_common_t::load_symbol( JsonObject &jo ) } } -long map_data_common_t::symbol() const +int map_data_common_t::symbol() const { return symbol_[season_of_year( calendar::turn )]; } diff --git a/src/mapdata.h b/src/mapdata.h index 35d469e76a887..3070788416d85 100644 --- a/src/mapdata.h +++ b/src/mapdata.h @@ -237,7 +237,7 @@ struct map_data_common_t { * as to which possible object/field/entity in a single square gets drawn and that some symbols * are "reserved" such as * and % to do programmatic behavior. */ - std::array symbol_; + std::array symbol_; int movecost; // The amount of movement points required to pass this terrain by default. int coverage; // The coverage percentage of a furniture piece of terrain. <30 won't cover from sight. @@ -283,7 +283,7 @@ struct map_data_common_t { return ( connect_group != TERCONN_NONE ) && ( connect_group == test_connect_group ); } - long symbol() const; + int symbol() const; nc_color color() const; const harvest_id &get_harvest() const; diff --git a/src/mutation_ui.cpp b/src/mutation_ui.cpp index e7ac3d05e259a..92c0694558bd1 100644 --- a/src/mutation_ui.cpp +++ b/src/mutation_ui.cpp @@ -227,7 +227,7 @@ void player::power_mutations() wrefresh( wBio ); show_mutations_titlebar( w_title, menu_mode, ctxt ); const std::string action = ctxt.handle_input(); - const long ch = ctxt.get_raw_input().get_first_input(); + const int ch = ctxt.get_raw_input().get_first_input(); if( menu_mode == "reassigning" ) { menu_mode = "activating"; const auto mut_id = trait_by_invlet( ch ); @@ -236,8 +236,8 @@ void player::power_mutations() continue; } redraw = true; - const long newch = popup_getkey( _( "%s; enter new letter." ), - mutation_branch::get_name( mut_id ) ); + const int newch = popup_getkey( _( "%s; enter new letter." ), + mutation_branch::get_name( mut_id ) ); wrefresh( wBio ); if( newch == ch || newch == ' ' || newch == KEY_ESCAPE ) { continue; diff --git a/src/ncurses_def.cpp b/src/ncurses_def.cpp index ea0d6029bb9b5..565708111dfa6 100644 --- a/src/ncurses_def.cpp +++ b/src/ncurses_def.cpp @@ -233,9 +233,9 @@ void catacurses::init_interface() input_event input_manager::get_input_event() { previously_pressed_key = 0; - const long key = getch(); + const int key = getch(); if( key != ERR ) { - long newch; + int newch; // Clear the buffer of characters that match the one we're going to act on. set_timeout( 0 ); do { diff --git a/src/newcharacter.cpp b/src/newcharacter.cpp index bc543fd759c88..bc1cbd4a594e5 100644 --- a/src/newcharacter.cpp +++ b/src/newcharacter.cpp @@ -2419,7 +2419,7 @@ tab_direction set_description( const catacurses::window &w, avatar &you, const b redraw = true; } else if( action == "ANY_INPUT" && !MAP_SHARING::isSharing() ) { // Don't edit names when sharing maps - const long ch = ctxt.get_raw_input().get_first_input(); + const int ch = ctxt.get_raw_input().get_first_input(); utf8_wrapper wrap( you.name ); if( ch == KEY_BACKSPACE ) { if( !wrap.empty() ) { @@ -2519,7 +2519,7 @@ trait_id Character::random_bad_trait() cata::optional query_for_template_name() { - static const std::set fname_char_blacklist = { + static const std::set fname_char_blacklist = { #if defined(_WIN32) '\"', '*', '/', ':', '<', '>', '?', '\\', '|', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x09', @@ -2537,7 +2537,7 @@ cata::optional query_for_template_name() spop.title( title ); spop.description( desc ); spop.width( FULL_SCREEN_WIDTH - utf8_width( title ) - 8 ); - for( long character : fname_char_blacklist ) { + for( int character : fname_char_blacklist ) { spop.callbacks[ character ] = []() { return true; }; diff --git a/src/npctalk.cpp b/src/npctalk.cpp index 3b5e2055eb138..f95f91df7652f 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -1520,7 +1520,7 @@ talk_topic dialogue::opt( dialogue_window &d_win, const talk_topic &topic ) response_lines.push_back( responses[i].create_option_line( *this, 'a' + i ) ); } - long ch = text_only ? 'a' + responses.size() - 1 : ' '; + int ch = text_only ? 'a' + responses.size() - 1 : ' '; bool okay; do { d_win.refresh_response_display(); @@ -1544,7 +1544,7 @@ talk_topic dialogue::opt( dialogue_window &d_win, const talk_topic &topic ) ch -= 'a'; break; } - } while( ( ch < 0 || ch >= static_cast( responses.size() ) ) ); + } while( ( ch < 0 || ch >= static_cast( responses.size() ) ) ); okay = true; std::set consequences = responses[ch].get_consequences( *this ); if( consequences.count( dialogue_consequence::hostile ) > 0 ) { diff --git a/src/output.cpp b/src/output.cpp index 983e8560e116d..ef80d93603bd1 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -410,14 +410,14 @@ int right_print( const catacurses::window &w, const int line, const int right_in return x; } -void wputch( const catacurses::window &w, nc_color FG, long ch ) +void wputch( const catacurses::window &w, nc_color FG, int ch ) { wattron( w, FG ); waddch( w, ch ); wattroff( w, FG ); } -void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, long ch ) +void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, int ch ) { wattron( w, FG ); mvwaddch( w, y, x, ch ); @@ -431,7 +431,7 @@ void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, const std wattroff( w, FG ); } -void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, long ch ) +void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, int ch ) { nc_color HC = invert_color( FG ); wattron( w, HC ); @@ -447,7 +447,7 @@ void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, const wattroff( w, HC ); } -void mvwputch_hi( const catacurses::window &w, int y, int x, nc_color FG, long ch ) +void mvwputch_hi( const catacurses::window &w, int y, int x, nc_color FG, int ch ) { nc_color HC = hilite( FG ); wattron( w, HC ); @@ -648,7 +648,7 @@ std::vector get_hotkeys( const std::string &s ) return hotkeys; } -long popup( const std::string &text, PopupFlags flags ) +int popup( const std::string &text, PopupFlags flags ) { query_popup pop; pop.message( "%s", text ); @@ -935,10 +935,10 @@ input_event draw_item_info( const catacurses::window &win, const std::string &sI selected++; werase( win ); } else if( selected > 0 && ( ch == '\n' || ch == KEY_RIGHT ) ) { - result = input_event( static_cast( '\n' ), CATA_INPUT_KEYBOARD ); + result = input_event( static_cast( '\n' ), CATA_INPUT_KEYBOARD ); break; } else if( selected == KEY_LEFT ) { - result = input_event( static_cast( ' ' ), CATA_INPUT_KEYBOARD ); + result = input_event( static_cast( ' ' ), CATA_INPUT_KEYBOARD ); break; } else { break; @@ -977,7 +977,7 @@ char rand_char() // this translates symbol y, u, n, b to NW, NE, SE, SW lines correspondingly // h, j, c to horizontal, vertical, cross correspondingly -long special_symbol( long sym ) +int special_symbol( int sym ) { switch( sym ) { case 'j': diff --git a/src/output.h b/src/output.h index 6c0ede63fc262..264eed0e23614 100644 --- a/src/output.h +++ b/src/output.h @@ -82,7 +82,7 @@ using chtype = int; #define LINE_XXXX_UNICODE 0x253C // Supports line drawing -inline std::string string_from_long( const catacurses::chtype ch ) +inline std::string string_from_int( const catacurses::chtype ch ) { catacurses::chtype charcode = ch; // LINE_NESW - X for on, O for off @@ -332,15 +332,15 @@ void multipage( const catacurses::window &w, const std::vector &tex std::string name_and_value( const std::string &name, int value, int field_width ); std::string name_and_value( const std::string &name, const std::string &value, int field_width ); -void wputch( const catacurses::window &w, nc_color FG, long ch ); -// Using long ch is deprecated, use an UTF-8 encoded string instead -void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, long ch ); +void wputch( const catacurses::window &w, nc_color FG, int ch ); +// Using int ch is deprecated, use an UTF-8 encoded string instead +void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, int ch ); void mvwputch( const catacurses::window &w, int y, int x, nc_color FG, const std::string &ch ); -// Using long ch is deprecated, use an UTF-8 encoded string instead -void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, long ch ); +// Using int ch is deprecated, use an UTF-8 encoded string instead +void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, int ch ); void mvwputch_inv( const catacurses::window &w, int y, int x, nc_color FG, const std::string &ch ); -// Using long ch is deprecated, use an UTF-8 encoded string instead -void mvwputch_hi( const catacurses::window &w, int y, int x, nc_color FG, long ch ); +// Using int ch is deprecated, use an UTF-8 encoded string instead +void mvwputch_hi( const catacurses::window &w, int y, int x, nc_color FG, int ch ); void mvwputch_hi( const catacurses::window &w, int y, int x, nc_color FG, const std::string &ch ); void mvwprintz( const catacurses::window &w, int y, int x, const nc_color &FG, @@ -426,7 +426,7 @@ enum PopupFlags { }; template -inline long popup_getkey( const char *const mes, Args &&... args ) +inline int popup_getkey( const char *const mes, Args &&... args ) { return popup( string_format( mes, std::forward( args )... ), PF_GET_KEY ); } @@ -451,7 +451,7 @@ inline void popup( const char *mes, Args &&... args ) { popup( string_format( mes, std::forward( args )... ), PF_NONE ); } -long popup( const std::string &text, PopupFlags flags = PF_NONE ); +int popup( const std::string &text, PopupFlags flags = PF_NONE ); template inline void full_screen_popup( const char *mes, Args &&... args ) { @@ -504,7 +504,7 @@ void draw_item_filter_rules( const catacurses::window &win, int starty, int heig item_filter_type type ); char rand_char(); -long special_symbol( long sym ); +int special_symbol( int sym ); // Remove spaces from the start and the end of a string. std::string trim( const std::string &s ); diff --git a/src/overmap_ui.cpp b/src/overmap_ui.cpp index c7a6cdf537bc5..d588849db7893 100644 --- a/src/overmap_ui.cpp +++ b/src/overmap_ui.cpp @@ -1010,7 +1010,7 @@ void create_note( const tripoint &curs ) do { new_note = input_popup.query_string( false ); - const long first_input = input_popup.context().get_raw_input().get_first_input(); + const int first_input = input_popup.context().get_raw_input().get_first_input(); if( first_input == KEY_ESCAPE ) { new_note = old_note; esc_pressed = true; diff --git a/src/pickup.cpp b/src/pickup.cpp index 055ff7074c14e..e130234613c1d 100644 --- a/src/pickup.cpp +++ b/src/pickup.cpp @@ -534,7 +534,7 @@ void Pickup::pick_up( const tripoint &p, int min, from_where get_items_from ) pickupW, pickupH, 0 ); std::string action; - long raw_input_char = ' '; + int raw_input_char = ' '; input_context ctxt( "PICKUP" ); ctxt.register_action( "UP" ); ctxt.register_action( "DOWN" ); diff --git a/src/tileray.cpp b/src/tileray.cpp index 85feea465dff6..8bfadf17fc18d 100644 --- a/src/tileray.cpp +++ b/src/tileray.cpp @@ -111,7 +111,7 @@ int tileray::dir8() const // This function assumes a vehicle is being drawn. // It assumes horizontal lines are never skewed, vertical lines often skewed. -long tileray::dir_symbol( long sym ) const +int tileray::dir_symbol( int sym ) const { switch( sym ) { // output.cpp special_symbol() converts yubn to corners, hj to lines, c to cross diff --git a/src/tileray.h b/src/tileray.h index 6be26325ee6c8..3a2faf0df0de8 100644 --- a/src/tileray.h +++ b/src/tileray.h @@ -46,7 +46,7 @@ class tileray int dir() const; // return direction of ray (degrees) int dir4() const; // return 4-sided direction (0 = east, 1 = south, 2 = west, 3 = north) int dir8() const; // return 8-sided direction (0 = east, 1 = southeast, 2 = south ...) - long dir_symbol( long sym ) + int dir_symbol( int sym ) const; // convert certain symbols from north-facing variant into current dir facing int ortho_dx( int od ) const; // return dx for point at "od" distance in orthogonal direction int ortho_dy( int od ) const; // return dy for point at "od" distance in orthogonal direction diff --git a/src/trap.h b/src/trap.h index af4437630c6d8..6bdf8280f139b 100644 --- a/src/trap.h +++ b/src/trap.h @@ -69,7 +69,7 @@ struct trap { bool was_loaded = false; - long sym; + int sym; nc_color color; private: int visibility; // 1 to ??, affects detection diff --git a/src/ui.h b/src/ui.h index e75b7ec3c3a06..3ea9614f8155d 100644 --- a/src/ui.h +++ b/src/ui.h @@ -39,7 +39,7 @@ struct mvwzstr { int left = 0; nc_color color = c_unset; std::string txt; - long sym = 0; + int sym = 0; }; /** @@ -232,8 +232,8 @@ class uilist: public ui_container void redraw( bool redraw_callback = true ); void addentry( const std::string &str ); void addentry( int r, bool e, int k, const std::string &str ); - // K is templated so it matches a `char` literal and a `long` value. - // Using a fixed type (either `char` or `long`) will lead to ambiguity with the + // K is templated so it matches a `char` literal and a `int` value. + // Using a fixed type (either `char` or `int`) will lead to ambiguity with the // other overload when called with the wrong type. template void addentry( const int r, const bool e, K k, const char *const format, Args &&... args ) { diff --git a/src/veh_interact.cpp b/src/veh_interact.cpp index 63c161697565c..369685f4b1370 100644 --- a/src/veh_interact.cpp +++ b/src/veh_interact.cpp @@ -1949,7 +1949,7 @@ void veh_interact::move_cursor( int dx, int dy, int dstart_at ) obstruct = true; } nc_color col = cpart >= 0 ? veh->part_color( cpart ) : c_black; - long sym = cpart >= 0 ? veh->part_sym( cpart ) : ' '; + int sym = cpart >= 0 ? veh->part_sym( cpart ) : ' '; mvwputch( w_disp, hh, hw, obstruct ? red_background( col ) : hilite( col ), special_symbol( sym ) ); wrefresh( w_disp ); @@ -2100,7 +2100,7 @@ void veh_interact::display_veh() std::vector structural_parts = veh->all_parts_at_location( "structure" ); for( auto &structural_part : structural_parts ) { const int p = structural_part; - long sym = veh->part_sym( p ); + int sym = veh->part_sym( p ); nc_color col = veh->part_color( p ); int x = veh->parts[p].mount.y + ddy; diff --git a/src/veh_type.h b/src/veh_type.h index 493e261eccc71..f5d2546f0addb 100644 --- a/src/veh_type.h +++ b/src/veh_type.h @@ -152,7 +152,7 @@ class vpart_info * y, u, n, b to NW, NE, SE, SW lines correspondingly * h, j, c to horizontal, vertical, cross correspondingly */ - long sym = 0; + int sym = 0; char sym_broken = '#'; /** hint to tilesets for what tile to use if this part doesn't have one */ diff --git a/src/worldfactory.cpp b/src/worldfactory.cpp index dd052b4140d5c..399237114a26b 100644 --- a/src/worldfactory.cpp +++ b/src/worldfactory.cpp @@ -1178,7 +1178,7 @@ to continue, or %s to go back and review your world." ), return -999; } else if( action == "ANY_INPUT" ) { const input_event ev = ctxt.get_raw_input(); - const long ch = ev.get_first_input(); + const int ch = ev.get_first_input(); utf8_wrapper wrap( worldname ); utf8_wrapper newtext( ev.text ); if( ch == KEY_BACKSPACE ) { diff --git a/tests/map_memory.cpp b/tests/map_memory.cpp index 171fa31165d15..82ca3ee9be39e 100644 --- a/tests/map_memory.cpp +++ b/tests/map_memory.cpp @@ -36,7 +36,7 @@ TEST_CASE( "map_memory_remembers", "[map_memory]" ) TEST_CASE( "map_memory_limited", "[map_memory]" ) { - lru_cache symbol_cache; + lru_cache symbol_cache; symbol_cache.insert( 2, p1, 1 ); symbol_cache.insert( 2, p2, 1 ); symbol_cache.insert( 2, p3, 1 ); @@ -55,7 +55,7 @@ TEST_CASE( "map_memory_overwrites", "[map_memory]" ) TEST_CASE( "map_memory_erases_lru", "[map_memory]" ) { - lru_cache symbol_cache; + lru_cache symbol_cache; symbol_cache.insert( 2, p1, 1 ); symbol_cache.insert( 2, p2, 2 ); symbol_cache.insert( 2, p1, 1 ); @@ -94,7 +94,7 @@ TEST_CASE( "map_memory_survives_save_lod", "[map_memory]" ) TEST_CASE( "lru_cache_perf", "[.]" ) { constexpr int max_size = 1000000; - lru_cache symbol_cache; + lru_cache symbol_cache; const auto start1 = std::chrono::high_resolution_clock::now(); for( int i = 0; i < 1000000; ++i ) { for( int j = -60; j <= 60; ++j ) { From 8f2e9eb8a87a646e18e6b520ec9f9043f9accdc4 Mon Sep 17 00:00:00 2001 From: John Bytheway Date: Wed, 12 Jun 2019 21:39:02 +0100 Subject: [PATCH 58/76] Use ints for SDL keys --- src/sdltiles.cpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/sdltiles.cpp b/src/sdltiles.cpp index 16fecdd00bfc2..e8b7b1f849202 100644 --- a/src/sdltiles.cpp +++ b/src/sdltiles.cpp @@ -175,7 +175,7 @@ class BitmapFont : public Font ~BitmapFont() override = default; void OutputChar( const std::string &ch, int x, int y, unsigned char color ) override; - void OutputChar( long t, int x, int y, unsigned char color ); + void OutputChar( int t, int x, int y, unsigned char color ); void draw_ascii_lines( unsigned char line_id, int drawx, int drawy, int FG ) const override; protected: std::array::COLOR_NAMES_COUNT> ascii; @@ -679,11 +679,11 @@ void CachedTTFFont::OutputChar( const std::string &ch, const int x, const int y, void BitmapFont::OutputChar( const std::string &ch, int x, int y, unsigned char color ) { - const long t = UTF8_getch( ch ); + const int t = UTF8_getch( ch ); BitmapFont::OutputChar( t, x, y, color ); } -void BitmapFont::OutputChar( long t, int x, int y, unsigned char color ) +void BitmapFont::OutputChar( int t, int x, int y, unsigned char color ) { if( t > 256 ) { return; @@ -1347,7 +1347,7 @@ bool Font::draw_window( const catacurses::window &w, const int offsetx, const in return update; } -static long alt_buffer = 0; +static int alt_buffer = 0; static bool alt_down = false; static void begin_alt_code() @@ -1365,7 +1365,7 @@ static bool add_alt_code( char c ) return false; } -static long end_alt_code() +static int end_alt_code() { alt_down = false; return alt_buffer; @@ -1463,7 +1463,7 @@ static bool sdl_keycode_is_arrow( SDL_Keycode key ) return static_cast( sdl_keycode_opposite_arrow( key ) ); } -static long arrow_combo_to_numpad( SDL_Keycode mod, SDL_Keycode key ) +static int arrow_combo_to_numpad( SDL_Keycode mod, SDL_Keycode key ) { if( ( mod == SDLK_UP && key == SDLK_RIGHT ) || ( mod == SDLK_RIGHT && key == SDLK_UP ) ) { @@ -1499,9 +1499,9 @@ static long arrow_combo_to_numpad( SDL_Keycode mod, SDL_Keycode key ) return 0; } -static long arrow_combo_modifier = 0; +static int arrow_combo_modifier = 0; -static long handle_arrow_combo( SDL_Keycode key ) +static int handle_arrow_combo( SDL_Keycode key ) { if( !arrow_combo_modifier ) { arrow_combo_modifier = key; @@ -1522,7 +1522,7 @@ static void end_arrow_combo() * -1 when a ALT+number sequence has been started, * or something that a call to ncurses getch would return. */ -static long sdl_keysym_to_curses( const SDL_Keysym &keysym ) +static int sdl_keysym_to_curses( const SDL_Keysym &keysym ) { const std::string diag_mode = get_option( "DIAG_MOVE_WITH_MODIFIERS_MODE" ); @@ -1868,7 +1868,7 @@ void add_quick_shortcut( quick_shortcuts_t &qsl, input_event &event, bool back, } // Given a quick shortcut list and a specific key, move that key to the front or back of the list. -void reorder_quick_shortcut( quick_shortcuts_t &qsl, long key, bool back ) +void reorder_quick_shortcut( quick_shortcuts_t &qsl, int key, bool back ) { for( const auto &event : qsl ) { if( event.get_first_input() == key ) { @@ -1904,10 +1904,10 @@ void reorder_quick_shortcuts( quick_shortcuts_t &qsl ) } } -long choose_best_key_for_action( const std::string &action, const std::string &category ) +int choose_best_key_for_action( const std::string &action, const std::string &category ) { const std::vector &events = inp_mngr.get_input_for_action( action, category ); - long best_key = -1; + int best_key = -1; for( const auto &events_event : events ) { if( events_event.type == CATA_INPUT_KEYBOARD && events_event.sequence.size() == 1 ) { bool is_ascii_char = isprint( events_event.sequence.front() ) && @@ -1921,7 +1921,7 @@ long choose_best_key_for_action( const std::string &action, const std::string &c return best_key; } -bool add_key_to_quick_shortcuts( long key, const std::string &category, bool back ) +bool add_key_to_quick_shortcuts( int key, const std::string &category, bool back ) { if( key > 0 ) { quick_shortcuts_t &qsl = quick_shortcuts_map[get_quick_shortcut_name( category )]; @@ -1941,7 +1941,7 @@ bool add_key_to_quick_shortcuts( long key, const std::string &category, bool bac bool add_best_key_for_action_to_quick_shortcuts( std::string action_str, const std::string &category, bool back ) { - long best_key = choose_best_key_for_action( action_str, category ); + int best_key = choose_best_key_for_action( action_str, category ); return add_key_to_quick_shortcuts( best_key, category, back ); } @@ -1998,7 +1998,7 @@ void remove_stale_inventory_quick_shortcuts() quick_shortcuts_t &qsl = quick_shortcuts_map["INVENTORY"]; quick_shortcuts_t::iterator it = qsl.begin(); bool in_inventory; - long key; + int key; bool valid; while( it != qsl.end() ) { key = ( *it ).get_first_input(); @@ -2122,7 +2122,7 @@ void draw_quick_shortcuts() } input_event &event = *it; std::string text = event.text; - long key = event.get_first_input(); + int key = event.get_first_input(); float default_text_scale = std::floor( 0.75f * ( height / font->fontheight ) ); // default for single character strings float text_scale = default_text_scale; @@ -2320,7 +2320,7 @@ bool is_string_input( input_context &ctx ) || category == "WORLDGEN_CONFIRM_DIALOG"; } -long get_key_event_from_string( const std::string &str ) +int get_key_event_from_string( const std::string &str ) { if( str.length() ) { return ( long )str[0]; @@ -2798,7 +2798,7 @@ static void CheckMessages() if( get_option( "HIDE_CURSOR" ) != "show" && SDL_ShowCursor( -1 ) ) { SDL_ShowCursor( SDL_DISABLE ); } - const long lc = sdl_keysym_to_curses( ev.key.keysym ); + const int lc = sdl_keysym_to_curses( ev.key.keysym ); if( lc <= 0 ) { // a key we don't know in curses and won't handle. break; From 539958776ad3a66b025405a76401890b285e0d8a Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:59:00 +0300 Subject: [PATCH 59/76] Fix incorrect variable name --- src/magic.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/magic.cpp b/src/magic.cpp index babb5ebb0b865..2c0797d6a7dc9 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -1045,10 +1045,10 @@ void spellcasting_callback::draw_spell_info( const spell &sp, const uilist *menu std::string aoe_string_temp = "Spell Radius"; std::string degree_string = ""; if( fx == "cone_attack" ) { - aoe_string = "Cone Arc"; + aoe_string_temp = "Cone Arc"; degree_string = "degrees"; } else if( fx == "line_attack" ) { - aoe_string = "Line Width"; + aoe_string_temp = "Line Width"; } aoe_string = _( string_format( "%s: %d %s", aoe_string_temp, sp.aoe(), degree_string ) ); } From b2310b728417a4922d0fc1f06947389931906f44 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:45:46 +0300 Subject: [PATCH 60/76] Joined declaration and assignment --- src/activity_handlers.cpp | 3 +-- src/faction_camp.cpp | 4 ++-- src/fungal_effects.cpp | 3 +-- src/item_factory.cpp | 3 +-- src/map_extras.cpp | 6 ++---- src/output.cpp | 3 +-- src/overmap.cpp | 4 ++-- src/ranged.cpp | 4 ++-- src/requirements.cpp | 3 +-- src/vehicle.cpp | 6 +++--- src/wdirent.h | 33 ++++++++++----------------------- 11 files changed, 26 insertions(+), 46 deletions(-) diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index 5cca2eb540304..3aac2da418040 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -3875,12 +3875,11 @@ void activity_handlers::spellcasting_finish( player_activity *act, player *p ) // choose target for spell (if the spell has a range > 0) target_handler th; - std::vector trajectory; tripoint target = p->pos(); bool target_is_valid = false; if( casting.range() > 0 && !casting.is_valid_target( target_none ) ) { do { - trajectory = th.target_ui( casting, no_fail, no_mana ); + std::vector trajectory = th.target_ui( casting, no_fail, no_mana ); if( !trajectory.empty() ) { target = trajectory.back(); target_is_valid = casting.is_valid_target( target ); diff --git a/src/faction_camp.cpp b/src/faction_camp.cpp index 2d03187ee035b..dac0e6e056495 100644 --- a/src/faction_camp.cpp +++ b/src/faction_camp.cpp @@ -2607,8 +2607,8 @@ int basecamp::recipe_batch_max( const recipe &making ) const const int max_checks = 9; for( size_t batch_size = 1000; batch_size > 0; batch_size /= 10 ) { for( int iter = 0; iter < max_checks; iter++ ) { - time_duration work_days; - work_days = base_camps::to_workdays( making.batch_duration( max_batch + batch_size ) ); + time_duration work_days = base_camps::to_workdays( making.batch_duration( + max_batch + batch_size ) ); int food_req = time_to_food( work_days ); bool can_make = making.requirements().can_make_with_inventory( _inv, making.get_component_filter(), max_batch + batch_size ); diff --git a/src/fungal_effects.cpp b/src/fungal_effects.cpp index e67979f934c72..38c454a02398b 100644 --- a/src/fungal_effects.cpp +++ b/src/fungal_effects.cpp @@ -100,9 +100,8 @@ void fungal_effects::marlossify( const tripoint &p ) m.ter_set( p, t_marloss ); return; } - bool is_fungi; for( int i = 0; i < 25; i++ ) { - is_fungi = m.has_flag_ter( "FUNGUS", p ); + bool is_fungi = m.has_flag_ter( "FUNGUS", p ); spread_fungus( p ); if( is_fungi ) { return; diff --git a/src/item_factory.cpp b/src/item_factory.cpp index 985a30a12430d..24007be0b6dcd 100644 --- a/src/item_factory.cpp +++ b/src/item_factory.cpp @@ -2675,8 +2675,7 @@ const std::string calc_category( const itype &obj ) std::vector Item_factory::get_all_group_names() { std::vector rval; - GroupMap::iterator it; - for( it = m_template_groups.begin(); it != m_template_groups.end(); it++ ) { + for( GroupMap::iterator it = m_template_groups.begin(); it != m_template_groups.end(); it++ ) { rval.push_back( it->first ); } return rval; diff --git a/src/map_extras.cpp b/src/map_extras.cpp index c87e04e633a16..23d17bd6dcd96 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -1731,12 +1731,11 @@ static void burned_ground_parser( map &m, const tripoint &loc ) const ter_t &tr = tid.obj(); VehicleList vehs = m.get_vehicles(); - std::set occupied; std::vector vehicles; std::vector points; for( wrapped_vehicle vehicle : vehs ) { vehicles.push_back( vehicle.v ); - occupied = vehicle.v->get_points(); + std::set occupied = vehicle.v->get_points(); for( tripoint t : occupied ) { points.push_back( t ); } @@ -1866,12 +1865,11 @@ static void mx_burned_ground( map &m, const tripoint &abs_sub ) } } VehicleList vehs = m.get_vehicles(); - std::set occupied; std::vector vehicles; std::vector points; for( wrapped_vehicle vehicle : vehs ) { vehicles.push_back( vehicle.v ); - occupied = vehicle.v->get_points(); + std::set occupied = vehicle.v->get_points(); for( tripoint t : occupied ) { points.push_back( t ); } diff --git a/src/output.cpp b/src/output.cpp index 983e8560e116d..7541eafba5d32 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -132,8 +132,7 @@ std::vector split_by_color( const std::string &s ) std::vector ret; std::vector tag_positions = get_tag_positions( s ); size_t last_pos = 0; - std::vector::iterator it; - for( it = tag_positions.begin(); it != tag_positions.end(); ++it ) { + for( std::vector::iterator it = tag_positions.begin(); it != tag_positions.end(); ++it ) { ret.push_back( s.substr( last_pos, *it - last_pos ) ); last_pos = *it; } diff --git a/src/overmap.cpp b/src/overmap.cpp index b3fa057986795..b6a57b8e4ff9d 100644 --- a/src/overmap.cpp +++ b/src/overmap.cpp @@ -4027,7 +4027,6 @@ void overmap::place_specials( overmap_special_batch &enabled_specials ) // occurrences, this will only contain those which have not yet met their // maximum. std::map processed_specials; - std::map::iterator iter; for( auto &elem : custom_overmap_specials ) { processed_specials[elem.special_details->id] = elem.instances_placed; } @@ -4035,7 +4034,8 @@ void overmap::place_specials( overmap_special_batch &enabled_specials ) // Loop through the specials we started with. for( auto it = enabled_specials.begin(); it != enabled_specials.end(); ) { // Determine if this special is still in our callee's list of specials... - iter = processed_specials.find( it->special_details->id ); + std::map::iterator iter = processed_specials.find( + it->special_details->id ); if( iter != processed_specials.end() ) { // ... and if so, increment the placement count to reflect the callee's. it->instances_placed += ( iter->second - it->instances_placed ); diff --git a/src/ranged.cpp b/src/ranged.cpp index 534c37d0f6edc..a96d209bfc3eb 100644 --- a/src/ranged.cpp +++ b/src/ranged.cpp @@ -1042,9 +1042,9 @@ std::vector Character::get_aim_types( const item &gun ) const static_cast( ( ( MAX_RECOIL - sight_dispersion ) / 20.0 ) + sight_dispersion ), static_cast( sight_dispersion ) }; - std::vector::iterator thresholds_it; // Remove duplicate thresholds. - thresholds_it = std::adjacent_find( thresholds.begin(), thresholds.end() ); + std::vector::iterator thresholds_it = std::adjacent_find( thresholds.begin(), + thresholds.end() ); while( thresholds_it != thresholds.end() ) { thresholds.erase( thresholds_it ); thresholds_it = std::adjacent_find( thresholds.begin(), thresholds.end() ); diff --git a/src/requirements.cpp b/src/requirements.cpp index 8397cb114191d..3942997abb49e 100644 --- a/src/requirements.cpp +++ b/src/requirements.cpp @@ -240,8 +240,7 @@ void requirement_data::load_requirement( JsonObject &jsobj, const requirement_id { requirement_data req; - JsonArray jsarr; - jsarr = jsobj.get_array( "components" ); + JsonArray jsarr = jsobj.get_array( "components" ); req.load_obj_list( jsarr, req.components ); jsarr = jsobj.get_array( "qualities" ); req.load_obj_list( jsarr, req.qualities ); diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 7b4244261502b..403821fc6612d 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -4684,7 +4684,6 @@ void vehicle::refresh() return veh->part_info( p1 ).list_order < veh->part_info( p2 ).list_order; } } svpv = { this }; - std::vector::iterator vii; mount_min.x = 123; mount_min.y = 123; @@ -4712,8 +4711,9 @@ void vehicle::refresh() mount_max.y = std::max( mount_max.y, pt.y ); // This will keep the parts at point pt sorted - vii = std::lower_bound( relative_parts[pt].begin(), relative_parts[pt].end(), - static_cast( p ), svpv ); + std::vector::iterator vii = std::lower_bound( relative_parts[pt].begin(), + relative_parts[pt].end(), + static_cast( p ), svpv ); relative_parts[pt].insert( vii, p ); if( vpi.has_flag( VPFLAG_FLOATS ) ) { diff --git a/src/wdirent.h b/src/wdirent.h index 3974c10a0e9ee..d769298c1bb08 100644 --- a/src/wdirent.h +++ b/src/wdirent.h @@ -314,15 +314,13 @@ _wopendir( /* Allocate new _WDIR structure */ dirp = static_cast<_WDIR *>( malloc( sizeof( struct _WDIR ) ) ); if( dirp != NULL ) { - DWORD n; - /* Reset _WDIR structure */ dirp->handle = INVALID_HANDLE_VALUE; dirp->patt = NULL; dirp->cached = 0; /* Compute the length of full path plus zero terminator */ - n = GetFullPathNameW( dirname, 0, NULL, NULL ); + DWORD n = GetFullPathNameW( dirname, 0, NULL, NULL ); /* Allocate room for absolute directory name and search pattern */ dirp->patt = static_cast( malloc( sizeof( wchar_t ) * n + 16 ) ); @@ -335,10 +333,8 @@ _wopendir( */ n = GetFullPathNameW( dirname, n, dirp->patt, NULL ); if( n > 0 ) { - wchar_t *p; - /* Append search pattern \* to the directory name */ - p = dirp->patt + n; + wchar_t *p = dirp->patt + n; if( dirp->patt < p ) { switch( p[-1] ) { case '\\': @@ -402,15 +398,11 @@ static struct _wdirent * _wreaddir( _WDIR *dirp ) { - WIN32_FIND_DATAW *datap; struct _wdirent *entp; /* Read next directory entry */ - datap = dirent_next( dirp ); + WIN32_FIND_DATAW *datap = dirent_next( dirp ); if( datap ) { - size_t n; - DWORD attr; - /* Pointer to directory entry to return */ entp = &dirp->ent; @@ -419,7 +411,7 @@ _wreaddir( * long to fit in to the destination buffer, then truncate file name * to PATH_MAX characters and zero-terminate the buffer. */ - n = 0; + size_t n = 0; while( n < PATH_MAX && datap->cFileName[n] != 0 ) { entp->d_name[n] = datap->cFileName[n]; n++; @@ -430,7 +422,7 @@ _wreaddir( entp->d_namlen = n; /* File type */ - attr = datap->dwFileAttributes; + DWORD attr = datap->dwFileAttributes; if( ( attr & FILE_ATTRIBUTE_DEVICE ) != 0 ) { entp->d_type = DT_CHR; } else if( ( attr & FILE_ATTRIBUTE_DIRECTORY ) != 0 ) { @@ -577,7 +569,6 @@ static DIR * opendir( const char *dirname ) { - struct DIR *dirp; int error; /* Must have directory name */ @@ -587,7 +578,7 @@ opendir( } /* Allocate memory for DIR structure */ - dirp = static_cast( malloc( sizeof( struct DIR ) ) ); + struct DIR *dirp = static_cast( malloc( sizeof( struct DIR ) ) ); if( dirp ) { wchar_t wname[PATH_MAX + 1]; size_t n; @@ -648,18 +639,16 @@ static struct dirent * readdir( DIR *dirp ) { - WIN32_FIND_DATAW *datap; struct dirent *entp; /* Read next directory entry */ - datap = dirent_next( dirp->wdirp ); + WIN32_FIND_DATAW *datap = dirent_next( dirp->wdirp ); if( datap ) { size_t n; - int error; /* Attempt to convert file name to multi-byte string */ - error = dirent_wcstombs_s( - &n, dirp->ent.d_name, MAX_PATH + 1, datap->cFileName, MAX_PATH ); + int error = dirent_wcstombs_s( + &n, dirp->ent.d_name, MAX_PATH + 1, datap->cFileName, MAX_PATH ); /* * If the file name cannot be represented by a multi-byte string, @@ -679,8 +668,6 @@ readdir( } if( !error ) { - DWORD attr; - /* Initialize directory entry for return */ entp = &dirp->ent; @@ -688,7 +675,7 @@ readdir( entp->d_namlen = n - 1; /* File attributes */ - attr = datap->dwFileAttributes; + DWORD attr = datap->dwFileAttributes; if( ( attr & FILE_ATTRIBUTE_DEVICE ) != 0 ) { entp->d_type = DT_CHR; } else if( ( attr & FILE_ATTRIBUTE_DIRECTORY ) != 0 ) { From 8098fe49557e8ab39b3569ce7ee0ebe5bc1a3526 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:32:26 +0300 Subject: [PATCH 61/76] Initialize non-static data members --- src/gamemode.h | 2 +- src/morale_types.h | 4 ++-- src/safemode_ui.h | 2 +- src/trap.h | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gamemode.h b/src/gamemode.h index b01e3d20afb86..e7aff9bd536b1 100644 --- a/src/gamemode.h +++ b/src/gamemode.h @@ -82,7 +82,7 @@ struct tutorial_game : public special_game { private: void add_message( tut_lesson lesson ); - bool tutorials_seen[NUM_LESSONS]; + bool tutorials_seen[NUM_LESSONS] = {}; }; // DEFENSE diff --git a/src/morale_types.h b/src/morale_types.h index 64be6d02d8fca..dd4b6bc36e651 100644 --- a/src/morale_types.h +++ b/src/morale_types.h @@ -14,11 +14,11 @@ struct itype; class morale_type_data { private: - bool permanent; + bool permanent = false; // Translated, may contain '%s' format string std::string text; // If true, this morale type needs an item paired with every instance - bool needs_item; + bool needs_item = false; public: morale_type id; bool was_loaded = false; diff --git a/src/safemode_ui.h b/src/safemode_ui.h index 511d89573d554..173f346a53402 100644 --- a/src/safemode_ui.h +++ b/src/safemode_ui.h @@ -70,7 +70,7 @@ class safemode void load( const bool is_character_in ); bool save( const bool is_character_in ); - bool is_character; + bool is_character = false; void create_rules(); void add_rules( const std::vector &rules_in ); diff --git a/src/trap.h b/src/trap.h index af4437630c6d8..d70907fa0cd94 100644 --- a/src/trap.h +++ b/src/trap.h @@ -72,9 +72,9 @@ struct trap { long sym; nc_color color; private: - int visibility; // 1 to ??, affects detection - int avoidance; // 0 to ??, affects avoidance - int difficulty; // 0 to ??, difficulty of assembly & disassembly + int visibility = 1; // 1 to ??, affects detection + int avoidance = 0; // 0 to ??, affects avoidance + int difficulty = 0; // 0 to ??, difficulty of assembly & disassembly bool benign = false; bool always_invisible = false; trap_function act; From 5bb06dc191266b4de3ea3e11051dc2a992ea7a0f Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:37:36 +0300 Subject: [PATCH 62/76] Initialize all object members --- src/sdltiles.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sdltiles.cpp b/src/sdltiles.cpp index 16fecdd00bfc2..a2dcd45c293c4 100644 --- a/src/sdltiles.cpp +++ b/src/sdltiles.cpp @@ -3517,7 +3517,7 @@ SDL_Color color_loader::from_rgb( const int r, const int g, const int //Red result.r = r; //The Alpha, is not used, so just set it to 0 - //result.a = 0; + result.a = 0; return result; } From 1aa294fb0b77da2464a27b0299295cfcb1d68b88 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:30:42 +0300 Subject: [PATCH 63/76] Removed non-implemented functions --- src/basecamp.h | 2 -- src/mapgen.h | 1 - 2 files changed, 3 deletions(-) diff --git a/src/basecamp.h b/src/basecamp.h index f82a4a561da23..d9827f763c623 100644 --- a/src/basecamp.h +++ b/src/basecamp.h @@ -200,8 +200,6 @@ class basecamp /// and ground that needs tilling std::string farm_description( const tripoint &omt_pos, size_t &plots_count, farm_ops operation ); - /// Returns the description for the recipe of the next building @ref bldg - std::string upgrade_description( const std::string &bldg ); /// Returns the description of a camp crafting options. converts fire charges to charcoal, /// allows dark crafting std::string craft_description( const std::string &itm ); diff --git a/src/mapgen.h b/src/mapgen.h index 85e1a4564dc95..f088d018a0bf3 100644 --- a/src/mapgen.h +++ b/src/mapgen.h @@ -296,7 +296,6 @@ class mapgen_function_json_base void setup_common(); bool setup_common( JsonObject jo ); void setup_setmap( JsonArray &parray ); - void set_faction_owner( JsonObject jo ); // Returns true if the mapgen qualifies at this point already virtual bool setup_internal( JsonObject &jo ) = 0; virtual void setup_setmap_internal() { } From dcf3bc2c1fe919863708eb1fe3df4e314a1c66b7 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:38:58 +0300 Subject: [PATCH 64/76] Removed redundant empty declarations --- src/flat_set.h | 12 ++++++------ src/magic.cpp | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/flat_set.h b/src/flat_set.h index 4713eadce7719..00b2f96782bbb 100644 --- a/src/flat_set.h +++ b/src/flat_set.h @@ -196,12 +196,12 @@ class flat_set : private Compare, Data friend bool operator op( const flat_set &l, const flat_set &r ) { \ return l.data() op r.data(); \ } - FLAT_SET_OPERATOR( == ); - FLAT_SET_OPERATOR( != ); - FLAT_SET_OPERATOR( < ); - FLAT_SET_OPERATOR( <= ); - FLAT_SET_OPERATOR( > ); - FLAT_SET_OPERATOR( >= ); + FLAT_SET_OPERATOR( == ) + FLAT_SET_OPERATOR( != ) + FLAT_SET_OPERATOR( < ) + FLAT_SET_OPERATOR( <= ) + FLAT_SET_OPERATOR( > ) + FLAT_SET_OPERATOR( >= ) #undef FLAT_SET_OPERATOR private: const Data &data() const { diff --git a/src/magic.cpp b/src/magic.cpp index 2c0797d6a7dc9..285a5ca3868e9 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -932,7 +932,7 @@ class spellcasting_callback : public uilist_callback spellcasting_callback( std::vector &spells, bool casting_ignore ) : known_spells( spells ), - casting_ignore( casting_ignore ) {}; + casting_ignore( casting_ignore ) {} bool key( const input_context &, const input_event &event, int /*entnum*/, uilist * /*menu*/ ) override { if( event.get_first_input() == 'I' ) { From d2679f1d7d11b5eb549a3e7d9324d53b1a88e688 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:39:48 +0300 Subject: [PATCH 65/76] Removed redundant void argument list --- src/panels.cpp | 2 +- src/panels.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/panels.cpp b/src/panels.cpp index c8f5397a146d3..29e1b244ee2ce 100644 --- a/src/panels.cpp +++ b/src/panels.cpp @@ -61,7 +61,7 @@ const efftype_id effect_got_checked( "got_checked" ); // constructor window_panel::window_panel( std::function draw_func, const std::string &nm, int ht, int wd, bool def_toggle, - std::function render_func, bool force_draw ) + std::function render_func, bool force_draw ) { draw = draw_func; name = nm; diff --git a/src/panels.h b/src/panels.h index 83d38711c3e0d..c9745b7364d47 100644 --- a/src/panels.h +++ b/src/panels.h @@ -31,7 +31,7 @@ class window_panel public: window_panel( std::function draw_func, const std::string &nm, int ht, int wd, bool default_toggle, - std::function render_func = default_render, bool force_draw = false ); + std::function render_func = default_render, bool force_draw = false ); std::function draw; std::function render; From 1de08f8835e5af46c90191e7cfd56fabd37eca67 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:42:27 +0300 Subject: [PATCH 66/76] Removed unreachable code --- src/monexamine.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/monexamine.cpp b/src/monexamine.cpp index 65112a213471a..baf3c07ac92c2 100644 --- a/src/monexamine.cpp +++ b/src/monexamine.cpp @@ -165,7 +165,6 @@ bool monexamine::pet_menu( monster &z ) return give_items_to( z ); case mon_armor_add: return add_armor( z ); - break; case mon_harness_remove: remove_harness( z ); break; From 822a5976bc8c8d6e0723aed0ae2d4a54ee0084ec Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:51:55 +0300 Subject: [PATCH 67/76] Removed unused declarators --- src/activity_handlers.cpp | 2 -- src/game.cpp | 1 - src/monattack.cpp | 3 +-- src/panels.cpp | 2 -- src/veh_interact.cpp | 2 -- src/vehicle_use.cpp | 1 - 6 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index 3aac2da418040..17a13d152a572 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -99,8 +99,6 @@ const species_id ZOMBIE( "ZOMBIE" ); const efftype_id effect_milked( "milked" ); const efftype_id effect_sleep( "sleep" ); -static const trait_id trait_DEBUG_HS( "DEBUG_HS" ); - using namespace activity_handlers; const std::map< activity_id, std::function > diff --git a/src/game.cpp b/src/game.cpp index 9930be213d586..5d052efcce209 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -232,7 +232,6 @@ static const trait_id trait_LEG_TENT_BRACE( "LEG_TENT_BRACE" ); static const trait_id trait_M_IMMUNE( "M_IMMUNE" ); static const trait_id trait_PARKOUR( "PARKOUR" ); static const trait_id trait_RUMINANT( "RUMINANT" ); -static const trait_id trait_SHELL2( "SHELL2" ); static const trait_id trait_VINES2( "VINES2" ); static const trait_id trait_VINES3( "VINES3" ); diff --git a/src/monattack.cpp b/src/monattack.cpp index 295af4c2e05aa..96e411282556e 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -376,8 +376,7 @@ bool mattack::shriek_alert( monster *z ) Creature *target = z->attack_target(); - int dist; - if( target == nullptr || ( dist = rl_dist( z->pos(), target->pos() ) ) > 15 || + if( target == nullptr || rl_dist( z->pos(), target->pos() ) > 15 || !z->sees( *target ) ) { return false; } diff --git a/src/panels.cpp b/src/panels.cpp index 29e1b244ee2ce..a6777e0818b19 100644 --- a/src/panels.cpp +++ b/src/panels.cpp @@ -1979,7 +1979,6 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t bool selected = false; size_t source_index = 0; size_t target_index = 0; - std::string saved_name; bool redraw = true; bool exit = false; @@ -2083,7 +2082,6 @@ void panel_manager::draw_adm( const catacurses::window &w, size_t column, size_t // saving win1 index source_index = row_indices[index - 1]; selected = true; - saved_name = panels[source_index].get_name(); } // dest window for the swap if( counter == 2 ) { diff --git a/src/veh_interact.cpp b/src/veh_interact.cpp index 63c161697565c..44ac3168c0422 100644 --- a/src/veh_interact.cpp +++ b/src/veh_interact.cpp @@ -54,8 +54,6 @@ #include "item.h" #include "string_id.h" -static const itype_id fuel_type_animal( "animal" ); - static inline const std::string status_color( bool status ) { return status ? "" : ""; diff --git a/src/vehicle_use.cpp b/src/vehicle_use.cpp index 1541a641a50aa..719f3cf81c9b3 100644 --- a/src/vehicle_use.cpp +++ b/src/vehicle_use.cpp @@ -51,7 +51,6 @@ static const itype_id fuel_type_none( "null" ); static const itype_id fuel_type_battery( "battery" ); static const itype_id fuel_type_muscle( "muscle" ); static const itype_id fuel_type_wind( "wind" ); -static const itype_id fuel_type_animal( "animal" ); static const fault_id fault_diesel( "fault_engine_pump_diesel" ); static const fault_id fault_glowplug( "fault_engine_glow_plug" ); From 9548bcbc8dc93ba8ac8f4f4311390e8be5976764 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Fri, 14 Jun 2019 23:56:07 +0300 Subject: [PATCH 68/76] Removed redundant empty lines --- src/activity_handlers.cpp | 1 - src/avatar.cpp | 1 - src/avatar_action.h | 2 -- src/basecamp.cpp | 1 - src/colony.h | 2 -- src/game.h | 1 - src/iexamine.cpp | 1 - src/item.cpp | 1 - src/item.h | 1 - src/iuse.cpp | 1 - src/iuse_actor.h | 1 - src/magic.cpp | 1 - src/map.cpp | 1 - src/map.h | 1 - src/map_extras.cpp | 1 - src/mapgen.cpp | 1 - src/mapgen_functions.cpp | 1 - src/martialarts.cpp | 1 - src/monattack.cpp | 1 - src/morale.cpp | 3 --- src/morale.h | 1 - src/pixel_minimap.cpp | 3 --- src/pixel_minimap.h | 2 -- src/player.h | 1 - src/sdltiles.cpp | 1 - src/sdltiles.h | 1 - 26 files changed, 33 deletions(-) diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index 17a13d152a572..52aaaa3bd3003 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -2639,7 +2639,6 @@ static void rod_fish( player *p, const tripoint &fish_point ) } } - void activity_handlers::fish_do_turn( player_activity *act, player *p ) { item &it = p->i_at( act->position ); diff --git a/src/avatar.cpp b/src/avatar.cpp index 938d2057bf086..0d5ee1cdd6530 100644 --- a/src/avatar.cpp +++ b/src/avatar.cpp @@ -44,7 +44,6 @@ static const trait_id trait_HYPEROPIC( "HYPEROPIC" ); static const trait_id trait_ILLITERATE( "ILLITERATE" ); static const trait_id trait_PROF_DICEMASTER( "PROF_DICEMASTER" ); - avatar::avatar() : player() { show_map_memory = true; diff --git a/src/avatar_action.h b/src/avatar_action.h index c5b1a0a720df2..2daebbb475d26 100644 --- a/src/avatar_action.h +++ b/src/avatar_action.h @@ -34,7 +34,6 @@ void swim( map &m, avatar &you, const tripoint &p ); void autoattack( avatar &you, map &m ); - /** * Returns true if the player is allowed to fire a given item, or false if otherwise. * reload_time is stored as a side effect of condition testing. @@ -61,5 +60,4 @@ void plthrow( avatar &you, int pos = INT_MIN, const cata::optional &blind_throw_from_pos = cata::nullopt ); } - #endif // !AVATAR_MOVE_H diff --git a/src/basecamp.cpp b/src/basecamp.cpp index bbea03cd6a4b4..88bbdd08f652b 100644 --- a/src/basecamp.cpp +++ b/src/basecamp.cpp @@ -382,7 +382,6 @@ void basecamp::update_provides( const std::string &bldg, expansion_data &e_data } } - void basecamp::update_in_progress( const std::string &bldg, const std::string &dir ) { if( !recipe_id( bldg ).is_valid() ) { diff --git a/src/colony.h b/src/colony.h index 99211e31562b1..fa2a31980b30a 100644 --- a/src/colony.h +++ b/src/colony.h @@ -1538,7 +1538,6 @@ class colony : private element_allocator_type } while( number_of_elements != 0 ); } - // Use up remaining available element locations in end group: const skipfield_type group_remainder = ( static_cast ( reinterpret_cast( end_iterator.group_pointer->skipfield ) - @@ -1562,7 +1561,6 @@ class colony : private element_allocator_type number_of_elements -= end_iterator.group_pointer->capacity; } - // If there's some elements left that need to be created, create new groups and fill: if( number_of_elements > group_allocator_pair.max_elements_per_group ) { size_type multiples = ( number_of_elements / static_cast diff --git a/src/game.h b/src/game.h index f091d913a9e63..51f31b34e0127 100644 --- a/src/game.h +++ b/src/game.h @@ -721,7 +721,6 @@ class game bool grabbed_veh_move( const tripoint &dp ); bool grabbed_furn_move( const tripoint &dp ); - void control_vehicle(); // Use vehicle controls '^' void examine( const tripoint &p ); // Examine nearby terrain 'e' void examine(); diff --git a/src/iexamine.cpp b/src/iexamine.cpp index 11001dc8a35ac..c907479c5f615 100644 --- a/src/iexamine.cpp +++ b/src/iexamine.cpp @@ -827,7 +827,6 @@ void iexamine::intercom( player &p, const tripoint &examp ) } } - /** * Prompt removal of rubble. Select best shovel and invoke "CLEAR_RUBBLE" on tile. */ diff --git a/src/item.cpp b/src/item.cpp index 7944a7ee11d43..e9784dd73e6e6 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -3262,7 +3262,6 @@ std::string item::tname( unsigned int quantity, bool with_prefix, unsigned int t const sizing sizing_level = get_sizing( g->u, get_encumber( g->u ) != 0 ); - if( sizing_level == sizing::human_sized_small_char ) { ret << _( " (too big)" ); } else if( sizing_level == sizing::big_sized_small_char ) { diff --git a/src/item.h b/src/item.h index 3b7c2d508d93f..0098851db3502 100644 --- a/src/item.h +++ b/src/item.h @@ -1917,7 +1917,6 @@ class item : public visitable */ requirement_data get_continue_reqs() const; - private: /** * Calculate the thermal energy and temperature change of the item diff --git a/src/iuse.cpp b/src/iuse.cpp index c755433b6f26a..d3d999b729f38 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -3142,7 +3142,6 @@ int iuse::jackhammer( player *p, item *it, bool, const tripoint &pos ) return 0; } - int turns = 100; if( g->m.move_cost( pnt ) == 2 ) { // We're breaking up some flat surface like pavement, which is much easier diff --git a/src/iuse_actor.h b/src/iuse_actor.h index d6b3008c5c433..0be1741062381 100644 --- a/src/iuse_actor.h +++ b/src/iuse_actor.h @@ -689,7 +689,6 @@ class cast_spell_actor : public iuse_actor spell_id item_spell; int spell_level; - cast_spell_actor( const std::string &type = "cast_spell" ) : iuse_actor( type ) {} ~cast_spell_actor() override = default; diff --git a/src/magic.cpp b/src/magic.cpp index 285a5ca3868e9..a9c5ef746af0c 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -1298,7 +1298,6 @@ std::set spell_effect_line( spell &, const tripoint &source, tripoint cclockwise_end_point; calc_ray_end( initial_angle + 90, ceil( aoe_radius / 2.0 ), target, cclockwise_end_point ); - std::vector start_width = line_to( clockwise_starting_point, cclockwise_starting_point ); start_width.insert( start_width.begin(), clockwise_end_point ); std::vector end_width = line_to( clockwise_end_point, cclockwise_end_point ); diff --git a/src/map.cpp b/src/map.cpp index 3f76f963e437f..75139405049d1 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -6376,7 +6376,6 @@ void map::reachable_flood_steps( std::vector &reachable_pts, const tri } } - bool map::clear_path( const tripoint &f, const tripoint &t, const int range, const int cost_min, const int cost_max ) const { diff --git a/src/map.h b/src/map.h index 0a8d8ac59f952..40841736439da 100644 --- a/src/map.h +++ b/src/map.h @@ -468,7 +468,6 @@ class map bool clear_path( const tripoint &f, const tripoint &t, const int range, const int cost_min, const int cost_max ) const; - /** * Populates a vector of points that are reachable within a number of steps from a * point. It could be generalized to take advantage of z levels, but would need some diff --git a/src/map_extras.cpp b/src/map_extras.cpp index 23d17bd6dcd96..b8ebb3693736f 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -1747,7 +1747,6 @@ static void burned_ground_parser( map &m, const tripoint &loc ) m.furn_set( tri, f_wreckage ); } - // grass is converted separately // this method is deliberate to allow adding new post-terrains // (TODO: expand this list when new destroyed terrain is added) diff --git a/src/mapgen.cpp b/src/mapgen.cpp index ab48cd9b643e9..4ab729db3d32d 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -8494,7 +8494,6 @@ std::pair, std::map> get_changed_ids_from_up return std::make_pair( terrains, furnitures ); } - bool run_mapgen_func( const std::string &mapgen_id, map *m, oter_id terrain_type, mapgendata dat, const time_point &turn, float density ) { diff --git a/src/mapgen_functions.cpp b/src/mapgen_functions.cpp index 1a9031147d8c8..35a7b8b120972 100644 --- a/src/mapgen_functions.cpp +++ b/src/mapgen_functions.cpp @@ -4420,7 +4420,6 @@ void mapgen_lake_shore( map *m, oter_id, mapgendata dat, const time_point &turn, } } - // Ok, all of the fiddling with the polygon corners is done. // At this point we've got four points that make up four line segments that started out // at the map boundaries, but have subsequently been perturbed by the adjacent terrains. diff --git a/src/martialarts.cpp b/src/martialarts.cpp index 1365a674a0048..b0895f2df0612 100644 --- a/src/martialarts.cpp +++ b/src/martialarts.cpp @@ -1033,7 +1033,6 @@ void player::martialart_use_message() const } } - float ma_technique::damage_bonus( const player &u, damage_type type ) const { return bonuses.get_flat( u, AFFECTED_DAMAGE, type ); diff --git a/src/monattack.cpp b/src/monattack.cpp index 96e411282556e..8329e9061d598 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -2830,7 +2830,6 @@ bool mattack::nurse_operate( monster *z ) add_msg( m_info, _( "The %s is scanning its surroundings." ), z->name() ); } - if( ( ( g->u.is_wearing( "badge_doctor" ) || z->attitude_to( g->u ) == Creature::Attitude::A_FRIENDLY ) && u_see ) && one_in( 100 ) ) { diff --git a/src/morale.cpp b/src/morale.cpp index 8b75c5f05ae24..e36526c3e093f 100644 --- a/src/morale.cpp +++ b/src/morale.cpp @@ -190,7 +190,6 @@ void player_morale::morale_point::set_percent_contribution( double contribution percent_contribution = contribution; } - double player_morale::morale_point::get_percent_contribution() { return percent_contribution; @@ -411,8 +410,6 @@ int player_morale::get_total_positive_value() const return sqrt( sum ); } - - int player_morale::get_level() const { if( !level_is_valid ) { diff --git a/src/morale.h b/src/morale.h index a7f9b8a780410..93cbffed3cc00 100644 --- a/src/morale.h +++ b/src/morale.h @@ -59,7 +59,6 @@ class player_morale int get_total_positive_value() const; int get_total_negative_value() const; - void on_mutation_gain( const trait_id &mid ); void on_mutation_loss( const trait_id &mid ); void on_stat_change( const std::string &stat, int value ); diff --git a/src/pixel_minimap.cpp b/src/pixel_minimap.cpp index 160f708ae493c..510ae43e77dff 100644 --- a/src/pixel_minimap.cpp +++ b/src/pixel_minimap.cpp @@ -16,10 +16,8 @@ #include #include - extern void set_displaybuffer_rendertarget(); - namespace { @@ -149,7 +147,6 @@ struct pixel_minimap::submap_cache { ~submap_cache(); }; - pixel_minimap::pixel_minimap( const SDL_Renderer_Ptr &renderer ) : renderer( renderer ), cached_center_sm( tripoint_min ), diff --git a/src/pixel_minimap.h b/src/pixel_minimap.h index abd40726b820f..85e7d693b2b51 100644 --- a/src/pixel_minimap.h +++ b/src/pixel_minimap.h @@ -9,7 +9,6 @@ #include #include - enum class pixel_minimap_mode { solid, squares, @@ -23,7 +22,6 @@ struct pixel_minimap_settings { bool square_pixels = true; }; - class pixel_minimap { public: diff --git a/src/player.h b/src/player.h index 2aaea45e9db3b..4f7c9c4e714d6 100644 --- a/src/player.h +++ b/src/player.h @@ -191,7 +191,6 @@ class player : public Character void normalize() override; - bool is_player() const override { return true; } diff --git a/src/sdltiles.cpp b/src/sdltiles.cpp index a2dcd45c293c4..013b0ce2b7516 100644 --- a/src/sdltiles.cpp +++ b/src/sdltiles.cpp @@ -3851,7 +3851,6 @@ void to_map_font_dim_height( int &h ) h = ( h * fontheight ) / map_font_height(); } - void to_map_font_dimension( int &w, int &h ) { to_map_font_dim_width( w ); diff --git a/src/sdltiles.h b/src/sdltiles.h index f4c66d48a4ad1..dfb906e8ad27b 100644 --- a/src/sdltiles.h +++ b/src/sdltiles.h @@ -17,7 +17,6 @@ extern bool alt_rect_tex_enabled; extern std::unique_ptr tilecontext; extern std::array::COLOR_NAMES_COUNT> windowsPalette; - void draw_alt_rect( const SDL_Renderer_Ptr &renderer, const SDL_Rect &rect, Uint32 r, Uint32 g, Uint32 b ); void load_tileset(); From dc32033bf022e47e02d286e0eca771753b4aa577 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Sat, 15 Jun 2019 00:41:24 +0300 Subject: [PATCH 69/76] Removed excessive cast --- src/basecamp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/basecamp.cpp b/src/basecamp.cpp index 88bbdd08f652b..e166a02f4c19d 100644 --- a/src/basecamp.cpp +++ b/src/basecamp.cpp @@ -261,7 +261,7 @@ const std::vector basecamp::available_upgrades( const std::str expansion_data &e_data = e->second; for( const recipe *recp_p : recipe_dict.all_blueprints() ) { const recipe &recp = *recp_p; - const std::string &bldg = recp.result().c_str(); + const std::string &bldg = recp.result(); // skip buildings that are completed if( e_data.provides.find( bldg ) != e_data.provides.end() ) { continue; From 7d5336b15562bf159786faeae6f8d020a039d2a2 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Sat, 15 Jun 2019 00:40:36 +0300 Subject: [PATCH 70/76] Used constant references in function parameters --- src/magic.cpp | 34 +++++++++++++++++----------------- src/magic.h | 26 +++++++++++++------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/magic.cpp b/src/magic.cpp index a9c5ef746af0c..dcb2ce819e436 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -750,7 +750,7 @@ bool known_magic::knows_spell( const std::string &sp ) const return knows_spell( spell_id( sp ) ); } -bool known_magic::knows_spell( spell_id sp ) const +bool known_magic::knows_spell( const spell_id &sp ) const { return spellbook.count( sp ) == 1; } @@ -760,7 +760,7 @@ void known_magic::learn_spell( const std::string &sp, player &p, bool force ) learn_spell( spell_id( sp ), p, force ); } -void known_magic::learn_spell( spell_id sp, player &p, bool force ) +void known_magic::learn_spell( const spell_id &sp, player &p, bool force ) { learn_spell( &sp.obj(), p, force ); } @@ -801,7 +801,7 @@ void known_magic::forget_spell( const std::string &sp ) forget_spell( spell_id( sp ) ); } -void known_magic::forget_spell( spell_id sp ) +void known_magic::forget_spell( const spell_id &sp ) { if( !knows_spell( sp ) ) { debugmsg( "Can't forget a spell you don't know!" ); @@ -810,7 +810,7 @@ void known_magic::forget_spell( spell_id sp ) spellbook.erase( sp ); } -bool known_magic::can_learn_spell( const player &p, spell_id sp ) const +bool known_magic::can_learn_spell( const player &p, const spell_id &sp ) const { const spell_type sp_t = sp.obj(); if( sp_t.spell_class == trait_id( "NONE" ) ) { @@ -819,7 +819,7 @@ bool known_magic::can_learn_spell( const player &p, spell_id sp ) const return !p.has_opposite_trait( sp_t.spell_class ); } -spell &known_magic::get_spell( spell_id sp ) +spell &known_magic::get_spell( const spell_id &sp ) { if( !knows_spell( sp ) ) { debugmsg( "ERROR: Tried to get unknown spell" ); @@ -906,7 +906,7 @@ int known_magic::time_to_learn_spell( const player &p, const std::string &str ) return time_to_learn_spell( p, spell_id( str ) ); } -int known_magic::time_to_learn_spell( const player &p, spell_id sp ) const +int known_magic::time_to_learn_spell( const player &p, const spell_id &sp ) const { const int base_time = to_moves( 30_minutes ); return base_time * ( 1.0 + sp.obj().difficulty / ( 1.0 + ( p.get_int() - 8.0 ) / 8.0 ) + @@ -1196,7 +1196,7 @@ void move_earth( const tripoint &target ) std::set empty_air = { t_hole }; std::set deep_pit = { t_pit, t_slope_down }; - std::set shallow_pit = { t_pit_corpsed, t_pit_covered, t_pit_glass, t_pit_glass_covered, t_pit_shallow, t_pit_spiked, t_pit_spiked, t_pit_spiked_covered, t_rootcellar }; + std::set shallow_pit = { t_pit_corpsed, t_pit_covered, t_pit_glass, t_pit_glass_covered, t_pit_shallow, t_pit_spiked, t_pit_spiked_covered, t_rootcellar }; std::set soft_dirt = { t_grave, t_dirt, t_sand, t_clay, t_dirtmound, t_grass, t_grass_long, t_grass_tall, t_grass_golf, t_grass_dead, t_grass_white, t_dirtfloor, t_fungus_floor_in, t_fungus_floor_sup, t_fungus_floor_out, t_sandbox }; // rock: can still be dug through with patience, converts to sand upon completion std::set hard_dirt = { t_pavement, t_pavement_y, t_sidewalk, t_concrete, t_thconc_floor, t_thconc_floor_olight, t_strconc_floor, t_floor, t_floor_waxed, t_carpet_red, t_carpet_yellow, t_carpet_purple, t_carpet_green, t_linoleum_white, t_linoleum_gray, t_slope_up, t_rock_red, t_rock_green, t_rock_blue, t_floor_red, t_floor_green, t_floor_blue, t_pavement_bg_dp, t_pavement_y_bg_dp, t_sidewalk_bg_dp }; @@ -1235,7 +1235,7 @@ static bool in_spell_aoe( const tripoint &target, const tripoint &epicenter, con return rl_dist( epicenter, target ) <= radius; } -std::set spell_effect_blast( spell &, const tripoint &, const tripoint &target, +std::set spell_effect_blast( const spell &, const tripoint &, const tripoint &target, const int aoe_radius, const bool ignore_walls ) { std::set targets; @@ -1253,7 +1253,7 @@ std::set spell_effect_blast( spell &, const tripoint &, const tripoint return targets; } -std::set spell_effect_cone( spell &sp, const tripoint &source, +std::set spell_effect_cone( const spell &sp, const tripoint &source, const tripoint &target, const int aoe_radius, const bool ignore_walls ) { @@ -1283,7 +1283,7 @@ std::set spell_effect_cone( spell &sp, const tripoint &source, return targets; } -std::set spell_effect_line( spell &, const tripoint &source, +std::set spell_effect_line( const spell &, const tripoint &source, const tripoint &target, const int aoe_radius, const bool ignore_walls ) { @@ -1363,9 +1363,9 @@ std::set spell_effect_line( spell &, const tripoint &source, // spells do not reduce in damage the further away from the epicenter the targets are // rather they do their full damage in the entire area of effect -static std::set spell_effect_area( spell &sp, const tripoint &source, +static std::set spell_effect_area( const spell &sp, const tripoint &source, const tripoint &target, - std::function( spell &, const tripoint &, const tripoint &, const int, const bool )> + std::function( const spell &, const tripoint &, const tripoint &, const int, const bool )> aoe_func, bool ignore_walls = false ) { std::set targets = { target }; // initialize with epicenter @@ -1415,7 +1415,7 @@ static void add_effect_to_target( const tripoint &target, const spell &sp ) } } -static void damage_targets( spell &sp, std::set targets ) +static void damage_targets( const spell &sp, std::set targets ) { for( const tripoint target : targets ) { Creature *const cr = g->critter_at( target ); @@ -1443,7 +1443,7 @@ static void damage_targets( spell &sp, std::set targets ) } } -void projectile_attack( spell &sp, const tripoint &source, const tripoint &target ) +void projectile_attack( const spell &sp, const tripoint &source, const tripoint &target ) { std::vector trajectory = line_to( source, target ); for( const tripoint &pt : trajectory ) { @@ -1453,17 +1453,17 @@ void projectile_attack( spell &sp, const tripoint &source, const tripoint &targe } } -void target_attack( spell &sp, const tripoint &source, const tripoint &epicenter ) +void target_attack( const spell &sp, const tripoint &source, const tripoint &epicenter ) { damage_targets( sp, spell_effect_area( sp, source, epicenter, spell_effect_blast ) ); } -void cone_attack( spell &sp, const tripoint &source, const tripoint &target ) +void cone_attack( const spell &sp, const tripoint &source, const tripoint &target ) { damage_targets( sp, spell_effect_area( sp, source, target, spell_effect_cone ) ); } -void line_attack( spell &sp, const tripoint &source, const tripoint &target ) +void line_attack( const spell &sp, const tripoint &source, const tripoint &target ) { damage_targets( sp, spell_effect_area( sp, source, target, spell_effect_line ) ); } diff --git a/src/magic.h b/src/magic.h index 8c06cf9506631..b6b0ec0a757c6 100644 --- a/src/magic.h +++ b/src/magic.h @@ -276,20 +276,20 @@ class known_magic known_magic(); void learn_spell( const std::string &sp, player &p, bool force = false ); - void learn_spell( spell_id sp, player &p, bool force = false ); + void learn_spell( const spell_id &sp, player &p, bool force = false ); void learn_spell( const spell_type *sp, player &p, bool force = false ); void forget_spell( const std::string &sp ); - void forget_spell( spell_id sp ); + void forget_spell( const spell_id &sp ); // time in moves for the player to memorize the spell - int time_to_learn_spell( const player &p, spell_id sp ) const; + int time_to_learn_spell( const player &p, const spell_id &sp ) const; int time_to_learn_spell( const player &p, const std::string &str ) const; - bool can_learn_spell( const player &p, spell_id sp ) const; + bool can_learn_spell( const player &p, const spell_id &sp ) const; bool knows_spell( const std::string &sp ) const; - bool knows_spell( spell_id sp ) const; + bool knows_spell( const spell_id &sp ) const; // spells known by player std::vector spells() const; // gets the spell associated with the spell_id to be edited - spell &get_spell( spell_id sp ); + spell &get_spell( const spell_id &sp ); // opens up a ui that the player can choose a spell from // returns the index of the spell in the vector of spells int select_spell( const player &p ); @@ -320,17 +320,17 @@ namespace spell_effect void teleport( int min_distance, int max_distance ); void pain_split(); // only does g->u void move_earth( const tripoint &target ); -void target_attack( spell &sp, const tripoint &source, const tripoint &target ); -void projectile_attack( spell &sp, const tripoint &source, const tripoint &target ); -void cone_attack( spell &sp, const tripoint &source, const tripoint &target ); -void line_attack( spell &sp, const tripoint &source, const tripoint &target ); +void target_attack( const spell &sp, const tripoint &source, const tripoint &target ); +void projectile_attack( const spell &sp, const tripoint &source, const tripoint &target ); +void cone_attack( const spell &sp, const tripoint &source, const tripoint &target ); +void line_attack( const spell &sp, const tripoint &source, const tripoint &target ); -std::set spell_effect_blast( spell &, const tripoint &, const tripoint &target, +std::set spell_effect_blast( const spell &, const tripoint &, const tripoint &target, const int aoe_radius, const bool ignore_walls ); -std::set spell_effect_cone( spell &sp, const tripoint &source, +std::set spell_effect_cone( const spell &sp, const tripoint &source, const tripoint &target, const int aoe_radius, const bool ignore_walls ); -std::set spell_effect_line( spell &, const tripoint &source, +std::set spell_effect_line( const spell &, const tripoint &source, const tripoint &target, const int aoe_radius, const bool ignore_walls ); From e7915bb9e47d0369034bbb135b85df9d7067ab78 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Sat, 15 Jun 2019 00:44:00 +0300 Subject: [PATCH 71/76] Used clear function instead of empty string assignment --- src/activity_handlers.cpp | 2 +- src/activity_item_handling.cpp | 2 +- src/clzones.h | 1 - src/construction.cpp | 2 +- src/debug.cpp | 2 +- src/panels.cpp | 2 +- src/player.cpp | 2 +- src/sdlsound.cpp | 2 +- 8 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/activity_handlers.cpp b/src/activity_handlers.cpp index 52aaaa3bd3003..83270f7bd90b2 100644 --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp @@ -2918,7 +2918,7 @@ void activity_handlers::multiple_construction_do_turn( player_activity *act, pla // If we got here without restarting the activity, it means we're done. if( p->is_npc() ) { npc *guy = dynamic_cast( p ); - guy->current_activity = ""; + guy->current_activity.clear(); guy->revert_after_activity(); } } diff --git a/src/activity_item_handling.cpp b/src/activity_item_handling.cpp index 783fa8e4cd1b0..821fb069c28fe 100644 --- a/src/activity_item_handling.cpp +++ b/src/activity_item_handling.cpp @@ -1205,7 +1205,7 @@ void activity_on_turn_move_loot( player_activity &, player &p ) add_msg( m_info, string_format( _( "%s sorted out every item possible." ), p.disp_name() ) ); if( p.is_npc() ) { npc *guy = dynamic_cast( &p ); - guy->current_activity = ""; + guy->current_activity.clear(); } mgr.end_sort(); } diff --git a/src/clzones.h b/src/clzones.h index 47b44ffce7a9c..10210e58a6850 100644 --- a/src/clzones.h +++ b/src/clzones.h @@ -145,7 +145,6 @@ class zone_data public: zone_data() { - name = ""; type = zone_type_id( "" ); invert = false; enabled = false; diff --git a/src/construction.cpp b/src/construction.cpp index 3bacc697f7342..f5ad03966531c 100644 --- a/src/construction.cpp +++ b/src/construction.cpp @@ -857,7 +857,7 @@ void complete_construction( player *p ) g->m.remove_trap( terp ); if( p->is_npc() ) { npc *guy = dynamic_cast( p ); - guy->current_activity = ""; + guy->current_activity.clear(); guy->revert_after_activity(); guy->set_moves( 0 ); } diff --git a/src/debug.cpp b/src/debug.cpp index e1ee30764d434..f1027b31e4778 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -1020,7 +1020,7 @@ static std::string windows_version() #if defined (__MINGW32__) || defined (__MINGW64__) || defined (__CYGWIN__) || defined (MSYS2) output = "MINGW/CYGWIN/MSYS2 on unknown Windows version"; #else - output = ""; + output.clear(); using RtlGetVersion = LONG( WINAPI * )( PRTL_OSVERSIONINFOW ); const HMODULE handle_ntdll = GetModuleHandleA( "ntdll" ); if( handle_ntdll != nullptr ) { diff --git a/src/panels.cpp b/src/panels.cpp index a6777e0818b19..13b6b91c321d0 100644 --- a/src/panels.cpp +++ b/src/panels.cpp @@ -580,7 +580,7 @@ static std::string temp_delta_string( const avatar &u ) } else if( delta == 1 ) { temp_message = _( " (Rising)" ); } else if( delta == 0 ) { - temp_message = ""; + temp_message.clear(); } else if( delta == -1 ) { temp_message = _( " (Falling)" ); } else if( delta == -2 ) { diff --git a/src/player.cpp b/src/player.cpp index 9b92dbecd4c36..e17bbdae1c49d 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -12017,7 +12017,7 @@ std::pair player::get_hunger_description() const hunger_string = _( "Peckish" ); hunger_color = c_dark_gray; } else if( !just_ate && ( recently_ate || contains > 0_ml ) ) { - hunger_string = ""; + hunger_string.clear(); } else { hunger_string = _( "Hungry" ); hunger_color = c_yellow; diff --git a/src/sdlsound.cpp b/src/sdlsound.cpp index e1acd460c436b..b636fe78a4b48 100644 --- a/src/sdlsound.cpp +++ b/src/sdlsound.cpp @@ -219,7 +219,7 @@ void stop_music() Mix_HaltMusic(); current_music = nullptr; - current_playlist = ""; + current_playlist.clear(); current_playlist_at = 0; absolute_playlist_at = 0; } From 44c4f039dd821af698b97408f0c216e687248574 Mon Sep 17 00:00:00 2001 From: John Bytheway Date: Sat, 15 Jun 2019 00:18:48 +0100 Subject: [PATCH 72/76] Fix wall connections for curses with tiles option (#31435) Back in #27688 I broke wall connection rendering for curses builds when one has the tiles option enabled. The option doesn't do anything else in curses builds, so I guess it's not common to have it enabled, which explains why it's gone unnoticed since then. --- src/map.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/map.cpp b/src/map.cpp index 9da7924bfde6d..14bcb07a1fb7a 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1378,17 +1378,21 @@ uint8_t map::get_known_connections( const tripoint &p, int connect_group ) const ch.transparency_cache[p.x][p.y] > LIGHT_TRANSPARENCY_SOLID; uint8_t val = 0; std::function is_memorized; +#ifdef TILES if( use_tiles ) { is_memorized = [&]( const tripoint & q ) { return !g->u.get_memorized_tile( getabs( q ) ).tile.empty(); }; } else { +#endif is_memorized = [&]( const tripoint & q ) { return g->u.get_memorized_symbol( getabs( q ) ); }; +#ifdef TILES } +#endif // populate connection information for( int i = 0; i < 4; ++i ) { From ab770659f56b2fd2a26ee8fc5dfa928028e4b4f3 Mon Sep 17 00:00:00 2001 From: Anton Burmistrov Date: Sat, 15 Jun 2019 03:19:11 +0400 Subject: [PATCH 73/76] Merge pull request #31431 from Night-Pryanik/tools-require-charges-to-use Added minimum required charges to mp3 player, noise emitter and vibrator --- data/json/items/tools.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/json/items/tools.json b/data/json/items/tools.json index 81bdd7f13e914..bca1160b274dc 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -5428,6 +5428,7 @@ "color": "dark_gray", "ammo": "battery", "use_action": "MP3", + "charges_per_use": 1, "magazines": [ [ "battery", @@ -5616,6 +5617,7 @@ "symbol": ";", "color": "yellow", "ammo": "battery", + "charges_per_use": 1, "use_action": "NOISE_EMITTER_OFF", "flags": [ "RADIO_MODABLE" ], "magazines": [ @@ -8479,6 +8481,7 @@ "symbol": ";", "color": "dark_gray", "ammo": "battery", + "charges_per_use": 10, "use_action": "VIBE", "magazines": [ [ From d938ca20059dae0128d87b269f8ee0964714c3f2 Mon Sep 17 00:00:00 2001 From: AJ Date: Fri, 14 Jun 2019 19:20:28 -0400 Subject: [PATCH 74/76] Fixes player::suffer() for the time change (#31430) * Fixes player::suffer() for the time change --- src/player.cpp | 123 +++++++++++++++++++++++++------------------------ 1 file changed, 64 insertions(+), 59 deletions(-) diff --git a/src/player.cpp b/src/player.cpp index e17bbdae1c49d..561099e24697f 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -5226,7 +5226,7 @@ void player::suffer() } } - if( has_trait( trait_SHARKTEETH ) && one_in( 14400 ) ) { + if( has_trait( trait_SHARKTEETH ) && one_in( to_turns( 24_hours ) ) ) { add_msg_if_player( m_neutral, _( "You shed a tooth!" ) ); g->m.spawn_item( pos(), "bone", 1 ); } @@ -5291,11 +5291,11 @@ void player::suffer() } } if( has_trait( trait_CHEMIMBALANCE ) ) { - if( one_in( 3600 ) && !has_trait( trait_NOPAIN ) ) { + if( one_in( to_turns( 6_hours ) ) && !has_trait( trait_NOPAIN ) ) { add_msg_if_player( m_bad, _( "You suddenly feel sharp pain for no reason." ) ); mod_pain( 3 * rng( 1, 3 ) ); } - if( one_in( 3600 ) ) { + if( one_in( to_turns( 6_hours ) ) ) { int pkilladd = 5 * rng( -1, 2 ); if( pkilladd > 0 ) { add_msg_if_player( m_bad, _( "You suddenly feel numb." ) ); @@ -5304,11 +5304,11 @@ void player::suffer() } mod_painkiller( pkilladd ); } - if( one_in( 3600 ) ) { + if( one_in( to_turns( 6_hours ) ) ) { add_msg_if_player( m_bad, _( "You feel dizzy for a moment." ) ); moves -= rng( 10, 30 ); } - if( one_in( 3600 ) ) { + if( one_in( to_turns( 6_hours ) ) ) { int hungadd = 5 * rng( -1, 3 ); if( hungadd > 0 ) { add_msg_if_player( m_bad, _( "You suddenly feel hungry." ) ); @@ -5317,22 +5317,22 @@ void player::suffer() } mod_hunger( hungadd ); } - if( one_in( 3600 ) ) { + if( one_in( to_turns( 6_hours ) ) ) { add_msg_if_player( m_bad, _( "You suddenly feel thirsty." ) ); mod_thirst( 5 * rng( 1, 3 ) ); } - if( one_in( 3600 ) ) { + if( one_in( to_turns( 6_hours ) ) ) { add_msg_if_player( m_good, _( "You feel fatigued all of a sudden." ) ); mod_fatigue( 10 * rng( 2, 4 ) ); } - if( one_in( 4800 ) ) { + if( one_in( to_turns( 8_hours ) ) ) { if( one_in( 3 ) ) { add_morale( MORALE_FEELING_GOOD, 20, 100 ); } else { add_morale( MORALE_FEELING_BAD, -20, -100 ); } } - if( one_in( 3600 ) ) { + if( one_in( to_turns( 6_hours ) ) ) { if( one_in( 3 ) ) { add_msg_if_player( m_bad, _( "You suddenly feel very cold." ) ); temp_cur.fill( BODYTEMP_VERY_COLD ); @@ -5341,7 +5341,7 @@ void player::suffer() temp_cur.fill( BODYTEMP_COLD ); } } - if( one_in( 3600 ) ) { + if( one_in( to_turns( 6_hours ) ) ) { if( one_in( 3 ) ) { add_msg_if_player( m_bad, _( "You suddenly feel very hot." ) ); temp_cur.fill( BODYTEMP_VERY_HOT ); @@ -5614,15 +5614,15 @@ void player::suffer() } if( has_trait( trait_JITTERY ) && !has_effect( effect_shakes ) ) { - if( stim > 50 && one_in( 300 - stim ) ) { + if( stim > 50 && one_in( to_turns( 30_minutes ) - ( stim * 6 ) ) ) { add_effect( effect_shakes, 30_minutes + 1_turns * stim ); } else if( ( get_hunger() > 80 || get_kcal_percent() < 1.0f ) && get_hunger() > 0 && - one_in( 500 - get_hunger() ) ) { + one_in( to_turns( 50_minutes ) - ( get_hunger() * 6 ) ) ) { add_effect( effect_shakes, 40_minutes ); } } - if( has_trait( trait_MOODSWINGS ) && one_in( 3600 ) ) { + if( has_trait( trait_MOODSWINGS ) && one_in( to_turns( 6_hours ) ) ) { if( rng( 1, 20 ) > 9 ) { // 55% chance add_morale( MORALE_MOODSWING, -100, -500 ); } else { // 45% chance @@ -5630,29 +5630,29 @@ void player::suffer() } } - if( has_trait( trait_VOMITOUS ) && one_in( 4200 ) ) { + if( has_trait( trait_VOMITOUS ) && one_in( to_turns( 7_hours ) ) ) { vomit(); } - if( has_trait( trait_SHOUT1 ) && one_in( 3600 ) ) { + if( has_trait( trait_SHOUT1 ) && one_in( to_turns( 6_hours ) ) ) { shout(); } - if( has_trait( trait_SHOUT2 ) && one_in( 2400 ) ) { + if( has_trait( trait_SHOUT2 ) && one_in( to_turns( 4_hours ) ) ) { shout(); } - if( has_trait( trait_SHOUT3 ) && one_in( 1800 ) ) { + if( has_trait( trait_SHOUT3 ) && one_in( to_turns( 3_hours ) ) ) { shout(); } - if( has_trait( trait_M_SPORES ) && one_in( 2400 ) ) { + if( has_trait( trait_M_SPORES ) && one_in( to_turns( 4_hours ) ) ) { spores(); } - if( has_trait( trait_M_BLOSSOMS ) && one_in( 1800 ) ) { + if( has_trait( trait_M_BLOSSOMS ) && one_in( to_turns( 3_hours ) ) ) { blossoms(); } } // Done with while-awake-only effects if( has_trait( trait_ASTHMA ) && - one_in( ( 3600 - stim * 50 ) * ( has_effect( effect_sleep ) ? 10 : 1 ) ) && + one_in( ( to_turns( 6_hours ) - stim * 300 ) * ( has_effect( effect_sleep ) ? 10 : 1 ) ) && !has_effect( effect_adrenaline ) & !has_effect( effect_datura ) ) { bool auto_use = has_charges( "inhaler", 1 ) || has_charges( "oxygen_tank", 1 ) || has_charges( "smoxygen_tank", 1 ); @@ -5766,26 +5766,26 @@ void player::suffer() } if( get_pain() > 0 ) { - if( has_trait( trait_PAINREC1 ) && one_in( 600 ) ) { + if( has_trait( trait_PAINREC1 ) && one_in( to_turns( 1_hours ) ) ) { mod_pain( -1 ); } - if( has_trait( trait_PAINREC2 ) && one_in( 300 ) ) { + if( has_trait( trait_PAINREC2 ) && one_in( to_turns( 30_minutes ) ) ) { mod_pain( -1 ); } - if( has_trait( trait_PAINREC3 ) && one_in( 150 ) ) { + if( has_trait( trait_PAINREC3 ) && one_in( to_turns( 15_minutes ) ) ) { mod_pain( -1 ); } } if( ( has_trait( trait_ALBINO ) || has_effect( effect_datura ) ) && - g->is_in_sunlight( pos() ) && one_in( 10 ) ) { + g->is_in_sunlight( pos() ) && one_in( to_turns( 1_minutes ) ) ) { // Umbrellas can keep the sun off the skin and sunglasses - off the eyes. if( !weapon.has_flag( "RAIN_PROTECT" ) ) { add_msg_if_player( m_bad, _( "The sunlight is really irritating your skin." ) ); if( has_effect( effect_sleep ) && !has_effect( effect_narcosis ) ) { wake_up(); } - if( one_in( 10 ) ) { + if( one_in( to_turns( 1_minutes ) ) ) { mod_pain( 1 ); } else { focus_pool --; @@ -5795,7 +5795,7 @@ void player::suffer() ( wearing_something_on( bp_eyes ) ) ) && !has_bionic( bionic_id( "bio_sunglasses" ) ) ) { add_msg_if_player( m_bad, _( "The sunlight is really irritating your eyes." ) ); - if( one_in( 10 ) ) { + if( one_in( to_turns( 1_minutes ) ) ) { mod_pain( 1 ); } else { focus_pool --; @@ -5857,17 +5857,17 @@ void player::suffer() // Blind/Deaf for brief periods about once an hour, // and visuals about once every 30 min. if( has_trait( trait_PER_SLIME ) ) { - if( one_in( 600 ) && !has_effect( effect_deaf ) ) { + if( one_in( to_turns( 1_hours ) ) && !has_effect( effect_deaf ) ) { add_msg_if_player( m_bad, _( "Suddenly, you can't hear anything!" ) ); add_effect( effect_deaf, rng( 20_minutes, 60_minutes ) ); } - if( one_in( 600 ) && !( has_effect( effect_blind ) ) ) { + if( one_in( to_turns( 1_hours ) ) && !( has_effect( effect_blind ) ) ) { add_msg_if_player( m_bad, _( "Suddenly, your eyes stop working!" ) ); add_effect( effect_blind, rng( 2_minutes, 6_minutes ) ); } // Yes, you can be blind and hallucinate at the same time. // Your post-human biology is truly remarkable. - if( one_in( 300 ) && !( has_effect( effect_visuals ) ) ) { + if( one_in( to_turns( 30_minutes ) ) && !( has_effect( effect_visuals ) ) ) { add_msg_if_player( m_bad, _( "Your visual centers must be acting up..." ) ); add_effect( effect_visuals, rng( 36_minutes, 72_minutes ) ); } @@ -5878,17 +5878,17 @@ void player::suffer() } if( has_trait( trait_UNSTABLE ) && !has_trait( trait_CHAOTIC_BAD ) && - one_in( 28800 ) ) { // Average once per 2 days + one_in( to_turns( 48_hours ) ) ) { mutate(); } if( ( has_trait( trait_CHAOTIC ) || has_trait( trait_CHAOTIC_BAD ) ) && - one_in( 7200 ) ) { // Should be once every 12 hours + one_in( to_turns( 12_hours ) ) ) { mutate(); } - if( has_artifact_with( AEP_MUTAGENIC ) && one_in( 28800 ) ) { + if( has_artifact_with( AEP_MUTAGENIC ) && one_in( to_turns( 48_hours ) ) ) { mutate(); } - if( has_artifact_with( AEP_FORCE_TELEPORT ) && one_in( 600 ) ) { + if( has_artifact_with( AEP_FORCE_TELEPORT ) && one_in( to_turns( 1_hours ) ) ) { g->teleport( this ); } const bool needs_fire = !has_morale( MORALE_PYROMANIA_NEARFIRE ) && @@ -6080,7 +6080,8 @@ void player::suffer() } // Negative bionics effects - if( has_bionic( bio_dis_shock ) && one_in( 1200 ) && !has_effect( effect_narcosis ) ) { + if( has_bionic( bio_dis_shock ) && one_in( to_turns( 2_hours ) ) && + !has_effect( effect_narcosis ) ) { add_msg_if_player( m_bad, _( "You suffer a painful electrical discharge!" ) ); mod_pain( 1 ); moves -= 150; @@ -6096,18 +6097,19 @@ void player::suffer() } sfx::play_variant_sound( "bionics", "elec_discharge", 100 ); } - if( has_bionic( bio_dis_acid ) && one_in( 1500 ) ) { + if( has_bionic( bio_dis_acid ) && one_in( to_turns( 150_minutes ) ) ) { add_msg_if_player( m_bad, _( "You suffer a burning acidic discharge!" ) ); hurtall( 1, nullptr ); sfx::play_variant_sound( "bionics", "acid_discharge", 100 ); sfx::do_player_death_hurt( g->u, false ); } - if( has_bionic( bio_drain ) && power_level > 24 && one_in( 600 ) ) { + if( has_bionic( bio_drain ) && power_level > 24 && one_in( to_turns( 1_hours ) ) ) { add_msg_if_player( m_bad, _( "Your batteries discharge slightly." ) ); charge_power( -25 ); sfx::play_variant_sound( "bionics", "elec_crackle_low", 100 ); } - if( has_bionic( bio_noise ) && one_in( 500 ) && !has_effect( effect_narcosis ) ) { + if( has_bionic( bio_noise ) && one_in( to_turns( 50_minutes ) ) && + !has_effect( effect_narcosis ) ) { // TODO: NPCs with said bionic if( !is_deaf() ) { add_msg( m_bad, _( "A bionic emits a crackle of noise!" ) ); @@ -6122,13 +6124,14 @@ void player::suffer() power_level >= max_power_level * .75 ) { mod_str_bonus( -3 ); } - if( has_bionic( bio_trip ) && one_in( 500 ) && !has_effect( effect_visuals ) && + if( has_bionic( bio_trip ) && one_in( to_turns( 50_minutes ) ) && + !has_effect( effect_visuals ) && !has_effect( effect_narcosis ) && !in_sleep_state() ) { add_msg_if_player( m_bad, _( "Your vision pixelates!" ) ); add_effect( effect_visuals, 10_minutes ); sfx::play_variant_sound( "bionics", "pixelated", 100 ); } - if( has_bionic( bio_spasm ) && one_in( 3000 ) && !has_effect( effect_downed ) && + if( has_bionic( bio_spasm ) && one_in( to_turns( 5_hours ) ) && !has_effect( effect_downed ) && !has_effect( effect_narcosis ) ) { add_msg_if_player( m_bad, _( "Your malfunctioning bionic causes you to spasm and fall to the floor!" ) ); @@ -6137,25 +6140,27 @@ void player::suffer() add_effect( effect_downed, 1_turns, num_bp, false, 0, true ); sfx::play_variant_sound( "bionics", "elec_crackle_high", 100 ); } - if( has_bionic( bio_shakes ) && power_level > 24 && one_in( 1200 ) ) { + if( has_bionic( bio_shakes ) && power_level > 24 && one_in( to_turns( 2_hours ) ) ) { add_msg_if_player( m_bad, _( "Your bionics short-circuit, causing you to tremble and shiver." ) ); charge_power( -25 ); add_effect( effect_shakes, 5_minutes ); sfx::play_variant_sound( "bionics", "elec_crackle_med", 100 ); } - if( has_bionic( bio_leaky ) && one_in( 60 ) ) { + if( has_bionic( bio_leaky ) && one_in( to_turns( 6_minutes ) ) ) { mod_healthy_mod( -1, -200 ); } - if( has_bionic( bio_sleepy ) && one_in( 500 ) && !in_sleep_state() ) { + if( has_bionic( bio_sleepy ) && one_in( to_turns( 50_minutes ) ) && !in_sleep_state() ) { mod_fatigue( 1 ); } - if( has_bionic( bio_itchy ) && one_in( 500 ) && !has_effect( effect_formication ) && + if( has_bionic( bio_itchy ) && one_in( to_turns( 50_minutes ) ) && + !has_effect( effect_formication ) && !has_effect( effect_narcosis ) ) { add_msg_if_player( m_bad, _( "Your malfunctioning bionic itches!" ) ); body_part bp = random_body_part( true ); add_effect( effect_formication, 10_minutes, bp ); } - if( has_bionic( bio_glowy ) && !has_effect( effect_glowy_led ) && one_in( 500 ) && + if( has_bionic( bio_glowy ) && !has_effect( effect_glowy_led ) && + one_in( to_turns( 50_minutes ) ) && power_level > 1 ) { add_msg_if_player( m_bad, _( "Your malfunctioning bionic starts to glow!" ) ); add_effect( effect_glowy_led, 5_minutes ); @@ -6169,7 +6174,7 @@ void player::suffer() // Stim +250 kills if( stim > 210 ) { - if( one_in( 20 ) && !has_effect( effect_downed ) ) { + if( one_in( to_turns( 2_minutes ) ) && !has_effect( effect_downed ) ) { add_msg_if_player( m_bad, _( "Your muscles spasm!" ) ); if( !has_effect( effect_downed ) ) { add_msg_if_player( m_bad, _( "You fall to the ground!" ) ); @@ -6190,7 +6195,7 @@ void player::suffer() } } if( stim > 75 ) { - if( !one_in( 20 ) && !has_effect( effect_nausea ) ) { + if( !one_in( to_turns( 2_minutes ) ) && !has_effect( effect_nausea ) ) { add_msg( _( "You feel nauseous..." ) ); add_effect( effect_nausea, 5_minutes ); } @@ -6198,7 +6203,7 @@ void player::suffer() // Stim -200 or painkillers 240 kills if( stim < -160 || pkill > 200 ) { - if( one_in( 30 ) && !in_sleep_state() ) { + if( one_in( to_turns( 3_minutes ) ) && !in_sleep_state() ) { add_msg_if_player( m_bad, _( "You black out!" ) ); const time_duration dur = rng( 30_minutes, 60_minutes ); add_effect( effect_downed, dur ); @@ -6213,7 +6218,7 @@ void player::suffer() } } if( stim < -85 || pkill > 145 ) { - if( one_in( 15 ) ) { + if( one_in( to_turns( 15_seconds ) ) ) { add_msg_if_player( m_bad, _( "You feel dizzy for a moment." ) ); mod_moves( -rng( 10, 30 ) ); if( one_in( 3 ) && !has_effect( effect_downed ) ) { @@ -6241,7 +6246,7 @@ void player::suffer() // Harmless warnings if( sleep_deprivation >= SLEEP_DEPRIVATION_HARMLESS ) { - if( one_in( 500 ) ) { + if( one_in( to_turns( 50_minutes ) ) ) { switch( dice( 1, 4 ) ) { default: case 1: @@ -6265,51 +6270,51 @@ void player::suffer() } // Minor discomfort if( sleep_deprivation >= SLEEP_DEPRIVATION_MINOR ) { - if( one_in( 750 ) ) { + if( one_in( to_turns( 75_minutes ) ) ) { add_msg_if_player( m_warning, _( "You feel lightheaded for a moment." ) ); moves -= 10; } - if( one_in( 1000 ) ) { + if( one_in( to_turns( 100_minutes ) ) ) { add_msg_if_player( m_warning, _( "Your muscles spasm uncomfortably." ) ); mod_pain( 2 ); } - if( !has_effect( effect_visuals ) && one_in( 1500 ) ) { + if( !has_effect( effect_visuals ) && one_in( to_turns( 150_minutes ) ) ) { add_msg_if_player( m_warning, _( "Your vision blurs a little." ) ); add_effect( effect_visuals, rng( 1_minutes, 5_minutes ) ); } } // Slight disability if( sleep_deprivation >= SLEEP_DEPRIVATION_SERIOUS ) { - if( one_in( 750 ) ) { + if( one_in( to_turns( 75_minutes ) ) ) { add_msg_if_player( m_bad, _( "Your mind lapses into unawareness briefly." ) ); moves -= rng( 20, 80 ); } - if( one_in( 1250 ) ) { + if( one_in( to_turns( 125_minutes ) ) ) { add_msg_if_player( m_bad, _( "Your muscles ache in stressfully unpredictable ways." ) ); mod_pain( rng( 2, 10 ) ); } - if( one_in( 3000 ) ) { + if( one_in( to_turns( 5_hours ) ) ) { add_msg_if_player( m_bad, _( "You have a distractingly painful headache." ) ); mod_pain( rng( 10, 25 ) ); } } // Major disability, high chance of passing out also relevant if( sleep_deprivation >= SLEEP_DEPRIVATION_MAJOR ) { - if( !has_effect( effect_nausea ) && one_in( 5000 ) ) { + if( !has_effect( effect_nausea ) && one_in( to_turns( 500_minutes ) ) ) { add_msg_if_player( m_bad, _( "You feel heartburn and an acid taste in your mouth." ) ); mod_pain( 5 ); add_effect( effect_nausea, rng( 5_minutes, 30_minutes ) ); } - if( one_in( 3000 ) ) { + if( one_in( to_turns( 5_hours ) ) ) { add_msg_if_player( m_bad, _( "Your mind is so tired that you feel you can't trust your eyes anymore." ) ); add_effect( effect_hallu, rng( 5_minutes, 60_minutes ) ); } - if( !has_effect( effect_shakes ) && one_in( 4250 ) ) { + if( !has_effect( effect_shakes ) && one_in( to_turns( 425_minutes ) ) ) { add_msg_if_player( m_bad, _( "Your muscles spasm uncontrollably, and you have trouble keeping your balance." ) ); add_effect( effect_shakes, 15_minutes ); - } else if( has_effect( effect_shakes ) && one_in( 75 ) ) { + } else if( has_effect( effect_shakes ) && one_in( to_turns( 75_seconds ) ) ) { moves -= 10; add_msg_player_or_npc( m_warning, _( "Your shaking legs make you stumble." ), _( " stumbles." ) ); From 5d57fda3097c8b599b75b0aed89b8dbfee795503 Mon Sep 17 00:00:00 2001 From: Inglonias <2125926+Inglonias@users.noreply.github.com> Date: Fri, 14 Jun 2019 19:21:58 -0400 Subject: [PATCH 75/76] Stop tools recharging (#31426) * Removed all RECHARGE flags from tools * Removed RECHARGE flags from all tools. --- data/json/items/tool_armor.json | 2 +- data/json/items/tools.json | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/data/json/items/tool_armor.json b/data/json/items/tool_armor.json index b03ec9d420963..2f7d95ffacff1 100644 --- a/data/json/items/tool_armor.json +++ b/data/json/items/tool_armor.json @@ -2508,7 +2508,7 @@ "need_charges": 1, "need_charges_msg": "The blanket's batteries are dead." }, - "flags": [ "OVERSIZE", "OUTER", "ALLOWS_NATURAL_ATTACKS", "RECHARGE" ], + "flags": [ "OVERSIZE", "OUTER", "ALLOWS_NATURAL_ATTACKS" ], "magazines": [ [ "battery", diff --git a/data/json/items/tools.json b/data/json/items/tools.json index bca1160b274dc..46276a90b9d7d 100644 --- a/data/json/items/tools.json +++ b/data/json/items/tools.json @@ -2357,7 +2357,6 @@ "ammo": "battery", "charges_per_use": 2, "use_action": "ROBOTCONTROL", - "flags": [ "RECHARGE" ], "magazines": [ [ "battery", @@ -6836,7 +6835,7 @@ "qualities": [ [ "HAMMER", 1 ] ], "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], "use_action": "TAZER", - "flags": [ "DURABLE_MELEE", "RECHARGE", "NONCONDUCTIVE", "SHEATH_SPEAR" ], + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "magazines": [ [ "battery", @@ -6864,7 +6863,7 @@ "charges_per_use": 1, "techniques": [ "WBLOCK_2", "RAPID" ], "use_action": "SHOCKTONFA_OFF", - "flags": [ "DURABLE_MELEE", "RECHARGE", "NONCONDUCTIVE" ], + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE" ], "magazines": [ [ "battery", @@ -7523,7 +7522,6 @@ "ammo": "battery", "charges_per_use": 100, "use_action": "TAZER", - "flags": [ "RECHARGE" ], "magazines": [ [ "battery", @@ -7707,7 +7705,7 @@ "symbol": ";", "color": "brown", "ammo": "battery", - "flags": [ "ALLOWS_REMOTE_USE", "RECHARGE" ], + "flags": [ "ALLOWS_REMOTE_USE" ], "use_action": { "target": "small_space_heater_on", "msg": "You turn on the heater.", @@ -7734,7 +7732,7 @@ "description": "A portable electric heater that steadily emits warm air. Raises temperature about 10 degrees C.", "power_draw": 500000, "emits": [ "emit_hot_air2_stream" ], - "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ], + "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2" ], "revert_to": "small_space_heater", "use_action": { "target": "small_space_heater", "msg": "You turn off the heater.", "menu_text": "Turn off", "type": "transform" }, "magazine_well": 2 @@ -7753,7 +7751,7 @@ "symbol": ";", "color": "brown", "ammo": "battery", - "flags": [ "ALLOWS_REMOTE_USE", "RECHARGE" ], + "flags": [ "ALLOWS_REMOTE_USE" ], "use_action": { "target": "large_space_heater_on", "msg": "You turn on the heater.", @@ -7777,7 +7775,7 @@ "description": "A portable electric heater that steadily emits warm air. Raises temperature about 10 degrees C and fills a larger volume of air than the smaller version.", "power_draw": 1000000, "emits": [ "emit_hot_air2_blast" ], - "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2", "RECHARGE" ], + "flags": [ "ALLOWS_REMOTE_USE", "LIGHT_2" ], "revert_to": "large_space_heater", "use_action": { "target": "large_space_heater", "msg": "You turn off the heater.", "menu_text": "Turn off", "type": "transform" }, "magazine_well": 4 From a6cb1c7ee7df2ad89675b2efa42e93003f1ea92a Mon Sep 17 00:00:00 2001 From: Anton Burmistrov Date: Sat, 15 Jun 2019 03:23:07 +0400 Subject: [PATCH 76/76] Motor boat (#31420) * Added metal motor boat with one gasoline engine * Added spawn of lots of motor boats with a small chance to the marina Also had to update marina mapgen so it could fit boats on the lower pier --- data/json/mapgen/marina.json | 36 ++++++++++++++++++++++++++++++++--- data/json/vehicles/boats.json | 30 +++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/data/json/mapgen/marina.json b/data/json/mapgen/marina.json index 15162db252fed..2b97e9b7e36f9 100644 --- a/data/json/mapgen/marina.json +++ b/data/json/mapgen/marina.json @@ -58,12 +58,12 @@ "!!!```````````````````````````````````````````````````````````````````````````````````!!!````````````````````````````!!!", "!!!```````````````````````````````````````````````````````````````````````````````````!!!````````````````````````````!!!", "!!!```````````````````````````````````````````````````````````````````````````````````!!!````````````````````````````!!!", + "!!!```````````````````````````````````````````````````````````````````````````````````!!!````````````````````````````!!!", "!!!`````!!!`````!!!`````!!!`````!!!```````````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!````!!!", "!!!`````!!!`````!!!`````!!!`````!!!```````````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!````!!!", "!!!`````B!!`````B!!`````B!!`````B!!```````````!!B`````!!B`````!!B`````!!B`````!!B`````!!B`````!!B`````!!B`````!!B````!!!", "!!!`````!!!`````!!!`````!!!`````!!!```````````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!````!!!", - "!!!`````!!!`````!!!`````!!!`````!!!##```````##!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!````!!!", - "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#.......#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", + "!!!`````!!!`````!!!`````!!!`````!!!##.......##!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!`````!!!````!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#.......#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#.......#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#.......#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", @@ -179,7 +179,37 @@ "Q": { "item": "trash_cart", "chance": 50, "repeat": [ 2, 3 ] } }, "place_item": [ { "item": "laptop", "x": 18, "y": 61, "chance": 80 } ], - "place_loot": [ { "group": "magazines", "x": 18, "y": 58, "chance": 80, "repeat": [ 1, 3 ] } ] + "place_loot": [ { "group": "magazines", "x": 18, "y": 58, "chance": 80, "repeat": [ 1, 3 ] } ], + "place_vehicles": [ + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 5, "y": 10, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 13, "y": 10, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 21, "y": 10, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 29, "y": 10, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 7, "y": 14, "rotation": 90 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 15, "y": 14, "rotation": 90 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 23, "y": 14, "rotation": 90 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 31, "y": 14, "rotation": 90 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 5, "y": 33, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 13, "y": 33, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 21, "y": 33, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 29, "y": 33, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 5, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 13, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 21, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 29, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 49, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 57, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 65, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 73, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 81, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 89, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 97, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 105, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 113, "y": 52, "rotation": 270 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 61, "y": 9, "rotation": 90 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 69, "y": 9, "rotation": 90 }, + { "chance": 10, "fuel": 15, "vehicle": "boat_motor_single", "x": 75, "y": 9, "rotation": 90 } + ] } } ] diff --git a/data/json/vehicles/boats.json b/data/json/vehicles/boats.json index 3f922c99e8ed1..d68a256184b5c 100644 --- a/data/json/vehicles/boats.json +++ b/data/json/vehicles/boats.json @@ -112,5 +112,35 @@ { "x": 1, "y": 1, "parts": [ "inflatable_section", "inflatable_airbag" ] }, { "x": 0, "y": 1, "parts": [ "inflatable_section", "inflatable_airbag" ] } ] + }, + { + "type": "vehicle", + "id": "boat_motor_single", + "name": "motor boat", + "blueprint": [ + [ "|--\\" ], + [ "|==O>" ], + [ "|--/ " ] + ], + "parts": [ + { "x": 0, "y": 0, "parts": [ "frame_vertical", "metal_boat_hull" ] }, + { "x": 1, "y": 0, "parts": [ "frame_horizontal", "metal_boat_hull" ] }, + { "x": 2, "y": 0, "parts": [ "frame_horizontal", "metal_boat_hull" ] }, + { "x": 3, "y": 0, "parts": [ "frame_sw", "metal_boat_hull" ] }, + { + "x": 0, + "y": 1, + "parts": [ "frame_vertical", "metal_boat_hull", "engine_1cyl_large", "alternator_bicycle", "battery_motorbike" ] + }, + { "x": 1, "y": 1, "parts": [ "frame_cross", "metal_boat_hull", "trunk" ] }, + { "x": 2, "y": 1, "parts": [ "frame_cross", "metal_boat_hull" ] }, + { "x": 2, "y": 1, "part": "tank", "fuel": "gasoline" }, + { "x": 3, "y": 1, "parts": [ "frame_cross", "metal_boat_hull", "seat", "seatbelt", "controls", "dashboard" ] }, + { "x": 4, "y": 1, "parts": [ "frame_horizontal", "metal_boat_hull", "windshield" ] }, + { "x": 0, "y": 2, "parts": [ "frame_vertical", "metal_boat_hull" ] }, + { "x": 1, "y": 2, "parts": [ "frame_horizontal", "metal_boat_hull" ] }, + { "x": 2, "y": 2, "parts": [ "frame_horizontal", "metal_boat_hull" ] }, + { "x": 3, "y": 2, "parts": [ "frame_ne", "metal_boat_hull" ] } + ] } ]