diff --git a/code/datums/action.dm b/code/datums/action.dm index 11556253e06..395de2dfc87 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -415,3 +415,9 @@ name = "Summon Stick Minions" desc = "Allows you to summon faithful stickmen allies to aide you in battle." button_icon_state = "art_summon" + +//surf_ss13 +/datum/action/item_action/bhop + name = "Activate Jump Boots" + desc = "Activates the jump boot's internal propulsion system, allowing the user to dash over 4-wide gaps." + button_icon_state = "jetboot" \ No newline at end of file diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 5b36a0c22fd..01263250ce5 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -161,3 +161,36 @@ icon_state = "griffinboots" item_state = "griffinboots" pockets = /obj/item/weapon/storage/internal/pocket/shoes + +/obj/item/clothing/shoes/bhop + name = "jump boots" + desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." + icon_state = "jetboots" + item_state = "jackboots" + item_color = "hosred" + burn_state = FIRE_PROOF + actions_types = list(/datum/action/item_action/bhop) + var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles + var/recharging_rate = 60 //default 6 seconds between each dash + var/recharging_time = 0 //time until next dash + var/jumping = FALSE //are we mid-jump? + +/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, actiontype) + if(!isliving(usr)) + return + + if(jumping) + return + + if(recharging_time > world.time) + usr << "The boot's internal propulsion needs to recharge still!" + return + + var/atom/target = get_edge_target_turf(usr, usr.dir) //gets the user's direction + + jumping = TRUE + playsound(src.loc, 'sound/effects/stealthoff.ogg', 50, 1, 1) + usr.visible_message("[usr] dashes foward into the air!") + usr.throw_at(target,jumpdistance,1, spin=0, diagonals_first = 1) + jumping = FALSE + recharging_time = world.time + recharging_rate \ No newline at end of file diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm index 85924dd4a0f..a2e76222198 100644 --- a/code/modules/mining/equipment.dm +++ b/code/modules/mining/equipment.dm @@ -459,4 +459,4 @@ C.preserved() user << "You inject the [M] with the stabilizer. It will no longer go inert." - qdel(src) + qdel(src) \ No newline at end of file diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 9eb0589ee6b..7bfeefc707a 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -45,6 +45,7 @@ new /datum/data/mining_equipment("Drone Health Upgrade",/obj/item/device/mine_bot_ugprade/health, 400), new /datum/data/mining_equipment("Drone Ranged Upgrade",/obj/item/device/mine_bot_ugprade/cooldown, 600), new /datum/data/mining_equipment("Drone AI Upgrade", /obj/item/slimepotion/sentience/mining, 1000), + new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), ) /datum/data/mining_equipment/ diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 6455904fb29..fe624c95016 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index a8fe8c5ec68..53beecf4b41 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ