Merge branch 'master' of https://github.com/Thalpy/Citadel-Station-13
This commit is contained in:
36
code/modules/clothing/shoes/taeclowndo.dm
Normal file
36
code/modules/clothing/shoes/taeclowndo.dm
Normal file
@@ -0,0 +1,36 @@
|
||||
/obj/item/clothing/shoes/clown_shoes/taeclowndo
|
||||
var/list/spelltypes = list (
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pie,
|
||||
/obj/effect/proc_holder/spell/aimed/banana_peel,
|
||||
/obj/effect/proc_holder/spell/targeted/touch/megahonk,
|
||||
/obj/effect/proc_holder/spell/targeted/touch/bspie,
|
||||
)
|
||||
var/list/spells = list()
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/taeclowndo/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(!(H.has_trait(TRAIT_CLUMSY)) && !(H.mind && H.mind.assigned_role == "Clown"))
|
||||
return
|
||||
if(slot == SLOT_SHOES)
|
||||
spells = new
|
||||
for(var/spell in spelltypes)
|
||||
var/obj/effect/proc_holder/spell/S = new spell
|
||||
spells += S
|
||||
S.charge_counter = 0
|
||||
S.start_recharge()
|
||||
H.mind.AddSpell(S)
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/taeclowndo/dropped(mob/user)
|
||||
. = ..()
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_item_by_slot(SLOT_SHOES) == src)
|
||||
for(var/spell in spells)
|
||||
var/obj/effect/proc_holder/spell/S = spell
|
||||
H.mind.spell_list.Remove(S)
|
||||
qdel(S)
|
||||
@@ -62,6 +62,28 @@
|
||||
/obj/item/reagent_containers/food/snacks/pie/cream/nostun
|
||||
stunning = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pie/cream/body
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pie/cream/body/Destroy()
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/A in contents)
|
||||
A.forceMove(T)
|
||||
A.throw_at(T, 1, 1)
|
||||
. = ..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pie/cream/body/On_Consume(mob/living/carbon/M)
|
||||
if(!reagents.total_volume) //so that it happens on the last bite
|
||||
if(iscarbon(M) && contents.len)
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/A in contents)
|
||||
A.forceMove(T)
|
||||
A.throw_at(T, 1, 1)
|
||||
M.visible_message("[src] bursts out of [M]!</span>")
|
||||
M.emote("scream")
|
||||
M.Knockdown(40)
|
||||
M.adjustBruteLoss(60)
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pie/berryclafoutis
|
||||
name = "berry clafoutis"
|
||||
desc = "No black birds, this is a good sign."
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
The 'fire' activator will cause the mechanism to attempt to launch objects at the coordinates, if possible. Note that the \
|
||||
projectile needs to be inside the machine, or on an adjacent tile, and must be medium sized or smaller. The assembly \
|
||||
must also be a gun if you wish to launch something while the assembly is in hand."
|
||||
complexity = 75
|
||||
complexity = 50
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
size = 4
|
||||
cooldown_per_use = 30
|
||||
@@ -306,7 +306,7 @@
|
||||
desc = "Used to stun a target holding the device via electricity."
|
||||
icon_state = "power_relay"
|
||||
extended_desc = "Attempts to stun the holder of this device, with the strength input being the strength of the stun, from 1 to 70."
|
||||
complexity = 60
|
||||
complexity = 30
|
||||
size = 4
|
||||
inputs = list("strength" = IC_PINTYPE_NUMBER)
|
||||
activators = list("stun" = IC_PINTYPE_PULSE_IN, "on success" = IC_PINTYPE_PULSE_OUT, "on fail" = IC_PINTYPE_PULSE_OUT)
|
||||
@@ -340,4 +340,4 @@
|
||||
var/mob/living/carbon/human/H = L
|
||||
H.forcesay(GLOB.hit_appends)
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -74,6 +74,8 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/proc/fire_projectile(mob/living/user, atom/target)
|
||||
current_amount--
|
||||
if(!projectile_type)
|
||||
return
|
||||
for(var/i in 1 to projectiles_per_fire)
|
||||
var/obj/item/projectile/P = new projectile_type(user.loc)
|
||||
P.firer = user
|
||||
|
||||
@@ -94,3 +94,87 @@
|
||||
M.Stun(40)
|
||||
M.petrify()
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/melee/touch_attack/megahonk
|
||||
name = "\improper honkmother's blessing"
|
||||
desc = "You've got a feeling they won't be laughing after this one. Honk honk."
|
||||
catchphrase = "HONKDOOOOUKEN!"
|
||||
on_use_sound = 'sound/items/airhorn.ogg'
|
||||
icon = 'icons/mecha/mecha_equipment.dmi'
|
||||
icon_state = "mecha_honker"
|
||||
|
||||
/obj/item/melee/touch_attack/megahonk/afterattack(atom/target, mob/living/carbon/user, proximity)
|
||||
if(!proximity || !iscarbon(target) || !iscarbon(user) || user.handcuffed)
|
||||
return
|
||||
user.say(catchphrase, forced = "spell")
|
||||
playsound(get_turf(target), on_use_sound,100,1)
|
||||
for(var/mob/living/carbon/M in (hearers(1, target) - user)) //3x3 around the target, not affecting the user
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
|
||||
continue
|
||||
var/mul = (M==target ? 1 : 0.5)
|
||||
to_chat(M, "<font color='red' size='7'>HONK</font>")
|
||||
M.SetSleeping(0)
|
||||
M.stuttering += 20*mul
|
||||
M.adjustEarDamage(0, 30*mul)
|
||||
M.Knockdown(60*mul)
|
||||
if(prob(40))
|
||||
M.Knockdown(200*mul)
|
||||
else
|
||||
M.Jitter(500*mul)
|
||||
|
||||
charges--
|
||||
if(charges <= 0)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/melee/touch_attack/megahonk/attack_self(mob/user)
|
||||
. = ..()
|
||||
to_chat(user, "<span class='notice'>\The [src] disappears, to honk another day.</span>")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/melee/touch_attack/bspie
|
||||
name = "\improper bluespace pie"
|
||||
desc = "A thing you can barely comprehend as you hold it in your hand. You're fairly sure you could fit an entire body inside."
|
||||
on_use_sound = 'sound/magic/demon_consume.ogg'
|
||||
icon = 'icons/obj/food/piecake.dmi'
|
||||
icon_state = "frostypie"
|
||||
color = "#000077"
|
||||
|
||||
/obj/item/melee/touch_attack/bspie/attack_self(mob/user)
|
||||
. = ..()
|
||||
to_chat(user, "<span class='notice'>You smear \the [src] on your chest! </span>")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/melee/touch_attack/bspie/afterattack(atom/target, mob/living/carbon/user, proximity)
|
||||
if(!proximity || !iscarbon(target) || !iscarbon(user) || user.handcuffed)
|
||||
return
|
||||
if(target == user)
|
||||
to_chat(user, "<span class='notice'>You smear \the [src] on your chest!</span>")
|
||||
qdel(src)
|
||||
return
|
||||
var/mob/living/carbon/M = target
|
||||
|
||||
user.visible_message("<span class='warning'>[user] is trying to stuff [M]\s body into \the [src]!</span>")
|
||||
if(do_mob(user, M, 250))
|
||||
var/name = M.real_name
|
||||
var/obj/item/reagent_containers/food/snacks/pie/cream/body/pie = new(get_turf(M))
|
||||
pie.name = "\improper [name] [pie.name]"
|
||||
|
||||
playsound(get_turf(target), on_use_sound, 50, 1)
|
||||
|
||||
/*
|
||||
var/obj/item/bodypart/head = M.get_bodypart("head")
|
||||
if(head)
|
||||
head.drop_limb()
|
||||
head.throw_at(get_turf(head), 1, 1)
|
||||
qdel(M)
|
||||
*/
|
||||
M.forceMove(pie)
|
||||
|
||||
|
||||
charges--
|
||||
|
||||
if(charges <= 0)
|
||||
qdel(src)
|
||||
|
||||
86
code/modules/spells/spell_types/taeclowndo.dm
Normal file
86
code/modules/spells/spell_types/taeclowndo.dm
Normal file
@@ -0,0 +1,86 @@
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pie
|
||||
name = "Summon Creampie"
|
||||
desc = "A clown's weapon of choice. Use this to summon a fresh pie, just waiting to acquaintain itself with someone's face."
|
||||
invocation_type = "none"
|
||||
include_user = 1
|
||||
range = -1
|
||||
clothes_req = 0
|
||||
item_type = /obj/item/reagent_containers/food/snacks/pie/cream
|
||||
|
||||
charge_max = 30
|
||||
cooldown_min = 30
|
||||
action_icon = 'icons/obj/food/piecake.dmi'
|
||||
action_icon_state = "pie"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/banana_peel
|
||||
name = "Conjure Banana Peel"
|
||||
desc = "Make a banana peel appear out of thin air right under someone's feet!"
|
||||
charge_type = "recharge"
|
||||
charge_max = 100
|
||||
cooldown_min = 100
|
||||
clothes_req = 0
|
||||
invocation_type = "none"
|
||||
range = 7
|
||||
selection_type = "view"
|
||||
projectile_type = null
|
||||
|
||||
active_msg = "You focus, your mind reaching to the clown dimension, ready to make a peel matrialize wherever you want!"
|
||||
deactive_msg = "You relax, the peel remaining right in the \"thin air\" it would appear out of."
|
||||
action_icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
base_icon_state = "banana_peel"
|
||||
action_icon_state = "banana"
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/banana_peel/cast(list/targets, mob/user = usr)
|
||||
var/target = get_turf(targets[1])
|
||||
|
||||
if(get_dist(user,target)>range)
|
||||
to_chat(user, "<span class='notice'>\The [target] is too far away!</span>")
|
||||
return
|
||||
|
||||
. = ..()
|
||||
new /obj/item/grown/bananapeel(target)
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/banana_peel/update_icon()
|
||||
if(!action)
|
||||
return
|
||||
if(active)
|
||||
action.button_icon_state = base_icon_state
|
||||
else
|
||||
action.button_icon_state = action_icon_state
|
||||
|
||||
action.UpdateButtonIcon()
|
||||
return
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/touch/megahonk
|
||||
name = "Mega HoNk"
|
||||
desc = "This spell channels your inner clown powers, concentrating them into one massive HONK."
|
||||
hand_path = /obj/item/melee/touch_attack/megahonk
|
||||
|
||||
charge_max = 100
|
||||
clothes_req = 0
|
||||
cooldown_min = 100
|
||||
|
||||
action_icon = 'icons/mecha/mecha_equipment.dmi'
|
||||
action_icon_state = "mecha_honker"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/touch/bspie
|
||||
name = "Bluespace Banana Pie"
|
||||
desc = "An entire body would fit in there!"
|
||||
hand_path = /obj/item/melee/touch_attack/bspie
|
||||
|
||||
charge_max = 450
|
||||
clothes_req = 0
|
||||
cooldown_min = 450
|
||||
|
||||
action_icon = 'icons/obj/food/piecake.dmi'
|
||||
action_icon_state = "frostypie"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -837,6 +837,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
surplus = 0
|
||||
include_modes = list(/datum/game_mode/nuclear/clown_ops)
|
||||
|
||||
datum/uplink_item/stealthy_tools/taeclowndo_shoes
|
||||
name = "Tae-clown-do Shoes"
|
||||
desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn."
|
||||
cost = 12
|
||||
item = /obj/item/clothing/shoes/clown_shoes/taeclowndo
|
||||
include_modes = list(/datum/game_mode/nuclear/clown_ops)
|
||||
|
||||
/datum/uplink_item/stealthy_tools/frame
|
||||
name = "F.R.A.M.E. PDA Cartridge"
|
||||
desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \
|
||||
@@ -1382,6 +1389,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
item = /obj/item/dnainjector/clumsymut
|
||||
restricted_roles = list("Clown")
|
||||
|
||||
/datum/uplink_item/role_restricted/taeclowndo_shoes
|
||||
name = "Tae-clown-do Shoes"
|
||||
desc = "A pair of shoes for the most elite agents of the honkmotherland. They grant the mastery of taeclowndo with some honk-fu moves as long as they're worn."
|
||||
cost = 14
|
||||
item = /obj/item/clothing/shoes/clown_shoes/taeclowndo
|
||||
restricted_roles = list("Clown")
|
||||
|
||||
/datum/uplink_item/role_restricted/mimery
|
||||
name = "Guide to Advanced Mimery Series"
|
||||
desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. Obviously only works for Mimes."
|
||||
|
||||
10
html/changelogs/AutoChangeLog-pr-8473.yml
Normal file
10
html/changelogs/AutoChangeLog-pr-8473.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
author: "Useroth"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Taeclowndo shoes which grant the four following abilities:
|
||||
- Conjuring a cream pie right into their hand. Every three seconds.
|
||||
- Making a banana peel appear out of thin air at the tile of the clown's choice. Every ten seconds.
|
||||
- Mega HoNk. A touch-ranged, very small AOE ability, with effect equal to being honked by a Honkerblast on a clown mech, with the effects halved for anyone who isn't its direct target. Every ten seconds.
|
||||
- Bluespace Banana Pie. You don't throw this one... not right away at least. This baby can fit an entire body inside. Good for disposal of evidence. 25 second-long action, 45 second cooldown. Also produces a \"[victim's name] cream pie\". The body drops out of the pie if you splat it somewhere or destroy the pie. If you eat it, it will chestburst out of you a'la monkey cube.
|
||||
|
||||
It's a 14 TC item for traitor clowns and a 12 TC item for clown-ops."
|
||||
@@ -1497,6 +1497,7 @@
|
||||
#include "code\modules\clothing\shoes\colour.dm"
|
||||
#include "code\modules\clothing\shoes\magboots.dm"
|
||||
#include "code\modules\clothing\shoes\miscellaneous.dm"
|
||||
#include "code\modules\clothing\shoes\taeclowndo.dm"
|
||||
#include "code\modules\clothing\shoes\vg_shoes.dm"
|
||||
#include "code\modules\clothing\spacesuits\_spacesuits.dm"
|
||||
#include "code\modules\clothing\spacesuits\chronosuit.dm"
|
||||
@@ -2664,6 +2665,7 @@
|
||||
#include "code\modules\spells\spell_types\shapeshift.dm"
|
||||
#include "code\modules\spells\spell_types\spacetime_distortion.dm"
|
||||
#include "code\modules\spells\spell_types\summonitem.dm"
|
||||
#include "code\modules\spells\spell_types\taeclowndo.dm"
|
||||
#include "code\modules\spells\spell_types\the_traps.dm"
|
||||
#include "code\modules\spells\spell_types\touch_attacks.dm"
|
||||
#include "code\modules\spells\spell_types\trigger.dm"
|
||||
|
||||
Reference in New Issue
Block a user