First new gateway in a year. (#93894)

## About The Pull Request

This PR adds a new gateway with not too much threat a, a little bit of
reward more often in the form of gimmicky items or armor.

credit to https://github.com/NovaSector/NovaSector/pull/4880
For the gun and sfx sprite
## Why It's Good For The Game

The gateway system is about as decrepit and old, the last gateway that
was added was the museum which was made by somebody who would short
after receive a rule 8 ban and plus that away mission is a neat scenery
and has a lot of cool locations to look at but it has no loot, and you
know what? that's okay and it achieves what it sets out to do
beautifully, but if we discount that one for that reason alone (which
for the record is a bad reason to discount something) then the last
gateway that was added and that stuck was added in 2018? and it was
snowdin? I dont actually know, correct me on this. But basically, more
content good.

## Changelog

<details>
<summary>Screenshots/Videos</summary>
<img width="862" height="431" alt="image"
src="https://github.com/user-attachments/assets/d56add04-4b8c-4cd0-be7f-36d895e43868"
/>
<img width="654" height="665" alt="image"
src="https://github.com/user-attachments/assets/1ccd15c4-5c31-4b00-b5f8-9a662efa3436"
/>
<img width="651" height="571" alt="image"
src="https://github.com/user-attachments/assets/08ab4c1d-d9d0-413c-bc02-a3c51eda8761"
/>
<img width="1177" height="172" alt="image"
src="https://github.com/user-attachments/assets/8df5e28d-5041-4676-8370-b8ab351f5b52"
/>
<img width="850" height="586" alt="image"
src="https://github.com/user-attachments/assets/c03e6cbe-b290-421e-bbed-80a203221de4"
/>
<img width="1248" height="912" alt="image"
src="https://github.com/user-attachments/assets/aa3c415d-52de-46b9-b317-e397b481b1b7"
/>
<img width="885" height="697" alt="image"
src="https://github.com/user-attachments/assets/dd96d364-deae-4c56-9fc1-68b5e738ef4a"
/>
<img width="1284" height="646" alt="image"
src="https://github.com/user-attachments/assets/b433f591-d92f-4bea-921c-b231fce2e7d9"
/>

also NO you cannot make the sm sword using the slow recharge shrink ray
<img width="621" height="240" alt="image"
src="https://github.com/user-attachments/assets/75f7d235-33c2-424e-9260-a3cc8c931ab9"
/>
</details>

<details>
<summary>Documentation of all notable loot 11/8/2025</summary>
  /obj/item/clothing/shoes/gunboots/disabler
/obj/item/gun/energy/shrink_ray/one_shot (A shrink way that has a long
recharge time and can only shoot once)
  /obj/item/slimepotion/lovepotion x 2
  /obj/item/slimepotion/genderchange x 1
  /obj/item/slimepotion/slime/mutator
  /obj/item/gun/energy/disabler/smoothbore
  /obj/item/gun/energy/alien/zeta
  /obj/item/gun/magic/midas_hand
/obj/item/autosurgeon/xeno (A autosurgeon that only allows xenomorph
organs, here because it looks unique)
  /obj/item/organ/heart/gland (abductor organs, random.)
  /obj/item/organ/eyes/corrupt
  /obj/item/organ/appendix/corrupt
  /obj/item/clothing/suit/utility/radiation/cbrnsuit x 2
  /obj/item/clothing/head/utility/radiation/cbrnhood x 2
  /obj/item/clothing/gloves/combat x 4
  /obj/item/clothing/shoes/combat/swat x 2
  /obj/item/clothing/mask/gas/atmos/glass x 2 

/obj/item/clothing/under/rank/engineering/atmospheric_technician/nova/utility/advanced
  /obj/item/gun/ballistic/automatic/wt550/p90 x 2
  /obj/item/ammo_box/magazine/p90_mag x 14
  /obj/item/gun/energy/modular_laser_rifle/carbine x 2
  /obj/effect/spawner/random/armory/laser_gun
  /obj/item/grenade/c4 x 3
/obj/machinery/deployable_turret/hmg x 3 (you think these are good, but
they're not, they are really not, they're only good if you hit somebody
with them when they're not expecting it, otherwise people will simply
just avoid it, or if your being defensive of an area this thing will
have you just be a beast.)
/obj/machinery/mounted_machine_gun x 8 (But with no ammo, so theyre only
setpieces, okay well there IS ammo on the map but its anchored, and
theres no way to unanchor anchored items, if fallout thirteen players
cant do it over the course of 4 years then tg players sure cant.)
  
Also hello there it looks like you actually read this section, if you
have dont worry, this PR wont get merged, why? I dont want to salt about
that here.
</details>

🆑
map: added the "heretic" gateway map (it has nothing related to
heretics)
/🆑
This commit is contained in:
Yobrocharlie
2025-12-03 01:04:49 +00:00
committed by GitHub
parent c4e2be3f5e
commit c83a070266
21 changed files with 75715 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+1
View File
@@ -251,6 +251,7 @@ Always compile, always use that verb, and always make sure that it works for wha
#define AWAYSTART_SNOWCABIN "AWAYSTART_SNOWCABIN"
#define AWAYSTART_SNOWDIN "AWAYSTART_SNOWDIN"
#define AWAYSTART_UNDERGROUND "AWAYSTART_UNDERGROUND"
#define AWAYSTART_HERETIC "AWAYSTART_HERETIC"
// Minetypes for maps
#define MINETYPE_NONE "none"
+5
View File
@@ -19,6 +19,7 @@
#define HILBERT_LINE_1 "hilb_1"
#define BIRDSHOT_LINE_1 "bird_1"
#define BIRDSHOT_LINE_2 "bird_2"
#define HERETIC_LINE_1 "heretic_1"
// Destinations/platforms
#define TRAMSTATION_WEST 1
@@ -32,6 +33,10 @@
#define BIRDSHOT_PRISON_WING 1
#define BIRDSHOT_SECURITY_WING 2
#define HERETIC_PORT 1
#define HERETIC_CENTRAL 2
#define HERETIC_STARBOARD 3
#define BIRDSHOT_MAINTENANCE_LEFT 1
#define BRIDSHOT_MAINTENANCE_RIGHT 2
@@ -231,8 +231,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom, 27)
desc = "A custom-made Syndicate-issue intercom used to transmit on all Nanotrasen frequencies. Particularly expensive."
freerange = TRUE
/obj/item/radio/intercom/mi13
name = "intercom"
desc = "Talk through this to talk to whoever is in this facility with you."
freerange = TRUE
MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/prison, 27)
MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/chapel, 27)
MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/command, 27)
MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/syndicate, 27)
MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/syndicate/freerange, 27)
MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/mi13, 27)
@@ -0,0 +1,22 @@
/obj/item/clothing/head/utility/radiation/cbrnhood
name = "\improper CBRN hood"
desc = "A hood with radiation protective properties along with acidic and biological protective properties. The label reads, 'Made with thin lead sheets, please do not consume.'"
armor_type = /datum/armor/utility_radiation/cbrn
/datum/armor/utility_radiation/cbrn
melee = 60
bullet = 40
laser = 30
energy = 80
bomb = 20
bio = 100
fire = 75
acid = 100
wound = 25
/obj/item/clothing/suit/utility/radiation/cbrnsuit
name = "\improper CBRN suit"
desc = "A hood with radiation protective properties along with acidic and biological protective properties. The label reads, 'Made with thin lead sheets, please do not consume.'"
allowed = null
slowdown = 0
armor_type = /datum/armor/utility_radiation/cbrn
@@ -0,0 +1,57 @@
/obj/item/fake_items
name = "An item, of which is fake"
desc = "If you see this you feel like you should contact an 'admin' or make an 'issue report' whatever that means"
icon = 'icons/ui/chat/pepe.dmi'
icon_state = "rare_pepe"
/obj/item/fake_items/sm_sliver
name = "supermatter sliver"
desc = "A tiny, highly volatile sliver of a supermatter crystal. Do not handle without protection!"
icon = 'icons/obj/antags/syndicate_tools.dmi'
icon_state = "supermatter_sliver"
anchored = 1
/obj/item/fake_items/feddy_fazbear
name = "Springlock Module"
desc = "A springlock module disguised as a dna lock module, thankfully there is a note on it telling you this."
icon = 'icons/obj/clothing/modsuit/mod_modules.dmi'
icon_state = /obj/item/mod/module/dna_lock::icon_state
anchored = 1
/obj/item/fake_items/time_stopper
name = "MOD timestopper module"
desc = "A module that can halt time in a small radius around the user... for as long as they \
want! Great for monologues or lunch breaks. Keep in mind moving will end the stop, and the \
module has a hefty cooldown period to avoid reality errors."
icon = 'icons/obj/clothing/modsuit/mod_modules.dmi'
icon_state = "timestop"
anchored = 1
/obj/item/fake_items/wabbajack
name = "Wabbajack"
desc = "If there is some deity out there, they've definitely skipped their psych appointment before creating this."
icon = 'icons/obj/weapons/guns/magic.dmi'
icon_state = "the_wabbajack"
anchored = 1
/obj/item/fake_items/abductor_win_stick
name = "advanced baton"
desc = "A quad-mode baton used for incapacitation and restraining of specimens."
icon = 'icons/obj/antags/abductor.dmi'
icon_state = "wonderprodStun"
anchored = 1
/obj/item/fake_items/l6_saw
name = "L6 SAW"
desc = "A heavily modified 7mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation."
icon = 'icons/obj/weapons/guns/ballistic.dmi'
icon_state = "l6"
anchored = 1
/obj/item/fake_items/lahti_l39
name = "Lahti L-39"
desc = "The Lahti L-39, now manufactured in space with better materials making it more portable and reliable- still loaded in the same massive cartridge, \
this thing was made to go through a tank and come out the other end- imagine what it could do to an exosuit, there's also a completely useless sight which is totally obstructed by the magazine."
icon = 'icons/obj/weapons/guns/lahtil39.dmi'
icon_state = "lahtil"
anchored = 1
@@ -0,0 +1,22 @@
/area/awaymission/beach/heretic
name = "heretic beach"
icon_state = "away2"
requires_power = FALSE
static_lighting = TRUE
area_flags = NOTELEPORT
default_gravity = 1
/area/awaymission/caves/heretic_laboratory
name = "heretic lab"
requires_power = FALSE
static_lighting = TRUE
area_flags = NOTELEPORT
default_gravity = 1
/area/awaymission/caves/heretic_laboratory_clean
name = "heretic lab clean"
icon_state = "away2"
requires_power = FALSE
static_lighting = TRUE
area_flags = NOTELEPORT
default_gravity = 1
@@ -0,0 +1,52 @@
/obj/item/gun/energy/shrink_ray/one_shot
name = "shrink ray blaster"
desc = "This is a piece of frightening alien tech that enhances the magnetic pull of atoms in a localized space to temporarily make an object shrink. \
That or it's just space magic. Either way, it shrinks stuff, This one is jerry-rigged to work with a non alien cell. It still recharges though."
ammo_type = list(/obj/item/ammo_casing/energy/shrink/worse)
/obj/item/ammo_casing/energy/shrink/worse
projectile_type = /obj/projectile/magic/shrink/alien
select_name = "shrink ray"
e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE)
/obj/item/gun/ballistic/automatic/napad
name = "\improper 'Napad' Submachine Gun"
desc = "A 9mm submachine gun with a sizeable magazine, there are no other markings on it, why is it so big?"
icon = 'icons/obj/weapons/guns/ninemmsmg/napad_item.dmi'
icon_state = "napad"
worn_icon = 'icons/obj/weapons/guns/ninemmsmg/napad_worn.dmi'
worn_icon_state = "napad"
lefthand_file = 'icons/obj/weapons/guns/ninemmsmg/napad_lefthand.dmi'
righthand_file = 'icons/obj/weapons/guns/ninemmsmg/napad_righthand.dmi'
inhand_icon_state = "napad"
special_mags = FALSE
bolt_type = BOLT_TYPE_LOCKING
w_class = WEIGHT_CLASS_BULKY
weapon_weight = WEAPON_HEAVY
slot_flags = ITEM_SLOT_BACK
accepted_magazine_type = /obj/item/ammo_box/magazine/napad
fire_sound = 'sound/items/weapons/gun/rifle/smg_heavy.ogg'
fire_sound_volume = 80
can_suppress = FALSE
burst_size = 1
fire_delay = 0.55 SECONDS
actions_types = list()
projectile_wound_bonus = -10
projectile_damage_multiplier = 0.65
/obj/item/gun/ballistic/automatic/napad/no_mag
spawnwithmagazine = FALSE
/obj/item/ammo_box/magazine/napad
name = "\improper Napad submachinegun magazine"
desc = "A magazine for a submachine gun. Holds twenty five rounds of 9mm ammunition."
icon = 'icons/obj/weapons/guns/ammo.dmi'
icon_state = "napad_mag"
w_class = WEIGHT_CLASS_NORMAL
multiple_sprites = AMMO_BOX_FULL_EMPTY
ammo_type = /obj/item/ammo_casing/c9mm
caliber = CALIBER_9MM
max_ammo = 25
/obj/item/ammo_box/magazine/napad/spawns_empty
start_empty = TRUE
@@ -0,0 +1,91 @@
/obj/item/keycard/heretic_entrance
name = "secure storage keycard"
desc = "A keycard that simply states, basic access."
color = "#000000"
puzzle_id = "heretic_gateway0"
/obj/machinery/door/puzzle/keycard/heretic_entrance
name = "secure airlock"
puzzle_id = "heretic_gateway0"
/obj/item/keycard/highsec_access
name = "secure storage keycard"
desc = "A keycard that simply states, 'only under exteme circumstances'."
color = "#440000"
puzzle_id = "heretic_gateway1"
/obj/machinery/door/puzzle/keycard/highsec_access
name = "secure airlock"
puzzle_id = "heretic_gateway1"
/obj/item/keycard/cbrn_area
name = "CBRN storage keycard"
desc = "A keycard that has a few weird logos and stickers on it all related to biohazards or radiation."
color = "#80e71f"
puzzle_id = "heretic_gateway2"
/obj/machinery/door/puzzle/keycard/cbrn_area
name = "secure airlock"
puzzle_id = "heretic_gateway2"
/obj/item/keycard/biological_anomalies
name = "Bio storage keycard"
desc = "A keycard that looks like the basic access card however it has a biological hazard warning on it."
color = "#357735"
puzzle_id = "heretic_gateway3"
/obj/machinery/door/puzzle/keycard/biological_anomalies
name = "secure airlock"
puzzle_id = "heretic_gateway3"
/obj/item/keycard/weapon_anomalies
name = "Weapon storage keycard"
desc = "A keycard that looks like the basic access card however it has a simple recognizable handgun on it."
color = "#4b4b4b"
puzzle_id = "heretic_gateway4"
/obj/machinery/door/puzzle/keycard/weapon_anomalies
name = "secure airlock"
puzzle_id = "heretic_gateway4"
/obj/item/keycard/misc_anomalies
name = "Misc storage keycard"
desc = "A keycard that looks like the basic access card however it has a staff on it."
color = "#df2190"
puzzle_id = "heretic_gateway5"
/obj/machinery/door/puzzle/keycard/misc_anomalies
name = "secure airlock"
puzzle_id = "heretic_gateway5"
/obj/item/paper/fluff/awaymissions/heretic
name = "a hint"
desc = "This place was designed with many failsafes to keep whats in it safe"
/obj/item/paper/fluff/awaymissions/heretic/floorsafe
default_raw_text = "<li>X X X X X X X X X X</li> \
<li>X X X X X X X X X X</li> \
<li>X X X X X X X X X X</li> \
<li>X X X X X X X X X X</li> \
<li>X X X X X X X X X X</li> \
<li>X X X X X X X X X X</li> \
<li>X X + X X X X X X X</li> \
<li>X X X X X X X X X X</li> \
<li>X X X X X X X X X X</li> \
<li>X X X X X X X X X X</li>"
/obj/item/paper/fluff/awaymissions/heretic/blackroomhint
default_raw_text = "Hey, one of the high sec guards came through and closed things off and told us to evacuate, they hid the keycard to the facility in this room in its proper spot. If you can read this it should be fine and remember to look into the walls to find the keycard."
/obj/item/paper/fluff/awaymissions/heretic/gravehint
default_raw_text = "there are rumors around the office that there are a few fake graves in the graveyard down the way that are empty and instead have, insurance- in them whatever that means, Yours truly, Jeramy."
/turf/open/misc/ashplanet/wateryrock/safeair
initial_gas_mix = "o2=22;n2=82;TEMP=293.15"
/obj/machinery/mass_driver/feeder
name = "mass driver"
id = "MASSDRIVER_HERETIC"
/obj/machinery/computer/pod/old/mass_driver_controller/feeder
id = "MASSDRIVER_HERETIC"
@@ -0,0 +1,21 @@
/obj/effect/spawner/random/heretic_gateway
name = "random heretic keycard spawn"
desc = "Spawns a random keycard, but probably trash."
loot = list(
/obj/item/keycard/cbrn_area = 5,
/obj/item/keycard/biological_anomalies = 20,
/obj/item/keycard/misc_anomalies = 20,
/obj/item/keycard/weapon_anomalies = 20,
/obj/effect/spawner/random/trash/deluxe_garbage = 35
)
/obj/effect/spawner/random/heretic_gateway_low
name = "random heretic keycard spawn"
desc = "Spawns a random keycard, but definitely just trash."
loot = list(
/obj/item/keycard/cbrn_area = 0.5,
/obj/item/keycard/biological_anomalies = 5,
/obj/item/keycard/misc_anomalies = 5,
/obj/item/keycard/weapon_anomalies = 4,
/obj/effect/spawner/random/trash/deluxe_garbage = 85.5
)
@@ -0,0 +1,29 @@
/obj/effect/landmark/transport/transport_id/heretic
specific_transport_id = HERETIC_LINE_1
/obj/effect/landmark/transport/nav_beacon/tram/nav/heretic
name = HERETIC_LINE_1
specific_transport_id = TRAM_NAV_BEACONS
/obj/effect/landmark/transport/nav_beacon/tram/platform/heretic/left
name = "Port"
specific_transport_id = HERETIC_LINE_1
platform_code = HERETIC_PORT
/obj/effect/landmark/transport/nav_beacon/tram/platform/heretic/middle
name = "Central"
specific_transport_id = HERETIC_LINE_1
platform_code = HERETIC_CENTRAL
/obj/effect/landmark/transport/nav_beacon/tram/platform/heretic/right
name = "Starboard"
specific_transport_id = HERETIC_LINE_1
platform_code = HERETIC_STARBOARD
/obj/machinery/transport/tram_controller/heretic_tram_controller
configured_transport_id = HERETIC_LINE_1
/obj/machinery/computer/tram_controls/heretic_tram_computer
icon = 'icons/obj/tram/heretic_tram.dmi'
icon_screen = HERETIC_LINE_1
specific_transport_id = HERETIC_LINE_1
@@ -0,0 +1,3 @@
/obj/effect/landmark/awaystart/heretic
name = "Heretic"
id = AWAYSTART_HERETIC
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

@@ -0,0 +1 @@
Heavy SMG and the NAPAD smg sprite were both made by Trelus in GH pull request https://github.com/NovaSector/NovaSector/pull/4880
Binary file not shown.
+8
View File
@@ -3746,6 +3746,14 @@
#include "code\modules\awaymissions\mission_code\snowdin.dm"
#include "code\modules\awaymissions\mission_code\stationCollision.dm"
#include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm"
#include "code\modules\awaymissions\mission_code\heretic\cbrn.dm"
#include "code\modules\awaymissions\mission_code\heretic\fake_items.dm"
#include "code\modules\awaymissions\mission_code\heretic\heretic.dm"
#include "code\modules\awaymissions\mission_code\heretic\heretic_gateway_guns.dm"
#include "code\modules\awaymissions\mission_code\heretic\heretic_gateway_misc.dm"
#include "code\modules\awaymissions\mission_code\heretic\heretic_gateway_spawners.dm"
#include "code\modules\awaymissions\mission_code\heretic\heretic_gateway_tram.dm"
#include "code\modules\awaymissions\mission_code\heretic\zlevel.dm"
#include "code\modules\balloon_alert\balloon_alert.dm"
#include "code\modules\basketball\basketball.dm"
#include "code\modules\basketball\basketball_map_loading.dm"