Skip to content

Commit

Permalink
Jester of Nihil Part 2 (of 3) (#1736)
Browse files Browse the repository at this point in the history
Adds the jester of nihil

adds some text

adds some stuff

minor addition

Adds prototype code for friendly magical girls

adds portals

an update

actually starts the nihil event

adds code that needs testing

small text change

updates KOD

adds an icon update proc

fixes some icon stuff and blurbs

progress

adds debug verbs.

Sweet, sweet progress!

Adds death and rewards

Adds some basic attacks for the jester of nihil and bugfixes

fixes some leftover test code

fixes linters

should fix linters for real this time

maybe this will fix linters this time

some code improvements

adds fragment of bliss

Fixes a bunch of stuff resulting from the first test

makes code reachable

more adjustments

adds even more sanity checks

we call this a difficulty tweak

adds nihil to some blacklists
  • Loading branch information
Coxswain-Navigator authored May 2, 2024
1 parent c5ccd3a commit 873d9be
Show file tree
Hide file tree
Showing 16 changed files with 1,166 additions and 98 deletions.
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/48x48.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/48x64.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/64x64.dmi
Binary file not shown.
43 changes: 42 additions & 1 deletion code/controllers/subsystem/lobotomy_events.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#define APOCALYPSE 1
#define YINYANG 2
#define NIHIL 3
SUBSYSTEM_DEF(lobotomy_events)
name = "Lobotomy Corp Events"
flags = SS_KEEP_TIMING | SS_BACKGROUND
Expand All @@ -13,6 +14,14 @@ SUBSYSTEM_DEF(lobotomy_events)
/mob/living/simple_animal/hostile/abnormality/judgement_bird)
var/list/AB_breached = list()

//Jester Of Nihil
var/list/JN_types = list(
/mob/living/simple_animal/hostile/abnormality/wrath_servant,
/mob/living/simple_animal/hostile/abnormality/hatred_queen,
/mob/living/simple_animal/hostile/abnormality/despair_knight,
/mob/living/simple_animal/hostile/abnormality/greed_king)
var/list/JN_breached = list()

// Yin and Yang
var/list/YY_types = list(
/mob/living/simple_animal/hostile/abnormality/yin,
Expand Down Expand Up @@ -89,6 +98,14 @@ SUBSYSTEM_DEF(lobotomy_events)
return
//Further checks for event abnos can go here.

//proc for handling nihil list, works differently as the magical girls and the jester of nihil can breach independantly
/datum/controller/subsystem/lobotomy_events/proc/AddNihilMobs()
for(var/datum/abnormality/abno_ref in SSlobotomy_corp.all_abnormality_datums) //Check if they're dead and need to be respawned for the event
if(abno_ref.abno_path in JN_types)
if(!abno_ref.current)
abno_ref.RespawnAbno()
JN_breached += abno_ref.current

/**
* Cleans lists of dead/QDELETED abnormalities.
*/
Expand All @@ -109,6 +126,12 @@ SUBSYSTEM_DEF(lobotomy_events)
prune_list += a
YY_breached -= prune_list
return TRUE
if(NIHIL) //We prune regarldess - Nihil is dead or despawned
for(var/mob/living/simple_animal/hostile/abnormality/a in JN_breached)
if(QDELETED(a) || !istype(a))
prune_list += a
JN_breached -= prune_list
return TRUE
return FALSE

/datum/controller/subsystem/lobotomy_events/proc/SpawnEvent(event_type = 0)
Expand Down Expand Up @@ -159,10 +182,28 @@ SUBSYSTEM_DEF(lobotomy_events)
type_list = AB_types.Copy()
if(YINYANG)
type_list = YY_types.Copy()
for(var/type in type_list)
if(NIHIL)
type_list = JN_types.Copy()
type_list += /mob/living/simple_animal/hostile/abnormality/nihil

for(var/datum/abnormality/abno_ref in SSlobotomy_corp.all_abnormality_datums) //Check if they're already in the facility
if(abno_ref.abno_path in type_list)
type_list -= abno_ref.abno_path
if(!abno_ref.current)
abno_ref.RespawnAbno()

for(var/type in type_list) //Spawn the abnormalities
SSabnormality_queue.queued_abnormality = type
SSabnormality_queue.SpawnAbno()
sleep(1 SECONDS)

if(event_type == NIHIL) //Only nihil needs to breach - this is for the next bit of code
type_list = list()
type_list += /mob/living/simple_animal/hostile/abnormality/nihil

for(var/datum/abnormality/abno_ref in SSlobotomy_corp.all_abnormality_datums) //Now that the abnormalities are spawned, breach them
if(abno_ref.abno_path in type_list)
abno_ref.qliphoth_change(-999)
return

//proc for handling season subsystem
Expand Down
1 change: 1 addition & 0 deletions code/modules/admin/admin_verbs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ GLOBAL_PROTECT(admin_verbs_debug)
/client/proc/cmd_display_init_log,
/client/proc/cmd_display_overlay_log,
/client/proc/reload_configuration,
/client/proc/spawn_abnormality_boss,
/client/proc/atmos_control,
/client/proc/reload_cards,
/client/proc/validate_cards,
Expand Down
14 changes: 14 additions & 0 deletions code/modules/admin/verbs/debug.dm
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,20 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
/proc/cmp_timer_data(list/a, list/b)
return b["count"] - a["count"]

/client/proc/spawn_abnormality_boss()
set category = "Admin.Fun"
set name = "Spawn Abnormality Event Boss"
//The order and contents of the bosslist should match the defines set in lobotomy_events
var/list/bosslist = list("Apocalypse Bird","Ying and Yang","The Jester of Nihil") //TBA : General bee, nobody is.
if(!SSticker.HasRoundStarted())
alert("Wait until the game starts")
return
var/M = input(usr,"Who would you like to spawn? (This will take a few seconds to load)","Select a boss") as null|anything in bosslist
if(!M)
return
SSlobotomy_events.SpawnEventAbnos(bosslist.Find(M))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawned abnormality boss [M]")

#ifdef TESTING
/client/proc/check_missing_sprites()
set category = "Debug"
Expand Down
Loading

0 comments on commit 873d9be

Please sign in to comment.