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
@@ -58,33 +58,33 @@
desc = "The hunger..."
icon_state = "alien_acid"
/obj/item/melee/touch_attack/alien/consume_resin/afterattack__legacy__attackchain(atom/target, mob/living/carbon/user, proximity)
/obj/item/melee/touch_attack/alien/consume_resin/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(target == user)
to_chat(user, "<span class='noticealien'>You stop trying to consume resin.</span>")
..()
return
if(!proximity || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
if(!proximity_flag || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
return
var/mob/living/carbon/C = user
if(istype(target, /obj/structure/alien/weeds))
qdel(target)
if(istype(target, /obj/structure/alien/weeds/node))
user.add_plasma(50)
user.visible_message("<span class='alertalien'>[user] rips and tears into [target] with their teeth!</span>", "<span class='alertalien'>You viciously rip apart and consume [target]!</span>")
C.add_plasma(50)
C.visible_message("<span class='alertalien'>[C] rips and tears into [target] with their teeth!</span>", "<span class='alertalien'>You viciously rip apart and consume [target]!</span>")
return
if(!plasma_check(10, user))
to_chat(user, "<span class='noticealien'>You don't have enough plasma to perform this action!</span>")
if(!plasma_check(10, C))
to_chat(C, "<span class='noticealien'>You don't have enough plasma to perform this action!</span>")
return
var/static/list/resin_objects = list(/obj/structure/alien/resin, /obj/structure/alien/egg, /obj/structure/bed/nest, /obj/structure/bed/revival_nest)
for(var/resin_type in resin_objects)
if(!istype(target, resin_type))
continue
user.visible_message("<span class='alertalien'>[user] rips and tears into [target] with their teeth!</span>")
if(!do_after(user, 3 SECONDS, target = target))
C.visible_message("<span class='alertalien'>[C] rips and tears into [target] with their teeth!</span>")
if(!do_after(C, 3 SECONDS, target = target))
return
to_chat(user, "<span class='alertalien'>You viciously rip apart and consume [target]!</span>")
user.add_plasma(-10)
to_chat(C, "<span class='alertalien'>You viciously rip apart and consume [target]!</span>")
C.add_plasma(-10)
qdel(target)
..()
#undef RESIN_WALL
#undef RESIN_NEST
@@ -11,26 +11,26 @@
desc = "A fistfull of death."
icon_state = "alien_acid"
/obj/item/melee/touch_attack/alien/corrosive_acid/afterattack__legacy__attackchain(atom/target, mob/living/carbon/user, proximity)
/obj/item/melee/touch_attack/alien/corrosive_acid/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(target == user)
to_chat(user, "<span class='noticealien'>You withdraw your readied acid.</span>")
..()
return
if(!proximity || isalien(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) // Don't want xenos ditching out of cuffs
if(!proximity_flag || isalien(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) // Don't want xenos ditching out of cuffs
return
if(!plasma_check(200, user))
to_chat(user, "<span class='noticealien'>You don't have enough plasma to perform this action!</span>")
var/mob/living/carbon/C = user
if(!plasma_check(200, C))
to_chat(C, "<span class='noticealien'>You don't have enough plasma to perform this action!</span>")
return
var/acid_damage_modifier = 100
if(isliving(target))
acid_damage_modifier = 50
if(target.acid_act(2 * acid_damage_modifier, acid_damage_modifier))
visible_message("<span class='alertalien'>[user] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid!</span>")
add_attack_logs(user, target, "Applied corrosive acid") // Want this logged
user.add_plasma(-200)
visible_message("<span class='alertalien'>[C] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid!</span>")
add_attack_logs(C, target, "Applied corrosive acid") // Want this logged
C.add_plasma(-200)
else
to_chat(user, "<span class='noticealien'>You cannot dissolve this object.</span>")
..()
to_chat(C, "<span class='noticealien'>You cannot dissolve this object.</span>")
/datum/spell/touch/alien_spell/burning_touch
name = "Blazing touch"
@@ -45,31 +45,30 @@
desc = "The air warps around your hand, somehow the heat doesn't hurt."
icon_state = "alien_acid"
/obj/item/melee/touch_attack/alien/burning_touch/afterattack__legacy__attackchain(atom/target, mob/living/carbon/user, proximity)
/obj/item/melee/touch_attack/alien/burning_touch/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(target == user)
to_chat(user, "<span class='noticealien'>You cool down your boiled aid.</span>")
..()
return
if(!proximity || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
if(!proximity_flag || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
return
if(!plasma_check(100, user))
to_chat(user, "<span class='noticealien'>You don't have enough plasma to perform this action!</span>")
var/mob/living/carbon/C = user
if(!plasma_check(100, C))
to_chat(C, "<span class='noticealien'>You don't have enough plasma to perform this action!</span>")
return
if(isliving(target))
var/mob/living/guy_to_burn = target
add_attack_logs(user, target, "Applied blazing touch") // Want this logged
add_attack_logs(C, target, "Applied blazing touch") // Want this logged
guy_to_burn.adjustFireLoss(60)
guy_to_burn.adjust_fire_stacks(3)
guy_to_burn.IgniteMob()
user.visible_message("<span class='alertalien'>[user] touches [target] and a fireball erupts on contact!</span>")
user.add_plasma(-100)
..()
C.visible_message("<span class='alertalien'>[C] touches [target] and a fireball erupts on contact!</span>")
C.add_plasma(-100)
else
var/static/list/resin_objects = list(/obj/structure/alien/resin, /obj/structure/alien/egg, /obj/structure/bed/nest, /obj/structure/bed/revival_nest)
for(var/resin_type in resin_objects)
if(!istype(target, resin_type))
continue
user.visible_message("<span class='alertalien'>[user] touches [target] and burns right through it!</span>")
user.add_plasma(-100)
C.visible_message("<span class='alertalien'>[C] touches [target] and burns right through it!</span>")
C.add_plasma(-100)
qdel(target)
..()
+5 -5
View File
@@ -24,14 +24,15 @@
/obj/item/melee/touch_attack/banana/apprentice
/obj/item/melee/touch_attack/banana/apprentice/afterattack__legacy__attackchain(atom/target, mob/living/carbon/user, proximity)
/obj/item/melee/touch_attack/banana/apprentice/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(iswizard(target) && target != user)
to_chat(user, "<span class='danger'>Seriously?! Honk THEM, not me!</span>")
return
..()
/obj/item/melee/touch_attack/banana/afterattack__legacy__attackchain(atom/target, mob/living/carbon/user, proximity)
if(!proximity || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
/obj/item/melee/touch_attack/banana/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(!proximity_flag || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
return
var/datum/effect_system/smoke_spread/s = new
@@ -41,7 +42,6 @@
to_chat(user, "<font color='red' size='6'>HONK</font>")
var/mob/living/carbon/human/H = target
H.bananatouched()
..()
/mob/living/carbon/human/proc/bananatouched()
to_chat(src, "<font color='red' size='6'>HONK</font>")
+3 -3
View File
@@ -19,8 +19,9 @@
icon_state = "fleshtostone"
item_state = "fleshtostone"
/obj/item/melee/touch_attack/mime_malaise/afterattack__legacy__attackchain(atom/target, mob/living/carbon/user, proximity)
if(!proximity || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
/obj/item/melee/touch_attack/mime_malaise/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(!proximity_flag || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
return
var/datum/effect_system/smoke_spread/s = new
@@ -29,7 +30,6 @@
var/mob/living/carbon/human/H = target
H.mimetouched()
..()
/mob/living/carbon/human/proc/mimetouched()
Weaken(14 SECONDS)
+12
View File
@@ -71,3 +71,15 @@
cooldown_min = 200 //100 deciseconds reduction per rank
action_icon_state = "statue"
/datum/spell/touch/plushify
name = "Plushify"
desc = "This spell charges your hand with the power to turn your victims into marketable plushies!"
hand_path = /obj/item/melee/touch_attack/plushify
school = "transmutation"
base_cooldown = 600
clothes_req = TRUE
cooldown_min = 200 //100 deciseconds reduction per rank
action_icon_state = "plush"