Skip to content

Commit

Permalink
Adds Enkephalin Rush
Browse files Browse the repository at this point in the history
Adds enkephalin rush

adds ores

mining and walls

fixing spawners

Convert maps to TGM

new         : _maps/shuttles/enkephalin_rush_elevator.dmm
new         : _maps/templates/enkephalin_rush/dist4_briah.dmm

Automatically commited by: tools\mapmerge2\fixup.py

stuff

linters

mining enemy event

abnormality spawns fixed
  • Loading branch information
vampirebat74 committed Oct 25, 2024
1 parent 13e1252 commit 91c5c14
Show file tree
Hide file tree
Showing 21 changed files with 85,225 additions and 1 deletion.
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
17 changes: 17 additions & 0 deletions ModularTegustation/tegu_items/enkephalin_rush/enkr_corpses.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//dead stuff but better

/obj/effect/mob_spawn/human/agent
icon_state = "corpsehuman"
outfit = /datum/outfit/job/agent


/obj/effect/mob_spawn/human/agent/loot
icon_state = "corpsehuman"
outfit = /datum/outfit/job/agent

/obj/effect/mob_spawn/human/agent/loot/Initialize()
..()

/obj/effect/mob_spawn/human/manager
icon_state = "corpsehuman"
outfit = /datum/outfit/job/manager
209 changes: 209 additions & 0 deletions ModularTegustation/tegu_items/enkephalin_rush/enkr_spawners.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
//Mainly supplies for latejoiners
/obj/effect/landmark/enkritemspawn
name = "site burial requisitions"
desc = "It spawns an item. Notify a coder. Thanks!"
icon = 'icons/effects/landmarks_static.dmi'
icon_state = "x4"
var/list/possible_items = list(
/obj/item/ksyringe,
/obj/item/reagent_containers/hypospray/medipen/salacid,
/obj/item/reagent_containers/hypospray/medipen/mental,
/obj/item/flashlight/flare,
/obj/item/pickaxe,
)

/obj/effect/landmark/enkritemspawn/Initialize()
..()
var/spawning = pick(possible_items)
new spawning(get_turf(src))
var/timeradd = rand(1200, 1800)
addtimer(CALLBACK(src, PROC_REF(spawnagain)), timeradd)

/obj/effect/landmark/enkritemspawn/proc/spawnagain()
var/timeradd = rand(1200, 1800)
addtimer(CALLBACK(src, PROC_REF(spawnagain)), timeradd)

if(prob(50)) //50% to spawn
return

var/spawning = pick(possible_items)
new spawning(get_turf(src))


//map-based enemy faction selection
/obj/effect/spawner/map_enemy
var/risk_multiplier = 1
var/level = 1//risk level
var/obj/effect/spawner/scatter/chosen_spawner//the spawner this copies vars from
var/global/map_enemy//enemy type determined when initialized the first time in a given round
var/list/ordeal_types = list()//the types of ordeals the enemy type can spawn
var/list/spawner_types = list(//TODO: this needs to be determined by specific maps. Default is currently for District 4
/datum/enemy/gold,
/datum/enemy/brown,
/datum/enemy/steel,
/datum/enemy/abnos,
//TODO: wineberry creek E.G.O corrosion faction
)

/obj/effect/spawner/map_enemy/New(loc, risk_level)
if(risk_level)
level = risk_level
..()

/obj/effect/spawner/map_enemy/Initialize()
if(!map_enemy)
map_enemy = pick(spawner_types)
var/datum/enemy/myenemy = new map_enemy()
if(istype(myenemy,/datum/enemy))
ordeal_types = myenemy.ordeal_types
var/i = 0
for(var/obj/S as anything in ordeal_types)
i++
if(i == level || i == LAZYLEN(ordeal_types))
var/bonus_spawns = level - i
chosen_spawner = new S(loc, spawns = (1 + bonus_spawns), range = 1)
break
..()
qdel(src)

/datum/enemy
var/ordeal_types = list()

//amber ordeals
/datum/enemy/amber
ordeal_types = list(
/obj/effect/spawner/scatter/amber_dawn,
)
//clockwork teeth; green ordeals
/datum/enemy/green
ordeal_types = list(
/obj/effect/spawner/scatter/green_dawn,
/obj/effect/spawner/scatter/green_noon,
)
//sweepers
/datum/enemy/indigo
ordeal_types = list(
/obj/effect/spawner/scatter/indigo_dawn,
/obj/effect/spawner/scatter/indigo_noon,
)
//E.G.O corroded LC employees
/datum/enemy/gold
ordeal_types = list(
/obj/effect/spawner/scatter/gold_dawn,
/obj/effect/spawner/scatter/gold_noon,
/obj/effect/spawner/scatter/gold_dusk,
/obj/effect/spawner/scatter/gold_midnight,
)
//peccatulae
/datum/enemy/brown
ordeal_types = list(
/obj/effect/spawner/scatter/brown_dawn,
)
//G. corp veterans
/datum/enemy/steel
ordeal_types = list(
/obj/effect/spawner/scatter/steel_dawn,
/obj/effect/spawner/scatter/steel_noon,
)

//Abnormality thralls
/datum/enemy/abnos
ordeal_types = list(
/obj/effect/spawner/scatter/teth,
/obj/effect/spawner/scatter/he,
/obj/effect/spawner/scatter/waw,
/obj/effect/spawner/scatter/aleph,
)

//Peccatulae
/obj/effect/spawner/scatter/brown_dawn
name = "mixed peccatulae spawn"
max_spawns = 10
loot_table = list(
/mob/living/simple_animal/hostile/ordeal/sin_sloth = 1,
/mob/living/simple_animal/hostile/ordeal/sin_gluttony = 1,
/mob/living/simple_animal/hostile/ordeal/sin_gloom = 1,
/mob/living/simple_animal/hostile/ordeal/sin_pride = 1,
/mob/living/simple_animal/hostile/ordeal/sin_lust = 1,
/mob/living/simple_animal/hostile/ordeal/sin_wrath = 1,
)

//E.G.O Corrosions
/obj/effect/spawner/scatter/gold_dawn
name = "amurdad-beanstalk corrosion spawn"
max_spawns = 5
loot_table = list(
/mob/living/simple_animal/hostile/ordeal/fallen_amurdad_corrosion = 1,
/mob/living/simple_animal/hostile/ordeal/beanstalk_corrosion = 10,
)

/obj/effect/spawner/scatter/gold_noon
name = "silent handmaiden spawn"
max_spawns = 5
loot_table = list(
/mob/living/simple_animal/hostile/ordeal/silentgirl_corrosion = 10,
/mob/living/simple_animal/hostile/ordeal/white_lake_corrosion = 1,
)

/obj/effect/spawner/scatter/gold_dusk
name = "electric gold dusk spawn"
max_spawns = 5
loot_table = list(
/mob/living/simple_animal/hostile/ordeal/centipede_corrosion = 1 ,
/mob/living/simple_animal/hostile/ordeal/thunderbird_corrosion = 1,
/mob/living/simple_animal/hostile/ordeal/KHz_corrosion = 1,
)

/obj/effect/spawner/scatter/gold_midnight
name = "corroded inquisition spawn"
max_spawns = 1
loot_table = list(
/mob/living/simple_animal/hostile/ordeal/snake_corrosion = 10,
/mob/living/simple_animal/hostile/ordeal/dog_corrosion = 10,
/mob/living/simple_animal/hostile/ordeal/dog_corrosion/strong = 3,
/mob/living/simple_animal/hostile/ordeal/snake_corrosion/strong = 3,
/mob/living/simple_animal/hostile/ordeal/NT_corrosion = 3,
/mob/living/simple_animal/hostile/ordeal/tso_corrosion = 1,//bosses
)

/obj/effect/spawner/scatter/teth//generally these are supposed to be humans who died in the facility, but there aren't enough for good variety
name = "teth abnormality thrall spawn"
loot_table = list(
/mob/living/simple_animal/hostile/shrimp = 1,//shrimp liquidation intern
/mob/living/simple_animal/hostile/doomsday_doll = 1,
/mob/living/simple_animal/hostile/runawaybird = 1,//judgement bird minion
/mob/living/simple_animal/hostile/azure_stave = 1,//servant of wrath minion
)

/obj/effect/spawner/scatter/he
name = "he abnormality thrall spawn"
loot_table = list(
/mob/living/simple_animal/hostile/shrimp_soldier = 1,//shotgun shrimp
/mob/living/simple_animal/hostile/gift = 1,//laetitia spider
/mob/living/simple_animal/hostile/grown_strong = 1,
/mob/living/simple_animal/hostile/nosferatu_mob = 1,
/mob/living/simple_animal/hostile/worker_bee = 1,
/mob/living/simple_animal/hostile/soldier_bee = 1,//identical to above, has a hat
/mob/living/simple_animal/hostile/artillery_bee = 1,
/mob/living/simple_animal/hostile/slime = 1,//ML slime (small)
)

/obj/effect/spawner/scatter/waw
name = "waw abnormality thrall spawn"
loot_table = list(
/mob/living/simple_animal/hostile/yagaslave = 1,
/mob/living/simple_animal/hostile/parasite_tree_sapling = 1,
/mob/living/simple_animal/hostile/thunder_zombie = 1,
)

/obj/effect/spawner/scatter/aleph
name = "aleph abnormality thrall spawn"
loot_table = list(
/mob/living/simple_animal/hostile/little_prince_1 = 1,//this guy has a wopping 1200 hp
/mob/living/simple_animal/hostile/mini_censored = 1,
/mob/living/simple_animal/hostile/meatblob = 1,
/mob/living/simple_animal/hostile/meatblob/gunner = 1,
/mob/living/simple_animal/hostile/meatblob/gunner/shotgun = 1,
/mob/living/simple_animal/hostile/meatblob/gunner/sniper = 1,
/mob/living/simple_animal/hostile/slime/big = 1//ML's chosen
)
17 changes: 17 additions & 0 deletions ModularTegustation/tegu_items/enkephalin_rush/facility.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//move this to a mapping folder
/obj/effect/spawner/room/dist4_briah
name = "district 4 briah layer spawner"
dir = NORTH
icon_state = "random_room"
room_width = 54
room_height = 70
room_type = "enkephalin_rush"


/datum/map_template/random_room/enkephalin_rush/dist4_briah
centerspawner = FALSE
template_width = 49
template_height = 35
room_type = "enkephalin_rush"
weight = 1
mappath = "_maps/templates/enkephalin_rush/dist4_briah.dmm"
77 changes: 77 additions & 0 deletions ModularTegustation/tegu_items/enkephalin_rush/landmarks.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
//Abnormalities that are mapped into enkephalin rush. Generally none should teleport or overall cause inconvenience to people outside the surrounding area
GLOBAL_LIST_INIT(assiyah, list(//HE's and TETHs
/mob/living/simple_animal/hostile/abnormality/puss_in_boots,
/mob/living/simple_animal/hostile/abnormality/woodsman,
/mob/living/simple_animal/hostile/abnormality/redblooded,
/mob/living/simple_animal/hostile/abnormality/funeral,
/mob/living/simple_animal/hostile/abnormality/scarecrow,
/mob/living/simple_animal/hostile/abnormality/golden_apple,
/mob/living/simple_animal/hostile/abnormality/shock_centipede,
/mob/living/simple_animal/hostile/abnormality/ardor_moth,
/mob/living/simple_animal/hostile/abnormality/porccubus,
))

GLOBAL_LIST_INIT(briah, list(//WAW
/mob/living/simple_animal/hostile/abnormality/warden,
/mob/living/simple_animal/hostile/abnormality/thunder_bird,
/mob/living/simple_animal/hostile/abnormality/judgement_bird,
/mob/living/simple_animal/hostile/abnormality/big_bird,
/mob/living/simple_animal/hostile/abnormality/nosferatu,
/mob/living/simple_animal/hostile/abnormality/red_hood,
/mob/living/simple_animal/hostile/abnormality/big_wolf,
/mob/living/simple_animal/hostile/abnormality/dreaming_current,
))

GLOBAL_LIST_INIT(atziluth, list(//ALEPH
/mob/living/simple_animal/hostile/abnormality/nobody_is,
/mob/living/simple_animal/hostile/abnormality/mountain,
/mob/living/simple_animal/hostile/abnormality/melting_love,
/mob/living/simple_animal/hostile/abnormality/censored,

))

//Split into 3 groups, Combat for damaging abnos, Support for ranged, AOE and otherwise support abnos, and tank for abnos that can take a beating reliably
/obj/effect/landmark/abnospawn/assiyah
name = "assiyah abno spawner"
desc = "It spawns an abno. Notify a coder. Thanks!"
icon = 'icons/effects/landmarks_static.dmi'
icon_state = "x4"

/obj/effect/landmark/abnospawn/assiyah/Initialize()//Use subtypes instead of repeating all this code
..()
var/spawning = pick_n_take(GLOB.assiyah)
if(spawning)
var/mob/living/simple_animal/hostile/abnormality/A = new spawning(get_turf(src))
addtimer(CALLBACK(A, TYPE_PROC_REF(/mob/living/simple_animal/hostile/abnormality, BreachEffect), BREACH_PINK), 2 SECONDS)
SSabnormality_queue.possible_abnormalities[HE_LEVEL] -= spawning
return INITIALIZE_HINT_QDEL

/obj/effect/landmark/abnospawn/briah
name = "briah abno spawner"
desc = "It spawns an abno. Notify a coder. Thanks!"
icon = 'icons/effects/landmarks_static.dmi'
icon_state = "x4"

/obj/effect/landmark/abnospawn/briah/Initialize()
..()
var/spawning = pick_n_take(GLOB.briah)
if(spawning)
var/mob/living/simple_animal/hostile/abnormality/A = new spawning(get_turf(src))
addtimer(CALLBACK(A, TYPE_PROC_REF(/mob/living/simple_animal/hostile/abnormality, BreachEffect), BREACH_PINK), 2 SECONDS)
SSabnormality_queue.possible_abnormalities[WAW_LEVEL] -= spawning
return INITIALIZE_HINT_QDEL

/obj/effect/landmark/abnospawn/atziluth
name = "atziluth abno spawner"
desc = "It spawns an abno. Notify a coder. Thanks!"
icon = 'icons/effects/landmarks_static.dmi'
icon_state = "x4"

/obj/effect/landmark/abnospawn/atziluth/Initialize()
..()
var/spawning = pick_n_take(GLOB.atziluth)
if(spawning)
var/mob/living/simple_animal/hostile/abnormality/A = new spawning(get_turf(src))
addtimer(CALLBACK(A, TYPE_PROC_REF(/mob/living/simple_animal/hostile/abnormality, BreachEffect), BREACH_PINK), 2 SECONDS)
SSabnormality_queue.possible_abnormalities[ALEPH_LEVEL] -= spawning
return INITIALIZE_HINT_QDEL
Loading

0 comments on commit 91c5c14

Please sign in to comment.