From 91d340dc95d71a6fdf90e6ee2018ae5002eb4174 Mon Sep 17 00:00:00 2001
From: Eric6426-Blossom <92941557+Eric6426-Blossom@users.noreply.github.com>
Date: Sat, 15 Jul 2023 13:53:00 +0200
Subject: [PATCH] ChangesP1
---
.../objects/items/weapons/dnascrambler.dm | 62 ++++++++++++++++++-
1 file changed, 60 insertions(+), 2 deletions(-)
diff --git a/code/game/objects/items/weapons/dnascrambler.dm b/code/game/objects/items/weapons/dnascrambler.dm
index c977da3fda7..347015b8ab5 100644
--- a/code/game/objects/items/weapons/dnascrambler.dm
+++ b/code/game/objects/items/weapons/dnascrambler.dm
@@ -5,6 +5,7 @@
item_state = "syringe_0"
icon_state = "lepopen"
var/used = FALSE
+ var/choice
/obj/item/dnascrambler/update_icon_state()
if(used)
@@ -31,16 +32,35 @@
injected(user, user)
else
user.visible_message("[user] is trying to inject [M] with [src]!")
- if(do_mob(user,M,30))
+ if(do_mob(user,M, 10 SECONDS))
user.visible_message("[user] injects [M] with [src].")
injected(M, user)
else
to_chat(user, "You failed to inject [M].")
+//To-do: Organs change, visual bugs, default set if nothing selected
+/obj/item/dnascrambler/AltClick(mob/user)
+ var/list/specieschange = list("Diona" = image(icon = 'icons/mob/human_races/r_diona.dmi', icon_state = "preview"),
+ "Human" = image(icon = 'icons/mob/human_races/r_human.dmi', icon_state = "preview"),
+ "Skrell" = image(icon = 'icons/mob/human_races/r_skrell.dmi', icon_state = "preview"),
+ "Tajaran" = image(icon = 'icons/mob/human_races/r_tajaran.dmi', icon_state = "preview"),
+ "Unathi" = image(icon = 'icons/mob/human_races/r_lizard.dmi', icon_state = "preview"),
+ "Vulp" = image(icon = 'icons/mob/human_races/r_vulpkanin.dmi', icon_state = "preview"),
+ "Nian" = image(icon = 'icons/mob/human_races/r_moth.dmi', icon_state = "preview"),
+)
+ specieschange["Grey"] = image(icon = 'icons/mob/human_races/r_grey.dmi', icon_state = "preview")
+ specieschange["Kidan"] = image(icon = 'icons/mob/human_races/r_kidan.dmi', icon_state = "preview")
+ specieschange["Plasmaman"] = image(icon = 'icons/mob/human_races/r_plasmaman_sb.dmi', icon_state = "body")
+ specieschange["Slime"] = image(icon = 'icons/mob/human_races/r_slime.dmi', icon_state = "preview")
+ specieschange["Vox"] = image(icon = 'icons/mob/human_races/vox/r_vox.dmi', icon_state = "preview")
+ specieschange["Drask"] = image(icon = 'icons/mob/human_races/r_drask.dmi', icon_state = "template")
+ choice = show_radial_menu(user, src, specieschange, radius = 40)
/obj/item/dnascrambler/proc/injected(mob/living/carbon/human/target, mob/living/carbon/user)
if(istype(target))
var/mob/living/carbon/human/H = target
- scramble(1, H, 100)
+ if(isnull(choice))
+ return
+ scramble(H, choice)
H.real_name = random_name(H.gender, H.dna.species.name) //Give them a name that makes sense for their species.
H.sync_organ_dna(assimilate = 1)
H.update_body()
@@ -54,3 +74,41 @@
used = TRUE
update_icon(UPDATE_ICON_STATE)
name = "used " + name
+
+/obj/item/dnascrambler/proc/scramble(mob/living/carbon/human/M, choice)
+ if(!M || !M.dna)
+ return
+ switch(choice)
+ if("Grey")
+ M.dna.species = new /datum/species/grey()
+ if("Human")
+ M.dna.species = new /datum/species/human()
+ if("Diona")
+ M.dna.species = new /datum/species/diona()
+ if("Kidan")
+ M.dna.species = new /datum/species/kidan()
+ if("Plasmaman")
+ M.dna.species = new /datum/species/plasmaman()
+ if("Skrell")
+ M.dna.species = new /datum/species/skrell()
+ if("Slime")
+ M.dna.species = new /datum/species/slime()
+ if("Tajaran")
+ M.dna.species = new /datum/species/tajaran()
+ if("Unathi")
+ M.dna.species = new /datum/species/unathi()
+ if("Vox")
+ M.dna.species = new /datum/species/vox()
+ if("Vulp")
+ M.dna.species = new /datum/species/vulpkanin()
+ if("Drask")
+ M.dna.species = new /datum/species/drask()
+ if("Nian")
+ M.dna.species = new /datum/species/moth()
+ M.dna.check_integrity()
+ for(var/i = 1, i <= DNA_UI_LENGTH - 1, i++)
+ M.dna.SetUIValue(i, rand(1, 4095), 1)
+ M.dna.UpdateUI()
+ M.dna.UpdateSE()
+ M.UpdateAppearance()
+ domutcheck(M)