diff --git a/code/datums/action.dm b/code/datums/action.dm index be7f82494f9..4ba27fb037d 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -423,6 +423,13 @@ /datum/action/item_action/remove_badge name = "Remove Holobadge" + +// Clown Acrobat Shoes +/datum/action/item_action/slipping + name = "Tactical Slip" + desc = "Activates the clown shoes' ankle-stimulating module, allowing the user to do a short slip forward going under anyone." + button_icon_state = "clown" + // Jump boots /datum/action/item_action/bhop name = "Activate Jump Boots" diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 4e59d8ad6dd..12e2f1f71e1 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -167,18 +167,19 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) //Clown /datum/uplink_item/jobspecific/clowngrenade name = "Banana Grenade" - desc = "A grenade that explodes into HONK! brand banana peels that are genetically modified to be extra slippery and extrude caustic acid when stepped on" + desc = "A grenade that explodes into HONK! brand banana peels that are genetically modified to be extra slippery and extrude caustic acid when stepped on." reference = "BG" item = /obj/item/grenade/clown_grenade cost = 5 job = list("Clown") -/datum/uplink_item/jobspecific/clownmagboots - name = "Clown Magboots" - desc = "A pair of modified clown shoes fitted with an advanced magnetic traction system. Look and sound exactly like regular clown shoes unless closely inspected." - reference = "CM" - item = /obj/item/clothing/shoes/magboots/clown +/datum/uplink_item/jobspecific/clownslippers + name = "Clown Acrobatic Shoes" + desc = "A pair of modified clown shoes fitted with a built-in propulsion system that allows the user to perform a short slip below anyone. Turning on the waddle dampeners removes the slowdown on the shoes." + reference = "CAS" + item = /obj/item/clothing/shoes/clown_shoes/slippers cost = 3 + surplus = 75 job = list("Clown") /datum/uplink_item/jobspecific/trick_revolver diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 329bea01f9d..4c23bbdff38 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -96,6 +96,9 @@ if(user.get_active_hand() != src) to_chat(user, "You must hold [src] in your hand to do this.") return + toggle_waddle(user) + +/obj/item/clothing/shoes/clown_shoes/proc/toggle_waddle(mob/living/user) if(!enabled_waddle) to_chat(user, "You switch off the waddle dampeners!") enabled_waddle = TRUE @@ -111,6 +114,45 @@ desc = "Standard-issue shoes of the wizarding class clown. Damn they're huge! And powerful! Somehow." magical = TRUE +/obj/item/clothing/shoes/clown_shoes/slippers + actions_types = list(/datum/action/item_action/slipping) + var/slide_distance = 6 + var/recharging_rate = 8 SECONDS + var/recharging_time = 0 + +/obj/item/clothing/shoes/clown_shoes/slippers/item_action_slot_check(slot, mob/user) + if(slot == slot_shoes) + return TRUE + +/obj/item/clothing/shoes/clown_shoes/slippers/ui_action_click(mob/user, action) + if(recharging_time > world.time) + to_chat(user, "The boot's internal propulsion needs to recharge still!") + return + var/prev_dir = user.dir + var/prev_pass_flags = user.pass_flags + user.pass_flags |= PASSMOB + user.Weaken(2) + user.dir = prev_dir + playsound(src, 'sound/effects/stealthoff.ogg', 50, TRUE, 1) + recharging_time = world.time + recharging_rate + user.visible_message("[user] slips forward!") + for(var/i in 1 to slide_distance) + step(user, user.dir) + sleep(1) + user.SetWeakened(0) + user.pass_flags = prev_pass_flags + + +/obj/item/clothing/shoes/clown_shoes/slippers/toggle_waddle(mob/living/user) + if(!enabled_waddle) + to_chat(user, "You switch off the waddle dampeners!") + enabled_waddle = TRUE + slowdown = initial(slowdown) + else + to_chat(user, "You switch on the waddle dampeners, [src] no longer slow you down!") + enabled_waddle = FALSE + slowdown = SHOES_SLOWDOWN + /obj/item/clothing/shoes/jackboots name = "jackboots" desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."