From b8522a2ae0e9011583a52fa9ef2692bcbde3ccf0 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 29 Jul 2020 20:04:47 -0700 Subject: [PATCH 1/4] ok --- code/modules/instruments/songs/_song.dm | 10 ++++++++++ .../mob/living/simple_animal/guardian/guardian.dm | 12 +++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 463398d2f2..8d40f68cd4 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -303,3 +303,13 @@ return TRUE var/obj/structure/musician/M = parent return M.should_stop_playing(user) + +/datum/song/holoparasite + var/mob/living/simple_animal/hostile/guardian/stand + +/datum/song/holoparasite/updateDialog() + stand.ui_interact(src) + +/datum/song/holoparasite/should_stop_playing(mob/user) + return FALSE + diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 73ebfa7c77..332d781fdd 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -60,11 +60,13 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians var/magic_fluff_string = "You draw the Coder, symbolizing bugs and errors. This shouldn't happen! Submit a bug report!" var/tech_fluff_string = "BOOT SEQUENCE COMPLETE. ERROR MODULE LOADED. THIS SHOULDN'T HAPPEN. Submit a bug report!" var/carp_fluff_string = "CARP CARP CARP SOME SORT OF HORRIFIC BUG BLAME THE CODERS CARP CARP CARP" + /// sigh, fine. + var/datum/song/holoparasite/music_datum /mob/living/simple_animal/hostile/guardian/Initialize(mapload, theme) GLOB.parasites += src updatetheme(theme) - + music_datum = new(src, get_allowed_instrument_ids()) . = ..() /mob/living/simple_animal/hostile/guardian/med_hud_set_health() @@ -84,8 +86,16 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians /mob/living/simple_animal/hostile/guardian/Destroy() GLOB.parasites -= src + QDEL_NULL(music_datum) return ..() +/mob/living/simple_animal/hostile/guardian/verb/music_interact() + set name = "Access Internal Synthesizer" + set desc = "ACcess your internal musical synthesizer" + set category = "IC" + + music_datum.ui_interact(src) + /mob/living/simple_animal/hostile/guardian/proc/updatetheme(theme) //update the guardian's theme if(!theme) theme = pick("magic", "tech", "carp") From ba0c77a8bd2ab70f47b0a121c561ffbcee13c745 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 29 Jul 2020 20:13:39 -0700 Subject: [PATCH 2/4] fix --- code/modules/instruments/songs/_song.dm | 6 ++++++ code/modules/instruments/songs/editor.dm | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 8d40f68cd4..26ed5e5dd3 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -307,9 +307,15 @@ /datum/song/holoparasite var/mob/living/simple_animal/hostile/guardian/stand +/datum/song/holoparasite/New(atom/parent, list/instrument_ids) + . = ..() + stand = istype(parent, /mob/living/simple_animal/hostile/guardian) && parent + /datum/song/holoparasite/updateDialog() stand.ui_interact(src) /datum/song/holoparasite/should_stop_playing(mob/user) return FALSE +/datum/song/holoparasite/check_can_use(mob/user) + return user == stand) diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index d9595797d7..8c5171667a 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -109,8 +109,11 @@ linenum++ updateDialog(usr) // make sure updates when complete +/datum/song/proc/check_can_use(mob/user) + return user.canUseTopic(parent, TRUE, FALSE, FALSE, FALSE) + /datum/song/Topic(href, href_list) - if(!usr.canUseTopic(parent, TRUE, FALSE, FALSE, FALSE)) + if(!check_can_use(usr)) usr << browse(null, "window=instrument") usr.unset_machine() return From 3a773809b6f450dec448b3b98b08cc50deaf9b53 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 31 Jul 2020 00:22:46 -0700 Subject: [PATCH 3/4] Update guardian.dm --- code/modules/mob/living/simple_animal/guardian/guardian.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 332d781fdd..02bf95eaad 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -91,7 +91,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians /mob/living/simple_animal/hostile/guardian/verb/music_interact() set name = "Access Internal Synthesizer" - set desc = "ACcess your internal musical synthesizer" + set desc = "Access your internal musical synthesizer" set category = "IC" music_datum.ui_interact(src) From 1c2bc1b632725e58000af46e782f8e0d172f67e9 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 31 Jul 2020 00:24:48 -0700 Subject: [PATCH 4/4] Update _song.dm --- code/modules/instruments/songs/_song.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 26ed5e5dd3..d842dbc003 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -318,4 +318,4 @@ return FALSE /datum/song/holoparasite/check_can_use(mob/user) - return user == stand) + return (user == stand)