Skip to content

Commit

Permalink
Flyable Helicopters (#33829)
Browse files Browse the repository at this point in the history
  • Loading branch information
davidpwbrown authored Apr 4, 2020
1 parent 075f860 commit 53657b5
Show file tree
Hide file tree
Showing 27 changed files with 1,689 additions and 127 deletions.
12 changes: 12 additions & 0 deletions data/json/items/ammo_types.json
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,18 @@
"name": "gasoline",
"default": "gasoline"
},
{
"type": "ammunition_type",
"id": "jp8",
"name": "jp8",
"default": "jp8"
},
{
"type": "ammunition_type",
"id": "avgas",
"name": "avgas",
"default": "avgas"
},
{
"type": "ammunition_type",
"id": "diesel",
Expand Down
58 changes: 58 additions & 0 deletions data/json/items/fuel.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,64 @@
"explosion_data": { "chance_hot": 20, "chance_cold": 1000, "factor": 0.2, "fiery": false, "size_factor": 0.1 }
}
},
{
"id": "jp8",
"type": "AMMO",
"name": "JP8 fuel",
"name_plural": "JP8 fuel",
"description": "A kerosene-based fuel used mainly by US military vehicles as a replacement for diesel and jet fuel, to simplify logistics.",
"category": "fuel",
"weight": "1 g",
"volume": "200ml",
"price": 50,
"price_postapoc": 2000,
"looks_like": "diesel",
"count": 250,
"stack_size": 200,
"phase": "liquid",
"container": "jerrycan",
"material": "hydrocarbons",
"symbol": "=",
"color": "green",
"ammo_type": "jp8",
"damage": 5,
"range": 4,
"pierce": 5,
"effects": [ "FLAME", "STREAM", "INCENDIARY", "NEVER_MISFIRES" ],
"fuel": {
"energy": 34.7,
"explosion_data": { "chance_hot": 20, "chance_cold": 1000, "factor": 0.2, "fiery": false, "size_factor": 0.1 }
}
},
{
"id": "avgas",
"type": "AMMO",
"name": "avgas fuel",
"name_plural": "avgas fuel",
"description": "A specialized type of petroleum-based fuel used to power aircraft.",
"category": "fuel",
"weight": "1 g",
"volume": "200ml",
"price": 50,
"price_postapoc": 2000,
"count": 250,
"stack_size": 200,
"phase": "liquid",
"looks_like": "diesel",
"container": "jerrycan",
"material": "hydrocarbons",
"symbol": "=",
"color": "green",
"ammo_type": "avgas",
"damage": 5,
"range": 4,
"pierce": 5,
"effects": [ "FLAME", "STREAM", "INCENDIARY", "NEVER_MISFIRES" ],
"fuel": {
"energy": 45.8,
"explosion_data": { "chance_hot": 20, "chance_cold": 1000, "factor": 0.2, "fiery": false, "size_factor": 0.1 }
}
},
{
"id": "biodiesel",
"name": { "str": "biodiesel", "str_pl": "biodiesel" },
Expand Down
32 changes: 32 additions & 0 deletions data/json/items/vehicle/rotor.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[
{
"id": "heavy_duty_military_rotor",
"type": "GENERIC",
"category": "veh_parts",
"name": "heavy-duty military rotors",
"name_plural": "sets of heavy-duty military rotors",
"description": "A set of four rotor blades from a military attack helicopter.",
"price": 23400,
"weight": "452000 g",
"volume": "452000 ml",
"looks_like": "xl_wind_turbine",
"material": "steel",
"symbol": "X",
"color": "dark_gray"
},
{
"id": "small_helicopter_rotor",
"type": "GENERIC",
"category": "veh_parts",
"name": "small civilian helicopter rotors",
"name_plural": "sets of small civilian helicopter rotors",
"description": "A set of four rotor blades from a civilian light helicopter.",
"price": 1200,
"weight": "251000 g",
"volume": "251000 ml",
"looks_like": "xl_wind_turbine",
"material": "steel",
"symbol": "X",
"color": "blue"
}
]
6 changes: 3 additions & 3 deletions data/json/mapgen/helipad.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,9 @@
{ "vehicle": "forklift", "x": 29, "y": 6, "chance": 95, "rotation": 180, "status": 1 },
{ "vehicle": "parkinglotbasic", "x": 4, "y": 9, "chance": 75, "rotation": 270, "status": -1 },
{ "vehicle": "flatbed_truck", "x": 11, "y": 4, "chance": 25, "rotation": 270, "status": -1 },
{ "vehicle": "helicopter_wreck_3a", "x": 9, "y": 42, "chance": 10, "rotation": 90, "status": -1 },
{ "vehicle": "helicopter_wreck_1a", "x": 18, "y": 34, "chance": 10, "rotation": 270, "status": -1 },
{ "vehicle": "helicopter_wreck_3a", "x": 39, "y": 42, "chance": 10, "rotation": 90, "status": -1 }
{ "vehicle": "SmallFlier3_Wreck", "x": 9, "y": 42, "chance": 10, "rotation": 90, "status": -1 },
{ "vehicle": "Smallflier1_Wreck", "x": 18, "y": 34, "chance": 10, "rotation": 270, "status": -1 },
{ "vehicle": "SmallFlier2_Wreck", "x": 39, "y": 42, "chance": 10, "rotation": 90, "status": -1 }
]
}
},
Expand Down
2 changes: 1 addition & 1 deletion data/json/mapgen/military/mil_base/mil_base_z0.json
Original file line number Diff line number Diff line change
Expand Up @@ -1197,7 +1197,7 @@
],
"place_vehicles": [
{ "vehicle": "ambulance", "x": 37, "y": 18, "chance": 80, "rotation": 180 },
{ "vehicle": "helicopter_wreck_3a", "x": 50, "y": 32, "chance": 33, "rotation": 270 },
{ "vehicle": "helicopter_blackhawk_3a", "x": 50, "y": 32, "chance": 5, "rotation": 270 },
{ "vehicle": "military_vehicles", "x": 5, "y": 61, "chance": 25, "rotation": 180, "status": 1 },
{ "vehicle": "military_vehicles", "x": 7, "y": 54, "chance": 25, "rotation": 180, "status": 1 },
{ "vehicle": "portable_generator", "x": 76, "y": 12, "chance": 50, "status": 1 }
Expand Down
3 changes: 2 additions & 1 deletion data/json/mapgen/regional_airport.json
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@
],
"palettes": [ "airport_palette" ],
"place_terrain": [ { "ter": "t_gas_tank", "x": 13, "y": 4 } ],
"place_liquids": [ { "liquid": "gasoline", "x": 13, "y": 4, "repeat": [ 100, 500 ] } ],
"place_liquids": [ { "liquid": "avgas", "x": 13, "y": 4, "repeat": [ 100, 500 ] } ],
"gaspumps": { "J": { } },
"place_monsters": [ { "monster": "GROUP_SMALL_STATION", "x": [ 4, 23 ], "y": [ 5, 23 ], "density": 0.05 } ],
"place_loot": [
Expand Down Expand Up @@ -440,6 +440,7 @@
"/%fss_,___________,_ssf/",
"/%fss_,___________,_ssf/"
],
"place_vehicles": [ { "vehicle": "helicopters", "chance": 30, "fuel": -1, "rotation": 180, "status": -1, "x": 8, "y": 12 } ],
"palettes": [ "airport_palette" ]
}
},
Expand Down
10 changes: 10 additions & 0 deletions data/json/mutations/mutations.json
Original file line number Diff line number Diff line change
Expand Up @@ -6092,6 +6092,16 @@
"purifiable": false,
"profession": true
},
{
"type": "mutation",
"id": "PROF_HELI_PILOT",
"name": "Helicopter Pilot",
"points": 0,
"description": "You are a commercial helicopter pilot, there are no paying passengers anymore, yet still you dream of taking your bird for a spin.",
"valid": false,
"purifiable": false,
"profession": true
},
{
"type": "mutation",
"id": "PROF_SWAT",
Expand Down
17 changes: 17 additions & 0 deletions data/json/professions.json
Original file line number Diff line number Diff line change
Expand Up @@ -1097,6 +1097,23 @@
},
"addictions": [ { "intensity": 20, "type": "opiate" } ]
},
{
"type": "profession",
"ident": "heli_pilot",
"name": "Helicopter Pilot",
"description": "You earned a living ferrying businessmen and tourists from helipad to helipad, the Cataclysm has grounded you, but the sky still calls you...",
"points": 4,
"skills": [ { "level": 4, "name": "driving" }, { "level": 1, "name": "speech" }, { "level": 3, "name": "mechanics" } ],
"traits": [ "PROF_HELI_PILOT" ],
"items": {
"both": {
"items": [ "pants_cargo", "socks", "polo_shirt", "boots", "wristwatch", "fancy_sunglasses" ],
"entries": [ { "group": "charged_cell_phone" }, { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] } ]
},
"male": [ "boxer_shorts" ],
"female": [ "bra", "boy_shorts" ]
}
},
{
"type": "profession",
"ident": "k9_cop",
Expand Down
61 changes: 52 additions & 9 deletions data/json/vehicle_groups.json
Original file line number Diff line number Diff line change
Expand Up @@ -419,15 +419,58 @@
"type": "vehicle_group",
"id": "crashed_helicopters",
"vehicles": [
[ "helicopter_wreck_1a", 100 ],
[ "helicopter_wreck_1b", 400 ],
[ "helicopter_wreck_1c", 200 ],
[ "helicopter_wreck_2a", 100 ],
[ "helicopter_wreck_2b", 400 ],
[ "helicopter_wreck_2c", 200 ],
[ "helicopter_wreck_3a", 100 ],
[ "helicopter_wreck_3b", 400 ],
[ "helicopter_wreck_3c", 200 ]
[ "helicopter_apache_1a", 100 ],
[ "helicopter_apache_1b", 400 ],
[ "helicopter_apache_1c", 200 ],
[ "helicopter_osprey_2a", 100 ],
[ "helicopter_osprey_2b", 400 ],
[ "helicopter_osprey_2c", 200 ],
[ "helicopter_blackhawk_3a", 100 ],
[ "helicopter_blackhawk_3b", 400 ],
[ "helicopter_blackhawk_3c", 200 ],
[ "2seater2_Wreck", 400 ],
[ "SmallFlier3_Wreck", 400 ],
[ "Smallflier1_Wreck", 400 ],
[ "SmallFlier2_Wreck", 400 ],
[ "Medevac1_Wreck", 400 ],
[ "Medevac2_Wreck", 400 ]
]
},
{
"type": "vehicle_group",
"id": "helicopters",
"vehicles": [
[ "2seater2", 100 ],
[ "SmallFlier1", 400 ],
[ "2seater2_Wreck", 200 ],
[ "SmallFlier3_Wreck", 100 ],
[ "SmallFlier2", 400 ],
[ "Medevac1", 100 ],
[ "Smallflier1_Wreck", 200 ],
[ "SmallFlier2_Wreck", 200 ],
[ "Medevac1_Wreck", 100 ],
[ "SmallFlier3", 400 ],
[ "Medevac2", 200 ],
[ "Medevac2_Wreck", 200 ]
]
},
{
"type": "vehicle_group",
"id": "mil_helicopters",
"vehicles": [
[ "Medevac1", 200 ],
[ "Medevac2", 200 ],
[ "Medevac1_Wreck", 200 ],
[ "Medevac2_Wreck", 200 ],
[ "helicopter_apache_1a", 200 ],
[ "helicopter_apache_1b", 400 ],
[ "helicopter_apache_1c", 200 ],
[ "helicopter_osprey_2a", 100 ],
[ "helicopter_osprey_2b", 400 ],
[ "helicopter_osprey_2c", 200 ],
[ "helicopter_blackhawk_3a", 100 ],
[ "helicopter_blackhawk_3b", 400 ],
[ "helicopter_blackhawk_3c", 200 ]
]
},
{
Expand Down
6 changes: 3 additions & 3 deletions data/json/vehicleparts/combustion.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"copy-from": "engine_combustion",
"type": "vehicle_part",
"fuel_type": "diesel",
"fuel_options": [ "diesel", "biodiesel", "lamp_oil", "motor_oil" ],
"fuel_options": [ "diesel", "biodiesel", "lamp_oil", "motor_oil", "jp8" ],
"m2c": 65,
"//": "40% energy efficiency",
"extend": { "flags": [ "E_COLD_START" ] },
Expand All @@ -40,10 +40,10 @@
"copy-from": "engine_combustion",
"type": "vehicle_part",
"fuel_type": "gasoline",
"fuel_options": [ "gasoline", "diesel", "lamp_oil", "motor_oil" ],
"fuel_options": [ "gasoline", "diesel", "lamp_oil", "jp8", "motor_oil", "avgas" ],
"m2c": 60,
"//": "25% energy efficiency",
"description": "An advanced combustion engine. Burns gasoline or diesel fuel from a tank in the vehicle. Can also burn lamp oil, though somewhat less efficiently. Better power-to-weight ratio than a traditional engine, but consumes more fuel."
"description": "An advanced combustion engine. Burns gasoline or diesel or aviation fuel from a tank in the vehicle. Can also burn lamp oil, though somewhat less efficiently. Better power-to-weight ratio than a traditional engine, but consumes more fuel."
},
{
"id": "diesel_engine_i6",
Expand Down
65 changes: 65 additions & 0 deletions data/json/vehicleparts/rotor.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[
{
"abstract": "helicopter_rotors",
"type": "vehicle_part",
"location": "on_roof",
"symbol": "X",
"color": "light_blue",
"broken_symbol": "O",
"broken_color": "light_gray",
"flags": [ "ROTOR" ],
"description": "A set of aerofoil helicopter rotors, when spun at high speed, they generate thrust via lift."
},
{
"id": "heavy_duty_military_rotor",
"copy-from": "helicopter_rotors",
"type": "vehicle_part",
"name": "heavy-duty military rotors",
"item": "heavy_duty_military_rotor",
"//": "rotor diameter is in meters",
"rotor_diameter": 15,
"//": "difficulty is artificially high to prevent homemade helicopters - for the moment",
"difficulty": 30,
"durability": 450,
"description": "A set of four military-grade helicopter rotor blades, used to provide lift by rotation.",
"damage_modifier": 80,
"breaks_into": [ { "item": "scrap", "count": [ 15, 30 ] }, { "item": "steel_chunk", "count": [ 8, 16 ] } ],
"damage_reduction": { "all": 66 }
},
{
"id": "small_civilian_rotors",
"copy-from": "helicopter_rotors",
"type": "vehicle_part",
"name": "small helicopter rotors",
"item": "small_helicopter_rotor",
"//": "rotor diameter is in meters",
"rotor_diameter": 8,
"//": "difficulty is artificially high to prevent homemade helicopters - for the moment",
"difficulty": 30,
"durability": 100,
"description": "A set of four military-grade helicopter rotor blades, used to provide lift by rotation.",
"damage_modifier": 80,
"breaks_into": [ { "item": "scrap", "count": [ 8, 15 ] }, { "item": "steel_chunk", "count": [ 2, 8 ] } ],
"damage_reduction": { "all": 22 }
},
{
"id": "heavy_duty_military_blackhawk_rotors",
"copy-from": "heavy_duty_military_rotor",
"type": "vehicle_part",
"name": "heavy-duty military Blackhawk rotors",
"item": "heavy_duty_military_rotor",
"//": "rotor diameter is in meters",
"description": "A set of four military-grade helicopter rotor blades, used to provide lift by rotation.",
"rotor_diameter": 16
},
{
"id": "heavy_duty_military_osprey_rotors",
"copy-from": "heavy_duty_military_rotor",
"type": "vehicle_part",
"name": "heavy-duty military Osprey rotors",
"item": "heavy_duty_military_rotor",
"//": "rotor diameter is in meters",
"description": "A set of three military-grade helicopter rotor blades, used to provide lift by rotation.",
"rotor_diameter": 11
}
]
2 changes: 1 addition & 1 deletion data/json/vehicleparts/tanks.json
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@
"type": "vehicle_part",
"name": { "str": "steel drum (100L)" },
"item": "30gal_drum",
"location": "center",
"location": "fuel_source",
"symbol": "0",
"color": "dark_gray",
"broken_color": "red",
Expand Down
Loading

0 comments on commit 53657b5

Please sign in to comment.