diff --git a/code/modules/projectiles/guns/special/meat_hook.dm b/code/modules/projectiles/guns/special/meat_hook.dm index df5ebf0b1e2..7b0b07f18ec 100644 --- a/code/modules/projectiles/guns/special/meat_hook.dm +++ b/code/modules/projectiles/guns/special/meat_hook.dm @@ -38,10 +38,11 @@ hitsound = 'sound/effects/splat.ogg' var/chain var/knockdown_time = (0.5 SECONDS) + var/chain_icon = 'icons/effects/beam.dmi' //SKYRAT ADDITION /obj/projectile/hook/fire(setAngle) if(firer) - chain = firer.Beam(src, icon_state = "chain") + chain = firer.Beam(src, icon_state = "chain", icon = chain_icon) //SKYRAT EDIT ..() //TODO: root the firer until the chain returns diff --git a/modular_skyrat/modules/contractor/code/datums/contractor_items.dm b/modular_skyrat/modules/contractor/code/datums/contractor_items.dm index 205136f753b..2272ed9df73 100644 --- a/modular_skyrat/modules/contractor/code/datums/contractor_items.dm +++ b/modular_skyrat/modules/contractor/code/datums/contractor_items.dm @@ -213,3 +213,11 @@ item_icon = "magnet" limited = 1 cost = 2 + +/datum/contractor_item/mod_scorpion_hook + name = "SCORPION Hook Module" + desc = "A module that allows you to launch a hardlight hook from your MODsuit, pulling a target into range of your baton." + item = /obj/item/mod/module/scorpion_hook + item_icon = "arrow-left" //replace if fontawesome gets an actual hook icon + limited = 1 + cost = 3 diff --git a/modular_skyrat/modules/contractor/code/items/hook.dm b/modular_skyrat/modules/contractor/code/items/hook.dm new file mode 100644 index 00000000000..26f1609195d --- /dev/null +++ b/modular_skyrat/modules/contractor/code/items/hook.dm @@ -0,0 +1,21 @@ +/obj/item/gun/magic/hook/contractor + name = "SCORPION hook" + desc = "A hardlight hook used to non-lethally pull targets much closer to the user." + icon = 'modular_skyrat/modules/contractor/icons/hook.dmi' + icon_state = "hook_weapon" + inhand_icon_state = "" //nah + ammo_type = /obj/item/ammo_casing/magic/hook/contractor + +/obj/item/ammo_casing/magic/hook/contractor + projectile_type = /obj/projectile/hook/contractor + +/obj/projectile/hook/contractor + icon = 'modular_skyrat/modules/contractor/icons/hook_projectile.dmi' + damage = 0 + stamina = 25 + chain_icon = 'modular_skyrat/modules/contractor/icons/hook_projectile.dmi' + +/obj/item/gun/magic/hook/contractor/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread) + if(prob(1)) + user.say("+GET OVER HERE!+", forced = "scorpion hook") + . = ..() diff --git a/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm b/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm index 7c5cc8973a5..36c397a5889 100644 --- a/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm +++ b/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm @@ -30,6 +30,7 @@ /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/springlock/contractor/no_complexity, /obj/item/mod/module/baton_holster/preloaded, + /obj/item/mod/module/scorpion_hook, /obj/item/mod/module/emp_shield, ) diff --git a/modular_skyrat/modules/contractor/code/items/modsuit/modules.dm b/modular_skyrat/modules/contractor/code/items/modsuit/modules.dm index 9adb35884db..a8ae96d5415 100644 --- a/modular_skyrat/modules/contractor/code/items/modsuit/modules.dm +++ b/modular_skyrat/modules/contractor/code/items/modsuit/modules.dm @@ -1,4 +1,3 @@ - /obj/item/mod/module/baton_holster name = "MOD baton holster module" desc = "A module installed into the chest of a MODSuit, this allows you \ @@ -65,3 +64,18 @@ /// This exists for the adminbus contractor modsuit. Do not use otherwise /obj/item/mod/module/springlock/contractor/no_complexity complexity = 0 + +/obj/item/mod/module/scorpion_hook + name = "MOD SCORPION hook module" + desc = "A module installed in the wrist of a MODSuit, this highly \ + illegal module uses a hardlight hook to forcefully pull \ + a target towards you at high speed, knocking them down and \ + partially exhausting them." + icon_state = "hook" + icon = 'modular_skyrat/modules/contractor/icons/modsuit_modules.dmi' + incompatible_modules = list(/obj/item/mod/module/scorpion_hook) + module_type = MODULE_ACTIVE + complexity = 3 + active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 + device = /obj/item/gun/magic/hook/contractor + cooldown_time = 0.5 SECONDS diff --git a/modular_skyrat/modules/contractor/icons/hook.dmi b/modular_skyrat/modules/contractor/icons/hook.dmi new file mode 100644 index 00000000000..88b6dcb6e70 Binary files /dev/null and b/modular_skyrat/modules/contractor/icons/hook.dmi differ diff --git a/modular_skyrat/modules/contractor/icons/hook_projectile.dmi b/modular_skyrat/modules/contractor/icons/hook_projectile.dmi new file mode 100644 index 00000000000..76a37c01022 Binary files /dev/null and b/modular_skyrat/modules/contractor/icons/hook_projectile.dmi differ diff --git a/modular_skyrat/modules/contractor/icons/modsuit_modules.dmi b/modular_skyrat/modules/contractor/icons/modsuit_modules.dmi index 53db998e612..a77c80e711c 100644 Binary files a/modular_skyrat/modules/contractor/icons/modsuit_modules.dmi and b/modular_skyrat/modules/contractor/icons/modsuit_modules.dmi differ diff --git a/tgstation.dme b/tgstation.dme index c8097da3c07..60c4d953389 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4995,6 +4995,7 @@ #include "modular_skyrat\modules\contractor\code\datums\midround\trim.dm" #include "modular_skyrat\modules\contractor\code\items\baton.dm" #include "modular_skyrat\modules\contractor\code\items\boxes.dm" +#include "modular_skyrat\modules\contractor\code\items\hook.dm" #include "modular_skyrat\modules\contractor\code\items\misc.dm" #include "modular_skyrat\modules\contractor\code\items\tablet.dm" #include "modular_skyrat\modules\contractor\code\items\modsuit\modsuit.dm"