/obj/item/gun/launcher/harpoon name = "harpoon gun" desc = "A harpoon cannon adapted into a portable firearm. Perfect for hunting space whales." icon = 'icons/obj/guns/harpoon.dmi' icon_state = "harpoon" item_state = "harpoon" release_force = 25 throw_distance = 12 needspin = FALSE slot_flags = SLOT_BELT is_wieldable = TRUE fire_sound = 'sound/weapons/crossbow.ogg' fire_sound_text = "a metallic thunk" recoil = 1 desc_fluff = "Adapted from fishing tools, Frozen Sea Harpoon Guns were found to be useful weapons in the hands of the Royal Navy and Army. Their ammunition can be equipped \ with all shorts of implements, such as explosives and even grappling hooks. Large guns are usually mounted on warships, serving as a complement to their traditional cannons. \ While smaller version are carried by sailors and fishermen." var/max_harpoons = 1 var/list/harpoons = list() /obj/item/gun/launcher/harpoon/Initialize() . = ..() var/obj/item/material/harpoon/H = new(src) harpoons += H update_icon() /obj/item/gun/launcher/harpoon/update_icon() icon_state = "[initial(icon_state)]-[harpoons.len]" if(wielded) item_state = "[initial(item_state)]-[harpoons.len]-w" else item_state = "[initial(icon_state)]-[harpoons.len]" update_held_icon() /obj/item/gun/launcher/harpoon/special_check(mob/user) if(!wielded) to_chat(user, "You can't fire without stabilizing \the [src]!") return FALSE return ..() /obj/item/gun/launcher/harpoon/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/material/harpoon)) if(harpoons.len < max_harpoons) user.drop_from_inventory(I,src) harpoons += I to_chat(user, "You load \the [I] in \the [src].") update_icon() else to_chat(user, "\The [src] is already loaded.") /obj/item/gun/launcher/harpoon/attack_hand(mob/user) if(user.get_inactive_hand() == src) if(harpoons.len) var/obj/item/material/harpoon/I = harpoons[1] I.forceMove(get_turf(src)) user.put_in_hands(I) harpoons -= I update_icon() else ..() /obj/item/gun/launcher/harpoon/consume_next_projectile() if(harpoons.len) var/obj/item/material/harpoon/I = harpoons[1] I.prime() harpoons -= I return I return null