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)