diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index f7a4be6c237..89ca674d420 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -56,6 +56,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/toy/braintoy = 2, /obj/item/toy/eldritch_book = 2, /obj/item/storage/box/heretic_box = 1, + /obj/item/toy/foamfinger = 2, /obj/item/clothing/glasses/trickblindfold = 2)) /obj/machinery/computer/arcade diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index fda7457608a..c88d432e5dc 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1540,3 +1540,34 @@ /obj/item/storage/box/heretic_box/PopulateContents() for(var/i in 1 to rand(1,4)) new /obj/item/toy/reality_pierce(src) + +/obj/item/toy/foamfinger + name = "foam finger" + desc = "root for the home team! wait, does this station even have a sports team?" + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "foamfinger" + inhand_icon_state = "foamfinger_inhand" + lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' + w_class = WEIGHT_CLASS_NORMAL + COOLDOWN_DECLARE(foamfinger_cooldown) + +/obj/item/toy/foamfinger/attack_self(mob/living/carbon/human/user) + if(!COOLDOWN_FINISHED(src, foamfinger_cooldown)) + return + COOLDOWN_START(src, foamfinger_cooldown, 5 SECONDS) + user.manual_emote("waves around the foam finger.") + var/direction = prob(50) ? -1 : 1 + if(NSCOMPONENT(user.dir)) //So signs are waved horizontally relative to what way the player waving it is facing. + animate(user, pixel_x = user.pixel_x + (1 * direction), time = 1, easing = SINE_EASING) + animate(pixel_x = user.pixel_x - (2 * direction), time = 1, easing = SINE_EASING) + animate(pixel_x = user.pixel_x + (2 * direction), time = 1, easing = SINE_EASING) + animate(pixel_x = user.pixel_x - (2 * direction), time = 1, easing = SINE_EASING) + animate(pixel_x = user.pixel_x + (1 * direction), time = 1, easing = SINE_EASING) + else + animate(user, pixel_y = user.pixel_y + (1 * direction), time = 1, easing = SINE_EASING) + animate(pixel_y = user.pixel_y - (2 * direction), time = 1, easing = SINE_EASING) + animate(pixel_y = user.pixel_y + (2 * direction), time = 1, easing = SINE_EASING) + animate(pixel_y = user.pixel_y - (2 * direction), time = 1, easing = SINE_EASING) + animate(pixel_y = user.pixel_y + (1 * direction), time = 1, easing = SINE_EASING) + user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/modules/projectiles/boxes_magazines/internal/grenade.dm b/code/modules/projectiles/boxes_magazines/internal/grenade.dm index 88a93b13af5..44cb742630e 100644 --- a/code/modules/projectiles/boxes_magazines/internal/grenade.dm +++ b/code/modules/projectiles/boxes_magazines/internal/grenade.dm @@ -15,3 +15,9 @@ ammo_type = /obj/item/ammo_casing/caseless/rocket caliber = CALIBER_84MM max_ammo = 1 + +/obj/item/ammo_box/magazine/internal/foamfinger + name = "foam finger magazine" + ammo_type = /obj/item/ammo_casing/caseless/rocket + caliber = CALIBER_84MM + max_ammo = 5000 diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index 5777dd3fc23..d3c23540385 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -109,7 +109,25 @@ sleep(20) return OXYLOSS - +/obj/item/gun/ballistic/foamfinger + name = "foam finger" + desc = "pull my finger. unless your hand has gotten blown off by it" + icon_state = "foamfinger" + inhand_icon_state = "foamfinger" + mag_type = /obj/item/ammo_box/magazine/internal/foamfinger + fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' + w_class = WEIGHT_CLASS_NORMAL + can_suppress = FALSE + pin = /obj/item/firing_pin + burst_size = 1 + fire_delay = 0 + casing_ejector = FALSE + weapon_weight = WEAPON_LIGHT + bolt_type = BOLT_TYPE_NO_BOLT + internal_magazine = TRUE + cartridge_wording = "rocket" + empty_indicator = TRUE + tac_reloads = FALSE diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index 99a9ff3f0aa..a1f97ffdcb0 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index e8f59aa0336..0408f616684 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index fdd0d047f60..1270da9c225 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ