Skip to content

Commit

Permalink
First Drop Protections: Gas and Static Turrets (#6363)
Browse files Browse the repository at this point in the history
# About the pull request

This PR is a more fleshed out implementation of #6296 that can likely be
expanded more into Zonespace's plans for generators powering turrets and
more (additional help for low pop).

Smoke takes 6 seconds from its spawn before it will deal burn damage and
smoke in vehicles takes up to 7 seconds to dissipate.

The sequence of events are as follows:
1. After ~~two~~ three minutes from round start, a "fake" OB will be
launched to each landing zone that then causes a miasma (loosely
considered CN20-X miasma since it affects xenos too) in all landing zone
areas.
2. When the first dropship departs, the smoke will clear
3. When the first dropship lands, four ~~10~~ 20 minute gauss sentries
are automatically deployed randomly in the NW, NE, SW, and SE regions of
the LZ immediately around the dropship:

![dropship](https://github.com/cmss13-devs/cmss13/assets/76988376/b87de40a-a718-43ca-9776-f6e47118bc8f)
4. As the sentry runs out of power it warns the battery is running low
(battery still depletes if undeployed & cannot be moved or manipulated
any other than deployment/undeployment)
5. When unpowered, it can only be undeployed so it is no longer blocking
movement.

Since I am primarily using the `is_landing_zone` area var to determine
where to make inhospitable, all maps need to be verified:
- [X] LV-624
- [X] Shivas Snowball
- [X] Solaris Ridge
- [X] Fiorina Science Annex
- [X] Trijent Dam
- [ ] Sorokyne Strata (Would need mapping fixes to expand LZs, but would
conflict with #6071)
- [X] Kutjevo Refinery
- [X] Chances Claim
- [X] New Varadero
- [X] Corsat* (Current Corsat is fine,
#6217 would need some changes)
- [X] Fiorina Cellblocks*
- [X] LV-759 Hybrisa Prospera*

# Explain why it's good for the game

Ultimately this came about because of problems where marines are not
able to get a foothold quickly enough first drop before being
overwhelmed. This especially affects low pop.

The goals of this change are to make survivors holding LZs basically
impossible, to deter xenos from wanting to go near LZs, and to give
marines at least ~~10~~20 minutes after first drop time to create a FOB.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

https://youtu.be/o8kE13Oua6o


![image](https://github.com/cmss13-devs/cmss13/assets/76988376/fdf2bc5e-44b6-4c7f-a01b-defbd5630bf0)

![vehicle
smoke](https://github.com/cmss13-devs/cmss13/assets/76988376/b62b020f-5988-4a6a-9646-8eacd9c168ca)

</details>

# Changelog
:cl: Drathek cuberound
balance: After three minutes from round start, landing zones will be
covered in a deadly gas
balance: First dropship deployment will clear gas, and first dropship
arrival will deploy 4 sentries that last 20 minutes
refactor: Refactored smoke code
maptweak: Expanded LZ areas on Trijent Dam and Kutjevo Refinery
maptweak: Shrunk LZ1 on Shivas Snowball and LZ2 on LV624 slightly
maptweak: Removed fog on Chances Claim since it will be replaced by
smoke and tweaked southern tunnel area to not be considered a LZ
fix: Fixed weird LZ lighting on some maps
spellcheck: Replaced/removed synth coughing emotes in smoke
/:cl:

---------

Co-authored-by: Vero <[email protected]>
  • Loading branch information
Drulikar and vero5123 committed Jun 19, 2024
1 parent 0dee4a2 commit 288f805
Show file tree
Hide file tree
Showing 26 changed files with 4,405 additions and 3,697 deletions.
6 changes: 6 additions & 0 deletions code/__DEFINES/defenses.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@
#define DEFENSE_BELL_TOWER 4
#define DEFENSE_TESLA_COIL 5

// Defines for /obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone
#define TURRET_BATTERY_STATE_OK 0
#define TURRET_BATTERY_STATE_LOW 1
#define TURRET_BATTERY_STATE_CRITICAL 2
#define TURRET_BATTERY_STATE_DEAD 3

// What range the generator has to be in or defenses has to be in.
#define GEN_SEARCH_RANGE 5
#define GEN_PLASTEEL_COST 10
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#define SMOKE_RANK_MED 3
#define SMOKE_RANK_HIGH 4
#define SMOKE_RANK_BOILER 5
#define SMOKE_RANK_MAX 6

// What kind of function to use for Explosions falling off.

Expand Down
8 changes: 8 additions & 0 deletions code/game/area/BigRed.dm
Original file line number Diff line number Diff line change
Expand Up @@ -515,27 +515,35 @@
is_resin_allowed = FALSE
ceiling_muffle = FALSE
base_muffle = MUFFLE_LOW
is_landing_zone = TRUE

/area/bigredv2/outside/telecomm/lz2_cave
name = "\improper Central Grounds Communications Relay"
is_landing_zone = FALSE

/area/bigredv2/outside/telecomm/n_cave
name = "\improper North Cave Communications Relay"
is_landing_zone = FALSE

/area/bigredv2/outside/telecomm/warehouse
name = "\improper Warehouse Communications Relay"
is_landing_zone = FALSE

/area/bigredv2/outside/telecomm/security
name = "\improper Security Communications Relay"
is_landing_zone = FALSE

/area/bigredv2/outside/telecomm/store
name = "\improper General Store Communications Relay"
is_landing_zone = FALSE

/area/bigredv2/outside/telecomm/admin
name = "\improper Administrative Communications Relay"
is_landing_zone = FALSE

/area/bigredv2/outside/telecomm/engi
name = "\improper Engineering Communications Relay"
is_landing_zone = FALSE


/area/bigredv2/outside/engineering
Expand Down
1 change: 0 additions & 1 deletion code/game/area/Corsat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -523,7 +523,6 @@
/area/corsat/omega/hangar
name = "\improper Landing Bay Omega"
icon_state = "omega_hangar"
is_landing_zone = TRUE

/area/corsat/omega/hangar/office
name = "\improper Omega Hangar Office"
Expand Down
1 change: 1 addition & 0 deletions code/game/area/DesertDam.dm
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@
/area/desert_dam/building/substation/northwest
name = "Command Substation"
icon_state = "northewestern_ss"
is_landing_zone = TRUE
/area/desert_dam/building/substation/northeast
name = "Command Substation"
icon_state = "northeastern_ss"
Expand Down
5 changes: 5 additions & 0 deletions code/game/area/LV522_Chances_Claim.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@
name = "Chance's Claim - Landing Zone One Tunnels"
ceiling = CEILING_METAL

/area/lv522/landing_zone_1/tunnel/far
name = "Chance's Claim - Landing Zone One Tunnels"
ceiling = CEILING_METAL
is_landing_zone = FALSE

/area/shuttle/drop1/lv522
name = "Chance's Claim - Dropship Alamo Landing Zone"
icon_state = "shuttle"
Expand Down
7 changes: 7 additions & 0 deletions code/game/area/Prison_Station_FOP.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
/area/prison/security/checkpoint/hangar
name = "\improper Main Hangar Traffic Control"
is_resin_allowed = FALSE
is_landing_zone = TRUE

/area/prison/storage
icon_state = "engine_storage"
Expand Down Expand Up @@ -211,6 +212,7 @@
name = "\improper Hangar-Barracks Maintenance"
icon_state = "maint_e_shuttle"
is_resin_allowed = FALSE
is_landing_zone = TRUE

/area/prison/canteen
name = "\improper Canteen"
Expand Down Expand Up @@ -457,6 +459,7 @@
/area/prison/monorail/east
name = "\improper East Monorail Station"
is_resin_allowed = FALSE
is_landing_zone = TRUE

/area/prison/monorail/west
name = "\improper West Monorail Station"
Expand All @@ -467,10 +470,12 @@
/area/prison/hanger/main
name = "\improper Main Hanger"
icon_state = "hangar_alpha"
is_landing_zone = TRUE

/area/prison/hanger/research
name = "\improper Research Hanger"
icon_state = "hangar_beta"
is_landing_zone = TRUE

/area/prison/hangar_storage/main
name = "\improper Main Hangar Storage"
Expand All @@ -480,9 +485,11 @@
name = "\improper Research Hangar Storage"
icon_state = "toxstorage"
is_resin_allowed = FALSE
is_landing_zone = TRUE

/area/prison/hangar_storage/research/shuttle
name = "Corporate Shuttle"
is_landing_zone = FALSE

/area/prison/telecomms
name = "\improper Telecommunications"
Expand Down
4 changes: 4 additions & 0 deletions code/game/area/Sulaco.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
flags_area = AREA_NOTUNNEL
is_landing_zone = TRUE
ceiling = CEILING_REINFORCED_METAL
base_lighting_alpha = 0

/area/shuttle/drop1/Enter(atom/movable/O, atom/oldloc)
if(istype(O, /obj/structure/barricade))
Expand All @@ -24,6 +25,7 @@
name = "\improper Dropship Alamo"
icon_state = "shuttlered"
base_muffle = MUFFLE_HIGH
base_lighting_alpha = 255

/area/shuttle/drop1/LV624
name = "\improper Dropship Alamo"
Expand Down Expand Up @@ -71,11 +73,13 @@
flags_area = AREA_NOTUNNEL
is_landing_zone = TRUE
ceiling = CEILING_REINFORCED_METAL
base_lighting_alpha = 0

/area/shuttle/drop2/sulaco
name = "\improper Dropship Normandy"
icon_state = "shuttle"
base_muffle = MUFFLE_HIGH
base_lighting_alpha = 255

/area/shuttle/drop2/LV624
name = "\improper Dropship Normandy"
Expand Down
3 changes: 3 additions & 0 deletions code/game/area/kutjevo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -203,19 +203,22 @@
icon_state = "Colony_int"
ceiling = CEILING_METAL
is_resin_allowed = FALSE
is_landing_zone = TRUE

/area/kutjevo/interior/complex/Northwest_Flight_Control
name = "Kutjevo Complex - Northwest Flight Control Room"
icon_state = "Colony_int"
ceiling = CEILING_METAL
is_resin_allowed = FALSE
is_landing_zone = TRUE

/area/kutjevo/interior/complex/Northwest_Security_Checkpoint
name = "Kutjevo Complex - Northwest Security Checkpoint"
icon_state = "Colony_int"
ceiling = CEILING_METAL
is_resin_allowed = FALSE
minimap_color = MINIMAP_AREA_SEC
is_landing_zone = TRUE

//Out buildings + foremans
/area/kutjevo/interior/power
Expand Down
1 change: 1 addition & 0 deletions code/game/area/prison.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
name = "\improper control room"
icon_state = "bridge"
minimap_color = MINIMAP_AREA_COMMAND
is_landing_zone = TRUE

/area/prison/hallway/central_ring
name = "\improper central ring"
Expand Down
1 change: 1 addition & 0 deletions code/game/area/prison_v3_fiorina.dm
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@

/area/fiorina/station/telecomm/lz1_tram
name = "Fiorina - LZ1 Aux Port Communications Relay"
is_landing_zone = TRUE

/area/fiorina/station/telecomm/lz1_engineering
name = "Fiorina - Engineering Primary Communications Relay"
Expand Down
9 changes: 5 additions & 4 deletions code/game/area/shiva.dm
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,10 @@
name = "Shiva's Snowball - Blue Warehouse"
icon_state = "hangars1"

/area/shiva/interior/warehouse/caves
name = "Shiva's Snowball - Blue Warehouse Ice Cave"
icon_state = "caves1"

/area/shiva/interior/valley_huts
name = "Shiva's Snowball - Valley Bunker 1"
icon_state = "hangars1"
Expand All @@ -251,17 +255,14 @@
name = "Shiva's Snowball - Valley Disposals"
icon_state = "hangars3"

/area/shiva/interior/warehouse/caves
name = "Shiva's Snowball - Blue Warehouse Ice Cave"
icon_state = "caves1"

/area/shiva/interior/garage
name = "Shiva's Snowball - Cargo Tug Repair Station"
icon_state = "hangars2"

/area/shiva/interior/lz2_habs
name = "Shiva's Snowball - Argentinian Research Headquarters"
icon_state = "bar1"
is_landing_zone = TRUE

/area/shiva/interior/aux_power
name = "Shiva's Snowball - Auxiliary Generator Station"
Expand Down
7 changes: 7 additions & 0 deletions code/game/area/varadero.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
requires_power = FALSE
is_resin_allowed = FALSE
minimap_color = MINIMAP_AREA_LZ
is_landing_zone = TRUE

/area/varadero/exterior/lz1_console/two
name = "New Varadero - Palm Airfield"
Expand All @@ -98,19 +99,24 @@
icon_state = "lz1"
is_resin_allowed = FALSE
minimap_color = MINIMAP_AREA_LZ
is_landing_zone = TRUE

/area/varadero/exterior/lz2_near
name = "New Varadero - Palm Airfield"
icon_state = "lz2"
is_resin_allowed = FALSE
minimap_color = MINIMAP_AREA_LZ
is_landing_zone = TRUE

/area/varadero/exterior/pontoon_beach
name = "New Varadero - Rockabilly Beach"
icon_state = "varadero0"
is_resin_allowed = FALSE
minimap_color = MINIMAP_AREA_JUNGLE

/area/varadero/exterior/pontoon_beach/lz
is_landing_zone = TRUE

/area/varadero/exterior/eastbeach
name = "New Varadero - East Beach"
is_resin_allowed = FALSE
Expand Down Expand Up @@ -157,6 +163,7 @@
is_resin_allowed = FALSE
minimap_color = MINIMAP_AREA_JUNGLE
sound_environment = SOUND_ENVIRONMENT_ROOM
is_landing_zone = TRUE

/area/varadero/interior/cargo
name = "New Varadero - Cargo"
Expand Down
Loading

0 comments on commit 288f805

Please sign in to comment.