diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 0f378284746..495c461ba4b 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -324,4 +324,37 @@ /obj/item/weapon/melee/baseball_bat/attack(mob/living/target, mob/living/user) . = ..() var/atom/throw_target = get_edge_target_turf(target, user.dir) - target.throw_at(throw_target, rand(1,2), 7, user) \ No newline at end of file + target.throw_at(throw_target, rand(1,2), 7, user) + +/obj/item/weapon/melee/flyswatter + name = "Flyswatter" + desc = "Useful for killing insects of all sizes." + icon = 'icons/obj/weapons.dmi' + icon_state = "flyswatter" + item_state = "flyswatter" + force = 1 + throwforce = 1 + attack_verb = list("swatted", "smacked") + hitsound = 'sound/effects/snap.ogg' + w_class = 2 + //Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc. + var/list/strong_against + +/obj/item/weapon/melee/flyswatter/New() + strong_against = typecacheof(list( + /mob/living/simple_animal/hostile/poison/bees/, + /mob/living/simple_animal/butterfly, + /mob/living/simple_animal/cockroach, + /obj/item/queen_bee/ + )) + +/obj/item/weapon/melee/flyswatter/afterattack(atom/target, mob/user, proximity_flag) + if(proximity_flag) + if(is_type_in_typecache(target, strong_against)) + new /obj/effect/decal/cleanable/deadcockroach(get_turf(target)) + user << "You easily splat the [target]." + if(istype(target, /mob/living/)) + var/mob/living/bug = target + bug.death(1) + else + qdel(target) \ No newline at end of file diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 4e4c0c427f4..b3fe2ffd114 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1036,7 +1036,8 @@ /obj/item/honey_frame, /obj/item/queen_bee/bought, /obj/item/clothing/head/beekeeper_head, - /obj/item/clothing/suit/beekeeper_suit) + /obj/item/clothing/suit/beekeeper_suit, + /obj/item/weapon/melee/flyswatter) crate_name = "beekeeping starter crate" /datum/supply_pack/organic/hydroponics/beekeeping_suits diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index d19b8589db8..8c47f14811d 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -623,6 +623,11 @@ "You throw up on the floor!") ..() +/datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker) + if(istype(weapon,/obj/item/weapon/melee/flyswatter)) + return 29 //Flyswatters deal 30x damage to flypeople. + return 0 + /* SKELETONS */ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index f40a1494ec0..cd063b949e1 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index c8c0a3c9e8a..913419c3a99 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 32956b60a09..114650376fb 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ