Extra Plushies + Plushify Spell (#27384)

* Plushie PR

TODO-
Fix borgs becoming mind
Add to smite list
Add diona plush effect

* Fixed Issues

Added alien plush
Added loadout
Yeah

* Apply suggestions from code review

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: Drakeven <50409888+Drakeven@users.noreply.github.com>

* WIP

Will finish later

* Fixed the various issues

Should be working now! Changed the bread smite to a 'generic item' smite and then made it a specifcally breaded smite.

* Minor typo fixing

And stuff

* WIP Conversion

Converting all the attacks into more sleek attacks, will need to finish.

* Fixes galore

Yippie!

* Russian revolver wasn't working

now you can self-shoot again! Horay!

* You can no longer eat spraycans

IPC clowns everywhere devistated

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: Drakeven <50409888+Drakeven@users.noreply.github.com>

* A tinsy bit of touching up

:)

---------

Signed-off-by: Drakeven <50409888+Drakeven@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
Drakeven
2024-12-23 16:09:24 +00:00
committed by GitHub
co-authored by Contrabang Luc Burzah
parent 33eaf8ae42
commit a5726efe0c
38 changed files with 668 additions and 264 deletions
@@ -256,3 +256,6 @@ and carry the owner just to make sure*/
if(health <= HEALTH_THRESHOLD_CRIT && stat == CONSCIOUS)
KnockOut()
return ..()
/mob/living/carbon/alien/plushify(plushie_override, curse_time)
. = ..(/obj/item/toy/plushie/face_hugger, curse_time)
@@ -2071,6 +2071,10 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
var/obj/item/organ/internal/brain/brain_organ = get_int_organ(/obj/item/organ/internal/brain)
return brain_organ.damage >= (brain_organ.max_damage * threshold_level)
/mob/living/carbon/human/plushify(plushie_override, curse_time)
. = ..(dna.species.plushie_type, curse_time)
/*
* Invokes a hallucination on the mob. Hallucination must be a path or a string of a path
*/
@@ -2081,3 +2085,4 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
return
hallucination_to_make = string_path
new hallucination_to_make(get_turf(src), src)
@@ -196,6 +196,9 @@
var/list/autohiss_extra_map = null
var/list/autohiss_exempt = null
/// What plushie the species will turn into if turned into a plushie.
var/plushie_type = /obj/item/toy/plushie/humanplushie
/datum/species/New()
unarmed = new unarmed_type()
if(!sprite_sheet_name)
@@ -26,6 +26,7 @@
female_scream_sound = 'sound/goonstation/voice/male_scream.ogg'
female_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
female_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg' //Abductors always scream like guys
plushie_type = /obj/item/toy/plushie/abductor
var/team = 1
var/scientist = FALSE // vars to not pollute spieces list with castes
@@ -61,6 +61,8 @@
"pulls out a secret stash of herbicide and takes a hearty swig!",
"is pulling themselves apart!")
plushie_type = /obj/item/toy/plushie/dionaplushie
/datum/species/diona/can_understand(mob/other)
if(isnymph(other))
return TRUE
@@ -29,6 +29,8 @@
"is sucking in warm air!",
"is holding their breath!")
plushie_type = /obj/item/toy/plushie/draskplushie
species_traits = list(LIPS, NO_HAIR)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT
bodyflags = HAS_SKIN_TONE | HAS_BODY_MARKINGS | BALD | SHAVED
@@ -30,6 +30,8 @@
flesh_color = "#a598ad"
blood_color = "#A200FF"
plushie_type = /obj/item/toy/plushie/greyplushie
/datum/species/grey/handle_dna(mob/living/carbon/human/H, remove)
..()
H.dna.SetSEState(GLOB.remotetalkblock, !remove, TRUE)
@@ -55,3 +55,5 @@
"s" = list("z", "zs", "zzz", "zzsz")
)
autohiss_exempt = list("Chittin")
plushie_type = /obj/item/toy/plushie/kidanplushie
@@ -74,6 +74,8 @@
"is frying their own circuits!",
"is blocking their ventilation port!")
plushie_type = /obj/item/toy/plushie/ipcplushie
/datum/species/machine/on_species_gain(mob/living/carbon/human/H)
..()
@@ -59,6 +59,9 @@
"is ripping their wings off!",
"is holding their breath!"
)
plushie_type = /obj/item/toy/plushie/nianplushie
/datum/species/moth/updatespeciescolor(mob/living/carbon/human/H, owner_sensitive = 1) //Handling species-specific skin-tones for the nian race.
if(H.dna.species.bodyflags & HAS_ICON_SKIN_TONE)
var/new_icobase = 'icons/mob/human_races/nian/r_moth.dmi' //Default nian.
@@ -51,6 +51,8 @@
"s" = list("ss", "sss", "ssss")
)
plushie_type = /obj/item/toy/plushie/plasmamanplushie
/datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE)
var/current_job = J.title
var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman
@@ -43,3 +43,5 @@
"is twisting their own neck!",
"makes like a fish and suffocates!",
"is strangling themselves with their own tendrils!")
plushie_type = /obj/item/toy/plushie/skrellplushie
@@ -59,6 +59,8 @@
var/reagent_skin_coloring = FALSE
plushie_type = /obj/item/toy/plushie/slimeplushie
/datum/species/slime/on_species_gain(mob/living/carbon/human/H)
..()
var/datum/action/innate/regrow/grow = new()
@@ -56,5 +56,7 @@
)
autohiss_exempt = list("Siik'tajr")
plushie_type = /obj/item/toy/plushie/grey_cat
/datum/species/tajaran/handle_death(gibbed, mob/living/carbon/human/H)
H.stop_tail_wagging()
@@ -62,6 +62,8 @@
)
autohiss_exempt = list("Sinta'unathi")
plushie_type = /obj/item/toy/plushie/lizardplushie
/datum/species/unathi/on_species_gain(mob/living/carbon/human/H)
..()
var/datum/action/innate/unathi_ignite/fire = new()
@@ -72,6 +72,8 @@
speciesbox = /obj/item/storage/box/survival_vox
plushie_type = /obj/item/toy/plushie/voxplushie
/datum/species/vox/handle_death(gibbed, mob/living/carbon/human/H)
H.stop_tail_wagging()
@@ -47,5 +47,7 @@
"is twisting their own neck!",
"is holding their breath!")
plushie_type = /obj/item/toy/plushie/red_fox
/datum/species/vulpkanin/handle_death(gibbed, mob/living/carbon/human/H)
H.stop_tail_wagging()
+21
View File
@@ -1184,5 +1184,26 @@
/mob/living/proc/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
return FALSE
/mob/living/proc/plushify(plushie_override, curse_time = 10 MINUTES)
var/mob/living/simple_animal/shade/sword/generic_item/plushvictim = new(get_turf(src))
var/obj/item/toy/plushie/plush_type = pick(subtypesof(/obj/item/toy/plushie) - typesof(/obj/item/toy/plushie/fluff) - typesof(/obj/item/toy/plushie/carpplushie)) //exclude the base type.
if(plushie_override)
plush_type = plushie_override
var/obj/item/toy/plushie/plush_outcome = new plush_type(get_turf(src))
plushvictim.forceMove(plush_outcome)
plushvictim.key = key
plushvictim.RegisterSignal(plush_outcome, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/mob/living/simple_animal/shade/sword/generic_item, handle_item_deletion))
plushvictim.name = name
plush_outcome.name = "[name] plushie"
if(curse_time == -1)
qdel(src)
else
plush_outcome.cursed_plushie_victim = src
forceMove(plush_outcome)
notransform = TRUE
status_flags |= GODMODE
addtimer(CALLBACK(plush_outcome, TYPE_PROC_REF(/obj/item/toy/plushie, un_plushify)), curse_time)
to_chat(plushvictim, "<span class='warning'>You have been cursed into an enchanted plush doll! At least you can still move around a bit...</span>")
/mob/living/proc/sec_hud_set_ID()
return
@@ -1809,3 +1809,8 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
if(ourapc.malfai && !(src in ourapc.malfai.connected_robots))
return FALSE
return TRUE
/mob/living/silicon/robot/plushify(plushie_override, curse_time)
if(curse_time == -1)
QDEL_NULL(mmi)
return ..()
@@ -594,3 +594,6 @@
if(silicon_hat)
. += "<span class='notice'>They are wearing a [bicon(silicon_hat)] [silicon_hat.name].<span>"
. += "<span class='notice'>Use an empty hand on [src] on grab mode to remove [silicon_hat].<span>"
/mob/living/silicon/plushify(plushie_override, curse_time)
. = ..(/obj/item/toy/plushie/borgplushie, curse_time)
@@ -69,13 +69,13 @@
if(istype(host_sword))
health = host_sword.obj_integrity
/mob/living/simple_animal/shade/sword/bread
name = "Bread spirit"
/mob/living/simple_animal/shade/sword/generic_item
name = "Trapped spirit"
/mob/living/simple_animal/shade/sword/bread/update_runechat_msg_location()
/mob/living/simple_animal/shade/sword/generic_item/update_runechat_msg_location()
runechat_msg_location = loc.UID()
/mob/living/simple_animal/shade/sword/bread/proc/handle_bread_deletion(source)
/mob/living/simple_animal/shade/sword/generic_item/proc/handle_item_deletion(source)
SIGNAL_HANDLER
qdel(src)