diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index c0c4b62d063..b4b1e46092b 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -281,6 +281,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher var/missile_speed = 2 var/missile_range = 30 + var/diags_first = FALSE /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/action(target) if(!action_checks(target)) @@ -290,7 +291,7 @@ log_message("Launched a [O.name] from [name], targeting [target].") projectiles-- proj_init(O) - O.throw_at(target, missile_range, missile_speed, spin = 0) + O.throw_at(target, missile_range, missile_speed, spin = 0, diagonals_first = diags_first) return 1 //used for projectile initilisation (priming flashbang) and additional logging @@ -391,3 +392,50 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(var/obj/item/device/assembly/mousetrap/armed/M) M.secured = 1 + + +//Classic extending punching glove, but weaponised! +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove + name = "\improper Oingo Boingo Punch-face" + desc = "Equipment for clown exosuits. Delivers fun to right to your face!" + icon_state = "mecha_punching_glove" + energy_drain = 250 + equip_cooldown = 20 + range = MELEE|RANGED + missile_range = 5 + projectile = /obj/item/punching_glove + fire_sound = 'sound/items/bikehorn.ogg' + projectiles = 10 + projectile_energy_cost = 500 + diags_first = TRUE + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove/can_attach(obj/mecha/combat/honker/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove/action(target) + . = ..() + if(.) + chassis.occupant_message("HONK") + +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove/proj_init(obj/item/punching_glove/PG) + if(!istype(PG)) + return + //has to be low sleep or it looks weird, the beam doesn't exist for very long so it's a non-issue + chassis.Beam(PG, icon_state = "chain", time = missile_range * 20, maxdistance = missile_range + 2, beam_sleep_time = 1) + +/obj/item/punching_glove + name = "punching glove" + desc = "INCOMING HONKS" + throwforce = 35 + icon_state = "punching_glove" + +/obj/item/punching_glove/throw_impact(atom/hit_atom) + if(!..()) + if(istype(hit_atom, /atom/movable)) + var/atom/movable/AM = hit_atom + AM.throw_at(get_edge_target_turf(AM,get_dir(src, AM)), 7, 2) + qdel(src) + diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index af9b2642e19..3cf340ba549 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -567,6 +567,15 @@ construction_time = 500 category = list("Exosuit Equipment") +/datum/design/mech_punching_glove + name = "Oingo Boingo Punch-face" + id = "mech_punching_face" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove + materials = list(MAT_METAL=20000,MAT_BANANIUM=7500) + construction_time = 400 + category = list("Exosuit Equipment") + ///////////////////////////////////////// //////////////Borg Upgrades////////////// ///////////////////////////////////////// @@ -762,7 +771,7 @@ construction_time = 250 category = list("Misc") req_tech = list("magnets" = 4, "combat" = 3, "plasmatech" = 4, "materials" = 5, "engineering" = 4, "powerstorage" = 4) - + /datum/design/flightshoes name = "Flight Shoes" desc = "Flight shoes, attachable to a flight suit to provide additional functions." diff --git a/icons/mecha/mecha_equipment.dmi b/icons/mecha/mecha_equipment.dmi index 525f80e2caf..02c7984831c 100644 Binary files a/icons/mecha/mecha_equipment.dmi and b/icons/mecha/mecha_equipment.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index a1a3c03a759..f024101a1c8 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ