From 30ab79e09e5ddea0b44afb6057755c09b171dd67 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 17 May 2020 18:16:53 +0200 Subject: [PATCH] Porting the twohanded component. --- .../LavaRuins/lavaland_surface_alien_nest.dmm | 4 +- .../lavaland_surface_animal_hospital.dmm | 2 +- .../lavaland_surface_ash_walker1.dmm | 14 +- .../lavaland_surface_biodome_winter.dmm | 2 +- .../lavaland_surface_syndicate_base1.dmm | 2 +- _maps/RandomRuins/SpaceRuins/arcade.dmm | 2 +- .../SpaceRuins/hilbertshoteltestingsite.dmm | 2 +- .../SpaceRuins/mrow_thats_right.dmm | 6 +- _maps/RandomRuins/SpaceRuins/oldstation.dmm | 18 +- _maps/RandomRuins/SpaceRuins/spacehermit.dmm | 2 +- _maps/RandomRuins/SpaceRuins/spacehotel.dmm | 22 +- _maps/RandomRuins/SpaceRuinsStation/roid6.dmm | 2 +- .../StationRuins/Box/Engine/engine_teg.dmm | 2 +- .../Mining_Station_Public_01.dmm | 4 +- _maps/RandomZLevels/VR/syndicate_trainer.dmm | 4 +- _maps/RandomZLevels/away_mission/Cabin.dmm | 2 +- _maps/RandomZLevels/away_mission/caves.dmm | 2 +- .../away_mission/moonoutpost19.dmm | 4 +- _maps/RandomZLevels/away_mission/research.dmm | 18 +- .../away_mission/undergroundoutpost45.dmm | 14 +- _maps/RandomZLevels/away_mission/wildwest.dmm | 2 +- _maps/map_files/BoxStation/BoxStation.dmm | 34 +- _maps/map_files/CogStation/CogStation.dmm | 80 +- .../map_files/Deltastation/DeltaStation2.dmm | 712 ++++----- .../map_files/IceBoxStation/IceBoxStation.dmm | 34 +- .../IcemoonUnderground_Above.dmm | 4 +- _maps/map_files/KiloStation/KiloStation.dmm | 198 +-- _maps/map_files/LambdaStation/lambda.dmm | 80 +- _maps/map_files/MetaStation/MetaStation.dmm | 74 +- _maps/map_files/Mining/Lavaland.dmm | 18 +- _maps/map_files/OmegaStation/OmegaStation.dmm | 96 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 140 +- _maps/map_files/debug/multiz.dmm | 2 +- _maps/map_files/generic/CentCom.dmm | 124 +- _maps/shuttles/arrival_delta.dmm | 8 +- _maps/shuttles/arrival_omega.dmm | 2 +- _maps/shuttles/emergency_bar.dmm | 8 +- _maps/shuttles/emergency_birdboat.dmm | 4 +- _maps/shuttles/emergency_cere.dmm | 8 +- _maps/shuttles/emergency_delta.dmm | 12 +- .../emergency_imfedupwiththisworld.dmm | 2 +- _maps/shuttles/emergency_luxury.dmm | 10 +- _maps/shuttles/emergency_omega.dmm | 6 +- _maps/shuttles/emergency_pubby.dmm | 6 +- _maps/shuttles/emergency_raven.dmm | 8 +- _maps/shuttles/emergency_scrapheap.dmm | 2 +- _maps/shuttles/emergency_syndicate.dmm | 4 +- _maps/shuttles/ferry_lighthouse.dmm | 2 +- _maps/templates/shelter_2.dmm | 2 +- code/__DEFINES/dcs/signals.dm | 19 +- code/__DEFINES/misc.dm | 2 +- code/controllers/subsystem/traumas.dm | 10 +- .../crafting/recipes/recipes_misc.dm | 2 +- .../crafting/recipes/recipes_primal.dm | 12 +- .../recipes/recipes_weapon_and_ammo.dm | 12 +- code/datums/components/twohanded.dm | 311 ++++ code/datums/martial/sleeping_carp.dm | 30 +- code/datums/status_effects/debuffs.dm | 4 +- code/datums/wires/explosive.dm | 4 +- code/game/machinery/computer/arcade.dm | 6 +- code/game/machinery/doors/airlock.dm | 10 +- code/game/machinery/doors/door.dm | 2 +- code/game/machinery/recharger.dm | 2 +- code/game/objects/effects/mines.dm | 3 +- code/game/objects/items/RCL.dm | 63 +- code/game/objects/items/binoculars.dm | 65 + code/game/objects/items/broom.dm | 69 + code/game/objects/items/chainsaw.dm | 93 ++ code/game/objects/items/defib.dm | 100 +- code/game/objects/items/dualsaber.dm | 310 ++++ code/game/objects/items/electrostaff.dm | 229 +++ code/game/objects/items/fireaxe.dm | 71 + code/game/objects/items/melee/energy.dm | 2 +- code/game/objects/items/pitchfork.dm | 101 ++ .../objects/items/robot/robot_upgrades.dm | 2 +- code/game/objects/items/sharpener.dm | 26 +- code/game/objects/items/singularityhammer.dm | 75 +- code/game/objects/items/spear.dm | 181 +++ code/game/objects/items/storage/belt.dm | 2 +- code/game/objects/items/storage/book.dm | 4 +- .../game/objects/items/storage/uplink_kits.dm | 2 +- code/game/objects/items/toys.dm | 27 +- code/game/objects/items/twohanded.dm | 1331 ----------------- code/game/objects/items/weaponry.dm | 60 +- .../crates_lockers/closets/secure/security.dm | 4 +- code/game/objects/structures/fireaxe.dm | 6 +- code/game/objects/structures/flora.dm | 15 +- code/game/objects/structures/headpike.dm | 6 +- code/game/objects/structures/janicart.dm | 6 +- code/game/turfs/simulated/minerals.dm | 2 +- .../turfs/simulated/wall/mineral_walls.dm | 2 +- code/game/turfs/turf.dm | 4 +- code/modules/admin/fun_balloon.dm | 2 +- code/modules/antagonists/cult/blood_magic.dm | 2 +- code/modules/antagonists/cult/cult_items.dm | 64 +- .../antagonists/wizard/equipment/artefact.dm | 2 +- .../antagonists/wizard/equipment/spellbook.dm | 4 +- code/modules/awaymissions/capture_the_flag.dm | 29 +- code/modules/awaymissions/corpse.dm | 2 +- .../awaymissions/mission_code/snowdin.dm | 10 +- code/modules/cargo/bounties/assistant.dm | 6 +- code/modules/cargo/bounties/mining.dm | 2 +- code/modules/cargo/exports/weapons.dm | 2 +- code/modules/cargo/packs/misc.dm | 10 +- code/modules/clothing/outfits/standard.dm | 4 +- code/modules/clothing/suits/cloaks.dm | 4 +- code/modules/clothing/suits/miscellaneous.dm | 2 +- .../subtypes/manipulation.dm | 4 +- .../subtypes/weaponized.dm | 2 +- .../mining/equipment/kinetic_crusher.dm | 72 +- code/modules/mining/machine_vending.dm | 4 +- code/modules/mining/ores_coins.dm | 20 +- code/modules/mob/living/carbon/carbon.dm | 13 +- .../mob/living/silicon/robot/robot_modules.dm | 6 +- .../mob/living/simple_animal/bot/cleanbot.dm | 2 +- .../hostile/megafauna/megafauna.dm | 2 +- .../hostile/mining_mobs/hivelord.dm | 4 +- .../living/simple_animal/hostile/skeleton.dm | 2 +- .../mob/living/simple_animal/simple_animal.dm | 12 +- code/modules/mob/mob.dm | 6 +- code/modules/power/cable.dm | 4 +- .../research/designs/autoylathe_designs.dm | 2 +- code/modules/research/designs/misc_designs.dm | 2 +- .../xenobiology/crossbreeding/burning.dm | 9 +- code/modules/spells/spell_types/devil.dm | 6 +- code/modules/surgery/advanced/revival.dm | 6 +- code/modules/surgery/amputation.dm | 2 +- .../emergency_cardioversion_recovery.dm | 12 +- code/modules/surgery/organic_steps.dm | 2 +- .../modules/surgery/prosthetic_replacement.dm | 4 +- .../uplink/uplink_items/uplink_dangerous.dm | 2 +- code/modules/vending/liberation_toy.dm | 2 +- code/modules/vending/toys.dm | 2 +- code/modules/vending/wardrobes.dm | 2 +- icons/obj/items_and_weapons.dmi | Bin 127181 -> 132474 bytes .../code/game/machinery/wishgranter.dm | 2 +- .../code/modules/client/loadout/__donator.dm | 2 +- tgstation.dme | 10 +- 138 files changed, 2861 insertions(+), 2601 deletions(-) create mode 100644 code/datums/components/twohanded.dm create mode 100644 code/game/objects/items/binoculars.dm create mode 100644 code/game/objects/items/broom.dm create mode 100644 code/game/objects/items/chainsaw.dm create mode 100644 code/game/objects/items/dualsaber.dm create mode 100644 code/game/objects/items/electrostaff.dm create mode 100644 code/game/objects/items/fireaxe.dm create mode 100644 code/game/objects/items/pitchfork.dm create mode 100644 code/game/objects/items/spear.dm delete mode 100644 code/game/objects/items/twohanded.dm diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm index 862c745f81..a361fd59c0 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm @@ -188,13 +188,13 @@ /area/ruin/unpowered/xenonest) "aT" = ( /obj/structure/alien/weeds, -/obj/item/twohanded/required/chainsaw, +/obj/item/chainsaw, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) "aU" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, -/obj/item/twohanded/fireaxe/boneaxe, +/obj/item/fireaxe/boneaxe, /obj/item/clothing/head/helmet/gladiator, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index 60ae409ea2..527a328563 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -517,7 +517,7 @@ /turf/open/floor/plasteel, /area/ruin/powered/animal_hospital) "bt" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel, /area/ruin/powered/animal_hospital) "bu" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index b4abf9b535..f6812106ef 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -724,7 +724,7 @@ /area/lavaland/surface/outdoors) "bP" = ( /obj/structure/stone_tile/block, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -896,7 +896,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ck" = ( -/obj/item/twohanded/spear, +/obj/item/spear, /obj/structure/stone_tile{ dir = 4 }, @@ -910,7 +910,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -1014,7 +1014,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "cA" = ( @@ -1058,7 +1058,7 @@ dir = 1 }, /obj/structure/table/wood, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/item/storage/belt, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) @@ -1100,7 +1100,7 @@ dir = 4 }, /obj/structure/table/wood, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/item/scythe, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) @@ -1128,7 +1128,7 @@ dir = 4 }, /obj/structure/table/wood, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/item/clothing/head/helmet/roman/legionnaire, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index f48801c199..24c9762362 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -367,7 +367,7 @@ /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) "KS" = ( -/obj/item/twohanded/required/chainsaw, +/obj/item/chainsaw, /obj/structure/closet, /obj/machinery/light/small{ dir = 4 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index dab9d0316b..e310f8a6da 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -5181,7 +5181,7 @@ /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/arrivals) "mu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomRuins/SpaceRuins/arcade.dmm b/_maps/RandomRuins/SpaceRuins/arcade.dmm index 771c33c55b..74bdc9a7b8 100644 --- a/_maps/RandomRuins/SpaceRuins/arcade.dmm +++ b/_maps/RandomRuins/SpaceRuins/arcade.dmm @@ -151,7 +151,7 @@ /turf/open/floor/engine, /area/ruin/powered) "J" = ( -/obj/item/twohanded/dualsaber/toy, +/obj/item/dualsaber/toy, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/ruin/powered) "K" = ( diff --git a/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm b/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm index a89d1422d2..d8677f11d8 100644 --- a/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm +++ b/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm @@ -165,7 +165,7 @@ /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/hilbertresearchfacility) "D" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/hilbertresearchfacility) "E" = ( diff --git a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm index 0baac3252a..9ac2fed86f 100644 --- a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm +++ b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm @@ -185,7 +185,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/powered/cat_man) "aF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -294,7 +294,7 @@ /area/ruin/space/has_grav/powered/cat_man) "aV" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -552,7 +552,7 @@ /area/ruin/space/has_grav/powered/cat_man) "bF" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 89e2c553b9..4a72b1afd4 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -597,7 +597,7 @@ icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -639,7 +639,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) "bW" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -858,7 +858,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) "cz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/structure/cable{ @@ -918,7 +918,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) "cH" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -1127,7 +1127,7 @@ /area/ruin/space/has_grav/ancientstation) "dn" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/machinery/light/small{ @@ -1179,7 +1179,7 @@ /area/ruin/space/has_grav/ancientstation/hydroponics) "ds" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/machinery/light/small{ @@ -3980,7 +3980,7 @@ icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -4015,7 +4015,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) "jJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/structure/cable{ @@ -5010,7 +5010,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "PV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm index dd7e700146..791aac277d 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm @@ -112,7 +112,7 @@ /turf/open/floor/plating/asteroid, /area/ruin/powered) "ax" = ( -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/plating/asteroid, /area/ruin/powered) "ay" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index 209feb82e3..5da534a08e 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -148,7 +148,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_3) "aD" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /turf/open/floor/wood, @@ -189,7 +189,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_4) "aL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/wood, @@ -230,7 +230,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_5) "aT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/wood, @@ -271,7 +271,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_6) "bb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/wood, @@ -1113,7 +1113,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_2) "dq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/wood, @@ -1177,7 +1177,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_1) "dy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/wood, @@ -1855,7 +1855,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/hotel/bar) "fI" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -2035,7 +2035,7 @@ }, /area/ruin/space/has_grav/hotel/dock) "gh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/wood, @@ -2435,7 +2435,7 @@ /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel) "hq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/plasteel/dark, @@ -3013,7 +3013,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/hotel/power) "iM" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel) "iN" = ( @@ -4817,7 +4817,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/hotel/pool) "mD" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/turf_decal/tile/neutral{ diff --git a/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm b/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm index 794300cdb5..56967b0c37 100644 --- a/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm +++ b/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm @@ -44,7 +44,7 @@ /area/ruin/space/has_grav) "C" = ( /obj/effect/decal/remains/human, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/mineral/titanium/blue, /area/ruin/space/has_grav) "F" = ( diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm index a9c5eab318..f8d701debe 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm @@ -948,7 +948,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "BT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/engine/engineering) "BY" = ( diff --git a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm index 1bfb337d99..5bc10b30f0 100644 --- a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm +++ b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm @@ -399,7 +399,7 @@ /turf/open/floor/plating, /area/mine/laborcamp/security) "hf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/mine/living_quarters) "hm" = ( @@ -1565,7 +1565,7 @@ /turf/open/floor/plating, /area/mine/laborcamp) "zy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, diff --git a/_maps/RandomZLevels/VR/syndicate_trainer.dmm b/_maps/RandomZLevels/VR/syndicate_trainer.dmm index 0a44006802..5b010e74d9 100644 --- a/_maps/RandomZLevels/VR/syndicate_trainer.dmm +++ b/_maps/RandomZLevels/VR/syndicate_trainer.dmm @@ -1370,7 +1370,7 @@ /turf/open/indestructible, /area/awaymission/centcomAway/general) "hW" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/indestructible, /area/awaymission/centcomAway/general) "hX" = ( @@ -1951,7 +1951,7 @@ "lv" = ( /obj/structure/rack, /obj/item/restraints/legcuffs/beartrap, -/obj/item/twohanded/fireaxe, +/obj/item/fireaxe, /turf/open/indestructible, /area/awaymission/centcomAway/thunderdome) "lw" = ( diff --git a/_maps/RandomZLevels/away_mission/Cabin.dmm b/_maps/RandomZLevels/away_mission/Cabin.dmm index a0862213a2..0ccd13a03c 100644 --- a/_maps/RandomZLevels/away_mission/Cabin.dmm +++ b/_maps/RandomZLevels/away_mission/Cabin.dmm @@ -54,7 +54,7 @@ /area/awaymission/snowforest/lumbermill) "am" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/chainsaw, +/obj/item/chainsaw, /turf/open/floor/wood/cold, /area/awaymission/snowforest/lumbermill) "an" = ( diff --git a/_maps/RandomZLevels/away_mission/caves.dmm b/_maps/RandomZLevels/away_mission/caves.dmm index c84acf0131..4c9aa8478b 100644 --- a/_maps/RandomZLevels/away_mission/caves.dmm +++ b/_maps/RandomZLevels/away_mission/caves.dmm @@ -516,7 +516,7 @@ }, /area/awaymission/caves/BMP_asteroid/level_three) "by" = ( -/obj/item/twohanded/mjollnir, +/obj/item/mjollnir, /mob/living/simple_animal/hostile/poison/giant_spider/nurse, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" diff --git a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm index d85c8b12d6..3f9b76b01b 100644 --- a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm +++ b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm @@ -4911,7 +4911,7 @@ }, /area/awaymission/moonoutpost19/research) "jq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "A plastic potted plant."; pixel_y = 3 }, @@ -7144,7 +7144,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "ob" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "A plastic potted plant."; pixel_y = 3 }, diff --git a/_maps/RandomZLevels/away_mission/research.dmm b/_maps/RandomZLevels/away_mission/research.dmm index c07499fb57..2cab711b00 100644 --- a/_maps/RandomZLevels/away_mission/research.dmm +++ b/_maps/RandomZLevels/away_mission/research.dmm @@ -117,7 +117,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/engineering) "ax" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -1800,7 +1800,7 @@ /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "dN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/effect/turf_decal/tile/purple{ @@ -4173,7 +4173,7 @@ /turf/open/floor/plasteel, /area/awaymission/research/interior/genetics) "hV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple{ @@ -4268,7 +4268,7 @@ /turf/open/floor/plasteel, /area/awaymission/research/interior/security) "ii" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "A potted plant, it doesn't look very healthy..."; name = "dead potted plant" }, @@ -4746,7 +4746,7 @@ /turf/open/floor/wood, /area/awaymission/research/interior/dorm) "jm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel/yellowsiding{ @@ -5350,7 +5350,7 @@ /turf/open/floor/plating, /area/awaymission/research/interior/medbay) "kC" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/yellowsiding{ @@ -5707,7 +5707,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/medbay) "ly" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/yellowsiding{ @@ -6185,7 +6185,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/escapepods) "mJ" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -6222,7 +6222,7 @@ /turf/open/floor/grass, /area/awaymission/research/interior/escapepods) "mN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/effect/turf_decal/tile/green, diff --git a/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm b/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm index 33fdb7a28d..8beea114c7 100644 --- a/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm @@ -1444,7 +1444,7 @@ }, /area/awaymission/undergroundoutpost45/central) "do" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -2972,7 +2972,7 @@ }, /area/awaymission/undergroundoutpost45/central) "fT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -5207,7 +5207,7 @@ }, /area/awaymission/undergroundoutpost45/gateway) "kh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -6867,7 +6867,7 @@ /area/awaymission/undergroundoutpost45/research) "mQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /turf/open/floor/plasteel/cafeteria{ @@ -8471,7 +8471,7 @@ }, /area/awaymission/undergroundoutpost45/research) "pl" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -9544,7 +9544,7 @@ }, /area/awaymission/undergroundoutpost45/engineering) "rk" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/turf_decal/tile/yellow{ @@ -12486,7 +12486,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomZLevels/away_mission/wildwest.dmm b/_maps/RandomZLevels/away_mission/wildwest.dmm index 064be0907a..a0677fbf41 100644 --- a/_maps/RandomZLevels/away_mission/wildwest.dmm +++ b/_maps/RandomZLevels/away_mission/wildwest.dmm @@ -755,7 +755,7 @@ /area/awaymission/wildwest/mines) "cL" = ( /obj/structure/table/wood, -/obj/item/twohanded/dualsaber, +/obj/item/dualsaber, /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cM" = ( diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 2d8de7679b..b26fa5ee7a 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -17791,7 +17791,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20" }, /turf/open/floor/plasteel, @@ -21146,7 +21146,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -21707,7 +21707,7 @@ dir = 1; pixel_y = -24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/wood, @@ -24277,7 +24277,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-13" }, /turf/open/floor/plasteel, @@ -24326,7 +24326,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel, @@ -29889,7 +29889,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/white, @@ -33978,7 +33978,7 @@ /obj/machinery/light_switch{ pixel_y = -23 }, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "bCg" = ( @@ -39123,7 +39123,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -48394,8 +48394,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/engineering) "cnB" = ( @@ -52134,7 +52134,7 @@ /obj/structure/table/reinforced, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cBN" = ( @@ -53845,7 +53845,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-04" }, /turf/open/floor/plasteel/white, @@ -53986,7 +53986,7 @@ /turf/open/floor/plating, /area/crew_quarters/fitness) "exP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -54327,7 +54327,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /turf/open/floor/plasteel/white/corner{ @@ -54525,7 +54525,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/plasteel, @@ -56509,7 +56509,7 @@ /turf/open/floor/plasteel, /area/security/processing) "lPr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /turf/open/floor/plasteel, @@ -58083,7 +58083,7 @@ /turf/open/floor/carpet, /area/crew_quarters/theatre) "qTV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/white, diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index b3aad634c5..f90edc9178 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -1181,7 +1181,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/checker, @@ -1383,7 +1383,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/dark/corner{ @@ -3602,7 +3602,7 @@ /turf/open/floor/wood, /area/crew_quarters/fitness) "aiS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /turf/open/floor/wood, @@ -9522,7 +9522,7 @@ /obj/effect/turf_decal/tile/green{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -12132,7 +12132,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/machinery/camera{ @@ -13718,7 +13718,7 @@ /turf/open/floor/carpet, /area/chapel/main) "aEJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/wood, @@ -13756,7 +13756,7 @@ /turf/open/floor/wood, /area/crew_quarters/barbershop) "aEP" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/wood, /area/crew_quarters/barbershop) "aEQ" = ( @@ -17200,7 +17200,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /turf/open/floor/plasteel, @@ -18608,7 +18608,7 @@ /obj/structure/sign/warning/securearea{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -18624,7 +18624,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel/dark/side{ dir = 1 }, @@ -19727,7 +19727,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ @@ -20283,7 +20283,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ @@ -21141,7 +21141,7 @@ name = "Station Intercom (Common)"; pixel_x = -26 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -21684,7 +21684,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/airalarm{ @@ -22810,7 +22810,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/plasteel/dark/side, @@ -23281,7 +23281,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -24993,7 +24993,7 @@ /turf/closed/wall/r_wall, /area/space/nearstation) "bcd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel/white, @@ -27463,7 +27463,7 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel, /area/security/main) "bhO" = ( @@ -27498,7 +27498,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -27918,7 +27918,7 @@ dir = 4; light_color = "#c1caff" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -28857,7 +28857,7 @@ dir = 4; light_color = "#c1caff" }, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/item/stock_parts/cell/high/plus, /obj/item/clothing/glasses/meson, /obj/item/cartridge/atmos, @@ -32521,7 +32521,7 @@ /turf/open/floor/plasteel, /area/maintenance/disposal) "brZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /turf/open/floor/wood, @@ -32845,7 +32845,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /turf/open/floor/plasteel/white, @@ -33824,7 +33824,7 @@ /turf/open/floor/plating, /area/construction) "bvf" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet{ @@ -38755,7 +38755,7 @@ /turf/open/floor/wood, /area/crew_quarters/fitness) "bFR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/wood, @@ -39221,7 +39221,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -39566,7 +39566,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -41791,7 +41791,7 @@ /turf/open/floor/plasteel/cafeteria, /area/medical/medbay/central) "bLX" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ @@ -45502,7 +45502,7 @@ /turf/open/floor/plating, /area/quartermaster/warehouse) "bTy" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 9 }, @@ -47414,7 +47414,7 @@ pixel_x = 24; pixel_y = 6 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "bXg" = ( @@ -47616,7 +47616,7 @@ }, /obj/effect/turf_decal/tile/purple, /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -49227,7 +49227,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /obj/machinery/airalarm{ @@ -53466,7 +53466,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cjA" = ( @@ -53478,7 +53478,7 @@ dir = 4; pixel_x = -28 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/quartermaster/office) "cjB" = ( @@ -54028,8 +54028,8 @@ /obj/machinery/light_switch{ pixel_x = -24 }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/item/stack/cable_coil/red, /obj/item/stack/cable_coil/red, /obj/item/stock_parts/cell/high/plus, @@ -59179,7 +59179,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -64181,7 +64181,7 @@ /obj/structure/sign/warning/securearea{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/airalarm{ @@ -67337,7 +67337,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /obj/machinery/airalarm{ pixel_y = 24 }, @@ -71518,7 +71518,7 @@ /turf/open/floor/plating, /area/bridge) "cQV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/structure/cable{ diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 0217ff21b9..a4f0e17229 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -357,7 +357,7 @@ /turf/open/floor/plasteel/cafeteria, /area/maintenance/port/fore) "aaJ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -645,7 +645,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -691,7 +691,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "acp" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, @@ -1318,7 +1318,7 @@ name = "Construction RC"; pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, @@ -1381,7 +1381,7 @@ dir = 1 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -1391,7 +1391,7 @@ dir = 1 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -1408,7 +1408,7 @@ dir = 1 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -1672,14 +1672,14 @@ /area/hallway/secondary/entry) "agk" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "agl" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -1985,7 +1985,7 @@ dir = 4; pixel_x = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -2225,7 +2225,7 @@ /area/maintenance/starboard/fore) "aio" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/poster/contraband/random{ pixel_y = 32 }, @@ -2296,7 +2296,7 @@ /area/maintenance/starboard/fore) "ais" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -2950,7 +2950,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -3010,7 +3010,7 @@ "ajR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -3423,7 +3423,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "akJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -3447,7 +3447,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "akN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -3700,7 +3700,7 @@ /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "alo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ pixel_y = 24 }, @@ -3781,7 +3781,7 @@ pixel_x = 26; pixel_y = 26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -4205,7 +4205,7 @@ /turf/open/floor/plasteel/grimy, /area/hallway/secondary/entry) "amq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/hallway/secondary/entry) "amr" = ( @@ -4473,7 +4473,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/electronic_marketing_den) "amN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -4504,7 +4504,7 @@ /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "amQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "amR" = ( @@ -4534,7 +4534,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "amV" = ( @@ -4830,7 +4830,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "anB" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -4860,7 +4860,7 @@ /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "anD" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -5598,7 +5598,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmospherics_engine) "aoM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/crew_quarters/electronic_marketing_den) "aoN" = ( @@ -5899,7 +5899,7 @@ /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "apt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/maintenance/starboard/fore) "apu" = ( @@ -6293,7 +6293,7 @@ /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "aqf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/security/vacantoffice) "aqg" = ( @@ -6386,7 +6386,7 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -6783,7 +6783,7 @@ /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "aqT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white, /obj/machinery/power/apc{ areastring = "/area/crew_quarters/electronic_marketing_den"; @@ -7245,7 +7245,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "arM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -7280,7 +7280,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "arQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -8761,7 +8761,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -8819,7 +8819,7 @@ /area/hallway/secondary/entry) "auq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral, @@ -10196,7 +10196,7 @@ /turf/open/floor/plating, /area/crew_quarters/toilet/auxiliary) "awM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Auxiliary Restroom"; name = "restroom camera" @@ -10496,7 +10496,7 @@ "axr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "axs" = ( @@ -10620,7 +10620,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "axG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, @@ -12524,7 +12524,7 @@ name = "Maintenance Garden" }) "aBh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small{ dir = 1 }, @@ -12577,7 +12577,7 @@ name = "Maintenance Garden" }) "aBm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_y = 32 }, @@ -12599,7 +12599,7 @@ name = "Maintenance Garden" }) "aBo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small{ dir = 1 }, @@ -13913,7 +13913,7 @@ /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) "aDH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/nanotrasen{ pixel_x = 32 }, @@ -14825,7 +14825,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFu" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -15016,7 +15016,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -15032,7 +15032,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFJ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -15949,7 +15949,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "aGX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -16102,7 +16102,7 @@ /area/engine/atmospherics_engine) "aHj" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -16169,7 +16169,7 @@ /turf/open/floor/plasteel, /area/maintenance/port/fore) "aHq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -16259,7 +16259,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) "aHx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -18771,7 +18771,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aLO" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -18875,7 +18875,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "aLV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -19054,7 +19054,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -19318,7 +19318,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/abandoned_gambling_den/secondary) "aMR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/crew_quarters/abandoned_gambling_den/secondary) "aMS" = ( @@ -19328,7 +19328,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/abandoned_gambling_den/secondary) "aMT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ pixel_y = 23 @@ -19351,7 +19351,7 @@ }, /area/crew_quarters/abandoned_gambling_den/secondary) "aMV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den/secondary) "aMW" = ( @@ -20197,7 +20197,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20423,7 +20423,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar/atrium) "aOH" = ( @@ -21184,7 +21184,7 @@ /turf/open/floor/plasteel/checker, /area/engine/atmos) "aPO" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, @@ -21209,7 +21209,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aPQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -21706,7 +21706,7 @@ /area/quartermaster/sorting) "aQE" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -21944,7 +21944,7 @@ /area/security/prison) "aRb" = ( /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -21988,7 +21988,7 @@ /turf/open/floor/plasteel, /area/security/prison) "aRg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /turf/open/floor/plating{ @@ -22154,7 +22154,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aRu" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23890,7 +23890,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "aTY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 4 }, @@ -24725,7 +24725,7 @@ /turf/open/floor/engine/air, /area/engine/atmos) "aVc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den/secondary) @@ -24824,7 +24824,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Service Hallway - Aft"; @@ -27285,7 +27285,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "aYR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24; @@ -27332,7 +27332,7 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aYU" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ @@ -27437,7 +27437,7 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "aZd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/newscaster{ pixel_y = -32 @@ -27520,7 +27520,7 @@ /turf/open/floor/plating, /area/quartermaster/qm) "aZk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "2-8" }, @@ -28222,7 +28222,7 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -28327,7 +28327,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "baK" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 8 @@ -28619,7 +28619,7 @@ /turf/open/floor/plasteel, /area/security/prison) "bbn" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/pods{ dir = 8; pixel_y = -32 @@ -30008,7 +30008,7 @@ "bdP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown{ @@ -30135,7 +30135,7 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "beb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -30356,7 +30356,7 @@ /area/engine/atmos) "beB" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -30578,7 +30578,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/service) "beX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -31497,7 +31497,7 @@ /turf/open/floor/plating, /area/quartermaster/miningoffice) "bgH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -31551,7 +31551,7 @@ /area/quartermaster/miningoffice) "bgL" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -32591,7 +32591,7 @@ /turf/open/floor/plasteel, /area/security/brig) "biE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -32620,7 +32620,7 @@ /turf/open/floor/plasteel, /area/security/brig) "biG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -32690,7 +32690,7 @@ /obj/machinery/newscaster/security_unit{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -33434,7 +33434,7 @@ /area/hallway/primary/fore) "bjR" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown, @@ -33500,7 +33500,7 @@ /area/quartermaster/miningoffice) "bjW" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -34505,7 +34505,7 @@ /area/hallway/primary/fore) "blJ" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown, @@ -34879,7 +34879,7 @@ /turf/open/floor/plasteel, /area/security/main) "bmr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35028,7 +35028,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35066,7 +35066,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35276,7 +35276,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -36193,7 +36193,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -36484,7 +36484,7 @@ /turf/open/floor/plating, /area/security/execution/transfer) "bpd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -37265,7 +37265,7 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bqm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -40177,7 +40177,7 @@ /turf/open/floor/plasteel/dark, /area/security/main) "buT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/power/apc{ areastring = "/area/crew_quarters/heads/hos"; name = "Head of Security's Office APC"; @@ -40422,7 +40422,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bvk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small, /obj/machinery/light_switch{ pixel_x = 26; @@ -40854,7 +40854,7 @@ /turf/open/floor/plasteel, /area/security/execution/transfer) "bwc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -40889,7 +40889,7 @@ /turf/open/floor/plasteel, /area/security/brig) "bwe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -40984,7 +40984,7 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) @@ -41013,7 +41013,7 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, @@ -41595,7 +41595,7 @@ /turf/open/floor/plating, /area/security/execution/transfer) "bxo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -41999,7 +41999,7 @@ /area/engine/atmos) "bxT" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, @@ -42431,7 +42431,7 @@ /obj/machinery/gulag_item_reclaimer{ pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -42502,7 +42502,7 @@ /turf/open/floor/plasteel, /area/security/execution/transfer) "byI" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -42747,7 +42747,7 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "bzb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -43761,7 +43761,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "bAz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -44290,7 +44290,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bBl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/storage/tech) @@ -44422,7 +44422,7 @@ name = "WARNING: BLAST DOORS"; pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue{ @@ -44451,7 +44451,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bBz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -45366,7 +45366,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bCU" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -45986,7 +45986,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bDD" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -46428,7 +46428,7 @@ /turf/open/floor/plasteel, /area/security/execution/transfer) "bEb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -47072,7 +47072,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bES" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_x = -32 }, @@ -47101,7 +47101,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bEV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/ai{ pixel_x = 32 }, @@ -47459,7 +47459,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bFr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -47518,7 +47518,7 @@ /turf/open/floor/plasteel/grimy, /area/bridge) "bFx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -48012,7 +48012,7 @@ dir = 4; pixel_x = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) @@ -48055,7 +48055,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) @@ -48187,7 +48187,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bGt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -48414,7 +48414,7 @@ /turf/open/floor/plasteel, /area/storage/primary) "bGM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/primary) @@ -48464,7 +48464,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -48742,7 +48742,7 @@ pixel_y = -32 }, /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -48770,7 +48770,7 @@ /area/security/detectives_office) "bHt" = ( /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -48793,7 +48793,7 @@ /area/hallway/primary/starboard) "bHv" = ( /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -49199,7 +49199,7 @@ /turf/closed/wall, /area/engine/break_room) "bHY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 8 }, @@ -50488,7 +50488,7 @@ /turf/closed/wall/r_wall, /area/engine/transit_tube) "bJQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -50531,7 +50531,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -50594,7 +50594,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "bJV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ pixel_y = 24 }, @@ -50957,7 +50957,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKB" = ( @@ -51124,7 +51124,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "bKT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bKU" = ( @@ -51696,7 +51696,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bLK" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -51721,7 +51721,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bLL" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 8 }, @@ -52054,7 +52054,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bMg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/ai{ pixel_x = -32 }, @@ -52088,7 +52088,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bMj" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_x = 32 }, @@ -52272,7 +52272,7 @@ name = "Telecomms Monitoring APC"; pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "0-2" }, @@ -52312,7 +52312,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -52668,7 +52668,7 @@ /turf/closed/wall, /area/security/brig) "bNk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/door_timer{ id = "brig1"; name = "Cell 1"; @@ -53378,7 +53378,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bOe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -54370,7 +54370,7 @@ /turf/closed/wall, /area/engine/transit_tube) "bPN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -54406,7 +54406,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bPP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light_switch{ pixel_x = 22; @@ -54576,7 +54576,7 @@ /turf/closed/wall, /area/engine/break_room) "bQb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) @@ -54687,7 +54687,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bQm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -54697,7 +54697,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bQn" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_y = -26 }, @@ -54862,7 +54862,7 @@ /turf/open/floor/wood, /area/bridge/meeting_room/council) "bQG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -55112,7 +55112,7 @@ dir = 1; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -55223,7 +55223,7 @@ /turf/open/floor/plasteel/dark, /area/security/detectives_office) "bRn" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, @@ -55496,7 +55496,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bRF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -55746,7 +55746,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bSd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -55990,7 +55990,7 @@ /area/bridge/meeting_room/council) "bSz" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bSA" = ( @@ -56049,12 +56049,12 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bSG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bSH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bSI" = ( @@ -56657,7 +56657,7 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/aisat_interior) "bTB" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/turretid{ control_area = "/area/ai_monitored/turret_protected/aisat_interior"; name = "Antechamber Turret Control"; @@ -56889,7 +56889,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bTO" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -57153,7 +57153,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -57891,7 +57891,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bVk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/door_timer{ id = "brig2"; name = "Cell 2"; @@ -58624,7 +58624,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bWe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small{ dir = 4 }, @@ -58725,7 +58725,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bWm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_x = -24; @@ -59180,7 +59180,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bWS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -59196,7 +59196,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bWU" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -60034,7 +60034,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bXY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -60136,7 +60136,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bYh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -60405,7 +60405,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "bYw" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = 26; pixel_y = -26 @@ -61430,7 +61430,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "cae" = ( /obj/structure/cable/white, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -61495,7 +61495,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cai" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/airalarm{ dir = 1; @@ -61532,7 +61532,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cak" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = -26 }, @@ -61615,7 +61615,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cao" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -61725,7 +61725,7 @@ /turf/open/floor/plating, /area/security/checkpoint/engineering) "caB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -62127,7 +62127,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -62482,7 +62482,7 @@ /turf/closed/wall, /area/engine/engineering) "cbW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -62523,7 +62523,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cca" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/light_switch{ pixel_y = 26 @@ -63029,7 +63029,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain/private) "ccS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -63095,7 +63095,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "ccX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -63135,7 +63135,7 @@ /turf/open/floor/plating, /area/security/courtroom) "cda" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -63416,7 +63416,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "cdw" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -64026,7 +64026,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -65158,7 +65158,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/plaques/kiddie/library{ pixel_x = -32 }, @@ -65177,7 +65177,7 @@ /turf/open/floor/plasteel/grimy, /area/library) "cfY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small{ dir = 4 }, @@ -65348,7 +65348,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain/private) "cgt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -65368,7 +65368,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "cgv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 @@ -66348,7 +66348,7 @@ /turf/open/floor/plasteel/grimy, /area/library) "chP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/library) "chQ" = ( @@ -67705,7 +67705,7 @@ /turf/open/floor/wood, /area/lawoffice) "ckg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/sign/poster/official/report_crimes{ pixel_y = -32 @@ -68973,7 +68973,7 @@ /obj/machinery/status_display/ai{ pixel_x = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -69571,7 +69571,7 @@ /area/aisat) "cnu" = ( /obj/structure/cable/white, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc{ @@ -69613,7 +69613,7 @@ icon_state = "1-2" }, /obj/structure/table/reinforced, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/effect/turf_decal/tile/neutral{ @@ -69646,7 +69646,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "cny" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/airalarm{ dir = 1; @@ -70119,7 +70119,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cot" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 @@ -70735,7 +70735,7 @@ /turf/closed/wall, /area/crew_quarters/heads/hop) "cpD" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cpE" = ( @@ -70753,7 +70753,7 @@ dir = 1; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cpG" = ( @@ -70768,7 +70768,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cpH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -70931,7 +70931,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "cpW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -70946,7 +70946,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "cpX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -71869,7 +71869,7 @@ /turf/open/floor/plating, /area/engine/engineering) "crQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Engineering - Central"; dir = 4; @@ -72951,7 +72951,7 @@ /turf/open/floor/plasteel, /area/maintenance/port) "ctH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -72975,7 +72975,7 @@ /area/library) "ctK" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Library - Aft"; dir = 1; @@ -72996,7 +72996,7 @@ /area/library) "ctM" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_y = -26 }, @@ -73004,7 +73004,7 @@ /turf/open/floor/plasteel/grimy, /area/library) "ctN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/library) "ctO" = ( @@ -73251,7 +73251,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue{ @@ -73664,7 +73664,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -73682,7 +73682,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -74563,7 +74563,7 @@ /turf/open/floor/plating, /area/maintenance/port) "cwq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/library) "cwr" = ( @@ -74644,7 +74644,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cwy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -74697,7 +74697,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -74714,7 +74714,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cwE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -74746,7 +74746,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -74843,7 +74843,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue, @@ -74901,7 +74901,7 @@ /turf/open/floor/plasteel, /area/gateway) "cwV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -75044,7 +75044,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cxh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -75394,7 +75394,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cxI" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/electricshock{ pixel_y = 32 @@ -76267,7 +76267,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -76472,8 +76472,8 @@ pixel_x = 26 }, /obj/effect/turf_decal/bot, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/storage) "czz" = ( @@ -77421,13 +77421,13 @@ /area/maintenance/port) "cAZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/maintenance/port) "cBa" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, @@ -77474,7 +77474,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cBh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_x = 32 }, @@ -77851,7 +77851,7 @@ dir = 4; pixel_x = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -77928,7 +77928,7 @@ /turf/open/floor/plating, /area/crew_quarters/toilet/restrooms) "cBR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -79538,7 +79538,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cEr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 @@ -80229,7 +80229,7 @@ /turf/open/floor/wood, /area/crew_quarters/dorms) "cFy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/dorms) "cFz" = ( @@ -80473,7 +80473,7 @@ /area/engine/engineering) "cFT" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "1-8" }, @@ -80629,7 +80629,7 @@ name = "Station Intercom"; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -80650,7 +80650,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cGl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -80710,7 +80710,7 @@ dir = 1; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /turf/open/floor/plasteel/grimy, /area/bridge/showroom/corporate) @@ -80750,7 +80750,7 @@ pixel_x = 7; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /turf/open/floor/plasteel/grimy, /area/bridge/showroom/corporate) @@ -80813,7 +80813,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -81067,7 +81067,7 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "cGY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -81153,7 +81153,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cHi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -81217,7 +81217,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cHp" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -81228,7 +81228,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cHq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/electricshock{ pixel_y = -32 @@ -81307,7 +81307,7 @@ /area/maintenance/port) "cHy" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/maintenance/port) "cHz" = ( @@ -83495,7 +83495,7 @@ /turf/open/floor/plating, /area/crew_quarters/dorms) "cKY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -83628,7 +83628,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cLi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -84269,7 +84269,7 @@ }, /area/crew_quarters/dorms) "cMs" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -85348,7 +85348,7 @@ /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cOw" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -85365,7 +85365,7 @@ /obj/machinery/light_switch{ pixel_y = 26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, @@ -85627,7 +85627,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cPb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -85766,7 +85766,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cPr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -85881,7 +85881,7 @@ name = "medbay camera"; network = list("ss13","medbay") }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -86113,7 +86113,7 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "cPT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; @@ -86251,7 +86251,7 @@ /turf/open/floor/plasteel/dark/corner, /area/maintenance/department/electrical) "cQi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/department/electrical) @@ -86475,7 +86475,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cQC" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -86691,7 +86691,7 @@ /turf/open/floor/plasteel, /area/science/research) "cQR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple{ @@ -86700,7 +86700,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cQS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue{ @@ -86777,7 +86777,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/central) "cQY" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue{ @@ -86786,7 +86786,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cQZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; @@ -86980,7 +86980,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) "cRv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/nanotrasen{ pixel_x = 32; pixel_y = -32 @@ -87524,7 +87524,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/science/research) "cSp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/purple{ @@ -87890,7 +87890,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cSR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/storage/pod{ pixel_x = 32; pixel_y = 32 @@ -88151,7 +88151,7 @@ /obj/machinery/status_display/evac{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -88323,7 +88323,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cTF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -89664,7 +89664,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cVM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -89855,7 +89855,7 @@ /turf/open/floor/plating, /area/security/checkpoint/science/research) "cWb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple{ @@ -89908,7 +89908,7 @@ /turf/open/floor/plasteel, /area/science/research) "cWf" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/purple, @@ -89933,7 +89933,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue{ @@ -89974,7 +89974,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/central) "cWl" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue, @@ -90295,7 +90295,7 @@ /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cWK" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -90697,7 +90697,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Security Post - Science"; dir = 8; @@ -90744,7 +90744,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cXu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/purple{ @@ -90790,7 +90790,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cXy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple, @@ -90863,7 +90863,7 @@ /area/medical/medbay/central) "cXJ" = ( /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue{ @@ -90906,7 +90906,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cXN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -91404,7 +91404,7 @@ /obj/machinery/light_switch{ pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -91533,7 +91533,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cYT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -91953,7 +91953,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/medical) "cZE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -92501,7 +92501,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "dau" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -92769,7 +92769,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_y = 32 }, @@ -94379,7 +94379,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ddy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) @@ -94597,7 +94597,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "ddT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -94886,7 +94886,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dev" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, @@ -95064,7 +95064,7 @@ /obj/structure/sign/departments/examroom{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -95126,7 +95126,7 @@ /turf/open/floor/plasteel, /area/medical/abandoned) "deS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/medical/abandoned) @@ -95326,7 +95326,7 @@ /turf/open/floor/plasteel, /area/science/research) "dfl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/storage/pod{ pixel_x = 32 }, @@ -95787,7 +95787,7 @@ /turf/closed/wall, /area/crew_quarters/abandoned_gambling_den) "dfZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -95799,7 +95799,7 @@ /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dgb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) @@ -95842,7 +95842,7 @@ /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dgf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dgg" = ( @@ -96018,7 +96018,7 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "dgu" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -96281,7 +96281,7 @@ /turf/open/floor/plasteel, /area/science/lab) "dgP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/lab) @@ -96889,7 +96889,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) "dhP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/contraband/random{ pixel_x = 32 @@ -97842,7 +97842,7 @@ /turf/open/floor/plasteel/white/corner, /area/science/circuit) "djo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/science/research/abandoned) @@ -97862,7 +97862,7 @@ /turf/open/floor/plasteel/white/side, /area/science/circuit) "djs" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -98168,7 +98168,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "djW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -98287,7 +98287,7 @@ /turf/open/floor/plasteel, /area/science/lab) "dke" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple{ @@ -98303,7 +98303,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "dkf" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -98650,7 +98650,7 @@ /area/medical/abandoned) "dkJ" = ( /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/medical/abandoned) @@ -99313,7 +99313,7 @@ /turf/closed/wall, /area/hallway/secondary/construction) "dmi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) @@ -99458,7 +99458,7 @@ /turf/open/floor/plasteel, /area/science/misc_lab) "dmB" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /obj/machinery/light_switch{ pixel_x = -26 @@ -99846,7 +99846,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics/cloning) "dno" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -99925,7 +99925,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dnv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -100002,7 +100002,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dnC" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -101519,7 +101519,7 @@ /turf/open/floor/plasteel, /area/science/explab) "dqr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -102168,7 +102168,7 @@ pixel_x = 1; pixel_y = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -102320,7 +102320,7 @@ /obj/structure/cable/white, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/bot, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "drY" = ( @@ -102581,7 +102581,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics/cloning) "dsy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, @@ -103523,7 +103523,7 @@ /turf/open/floor/plating, /area/science/research/abandoned) "dun" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/science/research/abandoned) @@ -103929,7 +103929,7 @@ /turf/closed/wall, /area/medical/genetics) "dvd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -104022,7 +104022,7 @@ /turf/open/floor/plasteel, /area/medical/genetics) "dvm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ pixel_x = -26; pixel_y = 26 @@ -104528,7 +104528,7 @@ /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) "dvY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) "dvZ" = ( @@ -106013,7 +106013,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/cmo) "dyy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -106059,7 +106059,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "dyC" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -106805,7 +106805,7 @@ /turf/open/floor/plasteel, /area/medical/genetics) "dzR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -106967,7 +106967,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "dAf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "0-8" }, @@ -107460,7 +107460,7 @@ /turf/open/floor/plasteel, /area/medical/genetics) "dAZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -107522,7 +107522,7 @@ /obj/structure/sign/poster/official/do_not_question{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple{ dir = 8 }, @@ -109385,7 +109385,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dEe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 @@ -109776,7 +109776,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/science/robotics/lab) "dEO" = ( @@ -110063,7 +110063,7 @@ /turf/open/floor/wood, /area/crew_quarters/theatre/abandoned) "dFq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken5" }, @@ -111023,7 +111023,7 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/security/detectives_office/private_investigators_office) "dGM" = ( @@ -112562,7 +112562,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "dJm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/green{ dir = 8 @@ -112741,7 +112741,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/poster/official/do_not_question{ pixel_x = 32 }, @@ -113042,7 +113042,7 @@ /turf/open/floor/circuit/green/telecomms/mainframe, /area/science/server) "dKh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -113446,7 +113446,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -113694,7 +113694,7 @@ /turf/open/floor/plasteel, /area/maintenance/aft) "dLj" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -113720,7 +113720,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dLl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/effect/turf_decal/tile/green{ dir = 4 @@ -113832,7 +113832,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/crew_quarters/theatre/abandoned) "dLv" = ( @@ -114155,7 +114155,7 @@ /turf/open/floor/plasteel, /area/science/research) "dMg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -114736,7 +114736,7 @@ /area/crew_quarters/theatre/abandoned) "dNb" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/theatre/abandoned) "dNc" = ( @@ -114744,7 +114744,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken3" }, @@ -115520,7 +115520,7 @@ /turf/open/floor/plasteel, /area/maintenance/port/aft) "dOz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -115600,7 +115600,7 @@ name = "hallway camera" }, /obj/effect/turf_decal/bot, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -115651,7 +115651,7 @@ /area/hallway/primary/aft) "dOI" = ( /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/green{ dir = 8 @@ -116048,7 +116048,7 @@ /area/library/abandoned) "dPw" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -116074,7 +116074,7 @@ /area/library/abandoned) "dPz" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/library/abandoned) "dPA" = ( @@ -116109,7 +116109,7 @@ /area/library/abandoned) "dPE" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/library/abandoned) "dPF" = ( @@ -116488,7 +116488,7 @@ /turf/open/floor/plating, /area/medical/virology) "dQi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -116498,7 +116498,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -116508,7 +116508,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "dQk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 4 }, @@ -116565,7 +116565,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 4 }, @@ -118258,14 +118258,14 @@ /turf/open/floor/plasteel/grimy, /area/library/abandoned) "dTq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken7" }, /area/library/abandoned) "dTr" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken" }, @@ -118332,7 +118332,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "dTz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -118356,7 +118356,7 @@ "dTC" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -118420,7 +118420,7 @@ /area/hallway/secondary/exit/departure_lounge) "dTJ" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -118672,7 +118672,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "dUk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 4 }, @@ -118739,7 +118739,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "dUo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -118760,7 +118760,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "dUq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 @@ -118826,7 +118826,7 @@ "dUv" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -118892,7 +118892,7 @@ /area/hallway/secondary/exit/departure_lounge) "dUB" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -119219,7 +119219,7 @@ /obj/machinery/status_display/evac{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) @@ -119799,11 +119799,11 @@ /area/library/abandoned) "dWE" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/library/abandoned) "dWF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/library/abandoned) "dWG" = ( @@ -119874,7 +119874,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "dWM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Chapel - Port"; dir = 4; @@ -119913,7 +119913,7 @@ }, /area/chapel/main) "dWR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel{ dir = 4; icon_state = "chapel" @@ -120453,7 +120453,7 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -120669,7 +120669,7 @@ }, /area/library/abandoned) "dYl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small, /turf/open/floor/wood{ icon_state = "wood-broken3" @@ -120693,7 +120693,7 @@ /area/library/abandoned) "dYo" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/library/abandoned) "dYp" = ( @@ -120831,7 +120831,7 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -120930,7 +120930,7 @@ /turf/open/floor/plasteel, /area/medical/virology) "dYS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) @@ -120939,7 +120939,7 @@ /obj/machinery/status_display/evac{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) @@ -121213,7 +121213,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -121645,7 +121645,7 @@ /obj/structure/sign/nanotrasen{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -122439,7 +122439,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/maintenance/port/aft) "ebP" = ( @@ -122545,7 +122545,7 @@ }, /area/chapel/main) "ebZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 4 }, @@ -122833,7 +122833,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "ecE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = 24; pixel_y = -24 @@ -122858,7 +122858,7 @@ name = "departures camera" }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -123655,7 +123655,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "edW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, @@ -123811,7 +123811,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -123857,7 +123857,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -123923,7 +123923,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "eey" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Chapel Quarters"; name = "chapel camera" @@ -124826,7 +124826,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/escape) "egi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -125307,7 +125307,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "MiniSat Service Bay"; dir = 8; @@ -127124,7 +127124,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "wIf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/security/prison) "xaf" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index bcd8531349..356eefbd35 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -17954,7 +17954,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20" }, /turf/open/floor/plasteel, @@ -21310,7 +21310,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -21871,7 +21871,7 @@ dir = 1; pixel_y = -24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/wood, @@ -24440,7 +24440,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-13" }, /turf/open/floor/plasteel, @@ -24489,7 +24489,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel, @@ -30040,7 +30040,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/white, @@ -34129,7 +34129,7 @@ /obj/machinery/light_switch{ pixel_y = -23 }, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "bCg" = ( @@ -39291,7 +39291,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -48747,8 +48747,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/engineering) "cnB" = ( @@ -52280,7 +52280,7 @@ /obj/structure/table/reinforced, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cBN" = ( @@ -53998,7 +53998,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-04" }, /turf/open/floor/plasteel/white, @@ -54135,7 +54135,7 @@ /turf/open/floor/plating, /area/crew_quarters/fitness) "exP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -54518,7 +54518,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /turf/open/floor/plasteel/white/corner{ @@ -54776,7 +54776,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/plasteel, @@ -57083,7 +57083,7 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/quartermaster/miningdock) "lPr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /turf/open/floor/plasteel, @@ -58881,7 +58881,7 @@ /turf/open/floor/carpet, /area/crew_quarters/theatre) "qTV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/white, diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm index c3866d387c..0aef643b5a 100644 --- a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm +++ b/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm @@ -2321,7 +2321,7 @@ /area/mine/laborcamp) "mL" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/mine/laborcamp) "mS" = ( @@ -2493,7 +2493,7 @@ dir = 4; network = list("labor") }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/mine/laborcamp) "pu" = ( diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 8545545701..84da15075b 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -3429,7 +3429,7 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/showroomfloor, @@ -8802,7 +8802,7 @@ /turf/open/floor/plating, /area/medical/virology) "aoR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ @@ -8959,7 +8959,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel/dark, /area/security/courtroom) "apj" = ( @@ -9122,7 +9122,7 @@ /turf/open/floor/plasteel/dark, /area/teleporter) "apw" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -10947,7 +10947,7 @@ /turf/open/floor/engine, /area/space) "asg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -11992,7 +11992,7 @@ /turf/open/floor/circuit/green/telecomms/mainframe, /area/tcommsat/server) "atV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/neutral, @@ -14194,7 +14194,7 @@ /obj/machinery/cell_charger, /obj/item/stock_parts/cell/hyper, /obj/item/stack/cable_coil, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -14307,8 +14307,8 @@ /obj/item/stack/cable_coil, /obj/item/electronics/apc, /obj/item/electronics/apc, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel/dark, /area/engine/engineering) "axR" = ( @@ -17393,7 +17393,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ @@ -19751,7 +19751,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -19770,7 +19770,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "After his promotion, he was transferred to Kilo Station to serve as the gateway's protector."; icon_state = "plant-21"; name = "rodger" @@ -20601,7 +20601,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/showroomfloor, @@ -20638,7 +20638,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -21015,7 +21015,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -22183,7 +22183,7 @@ /area/hallway/primary/aft) "aKO" = ( /obj/effect/decal/cleanable/cobweb, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/effect/decal/cleanable/blood/old, @@ -22217,7 +22217,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aKR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/wood, @@ -22678,7 +22678,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/airalarm{ @@ -24453,7 +24453,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/showroomfloor, @@ -24742,7 +24742,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -24875,7 +24875,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/purple, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/button/door{ @@ -28508,7 +28508,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/machinery/camera{ @@ -28850,7 +28850,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/structure/disposalpipe/segment{ @@ -28949,7 +28949,7 @@ dir = 1 }, /obj/effect/decal/cleanable/cobweb, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30057,7 +30057,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/plasteel/showroomfloor, @@ -33871,7 +33871,7 @@ }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel, @@ -38995,7 +38995,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -39329,7 +39329,7 @@ /obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -39570,7 +39570,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/cable{ icon_state = "4-8" }, @@ -39609,7 +39609,7 @@ /area/quartermaster/sorting) "blR" = ( /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/cable{ icon_state = "4-8" }, @@ -39926,7 +39926,7 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/storage) "bmo" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/firealarm{ @@ -40112,7 +40112,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -40963,7 +40963,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -40995,7 +40995,7 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/office) "bnZ" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -42304,7 +42304,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/machinery/power/apc/highcap/ten_k{ areastring = "/area/bridge"; dir = 8; @@ -42955,7 +42955,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/machinery/light{ @@ -43021,7 +43021,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/dark, @@ -43219,7 +43219,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/spider/stickyweb, @@ -43859,7 +43859,7 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/office) "bsA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -44010,7 +44010,7 @@ /turf/open/floor/plasteel, /area/hydroponics) "bsM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light_switch{ @@ -44139,7 +44139,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -44747,7 +44747,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "btZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -45149,7 +45149,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -45875,7 +45875,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/toilet/restrooms) "bvP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel/showroomfloor, @@ -45929,7 +45929,7 @@ /turf/open/floor/plasteel/dark, /area/library) "bvV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -45972,7 +45972,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -46003,7 +46003,7 @@ /obj/structure/noticeboard{ pixel_y = 30 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-17"; pixel_x = -8; pixel_y = 3 @@ -46127,7 +46127,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, @@ -46867,7 +46867,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) "bxF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -46973,14 +46973,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bxO" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/showroomfloor, @@ -47268,7 +47268,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -48699,7 +48699,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/disposalpipe/segment, @@ -49045,7 +49045,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -49726,7 +49726,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 6 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -51812,7 +51812,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -51940,7 +51940,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/cable{ icon_state = "1-8" }, @@ -52037,7 +52037,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/airalarm{ @@ -53284,7 +53284,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -53308,7 +53308,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 6 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/dark/corner{ @@ -54408,7 +54408,7 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -54431,7 +54431,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/extinguisher_cabinet{ @@ -54783,7 +54783,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/item/radio/intercom{ @@ -55595,7 +55595,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/structure/cable{ @@ -55785,7 +55785,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/firealarm{ @@ -56182,7 +56182,7 @@ /obj/item/radio/intercom{ pixel_x = -28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -57853,7 +57853,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/power/apc/highcap/five_k{ @@ -58151,7 +58151,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -58245,7 +58245,7 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -58404,7 +58404,7 @@ /obj/machinery/status_display/ai{ pixel_x = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -58487,7 +58487,7 @@ /area/hallway/primary/central) "bPT" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -58628,7 +58628,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -59285,7 +59285,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/decal/cleanable/dirt, @@ -60375,7 +60375,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -60730,7 +60730,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -60978,7 +60978,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -62455,7 +62455,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -63056,7 +63056,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63297,7 +63297,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/light, @@ -63578,7 +63578,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -64074,7 +64074,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/noticeboard{ @@ -64688,7 +64688,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bZx" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -64971,7 +64971,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light_switch{ @@ -65993,7 +65993,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/decal/cleanable/dirt, @@ -66543,7 +66543,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/cable{ @@ -67263,7 +67263,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/showroomfloor, @@ -67361,7 +67361,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -67612,7 +67612,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ @@ -68131,7 +68131,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/showroomfloor, @@ -68160,7 +68160,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -68229,7 +68229,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -68253,7 +68253,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/neutral{ @@ -71553,7 +71553,7 @@ /turf/open/floor/plasteel, /area/security/processing) "cld" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -72405,7 +72405,7 @@ /obj/structure/noticeboard{ pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -72425,7 +72425,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /turf/open/floor/plasteel, @@ -80546,7 +80546,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/fore) "cDr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -80828,7 +80828,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "cDT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/neutral, @@ -84619,7 +84619,7 @@ icon_state = "1-4" }, /obj/machinery/airalarm/directional/west, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/wood, /area/security/vacantoffice) "esR" = ( @@ -85474,7 +85474,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index a24d5d666d..45f0721cc0 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -15609,7 +15609,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_x = -30 }, @@ -15985,7 +15985,7 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/hor/private) "aDh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hor/private) "aDi" = ( @@ -16008,7 +16008,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/white, /area/science/explab) "aDl" = ( @@ -21689,7 +21689,7 @@ /turf/open/floor/plasteel, /area/security/brig) "aNv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/corner, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -21757,7 +21757,7 @@ /turf/open/floor/plasteel/grimy, /area/lawoffice) "aNA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /obj/structure/disposalpipe/segment{ @@ -23806,7 +23806,7 @@ /turf/open/floor/plasteel, /area/security/range) "aRr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "aRs" = ( @@ -23836,7 +23836,7 @@ dir = 8; light_color = "#e8eaff" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hop/private) "aRw" = ( @@ -25007,7 +25007,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "aTI" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/command) "aTJ" = ( @@ -25232,7 +25232,7 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aUi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera/autoname{ dir = 1 }, @@ -27583,7 +27583,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/captain) "aYV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "aYX" = ( @@ -34832,7 +34832,7 @@ /obj/effect/turf_decal/tile{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bmX" = ( @@ -36562,7 +36562,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/crew_quarters/cafeteria) "bqv" = ( @@ -38503,7 +38503,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "buh" = ( @@ -42119,7 +42119,7 @@ /turf/open/floor/plasteel/white, /area/medical/cryo) "bBv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -45631,7 +45631,7 @@ /turf/open/floor/carpet/blue, /area/crew_quarters/heads/cmo/private) "bHP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/cmo/private) "bHQ" = ( @@ -48281,7 +48281,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable{ icon_state = "0-4" @@ -50303,7 +50303,7 @@ /turf/open/floor/wood, /area/maintenance/bar) "bPX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/crew_quarters/cafeteria) "bPY" = ( @@ -50980,7 +50980,7 @@ /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) "bRs" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bRu" = ( @@ -51420,7 +51420,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bSx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, @@ -52114,7 +52114,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bTR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -55495,7 +55495,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable{ icon_state = "1-2" }, @@ -56283,7 +56283,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "cbt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = 26; pixel_y = -26 @@ -60353,8 +60353,8 @@ }, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/break_room) "ckz" = ( @@ -61193,7 +61193,7 @@ /turf/open/floor/plasteel/dark, /area/storage/tcom) "cml" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable{ icon_state = "1-8" }, @@ -63314,7 +63314,7 @@ /area/engine/break_room) "cqz" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable{ icon_state = "1-4" }, @@ -64541,7 +64541,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "ctc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile{ dir = 1 }, @@ -64551,7 +64551,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "ctd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile{ dir = 4 }, @@ -64812,7 +64812,7 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -66743,7 +66743,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "cyc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 }, @@ -66846,8 +66846,8 @@ }, /obj/item/electronics/airlock, /obj/item/electronics/airlock, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/storage_shared) "cyq" = ( @@ -67738,7 +67738,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "cAd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 }, @@ -70418,7 +70418,7 @@ /area/crew_quarters/locker) "cFb" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/item/radio/intercom{ @@ -75054,7 +75054,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cNx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Atmospherics - Control Room"; dir = 4 @@ -78132,7 +78132,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cUc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, @@ -78142,7 +78142,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cUd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/departments/holy{ pixel_x = -32 }, @@ -78409,7 +78409,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cUN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/chief/private) "cUO" = ( @@ -80608,7 +80608,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/science/circuit) "gIA" = ( @@ -80949,7 +80949,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "kNb" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 4edcce491f..07fba56f90 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -226,7 +226,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /turf/open/floor/plasteel, @@ -245,7 +245,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel, /area/security/prison) "aaE" = ( @@ -1224,7 +1224,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-13" }, /turf/open/floor/plasteel, @@ -2668,7 +2668,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/structure/sign/warning/securearea{ @@ -2992,7 +2992,7 @@ /turf/open/floor/plating, /area/maintenance/solars/port/fore) "afF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -13095,7 +13095,7 @@ /turf/open/space, /area/space/nearstation) "aze" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -14390,7 +14390,7 @@ /area/maintenance/starboard/fore) "aBD" = ( /obj/effect/decal/cleanable/cobweb, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -17086,8 +17086,8 @@ /obj/effect/turf_decal/bot{ dir = 1 }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel{ dir = 1 }, @@ -18151,7 +18151,7 @@ name = "Law Office APC"; pixel_y = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/wood, @@ -19167,7 +19167,7 @@ c_tag = "AI Upload Chamber - Fore"; network = list("aiupload") }, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /turf/open/floor/plasteel/dark, @@ -21676,7 +21676,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/effect/turf_decal/tile/neutral{ @@ -23959,7 +23959,7 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "aVt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-13" }, /obj/effect/turf_decal/stripes/line{ @@ -24307,7 +24307,7 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/effect/turf_decal/tile/neutral{ @@ -24418,7 +24418,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/item/radio/intercom{ @@ -25667,7 +25667,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aYF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/stripes/line{ @@ -26197,7 +26197,7 @@ charge = 100; maxcharge = 15000 }, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -36993,7 +36993,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "btR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/effect/turf_decal/stripes/line{ @@ -37777,7 +37777,7 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bvB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20" }, /obj/effect/turf_decal/stripes/line{ @@ -40423,7 +40423,7 @@ /turf/open/floor/wood, /area/library) "bBx" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/wood, @@ -43959,7 +43959,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/yellow, @@ -44131,7 +44131,7 @@ /turf/open/floor/circuit/telecomms/mainframe, /area/tcommsat/server) "bJh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -44939,7 +44939,7 @@ /turf/open/floor/plasteel/dark, /area/aisat) "bKS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /obj/effect/turf_decal/stripes/line{ @@ -45769,7 +45769,7 @@ icon_state = "map-right-MS"; pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/effect/turf_decal/tile/blue{ @@ -51025,7 +51025,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/effect/turf_decal/tile/blue{ @@ -51121,7 +51121,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple, @@ -54627,7 +54627,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "ceI" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/effect/turf_decal/tile/yellow, @@ -54722,7 +54722,7 @@ name = "Station Intercom (General)"; pixel_y = -30 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /obj/effect/turf_decal/tile/purple, @@ -59534,7 +59534,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "coj" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple, @@ -64240,7 +64240,7 @@ /obj/machinery/light_switch{ pixel_x = -23 }, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -68833,7 +68833,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "cFQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -71165,7 +71165,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cJQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple{ @@ -72345,7 +72345,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/effect/turf_decal/stripes/line{ @@ -74186,7 +74186,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-04" }, /obj/effect/turf_decal/stripes/line{ @@ -74252,7 +74252,7 @@ name = "Station Intercom (General)"; pixel_x = 29 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/effect/turf_decal/stripes/line{ @@ -79803,7 +79803,7 @@ c_tag = "Departure Lounge - Port Fore"; dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-24" }, /obj/effect/turf_decal/stripes/line{ @@ -82837,7 +82837,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/white, diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 97984fa656..737028385a 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -192,14 +192,14 @@ /area/ruin/unpowered/ash_walkers) "ft" = ( /obj/structure/stone_tile/block, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "fN" = ( /obj/structure/stone_tile{ dir = 4 }, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "fQ" = ( @@ -529,7 +529,7 @@ }, /obj/structure/table/wood, /obj/item/clothing/head/helmet/roman/legionnaire, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "iK" = ( @@ -1831,8 +1831,8 @@ "An" = ( /obj/structure/stone_tile/slab, /obj/structure/table/wood, -/obj/item/twohanded/bonespear, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "AH" = ( @@ -1842,7 +1842,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "AU" = ( @@ -2071,7 +2071,7 @@ }, /obj/structure/table/wood, /obj/item/scythe, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "HX" = ( @@ -2200,7 +2200,7 @@ }, /obj/structure/table/wood, /obj/item/storage/belt, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "Qk" = ( @@ -2429,7 +2429,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "WT" = ( diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 4fbfabaf2b..5168b22408 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -545,7 +545,7 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -601,7 +601,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -2299,7 +2299,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -3040,7 +3040,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain/private) "afl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afm" = ( @@ -3077,7 +3077,7 @@ /obj/machinery/recharger{ pixel_x = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-15"; pixel_x = -6; pixel_y = 12 @@ -5358,7 +5358,7 @@ /turf/open/floor/plating, /area/security/brig) "ajd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -5702,7 +5702,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/camera{ @@ -6727,7 +6727,7 @@ /turf/closed/wall, /area/hallway/primary/central) "alm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -6783,7 +6783,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "als" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -7498,7 +7498,7 @@ pixel_y = -24 }, /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown, @@ -8121,7 +8121,7 @@ /turf/open/floor/plasteel, /area/security/brig) "anF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/door_timer{ @@ -9927,7 +9927,7 @@ /turf/open/floor/plasteel, /area/security/brig) "aqP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/firealarm{ @@ -10775,7 +10775,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) "ase" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -10835,7 +10835,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "asi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -11784,7 +11784,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -12334,7 +12334,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -12840,7 +12840,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -13579,7 +13579,7 @@ /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/bot, @@ -15982,7 +15982,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -16712,7 +16712,7 @@ }, /area/engine/break_room) "aDB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -17399,7 +17399,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/dorms) "aEL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/status_display{ @@ -18152,7 +18152,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/camera{ @@ -18491,7 +18491,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "aGu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/yellow, @@ -18917,7 +18917,7 @@ pixel_y = 24; req_access_txt = "10" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/stripes/line{ @@ -19080,7 +19080,7 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -19388,7 +19388,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "aHU" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/sign/poster/random{ @@ -19441,7 +19441,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aHZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/bot, @@ -21004,8 +21004,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -21895,7 +21895,7 @@ /turf/open/floor/grass, /area/hydroponics) "aMt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -21943,7 +21943,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "aMy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/bot, @@ -21956,7 +21956,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aMz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown{ @@ -22667,7 +22667,7 @@ /turf/closed/wall, /area/hydroponics) "aOm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -22714,7 +22714,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aOq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -23659,7 +23659,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/port/aft) "aPX" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -23949,7 +23949,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aQA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/newscaster{ @@ -24705,7 +24705,7 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/camera{ @@ -25303,7 +25303,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "aTA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/machinery/camera{ @@ -27128,7 +27128,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "aWR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -27391,7 +27391,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "aXu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/button/door{ @@ -29834,7 +29834,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "bbr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -32733,7 +32733,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bgw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/airalarm{ @@ -32756,7 +32756,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bgy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -33452,7 +33452,7 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bhL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -33563,7 +33563,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bhU" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -34859,7 +34859,7 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bkt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -34902,7 +34902,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bkE" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -40652,7 +40652,7 @@ /turf/closed/wall/rust, /area/chapel/main) "sLg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/delivery, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 2c7d68d692..19324ce694 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -1537,7 +1537,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afe" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/structure/cable/yellow{ @@ -1567,7 +1567,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afg" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/structure/cable/yellow{ @@ -5479,7 +5479,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -9400,7 +9400,7 @@ /area/hallway/primary/central) "awe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/primary/central) "awf" = ( @@ -9481,7 +9481,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, @@ -9625,7 +9625,7 @@ }, /area/crew_quarters/fitness/recreation) "awC" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/power/apc{ @@ -10071,7 +10071,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "axF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel, @@ -10163,7 +10163,7 @@ /obj/structure/cable{ icon_state = "0-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "axT" = ( @@ -11161,7 +11161,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAo" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/effect/turf_decal/tile/red, @@ -11857,7 +11857,7 @@ /turf/open/floor/plasteel/white/corner, /area/crew_quarters/fitness/recreation) "aBY" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -11924,7 +11924,7 @@ /area/maintenance/department/security/brig) "aCi" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; pixel_y = 12 }, @@ -12011,7 +12011,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -13234,7 +13234,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "aEM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-24" }, /obj/structure/cable{ @@ -13916,7 +13916,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "aGn" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ layer = 3.1 }, /obj/structure/window/reinforced/fulltile, @@ -15468,7 +15468,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aKg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-04" }, /turf/open/floor/plasteel/white/corner{ @@ -16031,7 +16031,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -17480,13 +17480,13 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) "aPy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plating{ @@ -21277,7 +21277,7 @@ /area/crew_quarters/bar) "aYe" = ( /obj/structure/table/reinforced, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; pixel_y = 10 }, @@ -21326,7 +21326,7 @@ "aYi" = ( /obj/structure/table/reinforced, /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; pixel_y = 10 }, @@ -21777,7 +21777,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/kitchen) "aYY" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel/dark, @@ -22808,7 +22808,7 @@ /turf/open/floor/plasteel, /area/hydroponics) "bbd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/green, @@ -24508,7 +24508,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bfp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/button/door{ @@ -24949,7 +24949,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "bgv" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/effect/turf_decal/tile/neutral{ @@ -25911,7 +25911,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "biP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/disposalpipe/segment{ @@ -26030,7 +26030,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/central) "bji" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/blue, @@ -26083,7 +26083,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bjn" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple, @@ -27332,7 +27332,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/medical) "bmw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/blue{ @@ -27711,7 +27711,7 @@ dir = 8; pixel_x = 28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/machinery/light/small{ @@ -27962,7 +27962,7 @@ /turf/open/floor/engine, /area/science/explab) "bnZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/neutral{ @@ -28330,7 +28330,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "boT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/bot, @@ -28357,7 +28357,7 @@ dir = 1 }, /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/neutral{ @@ -30326,7 +30326,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bsW" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30715,7 +30715,7 @@ /turf/open/floor/grass, /area/medical/genetics) "btU" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue, @@ -30980,7 +30980,7 @@ /area/science/robotics/lab) "buw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/effect/turf_decal/tile/purple{ @@ -30999,7 +30999,7 @@ /turf/open/floor/plasteel/dark, /area/science/explab) "buy" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/effect/turf_decal/tile/purple, @@ -31038,7 +31038,7 @@ /turf/open/floor/plasteel, /area/science/explab) "buD" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33011,7 +33011,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33403,7 +33403,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "bzM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/green, @@ -34198,7 +34198,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hor) "bBu" = ( -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /obj/structure/disposalpipe/segment{ dir = 10 }, @@ -34295,7 +34295,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bBB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -35995,7 +35995,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "bEH" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/machinery/light_switch{ @@ -38239,7 +38239,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/department/engine) "bJi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plating, @@ -39421,7 +39421,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bLT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/airalarm{ @@ -40327,7 +40327,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bNR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -42444,7 +42444,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bSP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -44961,7 +44961,7 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bYI" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -45728,7 +45728,7 @@ /area/engine/engineering) "caw" = ( /obj/structure/table, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/engineering) "cax" = ( @@ -46861,7 +46861,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "ceK" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/plasteel/dark, @@ -48018,7 +48018,7 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cjP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/item/radio/intercom{ @@ -49774,7 +49774,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cpT" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -49782,7 +49782,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cpU" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -49979,7 +49979,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cqE" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; layer = 3 }, @@ -50631,7 +50631,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/dark, @@ -50723,7 +50723,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -51274,7 +51274,7 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -51533,7 +51533,7 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cwr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/structure/cable{ @@ -51978,7 +51978,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cyQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/camera{ @@ -51991,7 +51991,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cyR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -52243,7 +52243,7 @@ /area/library) "cAs" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05"; pixel_y = 10 }, @@ -53006,7 +53006,7 @@ }, /area/hallway/secondary/exit/departure_lounge) "dpb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -54227,7 +54227,7 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "gkR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, @@ -54526,7 +54526,7 @@ /area/science/xenobiology) "gKz" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22"; pixel_y = 8 }, @@ -55664,7 +55664,7 @@ /obj/structure/sign/plaques/deempisi{ pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -56122,7 +56122,7 @@ /turf/open/floor/carpet, /area/lawoffice) "kxs" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plating, @@ -56433,7 +56433,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/dark, @@ -57428,7 +57428,7 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/primary/central) "nyO" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light/small{ @@ -57668,7 +57668,7 @@ /turf/open/floor/engine, /area/engine/supermatter) "nVU" = ( -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/plating, /area/maintenance/department/engine) "nWP" = ( @@ -58653,7 +58653,7 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "pXT" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/machinery/power/apc{ areastring = "/area/lawoffice"; dir = 8; @@ -58668,7 +58668,7 @@ /turf/closed/wall/r_wall, /area/engine/engineering) "pYw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/structure/extinguisher_cabinet{ diff --git a/_maps/map_files/debug/multiz.dmm b/_maps/map_files/debug/multiz.dmm index 3f7cacd1a8..4614829679 100644 --- a/_maps/map_files/debug/multiz.dmm +++ b/_maps/map_files/debug/multiz.dmm @@ -1300,7 +1300,7 @@ "dO" = ( /obj/structure/table, /obj/machinery/light, -/obj/item/twohanded/fireaxe, +/obj/item/fireaxe, /obj/item/extinguisher, /turf/open/floor/plasteel, /area/storage/primary) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 66072817f4..b8d2542c41 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -58,7 +58,7 @@ /obj/structure/table/wood{ layer = 3.3 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05"; pixel_y = 4 }, @@ -294,7 +294,7 @@ /area/holodeck/rec_center/winterwonderland) "aT" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05"; pixel_y = 10 }, @@ -1686,19 +1686,19 @@ /obj/item/melee/chainofcommand{ name = "chain whip" }, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/thunderdome1218) "ez" = ( /obj/structure/table/wood, /obj/item/scythe, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/thunderdome1218) "eA" = ( /obj/structure/table/wood, /obj/item/tailclub, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/thunderdome1218) "eB" = ( @@ -2916,11 +2916,11 @@ /turf/open/floor/circuit/green/anim, /area/ctf) "hE" = ( -/obj/item/twohanded/ctf/blue, +/obj/item/ctf/blue, /turf/open/floor/circuit/green/anim, /area/ctf) "hF" = ( -/obj/item/twohanded/ctf/red, +/obj/item/ctf/red, /turf/open/floor/circuit/green/anim, /area/ctf) "hG" = ( @@ -4002,7 +4002,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/control) "ke" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -4106,7 +4106,7 @@ /turf/open/floor/plasteel, /area/centcom/supply) "kk" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -4211,7 +4211,7 @@ /turf/open/floor/plasteel/grimy, /area/centcom/control) "kB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/firealarm{ @@ -4234,7 +4234,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -4243,7 +4243,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/grimy, @@ -4284,13 +4284,13 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, /area/centcom/control) "kJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/airalarm{ @@ -4733,7 +4733,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "lQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/firealarm{ @@ -5168,7 +5168,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "mL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -5180,7 +5180,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "mM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -5957,7 +5957,7 @@ /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-15"; pixel_x = -6; pixel_y = 12 @@ -6171,7 +6171,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "oy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -6517,7 +6517,7 @@ /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "ph" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -6751,7 +6751,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/control) "pw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/structure/extinguisher_cabinet{ @@ -6998,13 +6998,13 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "qd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/wood, /area/centcom/ferry) "qe" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light_switch{ @@ -7525,7 +7525,7 @@ /turf/open/floor/plasteel, /area/centcom/ferry) "rt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/newscaster{ @@ -7550,7 +7550,7 @@ /turf/open/floor/wood, /area/centcom/ferry) "rv" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -7732,7 +7732,7 @@ /turf/open/floor/grass, /area/centcom/control) "rL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -8611,7 +8611,7 @@ /turf/open/floor/plasteel, /area/centcom/ferry) "tJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -8650,7 +8650,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "tO" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -8667,7 +8667,7 @@ /turf/closed/indestructible/riveted, /area/centcom/evac) "tS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/stripes/line{ @@ -9109,7 +9109,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "uT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -9139,7 +9139,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "uV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -10077,7 +10077,7 @@ /turf/open/floor/plating, /area/centcom/ferry) "xi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/delivery, @@ -10147,7 +10147,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "xp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -10159,7 +10159,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "xq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -10178,7 +10178,7 @@ /turf/open/floor/plating, /area/centcom/evac) "xs" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/stripes/line{ @@ -10741,7 +10741,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "zd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -11247,7 +11247,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Am" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -11268,7 +11268,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "Ap" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -11541,7 +11541,7 @@ /turf/open/floor/plasteel, /area/centcom/evac) "Ba" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/stripes/line, @@ -12161,7 +12161,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Cw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/power/apc{ @@ -12198,7 +12198,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Cy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light, @@ -12219,7 +12219,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Cz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -12616,7 +12616,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/evac) "Df" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -13008,7 +13008,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/control) "DV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -13017,7 +13017,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "DW" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green, @@ -13571,7 +13571,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Fs" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -13585,7 +13585,7 @@ }, /area/tdome/tdomeobserve) "Fu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -13670,7 +13670,7 @@ /turf/open/floor/plasteel/white, /area/tdome/tdomeobserve) "FG" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red, @@ -13750,7 +13750,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "FQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -13848,7 +13848,7 @@ }, /area/tdome/tdomeobserve) "Gg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -13862,7 +13862,7 @@ }, /area/tdome/tdomeobserve) "Gh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -13871,7 +13871,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -13884,7 +13884,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gj" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red, @@ -13913,7 +13913,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gn" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green, @@ -13923,7 +13923,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Go" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -13936,7 +13936,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -14876,7 +14876,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "HZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -14966,7 +14966,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Ig" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -15790,7 +15790,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeadmin) "JZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/firealarm{ @@ -15822,7 +15822,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "Kc" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -17577,7 +17577,7 @@ /turf/open/floor/wood, /area/centcom/holding) "RQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -18850,7 +18850,7 @@ /turf/open/indestructible/binary, /area/space) "Zh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/indestructible/hotelwood, diff --git a/_maps/shuttles/arrival_delta.dmm b/_maps/shuttles/arrival_delta.dmm index 62e30ef335..16fc34e62b 100644 --- a/_maps/shuttles/arrival_delta.dmm +++ b/_maps/shuttles/arrival_delta.dmm @@ -203,7 +203,7 @@ /obj/machinery/status_display/evac{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -226,7 +226,7 @@ /obj/machinery/status_display/ai{ pixel_x = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -277,7 +277,7 @@ /turf/closed/wall/mineral/titanium, /area/shuttle/arrival) "A" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -312,7 +312,7 @@ /turf/open/floor/plasteel, /area/shuttle/arrival) "E" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, diff --git a/_maps/shuttles/arrival_omega.dmm b/_maps/shuttles/arrival_omega.dmm index f580149163..decb5f9d52 100644 --- a/_maps/shuttles/arrival_omega.dmm +++ b/_maps/shuttles/arrival_omega.dmm @@ -138,7 +138,7 @@ /turf/open/floor/plasteel, /area/shuttle/arrival) "o" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm index 7bc7de9bf1..55fd4bd56a 100644 --- a/_maps/shuttles/emergency_bar.dmm +++ b/_maps/shuttles/emergency_bar.dmm @@ -175,7 +175,7 @@ pixel_x = 6; pixel_y = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -385,7 +385,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "bc" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -424,7 +424,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "bg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/bar, @@ -557,7 +557,7 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "bG" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm index 43a6a85bf7..dcffda7ba2 100644 --- a/_maps/shuttles/emergency_birdboat.dmm +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -47,7 +47,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "k" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/mineral/titanium/blue, @@ -144,7 +144,7 @@ /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "B" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/mineral/titanium, diff --git a/_maps/shuttles/emergency_cere.dmm b/_maps/shuttles/emergency_cere.dmm index f49e70aeb9..9608f7f28a 100644 --- a/_maps/shuttles/emergency_cere.dmm +++ b/_maps/shuttles/emergency_cere.dmm @@ -420,7 +420,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "aM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/item/radio/intercom{ @@ -446,7 +446,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "aP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/item/radio/intercom{ @@ -968,7 +968,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "ca" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -994,7 +994,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm index 564115443d..b4b22b2ff6 100644 --- a/_maps/shuttles/emergency_delta.dmm +++ b/_maps/shuttles/emergency_delta.dmm @@ -167,7 +167,7 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "an" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -196,7 +196,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "ap" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -800,7 +800,7 @@ /turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "bz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/button/flasher{ @@ -814,7 +814,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "bA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -1018,7 +1018,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "cb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -1338,7 +1338,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "cA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index 349918ef29..ca2e6059ec 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -155,7 +155,7 @@ /turf/open/floor/carpet, /area/shuttle/escape) "y" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/wood, /area/shuttle/escape) "z" = ( diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm index a7faface75..8a16763007 100644 --- a/_maps/shuttles/emergency_luxury.dmm +++ b/_maps/shuttles/emergency_luxury.dmm @@ -305,7 +305,7 @@ /turf/open/floor/carpet/royalblue, /area/shuttle/escape/luxury) "bg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet/red, @@ -320,7 +320,7 @@ /turf/open/floor/carpet/royalblue, /area/shuttle/escape/luxury) "bj" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -328,13 +328,13 @@ /turf/open/floor/wood, /area/shuttle/escape/luxury) "bk" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet/royalblue, /area/shuttle/escape/luxury) "bl" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -437,7 +437,7 @@ dir = 4; light_range = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet/red, diff --git a/_maps/shuttles/emergency_omega.dmm b/_maps/shuttles/emergency_omega.dmm index bd99f35bb5..83b9c28305 100644 --- a/_maps/shuttles/emergency_omega.dmm +++ b/_maps/shuttles/emergency_omega.dmm @@ -194,7 +194,7 @@ /turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "as" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -317,7 +317,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "aC" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -530,7 +530,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "aS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 diff --git a/_maps/shuttles/emergency_pubby.dmm b/_maps/shuttles/emergency_pubby.dmm index 0eea5ab1c8..7c43bef2ce 100644 --- a/_maps/shuttles/emergency_pubby.dmm +++ b/_maps/shuttles/emergency_pubby.dmm @@ -110,7 +110,7 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -183,7 +183,7 @@ /area/shuttle/escape) "aB" = ( /obj/structure/window/reinforced, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/effect/turf_decal/tile/green, @@ -589,7 +589,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/mineral/plastitanium/red/brig, diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index 05446968e7..daba49a238 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -1014,7 +1014,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "bV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -1029,7 +1029,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "bW" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -1094,7 +1094,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "cd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -1107,7 +1107,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "ce" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green, diff --git a/_maps/shuttles/emergency_scrapheap.dmm b/_maps/shuttles/emergency_scrapheap.dmm index 4bd8f07c8e..cc51c2b8f8 100644 --- a/_maps/shuttles/emergency_scrapheap.dmm +++ b/_maps/shuttles/emergency_scrapheap.dmm @@ -194,7 +194,7 @@ /turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "aF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aG" = ( diff --git a/_maps/shuttles/emergency_syndicate.dmm b/_maps/shuttles/emergency_syndicate.dmm index 85048b9d89..3c2c3cb19b 100644 --- a/_maps/shuttles/emergency_syndicate.dmm +++ b/_maps/shuttles/emergency_syndicate.dmm @@ -1351,7 +1351,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -1842,7 +1842,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index a12e8858cb..1b4e685bd0 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -236,7 +236,7 @@ /turf/open/floor/wood, /area/shuttle/transport) "bd" = ( -/obj/item/twohanded/required/kirbyplants/dead{ +/obj/item/kirbyplants/dead{ desc = "It doesn't look very healthy..."; name = "potted plant" }, diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm index 825cb26e3a..0a25527358 100644 --- a/_maps/templates/shelter_2.dmm +++ b/_maps/templates/shelter_2.dmm @@ -93,7 +93,7 @@ /area/survivalpod) "q" = ( /obj/structure/tubes, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/pod, /area/survivalpod) "r" = ( diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 793454869f..eb71b8b5bb 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -191,8 +191,8 @@ #define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) #define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //from base of /obj/effect/proc_holder/spell/can_cast(): (spell) - -#define COMSIG_ROBOT_UPDATE_ICONS "robot_update_icons" //from base of robot/update_icons(): () +#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" //from base of mob/swap_hand(): (obj/item) + #define COMPONENT_BLOCK_SWAP 1 // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) @@ -235,6 +235,9 @@ #define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget" #define COMPONENT_HOSTILE_NO_ATTACK 1 +// /mob/living/silicon signals +#define COMSIG_ROBOT_UPDATE_ICONS "robot_update_icons" //from base of robot/update_icons(): () + // /obj signals #define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled) #define COMSIG_OBJ_BREAK "obj_break" //from base of /obj/obj_break(): (damage_flag) @@ -264,7 +267,12 @@ #define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) #define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) #define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args) -#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable) +#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable) +#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" //from base of item/sharpener/attackby(): (amount, max) + #define COMPONENT_BLOCK_SHARPEN_APPLIED 1 + #define COMPONENT_BLOCK_SHARPEN_BLOCKED 2 + #define COMPONENT_BLOCK_SHARPEN_ALREADY 4 + #define COMPONENT_BLOCK_SHARPEN_MAXED 8 #define COMSIG_ITEM_WORN_OVERLAYS "item_worn_overlays" //from base of obj/item/worn_overlays(): (isinhands, icon_file, used_state, style_flags, list/overlays) // THE FOLLOWING TWO BLOCKS SHOULD RETURN BLOCK FLAGS AS DEFINED IN __DEFINES/combat.dm! #define COMSIG_ITEM_CHECK_BLOCK "check_block" //from base of obj/item/check_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) @@ -375,6 +383,11 @@ #define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" //(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE) #define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" //(obj/item/insertion_candidate, mob/user, silent) - returns bool +// /datum/component/two_handed signals +#define COMSIG_TWOHANDED_WIELD "twohanded_wield" //from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user) + #define COMPONENT_TWOHANDED_BLOCK_WIELD 1 +#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" //from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) + // /datum/action signals #define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action) #define COMPONENT_ACTION_BLOCK_TRIGGER 1 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 42095aba41..0122cc68d8 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -457,7 +457,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define EGG_LAYING_MESSAGES list("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.") // list of all null rod weapons -#define HOLY_WEAPONS /obj/item/nullrod, /obj/item/twohanded/dualsaber/hypereutactic/chaplain, /obj/item/gun/energy/laser/redtag/hitscan/chaplain, /obj/item/multitool/chaplain, /obj/item/clothing/gloves/fingerless/pugilist/chaplain, /obj/item/melee/baseball_bat/chaplain +#define HOLY_WEAPONS /obj/item/nullrod, /obj/item/dualsaber/hypereutactic/chaplain, /obj/item/gun/energy/laser/redtag/hitscan/chaplain, /obj/item/multitool/chaplain, /obj/item/clothing/gloves/fingerless/pugilist/chaplain, /obj/item/melee/baseball_bat/chaplain // Used by PDA and cartridge code to reduce repetitiveness of spritesheets #define PDAIMG(what) {""} diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 87158f021e..f556f7dee7 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -79,7 +79,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/pda/clown, /obj/item/grown/bananapeel)), "greytide" = typecacheof(list(/obj/item/clothing/under/color/grey, /obj/item/melee/baton/cattleprod, - /obj/item/twohanded/spear, /obj/item/clothing/mask/gas)), + /obj/item/spear, /obj/item/clothing/mask/gas)), "lizards" = typecacheof(list(/obj/item/toy/plush/lizardplushie, /obj/item/reagent_containers/food/snacks/kebab/tail, /obj/item/organ/tail/lizard, /obj/item/reagent_containers/food/drinks/bottle/lizardwine)), @@ -120,7 +120,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/card/id/captains_spare, /obj/item/card/id/centcom, /obj/machinery/door/airlock/command)), "the supernatural" = typecacheof(list(/obj/structure/destructible/cult, /obj/item/tome, - /obj/item/melee/cultblade, /obj/item/twohanded/required/cult_bastard, /obj/item/restraints/legcuffs/bola/cult, + /obj/item/melee/cultblade, /obj/item/cult_bastard, /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/cultrobes, /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, /obj/item/stack/sheet/runed_metal, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, @@ -151,7 +151,7 @@ SUBSYSTEM_DEF(traumas) "anime" = typecacheof(list(/obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/reagent_containers/food/snacks/sashimi, /obj/item/reagent_containers/food/snacks/chawanmushi, /obj/item/reagent_containers/food/drinks/bottle/sake, /obj/item/throwing_star, /obj/item/clothing/head/kitty/genuine, /obj/item/clothing/suit/space/space_ninja, - /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/twohanded/vibro_weapon, + /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/vibro_weapon, /obj/item/nullrod/scythe/vibro, /obj/item/energy_katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, /obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe)), "mimes" = typecacheof(list(/obj/item/pda/mime, /obj/item/clothing/under/rank/civilian/mime, /obj/item/clothing/mask/gas/mime, @@ -168,7 +168,7 @@ SUBSYSTEM_DEF(traumas) /obj/machinery/porta_turret/syndicate, /obj/structure/closet/syndicate, /obj/machinery/suit_storage_unit/syndicate, /obj/item/clothing/under/syndicate, /obj/item/folder/syndicate, /obj/item/documents/syndicate, /obj/item/clothing/glasses/phantomthief/syndicate, /obj/item/antag_spawner/nuke_ops, /obj/item/storage/box/syndicate, /obj/structure/fluff/empty_sleeper/syndicate, /obj/item/implant/radio/syndicate, /obj/item/clothing/head/helmet/space/syndicate, /obj/machinery/nuclearbomb/syndicate, /obj/item/grenade/syndieminibomb, /obj/item/storage/backpack/duffelbag/syndie, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/automatic/shotgun/bulldog, /obj/item/gun/ballistic/automatic/c20r, /obj/item/gun/ballistic/automatic/m90, /obj/item/gun/ballistic/automatic/l6_saw, /obj/item/storage/belt/grenade/full, /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate, /obj/item/gun/energy/kinetic_accelerator/crossbow, - /obj/item/melee/transforming/energy/sword/saber, /obj/item/twohanded/dualsaber, /obj/item/melee/powerfist, /obj/item/storage/box/syndie_kit, /obj/item/grenade/spawnergrenade/manhacks, /obj/item/grenade/chem_grenade/bioterrorfoam, /obj/item/reagent_containers/spray/chemsprayer/bioterror, /obj/item/ammo_box/magazine/m10mm, + /obj/item/melee/transforming/energy/sword/saber, /obj/item/dualsaber, /obj/item/melee/powerfist, /obj/item/storage/box/syndie_kit, /obj/item/grenade/spawnergrenade/manhacks, /obj/item/grenade/chem_grenade/bioterrorfoam, /obj/item/reagent_containers/spray/chemsprayer/bioterror, /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/pistolm9mm, /obj/item/ammo_box/a357, /obj/item/ammo_box/magazine/m12g, /obj/item/ammo_box/magazine/mm195x129, /obj/item/antag_spawner/nuke_ops, /obj/mecha/combat/gygax/dark, /obj/mecha/combat/marauder/mauler, /obj/item/soap/syndie, /obj/item/gun/syringe/syndicate, /obj/item/cartridge/virus/syndicate, /obj/item/cartridge/virus/frame, /obj/item/chameleon, /obj/item/storage/box/syndie_kit/cutouts, /obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/card/emag, /obj/item/storage/toolbox/syndicate, /obj/item/storage/book/bible/syndicate, /obj/item/encryptionkey/binary, /obj/item/encryptionkey/syndicate, /obj/item/aiModule/syndicate, /obj/item/clothing/shoes/magboots/syndie, /obj/item/powersink, /obj/item/sbeacondrop, /obj/item/sbeacondrop/bomb, /obj/item/syndicatedetonator, /obj/item/shield/energy, /obj/item/assault_pod, /obj/item/slimepotion/slime/sentience/nuclear, /obj/item/stack/telecrystal, /obj/item/jammer, /obj/item/codespeak_manual/unlimited, @@ -176,7 +176,7 @@ SUBSYSTEM_DEF(traumas) /obj/machinery/computer/pod/old/syndicate, /obj/machinery/vending/medical/syndicate_access, /obj/item/mmi/syndie, /obj/item/target/syndicate, /obj/machinery/vending/cigarette/syndicate, /obj/item/robot_module/syndicate, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/power/singularity_beacon/syndicate, /obj/item/clothing/head/syndicatefake, /obj/item/radio/headset/syndicate, /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate, /obj/item/pda/syndicate, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/gun/ballistic/automatic/flechette, /obj/item/ammo_box/magazine/flechette, /obj/item/clothing/suit/toggle/lawyer/black/syndie, /obj/item/melee/transforming/energy/sword/cx/traitor, /obj/structure/sign/poster/contraband/syndicate_pistol, /obj/structure/sign/poster/contraband/syndicate_recruitment, /obj/item/bedsheet/syndie, /obj/item/borg/upgrade/syndicate, /obj/item/tank/jetpack/oxygen/harness, /obj/item/firing_pin/implant/pindicate, /obj/item/reagent_containers/glass/bottle/traitor, /obj/item/storage/belt/military, - /obj/item/twohanded/shockpaddles/syndicate, /obj/item/clothing/mask/cigarette/syndicate, /obj/item/toy/plush/nukeplushie)), + /obj/item/shockpaddles/syndicate, /obj/item/clothing/mask/cigarette/syndicate, /obj/item/toy/plush/nukeplushie)), "eye" = typecacheof(list(/obj/item/organ/eyes, /obj/item/reagent_containers/syringe)) ) diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 1ad53aae67..01efbcb07f 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -244,7 +244,7 @@ /datum/crafting_recipe/rcl name = "Makeshift Rapid Cable Layer" - result = /obj/item/twohanded/rcl/ghetto + result = /obj/item/rcl/ghetto time = 40 tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) reqs = list(/obj/item/stack/sheet/metal = 15) diff --git a/code/datums/components/crafting/recipes/recipes_primal.dm b/code/datums/components/crafting/recipes/recipes_primal.dm index ae611e5855..a053a537ca 100644 --- a/code/datums/components/crafting/recipes/recipes_primal.dm +++ b/code/datums/components/crafting/recipes/recipes_primal.dm @@ -50,7 +50,7 @@ /datum/crafting_recipe/bonespear name = "Bone Spear" - result = /obj/item/twohanded/bonespear + result = /obj/item/spear/bonespear time = 30 reqs = list(/obj/item/stack/sheet/bone = 4, /obj/item/stack/sheet/sinew = 1) @@ -58,7 +58,7 @@ /datum/crafting_recipe/boneaxe name = "Bone Axe" - result = /obj/item/twohanded/fireaxe/boneaxe + result = /obj/item/fireaxe/boneaxe time = 50 reqs = list(/obj/item/stack/sheet/bone = 6, /obj/item/stack/sheet/sinew = 3) @@ -74,20 +74,20 @@ /datum/crafting_recipe/headpike name = "Spike Head (Glass Spear)" time = 65 - reqs = list(/obj/item/twohanded/spear = 1, + reqs = list(/obj/item/spear = 1, /obj/item/bodypart/head = 1) parts = list(/obj/item/bodypart/head = 1, - /obj/item/twohanded/spear = 1) + /obj/item/spear = 1) result = /obj/structure/headpike category = CAT_PRIMAL /datum/crafting_recipe/headpikebone name = "Spike Head (Bone Spear)" time = 65 - reqs = list(/obj/item/twohanded/bonespear = 1, + reqs = list(/obj/item/spear/bonespear = 1, /obj/item/bodypart/head = 1) parts = list(/obj/item/bodypart/head = 1, - /obj/item/twohanded/bonespear = 1) + /obj/item/spear/bonespear = 1) result = /obj/structure/headpike/bone category = CAT_PRIMAL diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index b037f02f80..318587f5cb 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -42,7 +42,7 @@ /datum/crafting_recipe/spear name = "Spear" - result = /obj/item/twohanded/spear + result = /obj/item/spear reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/shard = 1, /obj/item/stack/rods = 1) @@ -110,7 +110,7 @@ /datum/crafting_recipe/chainsaw name = "Chainsaw" - result = /obj/item/twohanded/required/chainsaw + result = /obj/item/chainsaw reqs = list(/obj/item/circular_saw = 1, /obj/item/stack/cable_coil = 3, /obj/item/stack/sheet/plasteel = 5) @@ -141,7 +141,7 @@ result = /obj/item/bombcore/chemical reqs = list( /obj/item/stock_parts/matter_bin = 1, - /obj/item/twohanded/required/gibtonite = 1, + /obj/item/gibtonite = 1, /obj/item/grenade/chem_grenade = 2 ) parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) @@ -173,10 +173,10 @@ /datum/crafting_recipe/lance name = "Explosive Lance (Grenade)" - result = /obj/item/twohanded/spear - reqs = list(/obj/item/twohanded/spear = 1, + result = /obj/item/spear + reqs = list(/obj/item/spear = 1, /obj/item/grenade = 1) - parts = list(/obj/item/twohanded/spear = 1, + parts = list(/obj/item/spear = 1, /obj/item/grenade = 1) time = 15 category = CAT_WEAPONRY diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm new file mode 100644 index 0000000000..e9f99a995e --- /dev/null +++ b/code/datums/components/twohanded.dm @@ -0,0 +1,311 @@ +/** + * Two Handed Component + * + * When applied to an item it will make it two handed + * + */ +/datum/component/two_handed + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item + var/wielded = FALSE /// Are we holding the two handed item properly + var/force_multiplier = 0 /// The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded + var/force_wielded = 0 /// The force of the item when weilded + var/force_unwielded = 0 /// The force of the item when unweilded + var/wieldsound = FALSE /// Play sound when wielded + var/unwieldsound = FALSE /// Play sound when unwielded + var/attacksound = FALSE /// Play sound on attack when wielded + var/require_twohands = FALSE /// Does it have to be held in both hands + var/icon_wielded = FALSE /// The icon that will be used when wielded + var/obj/item/offhand/offhand_item = null /// Reference to the offhand created for the item + var/sharpened_increase = 0 /// The amount of increase recived from sharpening the item + +/** + * Two Handed component + * + * vars: + * * require_twohands (optional) Does the item need both hands to be carried + * * wieldsound (optional) The sound to play when wielded + * * unwieldsound (optional) The sound to play when unwielded + * * attacksound (optional) The sound to play when wielded and attacking + * * force_multiplier (optional) The force multiplier when wielded, do not use with force_wielded, and force_unwielded + * * force_wielded (optional) The force setting when the item is wielded, do not use with force_multiplier + * * force_unwielded (optional) The force setting when the item is unwielded, do not use with force_multiplier + * * icon_wielded (optional) The icon to be used when wielded + */ +/datum/component/two_handed/Initialize(require_twohands=FALSE, wieldsound=FALSE, unwieldsound=FALSE, attacksound=FALSE, \ + force_multiplier=0, force_wielded=0, force_unwielded=0, icon_wielded=FALSE) + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + src.require_twohands = require_twohands + src.wieldsound = wieldsound + src.unwieldsound = unwieldsound + src.attacksound = attacksound + src.force_multiplier = force_multiplier + src.force_wielded = force_wielded + src.force_unwielded = force_unwielded + src.icon_wielded = icon_wielded + +// Inherit the new values passed to the component +/datum/component/two_handed/InheritComponent(datum/component/two_handed/new_comp, original, require_twohands, wieldsound, unwieldsound, \ + force_multiplier, force_wielded, force_unwielded, icon_wielded) + if(!original) + return + if(require_twohands) + src.require_twohands = require_twohands + if(wieldsound) + src.wieldsound = wieldsound + if(unwieldsound) + src.unwieldsound = unwieldsound + if(attacksound) + src.attacksound = attacksound + if(force_multiplier) + src.force_multiplier = force_multiplier + if(force_wielded) + src.force_wielded = force_wielded + if(force_unwielded) + src.force_unwielded = force_unwielded + if(icon_wielded) + src.icon_wielded = icon_wielded + +// register signals withthe parent item +/datum/component/two_handed/RegisterWithParent() + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/on_attack_self) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/on_attack) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON, .proc/on_update_icon) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(parent, COMSIG_ITEM_SHARPEN_ACT, .proc/on_sharpen) + +// Remove all siginals registered to the parent item +/datum/component/two_handed/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + COMSIG_ITEM_ATTACK_SELF, + COMSIG_ITEM_ATTACK, + COMSIG_ATOM_UPDATE_ICON, + COMSIG_MOVABLE_MOVED, + COMSIG_ITEM_SHARPEN_ACT)) + +/// Triggered on equip of the item containing the component +/datum/component/two_handed/proc/on_equip(datum/source, mob/user, slot) + if(require_twohands && slot == ITEM_SLOT_HANDS) // force equip the item + wield(user) + if(!user.is_holding(parent) && wielded && !require_twohands) + unwield(user) + +/// Triggered on drop of item containing the component +/datum/component/two_handed/proc/on_drop(datum/source, mob/user) + if(require_twohands) + unwield(user, show_message=TRUE) + if(wielded) + unwield(user) + if(source == offhand_item && !QDELETED(src)) + qdel(src) + +/// Triggered on attack self of the item containing the component +/datum/component/two_handed/proc/on_attack_self(datum/source, mob/user) + if(wielded) + unwield(user) + else + wield(user) + +/** + * Wield the two handed item in both hands + * + * vars: + * * user The mob/living/carbon that is wielding the item + */ +/datum/component/two_handed/proc/wield(mob/living/carbon/user) + if(wielded) + return + if(ismonkey(user)) + to_chat(user, "It's too heavy for you to wield fully.") + return + if(user.get_inactive_held_item()) + if(require_twohands) + to_chat(user, "[parent] is too cumbersome to carry in one hand!") + user.dropItemToGround(parent, force=TRUE) + else + to_chat(user, "You need your other hand to be empty!") + return + if(user.get_num_arms() < 2) + if(require_twohands) + user.dropItemToGround(parent, force=TRUE) + to_chat(user, "You don't have enough intact hands.") + return + + // wield update status + if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) + return // blocked wield from item + wielded = TRUE + RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, .proc/on_swap_hands) + + // update item stats and name + var/obj/item/parent_item = parent + if(force_multiplier) + parent_item.force *= force_multiplier + else if(force_wielded) + parent_item.force = force_wielded + if(sharpened_increase) + parent_item.force += sharpened_increase + parent_item.name = "[parent_item.name] (Wielded)" + parent_item.update_icon() + + if(iscyborg(user)) + to_chat(user, "You dedicate your module to [parent].") + else + to_chat(user, "You grab [parent] with both hands.") + + // Play sound if one is set + if(wieldsound) + playsound(parent_item.loc, wieldsound, 50, TRUE) + + // Let's reserve the other hand + offhand_item = new(user) + offhand_item.name = "[parent_item.name] - offhand" + offhand_item.desc = "Your second grip on [parent_item]." + offhand_item.wielded = TRUE + RegisterSignal(offhand_item, COMSIG_ITEM_DROPPED, .proc/on_drop) + user.put_in_inactive_hand(offhand_item) + +/** + * Unwield the two handed item + * + * vars: + * * user The mob/living/carbon that is unwielding the item + * * show_message (option) show a message to chat on unwield + */ +/datum/component/two_handed/proc/unwield(mob/living/carbon/user, show_message=TRUE) + if(!wielded || !user) + return + + // wield update status + wielded = FALSE + UnregisterSignal(user, COMSIG_MOB_SWAP_HANDS) + SEND_SIGNAL(parent, COMSIG_TWOHANDED_UNWIELD, user) + + // update item stats + var/obj/item/parent_item = parent + if(sharpened_increase) + parent_item.force -= sharpened_increase + if(force_multiplier) + parent_item.force /= force_multiplier + else if(force_unwielded) + parent_item.force = force_unwielded + + // update the items name to remove the wielded status + var/sf = findtext(parent_item.name, " (Wielded)", -10) // 10 == length(" (Wielded)") + if(sf) + parent_item.name = copytext(parent_item.name, 1, sf) + else + parent_item.name = "[initial(parent_item.name)]" + + // Update icons + parent_item.update_icon() + if(user.get_item_by_slot(ITEM_SLOT_BACK) == parent) + user.update_inv_back() + else + user.update_inv_hands() + + // if the item requires two handed drop the item on unwield + if(require_twohands) + user.dropItemToGround(parent, force=TRUE) + + // Show message if requested + if(show_message) + if(iscyborg(user)) + to_chat(user, "You free up your module.") + else if(require_twohands) + to_chat(user, "You drop [parent].") + else + to_chat(user, "You are now carrying [parent] with one hand.") + + // Play sound if set + if(unwieldsound) + playsound(parent_item.loc, unwieldsound, 50, TRUE) + + // Remove the object in the offhand + if(offhand_item) + UnregisterSignal(offhand_item, COMSIG_ITEM_DROPPED) + qdel(offhand_item) + // Clear any old refrence to an item that should be gone now + offhand_item = null + +/** + * on_attack triggers on attack with the parent item + */ +/datum/component/two_handed/proc/on_attack(obj/item/source, mob/living/target, mob/living/user) + if(wielded && attacksound) + var/obj/item/parent_item = parent + playsound(parent_item.loc, attacksound, 50, TRUE) + +/** + * on_update_icon triggers on call to update parent items icon + * + * Updates the icon using icon_wielded if set + */ +/datum/component/two_handed/proc/on_update_icon(datum/source) + if(icon_wielded && wielded) + var/obj/item/parent_item = parent + if(parent_item) + parent_item.icon_state = icon_wielded + return COMSIG_ATOM_NO_UPDATE_ICON_STATE + +/** + * on_moved Triggers on item moved + */ +/datum/component/two_handed/proc/on_moved(datum/source, mob/user, dir) + unwield(user) + +/** + * on_swap_hands Triggers on swapping hands, blocks swap if the other hand is busy + */ +/datum/component/two_handed/proc/on_swap_hands(mob/user, obj/item/held_item) + if(!held_item) + return + if(held_item == parent) + return COMPONENT_BLOCK_SWAP + +/** + * on_sharpen Triggers on usage of a sharpening stone on the item + */ +/datum/component/two_handed/proc/on_sharpen(obj/item/item, amount, max_amount) + if(!item) + return COMPONENT_BLOCK_SHARPEN_BLOCKED + if(sharpened_increase) + return COMPONENT_BLOCK_SHARPEN_ALREADY + var/wielded_val = 0 + if(force_multiplier) + var/obj/item/parent_item = parent + if(wielded) + wielded_val = parent_item.force + else + wielded_val = parent_item.force * force_multiplier + else + wielded_val = force_wielded + if(wielded_val > max_amount) + return COMPONENT_BLOCK_SHARPEN_MAXED + sharpened_increase = min(amount, (max_amount - wielded_val)) + return COMPONENT_BLOCK_SHARPEN_APPLIED + +/** + * The offhand dummy item for two handed items + * + */ +/obj/item/offhand + name = "offhand" + icon_state = "offhand" + w_class = WEIGHT_CLASS_HUGE + item_flags = ABSTRACT + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/wielded = FALSE // Off Hand tracking of wielded status + +/obj/item/offhand/Destroy() + wielded = FALSE + return ..() + +/obj/item/offhand/equipped(mob/user, slot) + . = ..() + if(wielded && !user.is_holding(src) && !QDELETED(src)) + qdel(src) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 82ddd90b42..a2a9e376e1 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -180,14 +180,12 @@ to_chat(usr, "Keelhaul: Harm Grab. Kick opponents to the floor. Against prone targets, deal additional stamina damage and disarm them.") to_chat(usr, "In addition, your body has become incredibly resilient to most forms of attack. Weapons cannot readily pierce your hardened skin, and you are highly resistant to stuns and knockdowns, and can block all projectiles in Throw Mode. However, you are not invincible, and sustained damage will take it's toll. Avoid heat at all costs!") -/obj/item/twohanded/bostaff +/obj/item/staff/bostaff name = "bo staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate." force = 10 w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK - force_unwielded = 10 - force_wielded = 24 throwforce = 20 throw_speed = 2 attack_verb = list("smashed", "slammed", "whacked", "thwacked") @@ -196,11 +194,29 @@ lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' block_chance = 50 + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/bostaff/update_icon_state() - icon_state = "bostaff[wielded]" +/obj/item/staff/bostaff/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) -/obj/item/twohanded/bostaff/attack(mob/target, mob/living/user) +/obj/item/staff/bostaff/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=24, icon_wielded="bostaff1") + +/// triggered on wield of two handed item +/obj/item/staff/bostaff/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/staff/bostaff/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/staff/bostaff/update_icon_state() + icon_state = "bostaff0" + +/obj/item/staff/bostaff/attack(mob/target, mob/living/user) add_fingerprint(user) if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) to_chat(user, "You club yourself over the head with [src].") @@ -249,7 +265,7 @@ else return ..() -/obj/item/twohanded/bostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/staff/bostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(!wielded) return BLOCK_NONE return ..() diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 4c200f110d..ce6e2782e4 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -363,9 +363,9 @@ status_type = STATUS_EFFECT_REPLACE alert_type = null var/mutable_appearance/marked_underlay - var/obj/item/twohanded/kinetic_crusher/hammer_synced + var/obj/item/kinetic_crusher/hammer_synced -/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, obj/item/twohanded/kinetic_crusher/new_hammer_synced) +/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, obj/item/kinetic_crusher/new_hammer_synced) . = ..() if(.) hammer_synced = new_hammer_synced diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index dc4db9e85d..25493f2e30 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -75,8 +75,8 @@ /datum/wires/explosive/gibtonite - holder_type = /obj/item/twohanded/required/gibtonite + holder_type = /obj/item/gibtonite /datum/wires/explosive/gibtonite/explode() - var/obj/item/twohanded/required/gibtonite/P = holder + var/obj/item/gibtonite/P = holder P.GibtoniteReaction(null, 2) \ No newline at end of file diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 2d9880578c..8a91c266a0 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -42,9 +42,9 @@ /obj/item/clothing/mask/facehugger/toy = ARCADE_WEIGHT_RARE, /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = ARCADE_WEIGHT_TRICK, /obj/item/hot_potato/harmless/toy = ARCADE_WEIGHT_RARE, - /obj/item/twohanded/dualsaber/toy = ARCADE_WEIGHT_RARE, - /obj/item/twohanded/dualsaber/hypereutactic/toy = ARCADE_WEIGHT_RARE, - /obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow = ARCADE_WEIGHT_RARE, + /obj/item/dualsaber/toy = ARCADE_WEIGHT_RARE, + /obj/item/dualsaber/hypereutactic/toy = ARCADE_WEIGHT_RARE, + /obj/item/dualsaber/hypereutactic/toy/rainbow = ARCADE_WEIGHT_RARE, /obj/item/storage/box/snappops = ARCADE_WEIGHT_TRICK, /obj/item/clothing/under/syndicate/tacticool = ARCADE_WEIGHT_TRICK, diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 4c12809184..43ace30b43 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1052,11 +1052,11 @@ to_chat(user, "The airlock's bolts prevent it from being forced!") else if( !welded && !operating) if(!beingcrowbarred) //being fireaxe'd - var/obj/item/twohanded/fireaxe/F = I - if(F.wielded) - INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) - else - to_chat(user, "You need to be wielding the fire axe to do that!") + var/obj/item/fireaxe/axe = I + if(!axe.wielded) + to_chat(user, "You need to be wielding \the [axe] to do that!") + return + INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) else INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index c4c712ca25..5bfef9f925 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -181,7 +181,7 @@ return /obj/machinery/door/attackby(obj/item/I, mob/user, params) - if(user.a_intent != INTENT_HARM && (istype(I, /obj/item/crowbar) || istype(I, /obj/item/twohanded/fireaxe))) + if(user.a_intent != INTENT_HARM && (istype(I, /obj/item/crowbar) || istype(I, /obj/item/fireaxe))) try_to_crowbar(I, user) return 1 else if(istype(I, /obj/item/weldingtool)) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 8545e6f35c..0e61387346 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -17,7 +17,7 @@ /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/modular_computer, - /obj/item/twohanded/electrostaff, + /obj/item/electrostaff, /obj/item/gun/ballistic/automatic/magrifle)) /obj/machinery/recharger/RefreshParts() diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 1fe5e46e25..102d4c55ed 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -128,14 +128,13 @@ spawn(0) new /datum/hallucination/delusion(victim, TRUE, "demon",duration,0) - var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) + var/obj/item/chainsaw/doomslayer/chainsaw = new(victim.loc) victim.log_message("entered a blood frenzy", LOG_ATTACK) ADD_TRAIT(chainsaw, TRAIT_NODROP, CHAINSAW_FRENZY_TRAIT) victim.drop_all_held_items() victim.put_in_hands(chainsaw, forced = TRUE) chainsaw.attack_self(victim) - chainsaw.wield(victim) victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,25) to_chat(victim, "KILL, KILL, KILL! YOU HAVE NO ALLIES ANYMORE, KILL THEM ALL!") diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index f3ea461c74..8c840eef2b 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -1,4 +1,4 @@ -/obj/item/twohanded/rcl +/obj/item/rcl name = "rapid cable layer" desc = "A device used to rapidly deploy cables. It has screws on the side which can be removed to slide off the cables. Do not use without insulation!" icon = 'icons/obj/tools.dmi' @@ -23,15 +23,25 @@ var/datum/radial_menu/persistent/wiring_gui_menu var/mob/listeningTo -/obj/item/twohanded/rcl/Initialize() +/obj/item/rcl/Initialize() . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) update_icon() -/obj/item/twohanded/rcl/ComponentInitialize() +/// triggered on wield of two handed item +/obj/item/rcl/proc/on_wield(obj/item/source, mob/user) + active = TRUE + +/// triggered on unwield of two handed item +/obj/item/rcl/proc/on_unwield(obj/item/source, mob/user) + active = FALSE + +/obj/item/rcl/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) -/obj/item/twohanded/rcl/attackby(obj/item/W, mob/user) +/obj/item/rcl/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = W @@ -86,26 +96,26 @@ else ..() -/obj/item/twohanded/rcl/examine(mob/user) +/obj/item/rcl/examine(mob/user) . = ..() if(loaded) . += "It contains [loaded.amount]/[max_amount] cables." -/obj/item/twohanded/rcl/Destroy() +/obj/item/rcl/Destroy() QDEL_NULL(loaded) last = null listeningTo = null QDEL_NULL(wiring_gui_menu) return ..() -/obj/item/twohanded/rcl/update_icon_state() +/obj/item/rcl/update_icon_state() icon_state = initial(icon_state) item_state = initial(item_state) if(!loaded || !loaded.amount) icon_state += "-empty" item_state += "-0" -/obj/item/twohanded/rcl/update_overlays() +/obj/item/rcl/update_overlays() . = ..() if(!loaded || !loaded.amount) return @@ -113,7 +123,7 @@ cable_overlay.color = GLOB.cable_colors[colors[current_color_index]] . += cable_overlay -/obj/item/twohanded/rcl/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) +/obj/item/rcl/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands || !(loaded?.amount)) return @@ -121,7 +131,7 @@ cable_overlay.color = GLOB.cable_colors[colors[current_color_index]] . += cable_overlay -/obj/item/twohanded/rcl/proc/is_empty(mob/user, loud = 1) +/obj/item/rcl/proc/is_empty(mob/user, loud = 1) update_icon() if(!loaded || !loaded.amount) if(loud) @@ -130,26 +140,23 @@ QDEL_NULL(loaded) loaded = null QDEL_NULL(wiring_gui_menu) - unwield(user) - active = wielded return TRUE return FALSE -/obj/item/twohanded/rcl/pickup(mob/user) +/obj/item/rcl/pickup(mob/user) ..() getMobhook(user) -/obj/item/twohanded/rcl/dropped(mob/wearer) +/obj/item/rcl/dropped(mob/wearer) ..() UnregisterSignal(wearer, COMSIG_MOVABLE_MOVED) listeningTo = null last = null -/obj/item/twohanded/rcl/attack_self(mob/user) +/obj/item/rcl/attack_self(mob/user) ..() - active = wielded if(!active) last = null else if(!last) @@ -158,7 +165,7 @@ last = C break -obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) +obj/item/rcl/proc/getMobhook(mob/to_hook) if(listeningTo == to_hook) return if(listeningTo) @@ -166,7 +173,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, .proc/trigger) listeningTo = to_hook -/obj/item/twohanded/rcl/proc/trigger(mob/user) +/obj/item/rcl/proc/trigger(mob/user) if(active) layCable(user) if(wiring_gui_menu) //update the wire options as you move @@ -174,7 +181,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) //previous contents of trigger(), lays cable each time the player moves -/obj/item/twohanded/rcl/proc/layCable(mob/user) +/obj/item/rcl/proc/layCable(mob/user) if(!isturf(user.loc)) return if(is_empty(user, 0)) @@ -207,7 +214,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) update_icon() //searches the current tile for a stub cable of the same colour -/obj/item/twohanded/rcl/proc/findLinkingCable(mob/user) +/obj/item/rcl/proc/findLinkingCable(mob/user) var/turf/T if(!isturf(user.loc)) return @@ -223,10 +230,8 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) continue if(C.d1 == 0) return C - return - -/obj/item/twohanded/rcl/proc/wiringGuiGenerateChoices(mob/user) +/obj/item/rcl/proc/wiringGuiGenerateChoices(mob/user) var/fromdir = 0 var/obj/structure/cable/linkingCable = findLinkingCable(user) if(linkingCable) @@ -243,12 +248,12 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) wiredirs[icondir] = img return wiredirs -/obj/item/twohanded/rcl/proc/showWiringGui(mob/user) +/obj/item/rcl/proc/showWiringGui(mob/user) var/list/choices = wiringGuiGenerateChoices(user) wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, .proc/wiringGuiReact, user), radius = 42) -/obj/item/twohanded/rcl/proc/wiringGuiUpdate(mob/user) +/obj/item/rcl/proc/wiringGuiUpdate(mob/user) if(!wiring_gui_menu) return @@ -259,7 +264,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) //Callback used to respond to interactions with the wiring menu -/obj/item/twohanded/rcl/proc/wiringGuiReact(mob/living/user,choice) +/obj/item/rcl/proc/wiringGuiReact(mob/living/user,choice) if(!choice) //close on a null choice (the center button) QDEL_NULL(wiring_gui_menu) return @@ -290,7 +295,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) wiringGuiUpdate(user) -/obj/item/twohanded/rcl/ui_action_click(mob/user, action) +/obj/item/rcl/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/rcl_col)) current_color_index++; if (current_color_index > colors.len) @@ -308,13 +313,13 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) else //open the menu showWiringGui(user) -/obj/item/twohanded/rcl/pre_loaded/Initialize() //Comes preloaded with cable, for testing stuff +/obj/item/rcl/pre_loaded/Initialize() //Comes preloaded with cable, for testing stuff loaded = new() loaded.max_amount = max_amount loaded.amount = max_amount return ..() -/obj/item/twohanded/rcl/ghetto +/obj/item/rcl/ghetto actions_types = list() max_amount = 30 name = "makeshift rapid cable layer" diff --git a/code/game/objects/items/binoculars.dm b/code/game/objects/items/binoculars.dm new file mode 100644 index 0000000000..347f0ad3a7 --- /dev/null +++ b/code/game/objects/items/binoculars.dm @@ -0,0 +1,65 @@ +/obj/item/binoculars + name = "binoculars" + desc = "Used for long-distance surveillance." + item_state = "binoculars" + icon_state = "binoculars" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + var/mob/listeningTo + var/zoom_out_amt = 6 + var/zoom_amt = 10 + +/obj/item/binoculars/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/binoculars/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12) + +/obj/item/binoculars/Destroy() + listeningTo = null + return ..() + +/obj/item/binoculars/proc/on_wield(obj/item/source, mob/user) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/unwield) + listeningTo = user + user.visible_message("[user] holds [src] up to [user.p_their()] eyes.", "You hold [src] up to your eyes.") + item_state = "binoculars_wielded" + user.regenerate_icons() + if(!user?.client) + return + var/client/C = user.client + var/_x = 0 + var/_y = 0 + switch(user.dir) + if(NORTH) + _y = zoom_amt + if(EAST) + _x = zoom_amt + if(SOUTH) + _y = -zoom_amt + if(WEST) + _x = -zoom_amt + C.change_view(world.view + zoom_out_amt) + C.pixel_x = world.icon_size*_x + C.pixel_y = world.icon_size*_y +/obj/item/binoculars/proc/on_unwield(obj/item/source, mob/user) + unwield(user) + +/obj/item/binoculars/proc/unwield(mob/user) + if(listeningTo) + UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) + listeningTo = null + user.visible_message("[user] lowers [src].", "You lower [src].") + item_state = "binoculars" + user.regenerate_icons() + if(user && user.client) + user.regenerate_icons() + var/client/C = user.client + C.change_view(CONFIG_GET(string/default_view)) + user.client.pixel_x = 0 + user.client.pixel_y = 0 diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm new file mode 100644 index 0000000000..225644109f --- /dev/null +++ b/code/game/objects/items/broom.dm @@ -0,0 +1,69 @@ +/obj/item/broom + name = "broom" + desc = "This is my BROOMSTICK! It can be used manually or braced with two hands to sweep items as you move. It has a telescopic handle for compact storage." + icon = 'icons/obj/janitor.dmi' + icon_state = "broom0" + lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' + force = 8 + throwforce = 10 + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("swept", "brushed off", "bludgeoned", "whacked") + resistance_flags = FLAMMABLE + +/obj/item/broom/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/broom/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12, icon_wielded="broom1") + +/obj/item/broom/update_icon_state() + icon_state = "broom0" + +/// triggered on wield of two handed item +/obj/item/broom/proc/on_wield(obj/item/source, mob/user) + to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) + +/// triggered on unwield of two handed item +/obj/item/broom/proc/on_unwield(obj/item/source, mob/user) + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + +/obj/item/broom/afterattack(atom/A, mob/user, proximity) + . = ..() + if(!proximity) + return + sweep(user, A, FALSE) + +/obj/item/broom/proc/sweep(mob/user, atom/A, moving = TRUE) + var/turf/target + if (!moving) + if (isturf(A)) + target = A + else + target = A.loc + else + target = user.loc + if (!isturf(target)) + return + if (locate(/obj/structure/table) in target.contents) + return + var/i = 0 + for(var/obj/item/garbage in target.contents) + if(!garbage.anchored) + garbage.Move(get_step(target, user.dir), user.dir) + i++ + if(i >= 20) + break + if(i >= 1) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) + +/obj/item/broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta + J.put_in_cart(src, user) + J.mybroom=src + J.update_icon() diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm new file mode 100644 index 0000000000..f382aa1ed3 --- /dev/null +++ b/code/game/objects/items/chainsaw.dm @@ -0,0 +1,93 @@ + +// CHAINSAW +/obj/item/chainsaw + name = "chainsaw" + desc = "A versatile power tool. Useful for limbing trees and delimbing humans." + icon_state = "chainsaw_off" + lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' + flags_1 = CONDUCT_1 + force = 13 + var/force_on = 24 + w_class = WEIGHT_CLASS_HUGE + throwforce = 13 + throw_speed = 2 + throw_range = 4 + custom_materials = list(/datum/material/iron=13000) + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + hitsound = "swing_hit" + sharpness = IS_SHARP + actions_types = list(/datum/action/item_action/startchainsaw) + tool_behaviour = TOOL_SAW + toolspeed = 0.5 + var/on = FALSE + var/wielded = FALSE // track wielded status on item + +/obj/item/chainsaw/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/chainsaw/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 30, 100, 0, 'sound/weapons/chainsawhit.ogg', TRUE) + AddComponent(/datum/component/two_handed, require_twohands=TRUE) + AddElement(/datum/element/update_icon_updates_onmob) + +/// triggered on wield of two handed item +/obj/item/chainsaw/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/chainsaw/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/chainsaw/suicide_act(mob/living/carbon/user) + if(on) + user.visible_message("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(src, 'sound/weapons/chainsawhit.ogg', 100, 1) + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) + if(myhead) + myhead.dismember() + else + user.visible_message("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(src, 'sound/weapons/genhit1.ogg', 100, 1) + return(BRUTELOSS) + +/obj/item/chainsaw/attack_self(mob/user) + on = !on + to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") + force = on ? force_on : initial(force) + throwforce = on ? force_on : force + update_icon() + var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) + butchering.butchering_enabled = on + + if(on) + hitsound = 'sound/weapons/chainsawhit.ogg' + else + hitsound = "swing_hit" + +/obj/item/chainsaw/update_icon_state() + icon_state = "chainsaw_[on ? "on" : "off"]" + +/obj/item/chainsaw/get_dismemberment_chance() + if(wielded) + . = ..() + +/obj/item/chainsaw/doomslayer + name = "THE GREAT COMMUNICATOR" + desc = "VRRRRRRR!!!" + armour_penetration = 100 + force_on = 30 + +/obj/item/chainsaw/doomslayer/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + block_return[BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE] = 100 + return ..() + +/obj/item/chainsaw/doomslayer/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) + owner.visible_message("Ranged attacks just make [owner] angrier!") + playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return ..() diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 3ac3347222..92c2d40c98 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -19,7 +19,7 @@ var/on = FALSE //if the paddles are equipped (1) or on the defib (0) var/safety = TRUE //if you can zap people with the defibs on harm mode var/powered = FALSE //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise - var/obj/item/twohanded/shockpaddles/paddles + var/obj/item/shockpaddles/paddles var/obj/item/stock_parts/cell/cell var/combat = FALSE //can we revive through space suits? var/grab_ghost = FALSE // Do we pull the ghost back into their body? @@ -106,7 +106,6 @@ /obj/item/defibrillator/attackby(obj/item/W, mob/user, params) if(W == paddles) - paddles.unwield() toggle_paddles() else if(istype(W, /obj/item/stock_parts/cell)) var/obj/item/stock_parts/cell/C = W @@ -170,7 +169,6 @@ return else //Remove from their hands and back onto the defib unit - paddles.unwield() remove_paddles(user) update_power() @@ -179,7 +177,7 @@ A.UpdateButtonIcon() /obj/item/defibrillator/proc/make_paddles() - return new /obj/item/twohanded/shockpaddles(src) + return new /obj/item/shockpaddles(src) /obj/item/defibrillator/equipped(mob/user, slot) ..() @@ -256,13 +254,12 @@ /obj/item/defibrillator/compact/combat/loaded/attackby(obj/item/W, mob/user, params) if(W == paddles) - paddles.unwield() toggle_paddles() return //paddles -/obj/item/twohanded/shockpaddles +/obj/item/shockpaddles name = "defibrillator paddles" desc = "A pair of plastic-gripped paddles with flat metal surfaces that are used to deliver powerful electric shocks." icon = 'icons/obj/items_and_weapons.dmi' @@ -284,24 +281,48 @@ var/grab_ghost = FALSE var/tlimit = DEFIB_TIME_LIMIT * 10 var/disarm_shock_time = 10 + var/wielded = FALSE // track wielded status on item - var/mob/listeningTo +/obj/item/shockpaddles/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + if(!req_defib) + return //If it doesn't need a defib, just say it exists + if (!loc || !istype(loc, /obj/item/defibrillator)) //To avoid weird issues from admin spawns + return INITIALIZE_HINT_QDEL + defib = loc + busy = FALSE + update_icon() -/obj/item/twohanded/shockpaddles/ComponentInitialize() +/obj/item/shockpaddles/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) + AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12) -/obj/item/twohanded/shockpaddles/equipped(mob/user, slot) +/// triggered on wield of two handed item +/obj/item/shockpaddles/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/shockpaddles/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/shockpaddles/Destroy() + defib = null + return ..() + +/obj/item/shockpaddles/equipped(mob/user, slot) . = ..() if(!req_defib) return RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/check_range) -/obj/item/twohanded/shockpaddles/Moved() +/obj/item/shockpaddles/Moved() . = ..() check_range() -/obj/item/twohanded/shockpaddles/proc/check_range() +/obj/item/shockpaddles/proc/check_range() if(!req_defib || !defib) return if(!in_range(src,defib)) @@ -312,7 +333,7 @@ visible_message("[src] snap back into [defib].") snap_back() -/obj/item/twohanded/shockpaddles/proc/recharge(var/time) +/obj/item/shockpaddles/proc/recharge(var/time) if(req_defib || !time) return cooldown = TRUE @@ -324,57 +345,36 @@ cooldown = FALSE update_icon() -/obj/item/twohanded/shockpaddles/New(mainunit) - ..() - if(check_defib_exists(mainunit, src) && req_defib) - defib = mainunit - forceMove(defib) - busy = FALSE - update_icon() - -/obj/item/twohanded/shockpaddles/update_icon_state() - icon_state = "defibpaddles[wielded]" - item_state = "defibpaddles[wielded]" - if(cooldown) - icon_state = "defibpaddles[wielded]_cooldown" - -/obj/item/twohanded/shockpaddles/suicide_act(mob/user) +/obj/item/shockpaddles/suicide_act(mob/user) user.visible_message("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!") if(req_defib) defib.deductcharge(revivecost) playsound(src, 'sound/machines/defib_zap.ogg', 50, 1, -1) return (OXYLOSS) -/obj/item/twohanded/shockpaddles/dropped(mob/user) +/obj/item/shockpaddles/update_icon_state() + icon_state = "defibpaddles[wielded]" + item_state = "defibpaddles[wielded]" + if(cooldown) + icon_state = "defibpaddles[wielded]_cooldown" + +/obj/item/shockpaddles/dropped(mob/user) if(!req_defib) return ..() if(user) UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - var/obj/item/twohanded/offhand/O = user.get_inactive_held_item() - if(istype(O)) - O.unwield() if(user != loc) to_chat(user, "The paddles snap back into the main unit.") snap_back() - return unwield(user) -/obj/item/twohanded/shockpaddles/proc/snap_back() +/obj/item/shockpaddles/proc/snap_back() if(!defib) return defib.on = FALSE forceMove(defib) defib.update_power() -/obj/item/twohanded/shockpaddles/proc/check_defib_exists(mainunit, mob/living/carbon/M, obj/O) - if(!req_defib) - return TRUE //If it doesn't need a defib, just say it exists - if (!mainunit || !istype(mainunit, /obj/item/defibrillator)) //To avoid weird issues from admin spawns - qdel(O) - return FALSE - else - return TRUE - -/obj/item/twohanded/shockpaddles/attack(mob/M, mob/user) +/obj/item/shockpaddles/attack(mob/M, mob/user) if(busy) return @@ -426,7 +426,7 @@ do_help(H, user) -/obj/item/twohanded/shockpaddles/proc/shock_touching(dmg, mob/H) +/obj/item/shockpaddles/proc/shock_touching(dmg, mob/H) if(!H.pulledby || !isliving(H.pulledby)) return if(req_defib && defib.pullshocksafely) @@ -437,7 +437,7 @@ M.visible_message("[M] is electrocuted by [M.p_their()] contact with [H]!") M.emote("scream") -/obj/item/twohanded/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user) +/obj/item/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user) if(req_defib && defib.safety) return if(!req_defib && !combat) @@ -465,7 +465,7 @@ else recharge(60) -/obj/item/twohanded/shockpaddles/proc/do_harm(mob/living/carbon/H, mob/living/user) +/obj/item/shockpaddles/proc/do_harm(mob/living/carbon/H, mob/living/user) if(req_defib && defib.safety) return if(!req_defib && !combat) @@ -520,7 +520,7 @@ busy = FALSE update_icon() -/obj/item/twohanded/shockpaddles/proc/do_help(mob/living/carbon/H, mob/living/user) +/obj/item/shockpaddles/proc/do_help(mob/living/carbon/H, mob/living/user) user.visible_message("[user] begins to place [src] on [H]'s chest.", "You begin to place [src] on [H]'s chest...") busy = TRUE update_icon() @@ -677,14 +677,14 @@ return TRUE return ..() -/obj/item/twohanded/shockpaddles/cyborg +/obj/item/shockpaddles/cyborg name = "cyborg defibrillator paddles" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "defibpaddles0" item_state = "defibpaddles0" req_defib = FALSE -/obj/item/twohanded/shockpaddles/cyborg/attack(mob/M, mob/user) +/obj/item/shockpaddles/cyborg/attack(mob/M, mob/user) if(iscyborg(user)) var/mob/living/silicon/robot/R = user if(R.emagged) @@ -696,7 +696,7 @@ . = ..() -/obj/item/twohanded/shockpaddles/syndicate +/obj/item/shockpaddles/syndicate name = "syndicate defibrillator paddles" desc = "A pair of paddles used to revive deceased operatives. It possesses both the ability to penetrate armor and to deliver powerful shocks offensively." combat = TRUE diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm new file mode 100644 index 0000000000..225d5813fb --- /dev/null +++ b/code/game/objects/items/dualsaber.dm @@ -0,0 +1,310 @@ +/* + * Double-Bladed Energy Swords - Cheridan + */ +/obj/item/dualsaber + icon_state = "dualsaber0" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + name = "double-bladed energy sword" + desc = "Handle with care." + force = 3 + throwforce = 5 + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + item_flags = SLOWS_WHILE_IN_HAND + var/w_class_on = WEIGHT_CLASS_BULKY + hitsound = "swing_hit" + var/hitsound_on = 'sound/weapons/blade1.ogg' + armour_penetration = 35 + var/saber_color = "green" + light_color = "#00ff00"//green + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + block_chance = 75 + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) + resistance_flags = FIRE_PROOF + var/hacked = FALSE + /// Can this reflect all energy projectiles? + var/can_reflect = TRUE + var/brightness_on = 6 //TWICE AS BRIGHT AS A REGULAR ESWORD + var/list/possible_colors = list("red", "blue", "green", "purple") + var/list/rainbow_colors = list(LIGHT_COLOR_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER) + var/spinnable = TRUE + total_mass = 0.4 //Survival flashlights typically weigh around 5 ounces. + var/total_mass_on = 3.4 + var/wielded = FALSE // track wielded status on item + var/slowdown_wielded = 0 + +/obj/item/dualsaber/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=3, force_wielded=34, \ + wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') + +/obj/item/dualsaber/Initialize() + . = ..() + if(LAZYLEN(possible_colors)) + saber_color = pick(possible_colors) + switch(saber_color) + if("red") + light_color = LIGHT_COLOR_RED + if("green") + light_color = LIGHT_COLOR_GREEN + if("blue") + light_color = LIGHT_COLOR_LIGHT_CYAN + if("purple") + light_color = LIGHT_COLOR_LAVENDER + +/// Triggered on wield of two handed item +/// Specific hulk checks due to reflection chance for balance issues and switches hitsounds. +/obj/item/dualsaber/proc/on_wield(obj/item/source, mob/living/carbon/user) + if(user.has_dna() && user.dna.check_mutation(HULK)) + to_chat(user, "You lack the grace to wield this!") + return COMPONENT_TWOHANDED_BLOCK_WIELD + wielded = TRUE + sharpness = IS_SHARP + w_class = w_class_on + total_mass = total_mass_on + hitsound = 'sound/weapons/blade1.ogg' + slowdown += slowdown_wielded + START_PROCESSING(SSobj, src) + set_light(brightness_on) + AddElement(/datum/element/sword_point) + +/// Triggered on unwield of two handed item +/// switch hitsounds +/obj/item/dualsaber/proc/on_unwield(obj/item/source, mob/living/carbon/user) + sharpness = initial(sharpness) + w_class = initial(w_class) + total_mass = initial(total_mass) + wielded = FALSE + hitsound = "swing_hit" + slowdown_wielded -= slowdown_wielded + STOP_PROCESSING(SSobj, src) + set_light(0) + RemoveElement(/datum/element/sword_point) + +/obj/item/dualsaber/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/dualsaber/update_icon_state() + if(wielded) + icon_state = "dualsaber[saber_color][wielded]" + else + icon_state = "dualsaber0" + clean_blood() + +/obj/item/dualsaber/suicide_act(mob/living/carbon/user) + if(wielded) + user.visible_message("[user] begins spinning way too fast! It looks like [user.p_theyre()] trying to commit suicide!") + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)//stole from chainsaw code + var/obj/item/organ/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN) + B.organ_flags &= ~ORGAN_VITAL //this cant possibly be a good idea + var/randdir + for(var/i in 1 to 24)//like a headless chicken! + if(user.is_holding(src)) + randdir = pick(GLOB.alldirs) + user.Move(get_step(user, randdir),randdir) + user.emote("spin") + if (i == 3 && myhead) + myhead.drop_limb() + sleep(3) + else + user.visible_message("[user] panics and starts choking to death!") + return OXYLOSS + else + user.visible_message("[user] begins beating [user.p_them()]self to death with \the [src]'s handle! It probably would've been cooler if [user.p_they()] turned it on first!") + return BRUTELOSS + +/obj/item/dualsaber/attack(mob/target, mob/living/carbon/human/user) + if(user.has_dna() && user.dna.check_mutation(HULK)) + to_chat(user, "You grip the blade too hard and accidentally drop it!") + user.dropItemToGround(src) + return + ..() + if(HAS_TRAIT(user, TRAIT_CLUMSY) && (wielded) && prob(40)) + impale(user) + return + if(spinnable && (wielded) && prob(50)) + INVOKE_ASYNC(src, .proc/jedi_spin, user) + +/obj/item/dualsaber/proc/jedi_spin(mob/living/user) + for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH)) + user.setDir(i) + if(i == WEST) + user.emote("flip") + sleep(1) + +/obj/item/dualsaber/proc/impale(mob/living/user) + to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") + if (force) + user.take_bodypart_damage(20,25) + else + user.adjustStaminaLoss(25) + +/obj/item/dualsaber/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!wielded) + return NONE + if(can_reflect && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE)) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER //no you + return BLOCK_SHOULD_REDIRECT | BLOCK_SUCCESS | BLOCK_REDIRECTED + return ..() + +/obj/item/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up + if(wielded) + to_chat(user, "You can't pick up such dangerous item with your meaty hands without losing fingers, better not to!") + return 1 + +/obj/item/dualsaber/process() + if(wielded) + if(hacked) + rainbow_process() + open_flame() + else + STOP_PROCESSING(SSobj, src) + +/obj/item/dualsaber/proc/rainbow_process() + light_color = pick(rainbow_colors) + +/obj/item/dualsaber/ignition_effect(atom/A, mob/user) + // same as /obj/item/melee/transforming/energy, mostly + if(!wielded) + return "" + var/in_mouth = "" + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(C.wear_mask) + in_mouth = ", barely missing [user.p_their()] nose" + . = "[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [A.name] in the process." + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + add_fingerprint(user) + // Light your candles while spinning around the room + if(spinnable) + INVOKE_ASYNC(src, .proc/jedi_spin, user) + +/obj/item/dualsaber/green + possible_colors = list("green") + +/obj/item/dualsaber/red + possible_colors = list("red") + +/obj/item/dualsaber/blue + possible_colors = list("blue") + +/obj/item/dualsaber/purple + possible_colors = list("purple") + +/obj/item/dualsaber/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/multitool)) + if(!hacked) + hacked = TRUE + to_chat(user, "2XRNBW_ENGAGE") + saber_color = "rainbow" + update_icon() + else + to_chat(user, "It's starting to look like a triple rainbow - no, nevermind.") + else + return ..() + +///////////////////////////////////////////////////// +// HYPEREUTACTIC Blades ///////////////////////// +///////////////////////////////////////////////////// + +/obj/item/dualsaber/hypereutactic + icon = 'icons/obj/1x2.dmi' + icon_state = "hypereutactic" + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + item_state = "hypereutactic" + inhand_x_dimension = 64 + inhand_y_dimension = 64 + name = "hypereutactic blade" + desc = "A supermassive weapon envisioned to cleave the very fabric of space and time itself in twain, the hypereutactic blade dynamically flash-forges a hypereutactic crystaline nanostructure capable of passing through most known forms of matter like a hot knife through butter." + force = 7 + hitsound_on = 'sound/weapons/nebhit.ogg' + armour_penetration = 60 + light_color = "#37FFF7" + rainbow_colors = list("#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF","#FF00FF", "#3399ff", "#ff9900", "#fb008b", "#9800ff", "#00ffa3", "#ccff00") + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "destroyed", "ripped", "devastated", "shredded") + spinnable = FALSE + total_mass_on = 4 + slowdown_wielded = 1 + +/obj/item/dualsaber/hypereutactic/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=7, force_wielded=40, \ + wieldsound='sound/weapons/nebon.ogg', unwieldsound='sound/weapons/nebhit.ogg') + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/dualsaber/hypereutactic/update_icon_state() + return + +/obj/item/dualsaber/hypereutactic/update_overlays() + . = ..() + var/mutable_appearance/blade_overlay = mutable_appearance(icon, "hypereutactic_blade") + var/mutable_appearance/gem_overlay = mutable_appearance(icon, "hypereutactic_gem") + + if(light_color) + blade_overlay.color = light_color + gem_overlay.color = light_color + + . += gem_overlay + + if(wielded) + . += blade_overlay + + clean_blood() + +/obj/item/dualsaber/hypereutactic/AltClick(mob/living/user) + . = ..() + if(!user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) + return + if(user.incapacitated() || !istype(user)) + to_chat(user, "You can't do that right now!") + return + if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes") + var/energy_color_input = input(usr,"","Choose Energy Color",light_color) as color|null + if(!energy_color_input || !user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) + return + light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) + update_icon() + update_light() + return TRUE + +/obj/item/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) + . = ..() + if(isinhands) + var/mutable_appearance/gem_inhand = mutable_appearance(icon_file, "hypereutactic_gem") + gem_inhand.color = light_color + . += gem_inhand + if(wielded) + var/mutable_appearance/blade_inhand = mutable_appearance(icon_file, "hypereutactic_blade") + blade_inhand.color = light_color + . += blade_inhand + +/obj/item/dualsaber/hypereutactic/examine(mob/user) + . = ..() + if(!hacked) + . += "Alt-click to recolor it." + +/obj/item/dualsaber/hypereutactic/rainbow_process() + . = ..() + update_icon() + update_light() + +/obj/item/dualsaber/hypereutactic/chaplain + name = "divine lightblade" + desc = "A giant blade of bright and holy light, said to cut down the wicked with ease." + force = 5 + block_chance = 50 + armour_penetration = 0 + var/chaplain_spawnable = TRUE + can_reflect = FALSE + obj_flags = UNIQUE_RENAME + +/obj/item/dualsaber/hypereutactic/chaplain/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=20, \ + wieldsound='sound/weapons/nebon.ogg', unwieldsound='sound/weapons/nebhit.ogg') + AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE) diff --git a/code/game/objects/items/electrostaff.dm b/code/game/objects/items/electrostaff.dm new file mode 100644 index 0000000000..1fc338d841 --- /dev/null +++ b/code/game/objects/items/electrostaff.dm @@ -0,0 +1,229 @@ + +/obj/item/electrostaff + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "electrostaff" + item_state = "electrostaff" + lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' + name = "riot suppression electrostaff" + desc = "A large quarterstaff, with massive silver electrodes mounted at the end." + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_OCLOTHING + throwforce = 15 //if you are a madman and finish someone off with this, power to you. + throw_speed = 1 + item_flags = NO_MAT_REDEMPTION + block_chance = 30 + attack_verb = list("struck", "beaten", "thwacked", "pulped") + total_mass = 5 //yeah this is a heavy thing, beating people with it while it's off is not going to do you any favors. (to curb stun-kill rampaging without it being on) + var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high + var/on = FALSE + var/can_block_projectiles = FALSE //can't block guns + var/lethal_cost = 400 //10000/400*20 = 500. decent enough? + var/lethal_damage = 20 + var/lethal_stam_cost = 4 + var/stun_cost = 333 //10000/333*25 = 750. stunbatons are at time of writing 10000/1000*49 = 490. + var/stun_status_effect = STATUS_EFFECT_ELECTROSTAFF //a small slowdown effect + var/stun_stamdmg = 40 + var/stun_status_duration = 25 + var/stun_stam_cost = 3.5 + var/wielded = FALSE // track wielded status on item + +/obj/item/electrostaff/Initialize(mapload) + . = ..() + if(ispath(cell)) + cell = new cell + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/turn_on) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/turn_off) + +/obj/item/electrostaff/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_multiplier=2, wieldsound="sparks", unwieldsound="sparks") + +/obj/item/electrostaff/Destroy() + STOP_PROCESSING(SSobj, src) + QDEL_NULL(cell) + return ..() + +/obj/item/electrostaff/get_cell() + . = cell + if(iscyborg(loc)) + var/mob/living/silicon/robot/R = loc + . = R.get_cell() + +/obj/item/electrostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!on || (!can_block_projectiles && (attack_type & ATTACK_TYPE_PROJECTILE))) + return BLOCK_NONE + return ..() + +/obj/item/electrostaff/proc/min_hitcost() + return min(stun_cost, lethal_cost) + +/obj/item/electrostaff/proc/turn_on(obj/item/source, mob/user) + wielded = TRUE + if(!cell) + if(user) + to_chat(user, "[src] has no cell.") + return + if(cell.charge < min_hitcost()) + if(user) + to_chat(user, "[src] is out of charge.") + return + on = TRUE + START_PROCESSING(SSobj, src) + if(user) + to_chat(user, "You turn [src] on.") + +/obj/item/electrostaff/proc/turn_off(obj/item/source, mob/user) + wielded = FALSE + if(user) + to_chat(user, "You turn [src] off.") + on = FALSE + STOP_PROCESSING(SSobj, src) + +/obj/item/electrostaff/update_icon_state() + if(!wielded) + icon_state = item_state = "electrostaff" + else + icon_state = item_state = (on? "electrostaff_1" : "electrostaff_0") + set_light(7, on? 1 : 0, LIGHT_COLOR_CYAN) + +/obj/item/electrostaff/examine(mob/living/user) + . = ..() + if(cell) + . += "The cell charge is [round(cell.percent())]%." + else + . += "There is no cell installed!" + +/obj/item/electrostaff/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/stock_parts/cell)) + var/obj/item/stock_parts/cell/C = W + if(cell) + to_chat(user, "[src] already has a cell!") + else + if(C.maxcharge < min_hit_cost()) + to_chat(user, "[src] requires a higher capacity cell.") + return + if(!user.transferItemToLoc(W, src)) + return + cell = C + to_chat(user, "You install a cell in [src].") + + else if(W.tool_behaviour == TOOL_SCREWDRIVER) + if(cell) + cell.update_icon() + cell.forceMove(get_turf(src)) + cell = null + to_chat(user, "You remove the cell from [src].") + turn_off(user, TRUE) + else + return ..() + +/obj/item/electrostaff/process() + deductcharge(50) //Wasteful! + +/obj/item/electrostaff/proc/min_hit_cost() + return min(lethal_cost, stun_cost) + +/obj/item/electrostaff/proc/deductcharge(amount) + var/obj/item/stock_parts/cell/C = get_cell() + if(!C) + turn_off() + return FALSE + C.use(min(amount, C.charge)) + if(QDELETED(src)) + return FALSE + if(C.charge < min_hit_cost()) + turn_off() + +/obj/item/electrostaff/attack(mob/living/target, mob/living/user) + if(IS_STAMCRIT(user))//CIT CHANGE - makes it impossible to baton in stamina softcrit + to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto + return //CIT CHANGE - ditto + if(on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) + clowning_around(user) //ouch! + return + if(iscyborg(target)) + ..() + return + if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; run_block() handles that + playsound(target, 'sound/weapons/genhit.ogg', 50, 1) + return FALSE + if(user.a_intent != INTENT_HARM) + if(stun_act(target, user)) + user.do_attack_animation(target) + user.adjustStaminaLossBuffered(stun_stam_cost) + return + else if(!harm_act(target, user)) + return ..() //if you can't fry them just beat them with it + else //we did harm act them + user.do_attack_animation(target) + user.adjustStaminaLossBuffered(lethal_stam_cost) + +/obj/item/electrostaff/proc/stun_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) + var/stunforce = stun_stamdmg + if(!no_charge_and_force) + if(!on) + target.visible_message("[user] has bapped [target] with [src]. Luckily it was off.", \ + "[user] has bapped you with [src]. Luckily it was off") + turn_off() //if it wasn't already off + return FALSE + var/obj/item/stock_parts/cell/C = get_cell() + var/chargeleft = C.charge + deductcharge(stun_cost) + if(QDELETED(src) || QDELETED(C)) //boom + return FALSE + if(chargeleft < stun_cost) + stunforce *= round(chargeleft/stun_cost, 0.1) + target.adjustStaminaLoss(stunforce) + target.apply_effect(EFFECT_STUTTER, stunforce) + SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) + if(user) + target.lastattacker = user.real_name + target.lastattackerckey = user.ckey + target.visible_message("[user] has shocked [target] with [src]!", \ + "[user] has shocked you with [src]!") + log_combat(user, target, "stunned with an electrostaff") + playsound(src, 'sound/weapons/staff.ogg', 50, 1, -1) + target.apply_status_effect(stun_status_effect, stun_status_duration) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.forcesay(GLOB.hit_appends) + return TRUE + +/obj/item/electrostaff/proc/harm_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) + var/lethal_force = lethal_damage + if(!no_charge_and_force) + if(!on) + return FALSE //standard item attack + var/obj/item/stock_parts/cell/C = get_cell() + var/chargeleft = C.charge + deductcharge(lethal_cost) + if(QDELETED(src) || QDELETED(C)) //boom + return FALSE + if(chargeleft < stun_cost) + lethal_force *= round(chargeleft/lethal_cost, 0.1) + target.adjustFireLoss(lethal_force) //good against ointment spam + SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) + if(user) + target.lastattacker = user.real_name + target.lastattackerckey = user.ckey + target.visible_message("[user] has seared [target] with [src]!", \ + "[user] has seared you with [src]!") + log_combat(user, target, "burned with an electrostaff") + playsound(src, 'sound/weapons/sear.ogg', 50, 1, -1) + return TRUE + +/obj/item/electrostaff/proc/clowning_around(mob/living/user) + user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ + "You accidentally hit yourself with [src]!") + SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) + harm_act(user, user, TRUE) + stun_act(user, user, TRUE) + deductcharge(lethal_cost) + +/obj/item/electrostaff/emp_act(severity) + . = ..() + if (!(. & EMP_PROTECT_SELF)) + turn_off() + if(!iscyborg(loc)) + deductcharge(1000 / severity, TRUE, FALSE) diff --git a/code/game/objects/items/fireaxe.dm b/code/game/objects/items/fireaxe.dm new file mode 100644 index 0000000000..41c1cbe915 --- /dev/null +++ b/code/game/objects/items/fireaxe.dm @@ -0,0 +1,71 @@ +/* + * Fireaxe + */ +/obj/item/fireaxe // DEM AXES MAN, marker -Agouri + icon_state = "fireaxe0" + lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi' + name = "fire axe" + desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" + force = 5 + throwforce = 15 + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) + resistance_flags = FIRE_PROOF + var/wielded = FALSE // track wielded status on item + +/obj/item/fireaxe/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/fireaxe/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools + AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=24, icon_wielded="fireaxe1") + +/// triggered on wield of two handed item +/obj/item/fireaxe/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/fireaxe/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/fireaxe/update_icon_state() + icon_state = "fireaxe0" + +/obj/item/fireaxe/suicide_act(mob/user) + user.visible_message("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/fireaxe/afterattack(atom/A, mob/living/user, proximity) + . = ..() + if(!proximity || !wielded || IS_STAMCRIT(user)) + return + if(istype(A, /obj/structure/window)) //destroys windows and grilles in one hit (or more if it has a ton of health like plasmaglass) + var/obj/structure/window/W = A + W.take_damage(200, BRUTE, "melee", 0) + else if(istype(A, /obj/structure/grille)) + var/obj/structure/grille/G = A + G.take_damage(40, BRUTE, "melee", 0) + +/* + * Bone Axe + */ +/obj/item/fireaxe/boneaxe // Blatant imitation of the fireaxe, but made out of bone. + icon_state = "bone_axe0" + name = "bone axe" + desc = "A large, vicious axe crafted out of several sharpened bone plates and crudely tied together. Made of monsters, by killing monsters, for killing monsters." + +/obj/item/fireaxe/boneaxe/update_icon_state() + icon_state = "bone_axe0" + +/obj/item/fireaxe/boneaxe/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=23, icon_wielded="bone_axe1") diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index e4cfeab20f..d7d22a7249 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -345,7 +345,7 @@ return else to_chat(user, "You combine the two light swords, making a single supermassive blade! You're cool.") - new /obj/item/twohanded/dualsaber/hypereutactic(user.drop_location()) + new /obj/item/dualsaber/hypereutactic(user.drop_location()) qdel(W) qdel(src) else diff --git a/code/game/objects/items/pitchfork.dm b/code/game/objects/items/pitchfork.dm new file mode 100644 index 0000000000..49d0b64498 --- /dev/null +++ b/code/game/objects/items/pitchfork.dm @@ -0,0 +1,101 @@ +/obj/item/pitchfork + icon_state = "pitchfork0" + lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' + name = "pitchfork" + desc = "A simple tool used for moving hay." + force = 7 + throwforce = 15 + w_class = WEIGHT_CLASS_BULKY + attack_verb = list("attacked", "impaled", "pierced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) + resistance_flags = FIRE_PROOF + var/wielded = FALSE // track wielded status on item + +/obj/item/pitchfork/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/pitchfork/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=7, force_wielded=15, icon_wielded="pitchfork1") + AddElement(/datum/element/sword_point) + +/// triggered on wield of two handed item +/obj/item/pitchfork/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/pitchfork/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/pitchfork/update_icon_state() + icon_state = "pitchfork0" + +/obj/item/pitchfork/demonic + name = "demonic pitchfork" + desc = "A red pitchfork, it looks like the work of the devil." + force = 19 + throwforce = 24 + +/obj/item/pitchfork/demonic/Initialize() + . = ..() + set_light(3,6,LIGHT_COLOR_RED) + +/obj/item/pitchfork/demonic/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=19, force_wielded=25) + +/obj/item/pitchfork/demonic/greater + force = 24 + throwforce = 50 + +/obj/item/pitchfork/demonic/greater/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=24, force_wielded=34) + +/obj/item/pitchfork/demonic/ascended + force = 100 + throwforce = 100 + +/obj/item/pitchfork/demonic/ascended/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=100, force_wielded=500000) // Kills you DEAD + +/obj/item/pitchfork/suicide_act(mob/user) + user.visible_message("[user] impales [user.p_them()]self in [user.p_their()] abdomen with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/pitchfork/demonic/pickup(mob/living/user) + . = ..() + if(isliving(user) && user.mind && user.owns_soul() && !is_devil(user)) + var/mob/living/U = user + U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \ + "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"") + if(ishuman(U)) + var/mob/living/carbon/human/H = U + H.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + else + U.adjustFireLoss(rand(force/2,force)) + +/obj/item/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user) + if(user.mind && user.owns_soul() && !is_devil(user)) + to_chat(user, "[src] burns in your hands.") + user.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + ..() + +/obj/item/pitchfork/demonic/ascended/afterattack(atom/target, mob/user, proximity) + . = ..() + if(!proximity || !wielded) + return + if(iswallturf(target)) + var/turf/closed/wall/W = target + user.visible_message("[user] blasts \the [target] with \the [src]!") + playsound(target, 'sound/magic/disintegrate.ogg', 100, TRUE) + W.break_wall() + W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + return diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 08ce73109c..d5bc6eabf5 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -459,7 +459,7 @@ /obj/item/borg/upgrade/defib/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() if (.) - var/obj/item/twohanded/shockpaddles/cyborg/S = locate() in R.module + var/obj/item/shockpaddles/cyborg/S = locate() in R.module R.module.remove_module(S, TRUE) /obj/item/borg/upgrade/processor diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm index 014d4cb159..6bf0b27fb4 100644 --- a/code/game/objects/items/sharpener.dm +++ b/code/game/objects/items/sharpener.dm @@ -24,24 +24,22 @@ if(istype(I, /obj/item/melee/transforming/energy)) to_chat(user, "You don't think \the [I] will be the thing getting modified if you use it on \the [src]!") return - if(istype(I, /obj/item/twohanded))//some twohanded items should still be sharpenable, but handle force differently. therefore i need this stuff - var/obj/item/twohanded/TH = I - if(TH.force_wielded >= max) - to_chat(user, "[TH] is much too powerful to sharpen further!") - return - if(TH.wielded) - to_chat(user, "[TH] must be unwielded before it can be sharpened!") - return - if(TH.force_wielded > initial(TH.force_wielded)) - to_chat(user, "[TH] has already been refined before. It cannot be sharpened further!") - return - TH.force_wielded = clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay - if(I.force > initial(I.force)) + + var/signal_out = SEND_SIGNAL(I, COMSIG_ITEM_SHARPEN_ACT, increment, max) + if(signal_out & COMPONENT_BLOCK_SHARPEN_MAXED) + to_chat(user, "[I] is much too powerful to sharpen further!") + return + if(signal_out & COMPONENT_BLOCK_SHARPEN_BLOCKED) + to_chat(user, "[I] is not able to be sharpened right now!") + return + if((signal_out & COMPONENT_BLOCK_SHARPEN_ALREADY) || (I.force > initial(I.force) && !signal_out)) to_chat(user, "[I] has already been refined before. It cannot be sharpened further!") return + if(!(signal_out & COMPONENT_BLOCK_SHARPEN_APPLIED)) + I.force = clamp(I.force + increment, 0, max) + user.visible_message("[user] sharpens [I] with [src]!", "You sharpen [I], making it much more deadly than before.") I.sharpness = IS_SHARP_ACCURATE - I.force = clamp(I.force + increment, 0, max) I.throwforce = clamp(I.throwforce + increment, 0, max) I.name = "[prefix] [I.name]" name = "worn out [name]" diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index dc761ee3bf..7a6c159160 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -1,4 +1,4 @@ -/obj/item/twohanded/singularityhammer +/obj/item/singularityhammer name = "singularity hammer" desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." icon_state = "mjollnir0" @@ -7,35 +7,47 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK force = 5 - force_unwielded = 5 - force_wielded = 20 throwforce = 15 throw_range = 1 w_class = WEIGHT_CLASS_HUGE - var/charged = 5 armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF force_string = "LORD SINGULOTH HIMSELF" total_mass = TOTAL_MASS_MEDIEVAL_WEAPON + var/charged = 5 + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/singularityhammer/New() +/obj/item/singularityhammer/New() ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) START_PROCESSING(SSobj, src) -/obj/item/twohanded/singularityhammer/Destroy() +/obj/item/singularityhammer/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_multiplier=4, icon_wielded="mjollnir1") + +/// triggered on wield of two handed item +/obj/item/singularityhammer/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/singularityhammer/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/singularityhammer/update_icon_state() + icon_state = "mjollnir0" + +/obj/item/singularityhammer/Destroy() STOP_PROCESSING(SSobj, src) return ..() -/obj/item/twohanded/singularityhammer/process() +/obj/item/singularityhammer/process() if(charged < 5) charged++ return -/obj/item/twohanded/singularityhammer/update_icon_state() //Currently only here to fuck with the on-mob icons. - icon_state = "mjollnir[wielded]" - return - -/obj/item/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder) +/obj/item/singularityhammer/proc/vortex(turf/pull, mob/wielder) for(var/atom/X in orange(5,pull)) if(ismovable(X)) var/atom/movable/A = X @@ -55,9 +67,8 @@ step_towards(H,pull) step_towards(H,pull) step_towards(H,pull) - return -/obj/item/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) +/obj/item/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) . = ..() if(!proximity) return @@ -71,7 +82,7 @@ var/turf/target = get_turf(A) vortex(target,user) -/obj/item/twohanded/mjollnir +/obj/item/mjollnir name = "Mjolnir" desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy." icon_state = "mjollnir0" @@ -80,14 +91,33 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK force = 5 - force_unwielded = 5 - force_wielded = 25 throwforce = 30 throw_range = 7 w_class = WEIGHT_CLASS_HUGE total_mass = TOTAL_MASS_MEDIEVAL_WEAPON + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/mjollnir/proc/shock(mob/living/target) +/obj/item/mjollnir/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/mjollnir/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_multiplier=5, icon_wielded="mjollnir1", attacksound="sparks") + +/// triggered on wield of two handed item +/obj/item/mjollnir/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/mjollnir/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/mjollnir/update_icon_state() + icon_state = "mjollnir0" + +/obj/item/mjollnir/proc/shock(mob/living/target) target.Stun(60) var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread s.set_up(5, 1, target.loc) @@ -99,17 +129,12 @@ target.throw_at(throw_target, 200, 4) return -/obj/item/twohanded/mjollnir/attack(mob/living/M, mob/user) +/obj/item/mjollnir/attack(mob/living/M, mob/user) ..() if(wielded) - playsound(src.loc, "sparks", 50, 1) shock(M) -/obj/item/twohanded/mjollnir/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) +/obj/item/mjollnir/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) . = ..() if(isliving(hit_atom)) shock(hit_atom) - -/obj/item/twohanded/mjollnir/update_icon_state() //Currently only here to fuck with the on-mob icons. - icon_state = "mjollnir[wielded]" - return diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm new file mode 100644 index 0000000000..f12228df5d --- /dev/null +++ b/code/game/objects/items/spear.dm @@ -0,0 +1,181 @@ +//spears +/obj/item/spear + icon_state = "spearglass0" + lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' + name = "spear" + desc = "A haphazardly-constructed yet still deadly weapon of ancient design." + force = 10 + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + throwforce = 20 + throw_speed = 4 + embedding = list("embedded_impact_pain_multiplier" = 3, "embed_chance" = 90) + armour_penetration = 10 + custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") + sharpness = IS_SHARP + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) + var/obj/item/grenade/explosive = null + var/war_cry = "AAAAARGH!!!" + var/icon_prefix = "spearglass" + var/wielded = FALSE // track wielded status on item + +/obj/item/spear/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/spear/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad. + AddComponent(/datum/component/jousting) + AddElement(/datum/element/sword_point) + AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]1") + +/// triggered on wield of two handed item +/obj/item/spear/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/spear/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/spear/rightclick_attack_self(mob/user) + if(explosive) + explosive.attack_self(user) + return + . = ..() + +/obj/item/spear/update_icon_state() + icon_state = "[icon_prefix]0" + +/obj/item/spear/update_overlays() + . = ..() + if(explosive) + . += "spearbomb_overlay" + +/obj/item/spear/suicide_act(mob/living/carbon/user) + user.visible_message("[user] begins to sword-swallow \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") + if(explosive) //Citadel Edit removes qdel and explosive.forcemove(AM) + user.say("[war_cry]", forced="spear warcry") + explosive.prime() + user.gib() + return BRUTELOSS + return BRUTELOSS + +/obj/item/spear/examine(mob/user) + . = ..() + if(explosive) + . += "Alt-click to set your war cry." + . += "Right-click in combat mode to activate the attached explosive." + +/obj/item/spear/afterattack(atom/movable/AM, mob/user, proximity) + . = ..() + if(!proximity) + return + if(isopenturf(AM)) //So you can actually melee with it + return + if(explosive && wielded) //Citadel edit removes qdel and explosive.forcemove(AM) + user.say("[war_cry]", forced="spear warcry") + explosive.prime() + +/obj/item/spear/grenade_prime_react(obj/item/grenade/nade) //Citadel edit, removes throw_impact because memes + nade.forceMove(get_turf(src)) + qdel(src) + +/obj/item/spear/AltClick(mob/user) + . = ..() + if(user.canUseTopic(src, BE_CLOSE)) + ..() + if(!explosive) + return + if(istype(user) && loc == user) + var/input = stripped_input(user,"What do you want your war cry to be? You will shout it when you hit someone in melee.", ,"", 50) + if(input) + src.war_cry = input + return TRUE + +/obj/item/spear/CheckParts(list/parts_list) + var/obj/item/shard/tip = locate() in parts_list + if (istype(tip, /obj/item/shard/plasma)) + throwforce = 21 + icon_prefix = "spearplasma" + AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=19, icon_wielded="[icon_prefix]1") + qdel(tip) + var/obj/item/spear/S = locate() in parts_list + if(S) + if(S.explosive) + S.explosive.forceMove(get_turf(src)) + S.explosive = null + parts_list -= S + qdel(S) + ..() + var/obj/item/grenade/G = locate() in contents + if(G) + explosive = G + name = "explosive lance" + desc = "A makeshift spear with \a [G] attached to it." + update_icon() + +//GREY TIDE +/obj/item/spear/grey_tide + icon_state = "spearglass0" + name = "\improper Grey Tide" + desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among Nanotrasen military forces." + throwforce = 20 + throw_speed = 4 + attack_verb = list("gored") + var/clonechance = 50 + var/clonedamage = 12 + var/clonespeed = 0 + var/clone_replication_chance = 30 + var/clone_lifespan = 100 + +/obj/item/spear/grey_tide/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=15, force_wielded=25, icon_wielded="[icon_prefix]1") + +/obj/item/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity) + . = ..() + if(!proximity) + return + user.faction |= "greytide([REF(user)])" + if(isliving(AM)) + var/mob/living/L = AM + if(istype (L, /mob/living/simple_animal/hostile/illusion)) + return + if(!L.stat && prob(clonechance)) + var/mob/living/simple_animal/hostile/illusion/M = new(user.loc) + M.faction = user.faction.Copy() + M.set_varspeed(clonespeed) + M.Copy_Parent(user, clone_lifespan, user.health/2.5, clonedamage, clone_replication_chance) + M.GiveTarget(L) + +/* + * Bone Spear + */ +/obj/item/spear/bonespear //Blatant imitation of spear, but made out of bone. Not valid for explosive modification. + icon_state = "bone_spear0" + lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' + name = "bone spear" + desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology." + force = 11 + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + reach = 2 + throwforce = 22 + embedding = list("embedded_impact_pain_multiplier" = 3) + armour_penetration = 15 //Enhanced armor piercing + custom_materials = null + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") + sharpness = IS_SHARP + icon_prefix = "bone_spear" + +/obj/item/spear/bonespear/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=20, icon_wielded="[icon_prefix]1") diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 82ae274012..2447381d2d 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -585,7 +585,7 @@ /obj/item/key/janitor, /obj/item/clothing/gloves, /obj/item/melee/flyswatter, - /obj/item/twohanded/broom, + /obj/item/broom, /obj/item/paint/paint_remover, /obj/item/assembly/mousetrap, /obj/item/screwdriver, diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index e3f590aa2a..5d5f0eaa24 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -173,12 +173,12 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater) A.reagents.del_reagent(/datum/reagent/fuel/unholywater) A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) - if(istype(A, /obj/item/twohanded/required/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) + if(istype(A, /obj/item/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) to_chat(user, "You begin to exorcise [A].") playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1) if(do_after(user, 40, target = A)) playsound(src,'sound/effects/pray_chaplain.ogg',60,1) - if(istype(A, /obj/item/twohanded/required/cult_bastard)) + if(istype(A, /obj/item/cult_bastard)) for(var/obj/item/soulstone/SS in A.contents) SS.usability = TRUE for(var/mob/living/simple_animal/shade/EX in SS) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index ffa3d83304..3b66e32d0a 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -117,7 +117,7 @@ new /obj/item/pizzabox/bomb if("darklord") //20 tc + tk + summon item close enough for now - new /obj/item/twohanded/dualsaber(src) + new /obj/item/dualsaber(src) new /obj/item/dnainjector/telemut/darkbundle(src) new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) new /obj/item/card/id/syndicate(src) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index ff59b85332..171355bef3 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -272,7 +272,7 @@ return else to_chat(user, "You attach the ends of the two plastic swords, making a single double-bladed toy! You're fake-cool.") - var/obj/item/twohanded/dualsaber/toy/newSaber = new /obj/item/twohanded/dualsaber/toy(user.loc) + var/obj/item/dualsaber/toy/newSaber = new /obj/item/dualsaber/toy(user.loc) if(hacked) // That's right, we'll only check the "original" "sword". newSaber.hacked = TRUE qdel(W) @@ -363,7 +363,7 @@ return else to_chat(user, "You combine the two plastic swords, making a single supermassive toy! You're fake-cool.") - new /obj/item/twohanded/dualsaber/hypereutactic/toy(user.loc) + new /obj/item/dualsaber/hypereutactic/toy(user.loc) qdel(W) qdel(src) else @@ -437,40 +437,45 @@ /* * Subtype of Double-Bladed Energy Swords */ -/obj/item/twohanded/dualsaber/toy +/obj/item/dualsaber/toy name = "double-bladed toy sword" desc = "A cheap, plastic replica of TWO energy swords. Double the fun!" force = 0 throwforce = 0 throw_speed = 3 throw_range = 5 - force_unwielded = 0 - force_wielded = 0 attack_verb = list("attacked", "struck", "hit") total_mass_on = TOTAL_MASS_TOY_SWORD sharpness = IS_BLUNT -/obj/item/twohanded/dualsaber/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/dualsaber/toy/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') + +/obj/item/dualsaber/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) return BLOCK_NONE -/obj/item/twohanded/dualsaber/hypereutactic/toy +/obj/item/dualsaber/hypereutactic/toy name = "\improper DX Hyper-Euplastic LightSword" desc = "A supermassive toy envisioned to cleave the very fabric of space and time itself in twain. Realistic visuals and sounds! Ages 8 and up." force = 0 throwforce = 0 throw_speed = 3 throw_range = 5 - force_unwielded = 0 - force_wielded = 0 + attack_verb = list("attacked", "struck", "hit") total_mass_on = TOTAL_MASS_TOY_SWORD slowdown_wielded = 0 sharpness = IS_BLUNT -/obj/item/twohanded/dualsaber/hypereutactic/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/dualsaber/toy/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') + +/obj/item/dualsaber/hypereutactic/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) return BLOCK_NONE -/obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow +/obj/item/dualsaber/hypereutactic/toy/rainbow name = "\improper Hyper-Euclidean Reciprocating Trigonometric Zweihander" desc = "A custom-built toy with fancy rainbow lights built-in." hacked = TRUE diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm deleted file mode 100644 index acfc9a6e85..0000000000 --- a/code/game/objects/items/twohanded.dm +++ /dev/null @@ -1,1331 +0,0 @@ -/* Two-handed Weapons - * Contains: - * Twohanded - * Fireaxe - * Double-Bladed Energy Swords - * Spears - * CHAINSAWS - * Bone Axe and Spear - * And more - */ - -/*################################################################## -##################### TWO HANDED WEAPONS BE HERE~ -Agouri :3 ######## -####################################################################*/ - -//Rewrote TwoHanded weapons stuff and put it all here. Just copypasta fireaxe to make new ones ~Carn -//This rewrite means we don't have two variables for EVERY item which are used only by a few weapons. -//It also tidies stuff up elsewhere. - - - - -/* - * Twohanded - */ -/obj/item/twohanded - var/wielded = FALSE - var/force_unwielded // default to null, the number force will be set to on unwield() - var/force_wielded // same as above but for wield() - var/wieldsound = null - var/unwieldsound = null - var/slowdown_wielded = 0 - item_flags = SLOWS_WHILE_IN_HAND - -/obj/item/twohanded/proc/unwield(mob/living/carbon/user, show_message = TRUE) - if(!wielded || !user) - return - wielded = 0 - if(!isnull(force_unwielded)) - force = force_unwielded - var/sf = findtext(name, " (Wielded)", -10)//10 == length(" (Wielded)") - if(sf) - name = copytext(name, 1, sf) - else //something wrong - name = "[initial(name)]" - update_icon() - if(user.get_item_by_slot(SLOT_BACK) == src) - user.update_inv_back() - else - user.update_inv_hands() - if(show_message) - if(iscyborg(user)) - to_chat(user, "You free up your module.") - else - to_chat(user, "You are now carrying [src] with one hand.") - if(unwieldsound) - playsound(loc, unwieldsound, 50, 1) - var/obj/item/twohanded/offhand/O = user.get_inactive_held_item() - if(O && istype(O)) - O.unwield() - set_slowdown(slowdown - slowdown_wielded) - -/obj/item/twohanded/proc/wield(mob/living/carbon/user) - if(wielded) - return - if(ismonkey(user)) - to_chat(user, "It's too heavy for you to wield fully.") - return - if(user.get_inactive_held_item()) - to_chat(user, "You need your other hand to be empty!") - return - if(user.get_num_arms() < 2) - to_chat(user, "You don't have enough intact hands.") - return - wielded = 1 - if(!isnull(force_wielded)) - force = force_wielded - name = "[name] (Wielded)" - update_icon() - if(iscyborg(user)) - to_chat(user, "You dedicate your module to [src].") - else - to_chat(user, "You grab [src] with both hands.") - if (wieldsound) - playsound(loc, wieldsound, 50, 1) - var/obj/item/twohanded/offhand/O = new(user) ////Let's reserve his other hand~ - O.name = "[name] - offhand" - O.desc = "Your second grip on [src]." - O.wielded = TRUE - user.put_in_inactive_hand(O) - set_slowdown(slowdown + slowdown_wielded) - -/obj/item/twohanded/dropped(mob/user) - . = ..() - //handles unwielding a twohanded weapon when dropped as well as clearing up the offhand - if(!wielded) - return - unwield(user) - -/obj/item/twohanded/attack_self(mob/user) - . = ..() - if(wielded) //Trying to unwield it - unwield(user) - else //Trying to wield it - wield(user) - -/obj/item/twohanded/equip_to_best_slot(mob/M) - if(..()) - if(istype(src, /obj/item/twohanded/required)) - return // unwield forces twohanded-required items to be dropped. - unwield(M) - return - -/obj/item/twohanded/equipped(mob/user, slot) - ..() - if(!user.is_holding(src) && wielded && !istype(src, /obj/item/twohanded/required)) - unwield(user) - -///////////OFFHAND/////////////// -/obj/item/twohanded/offhand - name = "offhand" - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE - item_flags = ABSTRACT - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - -/obj/item/twohanded/offhand/Destroy() - wielded = FALSE - return ..() - -/obj/item/twohanded/offhand/dropped(mob/living/user, show_message = TRUE) //Only utilized by dismemberment since you can't normally switch to the offhand to drop it. - var/obj/I = user.get_active_held_item() - if(I && istype(I, /obj/item/twohanded)) - var/obj/item/twohanded/thw = I - thw.unwield(user, show_message) - if(istype(thw, /obj/item/twohanded/required)) - user.dropItemToGround(thw) - if(!QDELETED(src)) - qdel(src) - -/obj/item/twohanded/offhand/unwield() - if(wielded)//Only delete if we're wielded - wielded = FALSE - qdel(src) - -/obj/item/twohanded/offhand/wield() - if(wielded)//Only delete if we're wielded - wielded = FALSE - qdel(src) - -/obj/item/twohanded/offhand/attack_self(mob/living/carbon/user) //You should never be able to do this in standard use of two handed items. This is a backup for lingering offhands. - var/obj/item/twohanded/O = user.get_inactive_held_item() - if (istype(O) && !istype(O, /obj/item/twohanded/offhand/)) //If you have a proper item in your other hand that the offhand is for, do nothing. This should never happen. - return - if (QDELETED(src)) - return - qdel(src) //If it's another offhand, or literally anything else, qdel. If I knew how to add logging messages I'd put one here. - -///////////Two hand required objects/////////////// -//This is for objects that require two hands to even pick up -/obj/item/twohanded/required - w_class = WEIGHT_CLASS_HUGE - -/obj/item/twohanded/required/attack_self() - return - -/obj/item/twohanded/required/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) - if(wielded && !slot_flags) - if(!disable_warning) - to_chat(M, "[src] is too cumbersome to carry with anything but your hands!") - return 0 - return ..() - -/obj/item/twohanded/required/attack_hand(mob/user)//Can't even pick it up without both hands empty - var/obj/item/twohanded/required/H = user.get_inactive_held_item() - if(get_dist(src,user) > 1) - return - if(H != null) - to_chat(user, "[src] is too cumbersome to carry in one hand!") - return - if(loc != user) - wield(user) - . = ..() - -/obj/item/twohanded/required/equipped(mob/user, slot) - ..() - var/slotbit = slotdefine2slotbit(slot) - if(slot_flags & slotbit) - var/datum/O = user.is_holding_item_of_type(/obj/item/twohanded/offhand) - if(!O || QDELETED(O)) - return - qdel(O) - return - if(slot == SLOT_HANDS) - wield(user) - else - unwield(user) - -/obj/item/twohanded/required/dropped(mob/living/user, show_message = TRUE) - unwield(user, show_message) - ..() - -/obj/item/twohanded/required/wield(mob/living/carbon/user) - ..() - if(!wielded) - user.dropItemToGround(src) - -/obj/item/twohanded/required/unwield(mob/living/carbon/user, show_message = TRUE) - if(!wielded) - return - if(show_message) - to_chat(user, "You drop [src].") - ..(user, FALSE) - -/* - * Fireaxe - */ -/obj/item/twohanded/fireaxe // DEM AXES MAN, marker -Agouri - icon_state = "fireaxe0" - lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi' - name = "fire axe" - desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" - force = 5 - throwforce = 15 - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - force_unwielded = 5 - force_wielded = 24 - attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) - resistance_flags = FIRE_PROOF - -/obj/item/twohanded/fireaxe/Initialize() - . = ..() - AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools - -/obj/item/twohanded/fireaxe/update_icon_state() //Currently only here to fuck with the on-mob icons. - icon_state = "fireaxe[wielded]" - return - -/obj/item/twohanded/fireaxe/suicide_act(mob/user) - user.visible_message("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - -/obj/item/twohanded/fireaxe/afterattack(atom/A, mob/living/user, proximity) - . = ..() - if(!proximity || IS_STAMCRIT(user)) //don't make stamcrit message they'll already have gotten one from the primary attack. - return - if(wielded) //destroys windows and grilles in one hit (or more if it has a ton of health like plasmaglass) - if(istype(A, /obj/structure/window)) - var/obj/structure/window/W = A - W.take_damage(200, BRUTE, "melee", 0) - else if(istype(A, /obj/structure/grille)) - var/obj/structure/grille/G = A - G.take_damage(40, BRUTE, "melee", 0) - - -/* - * Double-Bladed Energy Swords - Cheridan - */ -/obj/item/twohanded/dualsaber - icon_state = "dualsaber0" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - name = "double-bladed energy sword" - desc = "Handle with care." - force = 3 - throwforce = 5 - throw_speed = 3 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - var/w_class_on = WEIGHT_CLASS_BULKY - force_unwielded = 3 - force_wielded = 34 - wieldsound = 'sound/weapons/saberon.ogg' - unwieldsound = 'sound/weapons/saberoff.ogg' - hitsound = "swing_hit" - var/hitsound_on = 'sound/weapons/blade1.ogg' - armour_penetration = 35 - var/saber_color = "green" - light_color = "#00ff00"//green - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - block_chance = 75 - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) - resistance_flags = FIRE_PROOF - var/hacked = FALSE - /// Can this reflect all energy projectiles? - var/can_reflect = TRUE - var/brightness_on = 6 //TWICE AS BRIGHT AS A REGULAR ESWORD - var/list/possible_colors = list("red", "blue", "green", "purple") - var/list/rainbow_colors = list(LIGHT_COLOR_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER) - var/spinnable = TRUE - total_mass = 0.4 //Survival flashlights typically weigh around 5 ounces. - var/total_mass_on = 3.4 - -/obj/item/twohanded/dualsaber/suicide_act(mob/living/carbon/user) - if(wielded) - user.visible_message("[user] begins spinning way too fast! It looks like [user.p_theyre()] trying to commit suicide!") - - var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)//stole from chainsaw code - var/obj/item/organ/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN) - B.organ_flags &= ~ORGAN_VITAL //this cant possibly be a good idea - var/randdir - for(var/i in 1 to 24)//like a headless chicken! - if(user.is_holding(src)) - randdir = pick(GLOB.alldirs) - user.Move(get_step(user, randdir),randdir) - user.emote("spin") - if (i == 3 && myhead) - myhead.drop_limb() - sleep(3) - else - user.visible_message("[user] panics and starts choking to death!") - return OXYLOSS - - - else - user.visible_message("[user] begins beating [user.p_them()]self to death with \the [src]'s handle! It probably would've been cooler if [user.p_they()] turned it on first!") - return BRUTELOSS - -/obj/item/twohanded/dualsaber/Initialize() - . = ..() - if(LAZYLEN(possible_colors)) - saber_color = pick(possible_colors) - switch(saber_color) - if("red") - light_color = LIGHT_COLOR_RED - if("green") - light_color = LIGHT_COLOR_GREEN - if("blue") - light_color = LIGHT_COLOR_LIGHT_CYAN - if("purple") - light_color = LIGHT_COLOR_LAVENDER - -/obj/item/twohanded/dualsaber/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/twohanded/dualsaber/update_icon_state() - if(wielded) - icon_state = "dualsaber[saber_color][wielded]" - else - icon_state = "dualsaber0" - clean_blood() - -/obj/item/twohanded/dualsaber/attack(mob/target, mob/living/carbon/human/user) - if(user.has_dna()) - if(user.dna.check_mutation(HULK)) - to_chat(user, "You grip the blade too hard and accidentally close it!") - unwield() - return - ..() - if(HAS_TRAIT(user, TRAIT_CLUMSY) && (wielded) && prob(40)) - impale(user) - return - if(spinnable && (wielded) && prob(50)) - INVOKE_ASYNC(src, .proc/jedi_spin, user) - -/obj/item/twohanded/dualsaber/proc/jedi_spin(mob/living/user) - for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH)) - user.setDir(i) - if(i == WEST) - user.emote("flip") - sleep(1) - -/obj/item/twohanded/dualsaber/proc/impale(mob/living/user) - to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") - if (force_wielded) - user.take_bodypart_damage(20,25) - else - user.adjustStaminaLoss(25) - -/obj/item/twohanded/dualsaber/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(!wielded) - return NONE - if(can_reflect && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE)) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER //no you - return BLOCK_SHOULD_REDIRECT | BLOCK_SUCCESS | BLOCK_REDIRECTED - return ..() - -/obj/item/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up - if(wielded) - to_chat(user, "You can't pick up such dangerous item with your meaty hands without losing fingers, better not to!") - return 1 - -/obj/item/twohanded/dualsaber/wield(mob/living/carbon/M) //Specific wield () hulk checks due to reflection chance for balance issues and switches hitsounds. - if(M.has_dna()) - if(M.dna.check_mutation(HULK)) - to_chat(M, "You lack the grace to wield this!") - return - ..() - if(wielded) - sharpness = IS_SHARP - w_class = w_class_on - total_mass = total_mass_on - hitsound = 'sound/weapons/blade1.ogg' - START_PROCESSING(SSobj, src) - set_light(brightness_on) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/dualsaber/unwield() //Specific unwield () to switch hitsounds. - sharpness = initial(sharpness) - w_class = initial(w_class) - total_mass = initial(total_mass) - ..() - hitsound = "swing_hit" - STOP_PROCESSING(SSobj, src) - set_light(0) - RemoveElement(/datum/element/sword_point) - -/obj/item/twohanded/dualsaber/process() - if(wielded) - if(hacked) - rainbow_process() - open_flame() - else - STOP_PROCESSING(SSobj, src) - -/obj/item/twohanded/dualsaber/proc/rainbow_process() - light_color = pick(rainbow_colors) - -/obj/item/twohanded/dualsaber/ignition_effect(atom/A, mob/user) - // same as /obj/item/melee/transforming/energy, mostly - if(!wielded) - return "" - var/in_mouth = "" - if(iscarbon(user)) - var/mob/living/carbon/C = user - if(C.wear_mask) - in_mouth = ", barely missing [user.p_their()] nose" - . = "[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [A.name] in the process." - playsound(loc, hitsound, get_clamped_volume(), 1, -1) - add_fingerprint(user) - // Light your candles while spinning around the room - if(spinnable) - INVOKE_ASYNC(src, .proc/jedi_spin, user) - -/obj/item/twohanded/dualsaber/green - possible_colors = list("green") - -/obj/item/twohanded/dualsaber/red - possible_colors = list("red") - -/obj/item/twohanded/dualsaber/blue - possible_colors = list("blue") - -/obj/item/twohanded/dualsaber/purple - possible_colors = list("purple") - -/obj/item/twohanded/dualsaber/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/multitool)) - if(!hacked) - hacked = TRUE - to_chat(user, "2XRNBW_ENGAGE") - saber_color = "rainbow" - update_icon() - else - to_chat(user, "It's starting to look like a triple rainbow - no, nevermind.") - else - return ..() - -///////////////////////////////////////////////////// -// HYPEREUTACTIC Blades ///////////////////////// -///////////////////////////////////////////////////// - -/obj/item/twohanded/dualsaber/hypereutactic - icon = 'icons/obj/1x2.dmi' - icon_state = "hypereutactic" - lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' - righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' - item_state = "hypereutactic" - inhand_x_dimension = 64 - inhand_y_dimension = 64 - name = "hypereutactic blade" - desc = "A supermassive weapon envisioned to cleave the very fabric of space and time itself in twain, the hypereutactic blade dynamically flash-forges a hypereutactic crystaline nanostructure capable of passing through most known forms of matter like a hot knife through butter." - force = 7 - force_unwielded = 7 - force_wielded = 40 - wieldsound = 'sound/weapons/nebon.ogg' - unwieldsound = 'sound/weapons/neboff.ogg' - hitsound_on = 'sound/weapons/nebhit.ogg' - slowdown_wielded = 1 - armour_penetration = 60 - light_color = "#37FFF7" - rainbow_colors = list("#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF","#FF00FF", "#3399ff", "#ff9900", "#fb008b", "#9800ff", "#00ffa3", "#ccff00") - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "destroyed", "ripped", "devastated", "shredded") - spinnable = FALSE - total_mass_on = 4 - -/obj/item/twohanded/dualsaber/hypereutactic/ComponentInitialize() - . = ..() - AddElement(/datum/element/update_icon_updates_onmob) - -/obj/item/twohanded/dualsaber/hypereutactic/update_icon_state() - return - -/obj/item/twohanded/dualsaber/hypereutactic/update_overlays() - . = ..() - var/mutable_appearance/blade_overlay = mutable_appearance(icon, "hypereutactic_blade") - var/mutable_appearance/gem_overlay = mutable_appearance(icon, "hypereutactic_gem") - - if(light_color) - blade_overlay.color = light_color - gem_overlay.color = light_color - - . += gem_overlay - - if(wielded) - . += blade_overlay - - clean_blood() - -/obj/item/twohanded/dualsaber/hypereutactic/AltClick(mob/living/user) - . = ..() - if(!user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) - return - if(user.incapacitated() || !istype(user)) - to_chat(user, "You can't do that right now!") - return - if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes") - var/energy_color_input = input(usr,"","Choose Energy Color",light_color) as color|null - if(!energy_color_input || !user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) - return - light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) - update_icon() - update_light() - return TRUE - -/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) - . = ..() - if(isinhands) - var/mutable_appearance/gem_inhand = mutable_appearance(icon_file, "hypereutactic_gem") - gem_inhand.color = light_color - . += gem_inhand - if(wielded) - var/mutable_appearance/blade_inhand = mutable_appearance(icon_file, "hypereutactic_blade") - blade_inhand.color = light_color - . += blade_inhand - -/obj/item/twohanded/dualsaber/hypereutactic/examine(mob/user) - . = ..() - if(!hacked) - . += "Alt-click to recolor it." - -/obj/item/twohanded/dualsaber/hypereutactic/rainbow_process() - . = ..() - update_icon() - update_light() - -/obj/item/twohanded/dualsaber/hypereutactic/chaplain - name = "divine lightblade" - desc = "A giant blade of bright and holy light, said to cut down the wicked with ease." - force = 5 - force_unwielded = 5 - force_wielded = 20 - block_chance = 50 - armour_penetration = 0 - var/chaplain_spawnable = TRUE - can_reflect = FALSE - obj_flags = UNIQUE_RENAME - -/obj/item/twohanded/dualsaber/hypereutactic/chaplain/ComponentInitialize() - . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE) - -//spears -/obj/item/twohanded/spear - icon_state = "spearglass0" - lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' - name = "spear" - desc = "A haphazardly-constructed yet still deadly weapon of ancient design." - force = 10 - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - force_unwielded = 10 - force_wielded = 18 - throwforce = 20 - throw_speed = 4 - embedding = list("embedded_impact_pain_multiplier" = 3, "embed_chance" = 90) - armour_penetration = 10 - custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") - sharpness = IS_SHARP - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) - var/obj/item/grenade/explosive = null - var/war_cry = "AAAAARGH!!!" - var/icon_prefix = "spearglass" - -/obj/item/twohanded/spear/Initialize() - . = ..() - AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad. - AddComponent(/datum/component/jousting) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/spear/attack_self(mob/user) - if(explosive) - explosive.attack_self(user) - return - . = ..() - -//Citadel additions : attack_self and rightclick_attack_self - -/obj/item/twohanded/rightclick_attack_self(mob/user) - if(wielded) //Trying to unwield it - unwield(user) - else //Trying to wield it - wield(user) - return TRUE - -/obj/item/twohanded/spear/suicide_act(mob/living/carbon/user) - user.visible_message("[user] begins to sword-swallow \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") - if(explosive) //Citadel Edit removes qdel and explosive.forcemove(AM) - user.say("[war_cry]", forced="spear warcry") - explosive.prime() - user.gib() - return BRUTELOSS - return BRUTELOSS - -/obj/item/twohanded/spear/examine(mob/user) - . = ..() - if(explosive) - . += "Use in your hands to activate the attached explosive.
Alt-click to set your war cry.
Right-click in combat mode to wield" - -/obj/item/twohanded/spear/update_icon_state() - if(explosive) - icon_state = "spearbomb[wielded]" - else - icon_state = "[icon_prefix][wielded]" - -/obj/item/twohanded/spear/afterattack(atom/movable/AM, mob/user, proximity) - . = ..() - if(!proximity) - return - if(isopenturf(AM)) //So you can actually melee with it - return - if(explosive && wielded) //Citadel edit removes qdel and explosive.forcemove(AM) - user.say("[war_cry]", forced="spear warcry") - explosive.prime() - -/obj/item/twohanded/spear/grenade_prime_react(obj/item/grenade/nade) //Citadel edit, removes throw_impact because memes - nade.forceMove(get_turf(src)) - qdel(src) - -/obj/item/twohanded/spear/AltClick(mob/user) - . = ..() - if(user.canUseTopic(src, BE_CLOSE)) - ..() - if(!explosive) - return - if(istype(user) && loc == user) - var/input = stripped_input(user,"What do you want your war cry to be? You will shout it when you hit someone in melee.", ,"", 50) - if(input) - src.war_cry = input - return TRUE - -/obj/item/twohanded/spear/CheckParts(list/parts_list) - var/obj/item/shard/tip = locate() in parts_list - if (istype(tip, /obj/item/shard/plasma)) - force_wielded = 19 - force_unwielded = 11 - throwforce = 21 - icon_prefix = "spearplasma" - qdel(tip) - var/obj/item/twohanded/spear/S = locate() in parts_list - if(S) - if(S.explosive) - S.explosive.forceMove(get_turf(src)) - S.explosive = null - parts_list -= S - qdel(S) - ..() - var/obj/item/grenade/G = locate() in contents - if(G) - explosive = G - name = "explosive lance" - desc = "A makeshift spear with [G] attached to it." - update_icon() - -// CHAINSAW -/obj/item/twohanded/required/chainsaw - name = "chainsaw" - desc = "A versatile power tool. Useful for limbing trees and delimbing humans." - icon_state = "chainsaw_off" - lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' - flags_1 = CONDUCT_1 - force = 13 - var/force_on = 24 - w_class = WEIGHT_CLASS_HUGE - throwforce = 13 - throw_speed = 2 - throw_range = 4 - custom_materials = list(/datum/material/iron=13000) - attack_verb = list("sawed", "torn", "cut", "chopped", "diced") - hitsound = "swing_hit" - sharpness = IS_SHARP - actions_types = list(/datum/action/item_action/startchainsaw) - var/on = FALSE - tool_behaviour = TOOL_SAW - toolspeed = 0.5 - -/obj/item/twohanded/required/chainsaw/ComponentInitialize() - . = ..() - AddComponent(/datum/component/butchering, 30, 100, 0, 'sound/weapons/chainsawhit.ogg', TRUE) - AddElement(/datum/element/update_icon_updates_onmob) - -/obj/item/twohanded/required/chainsaw/suicide_act(mob/living/carbon/user) - if(on) - user.visible_message("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(src, 'sound/weapons/chainsawhit.ogg', 100, 1) - var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) - if(myhead) - myhead.dismember() - else - user.visible_message("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(src, 'sound/weapons/genhit1.ogg', 100, 1) - return(BRUTELOSS) - -/obj/item/twohanded/required/chainsaw/attack_self(mob/user) - on = !on - to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") - force = on ? force_on : initial(force) - throwforce = on ? force_on : force - update_icon() - var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) - butchering.butchering_enabled = on - - if(on) - hitsound = 'sound/weapons/chainsawhit.ogg' - else - hitsound = "swing_hit" - -/obj/item/twohanded/required/chainsaw/update_icon_state() - icon_state = "chainsaw_[on ? "on" : "off"]" - -/obj/item/twohanded/required/chainsaw/get_dismemberment_chance() - if(wielded) - . = ..() - -/obj/item/twohanded/required/chainsaw/doomslayer - name = "THE GREAT COMMUNICATOR" - desc = "VRRRRRRR!!!" - armour_penetration = 100 - force_on = 30 - -/obj/item/twohanded/required/chainsaw/doomslayer/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - block_return[BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE] = 100 - return ..() - -/obj/item/twohanded/required/chainsaw/doomslayer/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(attack_type & ATTACK_TYPE_PROJECTILE) - owner.visible_message("Ranged attacks just make [owner] angrier!") - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) - return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL - return ..() - -//GREY TIDE -/obj/item/twohanded/spear/grey_tide - icon_state = "spearglass0" - name = "\improper Grey Tide" - desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among Nanotrasen military forces." - force_unwielded = 15 - force_wielded = 25 - throwforce = 20 - throw_speed = 4 - attack_verb = list("gored") - var/clonechance = 50 - var/clonedamage = 12 - var/clonespeed = 0 - var/clone_replication_chance = 30 - var/clone_lifespan = 100 - -/obj/item/twohanded/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity) - . = ..() - if(!proximity) - return - user.faction |= "greytide([REF(user)])" - if(isliving(AM)) - var/mob/living/L = AM - if(istype (L, /mob/living/simple_animal/hostile/illusion)) - return - if(!L.stat && prob(clonechance)) - var/mob/living/simple_animal/hostile/illusion/M = new(user.loc) - M.faction = user.faction.Copy() - M.set_varspeed(clonespeed) - M.Copy_Parent(user, clone_lifespan, user.health/2.5, clonedamage, clone_replication_chance) - M.GiveTarget(L) - -/obj/item/twohanded/pitchfork - icon_state = "pitchfork0" - lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' - name = "pitchfork" - desc = "A simple tool used for moving hay." - force = 7 - throwforce = 15 - w_class = WEIGHT_CLASS_BULKY - force_unwielded = 7 - force_wielded = 15 - attack_verb = list("attacked", "impaled", "pierced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) - resistance_flags = FIRE_PROOF - -/obj/item/twohanded/pitchfork/Initialize(mapload) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/pitchfork/demonic - name = "demonic pitchfork" - desc = "A red pitchfork, it looks like the work of the devil." - force = 19 - throwforce = 24 - force_unwielded = 19 - force_wielded = 25 - -/obj/item/twohanded/pitchfork/demonic/Initialize() - . = ..() - set_light(3,6,LIGHT_COLOR_RED) - -/obj/item/twohanded/pitchfork/demonic/greater - force = 24 - throwforce = 50 - force_unwielded = 24 - force_wielded = 34 - -/obj/item/twohanded/pitchfork/demonic/ascended - force = 100 - throwforce = 100 - force_unwielded = 100 - force_wielded = 500000 // Kills you DEAD. - -/obj/item/twohanded/pitchfork/update_icon_state() - icon_state = "pitchfork[wielded]" - -/obj/item/twohanded/pitchfork/suicide_act(mob/user) - user.visible_message("[user] impales [user.p_them()]self in [user.p_their()] abdomen with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - -/obj/item/twohanded/pitchfork/demonic/pickup(mob/living/user) - if(isliving(user) && user.mind && user.owns_soul() && !is_devil(user)) - var/mob/living/U = user - U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \ - "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"") - if(ishuman(U)) - var/mob/living/carbon/human/H = U - H.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) - else - U.adjustFireLoss(rand(force/2,force)) - -/obj/item/twohanded/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user) - if(user.mind && user.owns_soul() && !is_devil(user)) - to_chat(user, "[src] burns in your hands.") - user.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) - ..() - -/obj/item/twohanded/pitchfork/demonic/ascended/afterattack(atom/target, mob/user, proximity) - . = ..() - if(!proximity || !wielded) - return - if(iswallturf(target)) - var/turf/closed/wall/W = target - user.visible_message("[user] blasts \the [target] with \the [src]!") - playsound(target, 'sound/magic/disintegrate.ogg', 100, 1) - W.break_wall() - W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) - return - -//HF blade - -/obj/item/twohanded/vibro_weapon - icon_state = "hfrequency0" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - name = "vibro sword" - desc = "A potent weapon capable of cutting through nearly anything. Wielding it in two hands will allow you to deflect gunfire." - force_unwielded = 20 - force_wielded = 40 - armour_penetration = 100 - block_chance = 40 - throwforce = 20 - throw_speed = 4 - sharpness = IS_SHARP - attack_verb = list("cut", "sliced", "diced") - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/twohanded/vibro_weapon/Initialize() - . = ..() - AddComponent(/datum/component/butchering, 20, 105) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/vibro_weapon/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(wielded) - final_block_chance *= 2 - if(wielded || !(attack_type & ATTACK_TYPE_PROJECTILE)) - if(prob(final_block_chance)) - if(attack_type & ATTACK_TYPE_PROJECTILE) - owner.visible_message("[owner] deflects [attack_text] with [src]!") - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT - return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL - else - owner.visible_message("[owner] parries [attack_text] with [src]!") - return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL - return NONE - -/obj/item/twohanded/vibro_weapon/update_icon_state() - icon_state = "hfrequency[wielded]" - -/* - * Bone Axe - */ -/obj/item/twohanded/fireaxe/boneaxe // Blatant imitation of the fireaxe, but made out of bone. - icon_state = "bone_axe0" - name = "bone axe" - desc = "A large, vicious axe crafted out of several sharpened bone plates and crudely tied together. Made of monsters, by killing monsters, for killing monsters." - force_wielded = 23 - -/obj/item/twohanded/fireaxe/boneaxe/update_icon_state() - icon_state = "bone_axe[wielded]" - -/* - * Bone Spear - */ -/obj/item/twohanded/bonespear //Blatant imitation of spear, but made out of bone. Not valid for explosive modification. - icon_state = "bone_spear0" - lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' - name = "bone spear" - desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology." - force = 11 - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - force_unwielded = 11 - force_wielded = 20 //I have no idea how to balance - reach = 2 - throwforce = 22 - throw_speed = 4 - embedding = list("embedded_impact_pain_multiplier" = 3) - armour_penetration = 15 //Enhanced armor piercing - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") - sharpness = IS_SHARP - -/obj/item/twohanded/bonespear/update_icon_state() - icon_state = "bone_spear[wielded]" - -/obj/item/twohanded/binoculars - name = "binoculars" - desc = "Used for long-distance surveillance." - item_state = "binoculars" - icon_state = "binoculars" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items_righthand.dmi' - slot_flags = ITEM_SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - var/mob/listeningTo - var/zoom_out_amt = 6 - var/zoom_amt = 10 - -/obj/item/twohanded/binoculars/Destroy() - listeningTo = null - return ..() - -/obj/item/twohanded/binoculars/wield(mob/user) - . = ..() - if(!wielded) - return - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/unwield) - listeningTo = user - user.visible_message("[user] holds [src] up to [user.p_their()] eyes.","You hold [src] up to your eyes.") - item_state = "binoculars_wielded" - user.regenerate_icons() - if(!user?.client) - return - var/client/C = user.client - var/_x = 0 - var/_y = 0 - switch(user.dir) - if(NORTH) - _y = zoom_amt - if(EAST) - _x = zoom_amt - if(SOUTH) - _y = -zoom_amt - if(WEST) - _x = -zoom_amt - C.change_view(world.view + zoom_out_amt) - C.pixel_x = world.icon_size*_x - C.pixel_y = world.icon_size*_y - -/obj/item/twohanded/binoculars/unwield(mob/user) - . = ..() - UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - listeningTo = null - user.visible_message("[user] lowers [src].","You lower [src].") - item_state = "binoculars" - user.regenerate_icons() - if(user && user.client) - user.regenerate_icons() - var/client/C = user.client - C.change_view(CONFIG_GET(string/default_view)) - user.client.pixel_x = 0 - user.client.pixel_y = 0 - -/obj/item/twohanded/electrostaff - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "electrostaff" - item_state = "electrostaff" - lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' - name = "riot suppression electrostaff" - desc = "A large quarterstaff, with massive silver electrodes mounted at the end." - w_class = WEIGHT_CLASS_HUGE - slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_OCLOTHING - force_unwielded = 5 - force_wielded = 10 - throwforce = 15 //if you are a madman and finish someone off with this, power to you. - throw_speed = 1 - item_flags = NO_MAT_REDEMPTION | SLOWS_WHILE_IN_HAND - block_chance = 30 - attack_verb = list("struck", "beaten", "thwacked", "pulped") - total_mass = 5 //yeah this is a heavy thing, beating people with it while it's off is not going to do you any favors. (to curb stun-kill rampaging without it being on) - var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high - var/on = FALSE - var/can_block_projectiles = FALSE //can't block guns - var/lethal_cost = 400 //10000/400*20 = 500. decent enough? - var/lethal_damage = 20 - var/lethal_stam_cost = 4 - var/stun_cost = 333 //10000/333*25 = 750. stunbatons are at time of writing 10000/1000*49 = 490. - var/stun_status_effect = STATUS_EFFECT_ELECTROSTAFF //a small slowdown effect - var/stun_stamdmg = 40 - var/stun_status_duration = 25 - var/stun_stam_cost = 3.5 - -/obj/item/twohanded/electrostaff/Initialize(mapload) - . = ..() - if(ispath(cell)) - cell = new cell - -/obj/item/twohanded/electrostaff/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/twohanded/electrostaff/get_cell() - . = cell - if(iscyborg(loc)) - var/mob/living/silicon/robot/R = loc - . = R.get_cell() - -/obj/item/twohanded/electrostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(!on || (!can_block_projectiles && (attack_type & ATTACK_TYPE_PROJECTILE))) - return BLOCK_NONE - return ..() - -/obj/item/twohanded/electrostaff/proc/min_hitcost() - return min(stun_cost, lethal_cost) - -/obj/item/twohanded/electrostaff/proc/turn_on(mob/user, silent = FALSE) - if(on) - return - if(!cell) - if(user) - to_chat(user, "[src] has no cell.") - return - if(cell.charge < min_hitcost()) - if(user) - to_chat(user, "[src] is out of charge.") - return - on = TRUE - START_PROCESSING(SSobj, src) - if(user) - to_chat(user, "You turn [src] on.") - update_icon() - if(!silent) - playsound(src, "sparks", 75, 1, -1) - -/obj/item/twohanded/electrostaff/proc/turn_off(mob/user, silent = FALSE) - if(!on) - return - if(user) - to_chat(user, "You turn [src] off.") - on = FALSE - STOP_PROCESSING(SSobj, src) - update_icon() - if(!silent) - playsound(src, "sparks", 75, 1, -1) - -/obj/item/twohanded/electrostaff/proc/toggle(mob/user, silent = FALSE) - if(on) - turn_off(user, silent) - else - turn_on(user, silent) - -/obj/item/twohanded/electrostaff/wield(mob/user) - . = ..() - if(wielded) - turn_on(user) - add_fingerprint(user) - -/obj/item/twohanded/electrostaff/unwield(mob/user) - . = ..() - if(!wielded) - turn_off(user) - add_fingerprint(user) - -/obj/item/twohanded/electrostaff/update_icon_state() - . = ..() - if(!wielded) - icon_state = "electrostaff" - item_state = "electrostaff" - else - icon_state = item_state = (on? "electrostaff_1" : "electrostaff_0") - set_light(7, on? 1 : 0, LIGHT_COLOR_CYAN) - -/obj/item/twohanded/electrostaff/examine(mob/living/user) - . = ..() - if(cell) - . += "The cell charge is [round(cell.percent())]%." - else - . += "There is no cell installed!" - -/obj/item/twohanded/electrostaff/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/C = W - if(cell) - to_chat(user, "[src] already has a cell!") - else - if(C.maxcharge < min_hit_cost()) - to_chat(user, "[src] requires a higher capacity cell.") - return - if(!user.transferItemToLoc(W, src)) - return - cell = C - to_chat(user, "You install a cell in [src].") - - else if(W.tool_behaviour == TOOL_SCREWDRIVER) - if(cell) - cell.update_icon() - cell.forceMove(get_turf(src)) - cell = null - to_chat(user, "You remove the cell from [src].") - turn_off(user, TRUE) - else - return ..() - -/obj/item/twohanded/electrostaff/process() - deductcharge(50) //Wasteful! - -/obj/item/twohanded/electrostaff/proc/min_hit_cost() - return min(lethal_cost, stun_cost) - -/obj/item/twohanded/electrostaff/proc/deductcharge(amount) - var/obj/item/stock_parts/cell/C = get_cell() - if(!C) - turn_off() - return FALSE - C.use(min(amount, C.charge)) - if(QDELETED(src)) - return FALSE - if(C.charge < min_hit_cost()) - turn_off() - -/obj/item/twohanded/electrostaff/attack(mob/living/target, mob/living/user) - if(IS_STAMCRIT(user))//CIT CHANGE - makes it impossible to baton in stamina softcrit - to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto - return //CIT CHANGE - ditto - if(on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) - clowning_around(user) //ouch! - return - if(iscyborg(target)) - ..() - return - if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; run_block() handles that - playsound(target, 'sound/weapons/genhit.ogg', 50, 1) - return FALSE - if(user.a_intent != INTENT_HARM) - if(stun_act(target, user)) - user.do_attack_animation(target) - user.adjustStaminaLossBuffered(stun_stam_cost) - return - else if(!harm_act(target, user)) - return ..() //if you can't fry them just beat them with it - else //we did harm act them - user.do_attack_animation(target) - user.adjustStaminaLossBuffered(lethal_stam_cost) - -/obj/item/twohanded/electrostaff/proc/stun_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) - var/stunforce = stun_stamdmg - if(!no_charge_and_force) - if(!on) - target.visible_message("[user] has bapped [target] with [src]. Luckily it was off.", \ - "[user] has bapped you with [src]. Luckily it was off") - turn_off() //if it wasn't already off - return FALSE - var/obj/item/stock_parts/cell/C = get_cell() - var/chargeleft = C.charge - deductcharge(stun_cost) - if(QDELETED(src) || QDELETED(C)) //boom - return FALSE - if(chargeleft < stun_cost) - stunforce *= round(chargeleft/stun_cost, 0.1) - target.adjustStaminaLoss(stunforce) - target.apply_effect(EFFECT_STUTTER, stunforce) - SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) - if(user) - target.lastattacker = user.real_name - target.lastattackerckey = user.ckey - target.visible_message("[user] has shocked [target] with [src]!", \ - "[user] has shocked you with [src]!") - log_combat(user, target, "stunned with an electrostaff") - playsound(src, 'sound/weapons/staff.ogg', 50, 1, -1) - target.apply_status_effect(stun_status_effect, stun_status_duration) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - H.forcesay(GLOB.hit_appends) - return TRUE - -/obj/item/twohanded/electrostaff/proc/harm_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) - var/lethal_force = lethal_damage - if(!no_charge_and_force) - if(!on) - return FALSE //standard item attack - var/obj/item/stock_parts/cell/C = get_cell() - var/chargeleft = C.charge - deductcharge(lethal_cost) - if(QDELETED(src) || QDELETED(C)) //boom - return FALSE - if(chargeleft < stun_cost) - lethal_force *= round(chargeleft/lethal_cost, 0.1) - target.adjustFireLoss(lethal_force) //good against ointment spam - SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) - if(user) - target.lastattacker = user.real_name - target.lastattackerckey = user.ckey - target.visible_message("[user] has seared [target] with [src]!", \ - "[user] has seared you with [src]!") - log_combat(user, target, "burned with an electrostaff") - playsound(src, 'sound/weapons/sear.ogg', 50, 1, -1) - return TRUE - -/obj/item/twohanded/electrostaff/proc/clowning_around(mob/living/user) - user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ - "You accidentally hit yourself with [src]!") - SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) - harm_act(user, user, TRUE) - stun_act(user, user, TRUE) - deductcharge(lethal_cost) - -/obj/item/twohanded/electrostaff/emp_act(severity) - . = ..() - if (!(. & EMP_PROTECT_SELF)) - turn_off() - if(!iscyborg(loc)) - deductcharge(1000 / severity, TRUE, FALSE) - -/obj/item/twohanded/broom - name = "broom" - desc = "This is my BROOMSTICK! It can be used manually or braced with two hands to sweep items as you move. It has a telescopic handle for compact storage." //LIES - icon = 'icons/obj/janitor.dmi' - icon_state = "broom0" - lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' - force = 8 - throwforce = 10 - throw_speed = 3 - throw_range = 7 - w_class = WEIGHT_CLASS_NORMAL - force_unwielded = 8 - force_wielded = 12 - attack_verb = list("swept", "brushed off", "bludgeoned", "whacked") - resistance_flags = FLAMMABLE - -/obj/item/twohanded/broom/update_icon_state() - icon_state = "broom[wielded]" - -/obj/item/twohanded/broom/wield(mob/user) - . = ..() - if(!wielded) - return - to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) - -/obj/item/twohanded/broom/unwield(mob/user) - . = ..() - UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - -/obj/item/twohanded/broom/afterattack(atom/A, mob/user, proximity) - . = ..() - if(!proximity) - return - sweep(user, A, FALSE) - -/obj/item/twohanded/broom/proc/sweep(mob/user, atom/A, moving = TRUE) - var/turf/target - if (!moving) - if (isturf(A)) - target = A - else - target = A.loc - if(!isturf(target)) //read: Mob inventories. - return - else - target = user.loc - if (locate(/obj/structure/table) in target.contents) - return - var/i = 0 - for(var/obj/item/garbage in target.contents) - if(!garbage.anchored) - garbage.Move(get_step(target, user.dir), user.dir) - i++ - if(i >= 20) - break - if(i >= 1) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 5, TRUE, -1) - -/obj/item/twohanded/broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta - J.put_in_cart(src, user) - J.mybroom=src - J.update_icon() diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index d34daf5c75..fc5680e524 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -261,7 +261,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/wirerod/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/shard)) - var/obj/item/twohanded/spear/S = new /obj/item/twohanded/spear + var/obj/item/spear/S = new /obj/item/spear remove_item_from_storage(user) if (!user.transferItemToLoc(I, S)) @@ -457,7 +457,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/mounted_chainsaw/Destroy() var/obj/item/bodypart/part - new /obj/item/twohanded/required/chainsaw(get_turf(src)) + new /obj/item/chainsaw(get_turf(src)) if(iscarbon(loc)) var/mob/living/carbon/holder = loc var/index = holder.get_held_index_of_item(src) @@ -734,3 +734,59 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 to_chat(user, "[M] is too close to use [src] on.") return M.attack_hand(user) + +//HF blade + +/obj/item/vibro_weapon + icon_state = "hfrequency0" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + name = "vibro sword" + desc = "A potent weapon capable of cutting through nearly anything. Wielding it in two hands will allow you to deflect gunfire." + armour_penetration = 100 + block_chance = 40 + throwforce = 20 + throw_speed = 4 + sharpness = IS_SHARP + attack_verb = list("cut", "sliced", "diced") + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + hitsound = 'sound/weapons/bladeslice.ogg' + var/wielded = FALSE // track wielded status on item + +/obj/item/vibro_weapon/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/vibro_weapon/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 20, 105) + AddComponent(/datum/component/two_handed, force_multiplier=2, icon_wielded="hfrequency1") + AddElement(/datum/element/sword_point) + +/// triggered on wield of two handed item +/obj/item/vibro_weapon/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/vibro_weapon/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/vibro_weapon/update_icon_state() + icon_state = "hfrequency0" + +/obj/item/vibro_weapon/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(wielded) + final_block_chance *= 2 + if(wielded || !(attack_type & ATTACK_TYPE_PROJECTILE)) + if(prob(final_block_chance)) + if(attack_type & ATTACK_TYPE_PROJECTILE) + owner.visible_message("[owner] deflects [attack_text] with [src]!") + playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL + else + owner.visible_message("[owner] parries [attack_text] with [src]!") + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return NONE diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index e5c50af782..3bba7608c2 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -272,8 +272,8 @@ icon_state = "tac" /obj/structure/closet/secure_closet/lethalshots/PopulateContents() ..() - new /obj/item/twohanded/electrostaff(src) - new /obj/item/twohanded/electrostaff(src) + new /obj/item/electrostaff(src) + new /obj/item/electrostaff(src) for(var/i in 1 to 3) new /obj/item/storage/box/lethalshot(src) diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index f4c1dd5ab9..bcf1016c1e 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -11,7 +11,7 @@ integrity_failure = 0.33 var/locked = TRUE var/open = FALSE - var/obj/item/twohanded/fireaxe/fireaxe + var/obj/item/fireaxe/fireaxe /obj/structure/fireaxecabinet/Initialize() . = ..() @@ -50,8 +50,8 @@ obj_integrity = max_integrity update_icon() else if(open || broken) - if(istype(I, /obj/item/twohanded/fireaxe) && !fireaxe) - var/obj/item/twohanded/fireaxe/F = I + if(istype(I, /obj/item/fireaxe) && !fireaxe) + var/obj/item/fireaxe/F = I if(F.wielded) to_chat(user, "Unwield the [F.name] first.") return diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index c0ee7bb987..daa3631a46 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -288,7 +288,7 @@ icon_state = "fullgrass_[rand(1, 3)]" . = ..() -/obj/item/twohanded/required/kirbyplants +/obj/item/kirbyplants name = "potted plant" icon = 'icons/obj/flora/plants.dmi' icon_state = "plant-01" @@ -300,23 +300,24 @@ throw_speed = 2 throw_range = 4 -/obj/item/twohanded/required/kirbyplants/Initialize() +/obj/item/kirbyplants/ComponentInitialize() . = ..() AddComponent(/datum/component/tactical) + AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_unwielded=10, force_wielded=10) -/obj/item/twohanded/required/kirbyplants/random +/obj/item/kirbyplants/random icon = 'icons/obj/flora/_flora.dmi' icon_state = "random_plant" var/list/static/states -/obj/item/twohanded/required/kirbyplants/random/Initialize() +/obj/item/kirbyplants/random/Initialize() . = ..() icon = 'icons/obj/flora/plants.dmi' if(!states) generate_states() icon_state = pick(states) -/obj/item/twohanded/required/kirbyplants/random/proc/generate_states() +/obj/item/kirbyplants/random/proc/generate_states() states = list() for(var/i in 1 to 25) var/number @@ -328,12 +329,12 @@ states += "applebush" -/obj/item/twohanded/required/kirbyplants/dead +/obj/item/kirbyplants/dead name = "RD's potted plant" desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." icon_state = "plant-25" -/obj/item/twohanded/required/kirbyplants/photosynthetic +/obj/item/kirbyplants/photosynthetic name = "photosynthetic potted plant" desc = "A bioluminescent plant." icon_state = "plant-09" diff --git a/code/game/objects/structures/headpike.dm b/code/game/objects/structures/headpike.dm index 581ce850de..65d930e08b 100644 --- a/code/game/objects/structures/headpike.dm +++ b/code/game/objects/structures/headpike.dm @@ -6,7 +6,7 @@ density = FALSE anchored = TRUE var/bonespear = FALSE - var/obj/item/twohanded/spear/spear + var/obj/item/spear/spear var/obj/item/bodypart/head/victim /obj/structure/headpike/bone //for bone spears @@ -20,9 +20,9 @@ name = "[victim.name] on a spear" update_icon() if(bonespear) - spear = locate(/obj/item/twohanded/bonespear) in parts_list + spear = locate(/obj/item/spear/bonespear) in parts_list else - spear = locate(/obj/item/twohanded/spear) in parts_list + spear = locate(/obj/item/spear) in parts_list /obj/structure/headpike/Initialize() . = ..() diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 38133d9089..dc4a741b8b 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -8,7 +8,7 @@ //copypaste sorry var/obj/item/storage/bag/trash/mybag var/obj/item/mop/mymop - var/obj/item/twohanded/broom/mybroom + var/obj/item/broom/mybroom var/obj/item/reagent_containers/spray/cleaner/myspray var/obj/item/lightreplacer/myreplacer var/signs = 0 @@ -48,9 +48,9 @@ m.janicart_insert(user, src) else to_chat(user, fail_msg) - else if(istype(I, /obj/item/twohanded/broom)) + else if(istype(I, /obj/item/broom)) if(!mybroom) - var/obj/item/twohanded/broom/b=I + var/obj/item/broom/b=I b.janicart_insert(user,src) else to_chat(user, fail_msg) diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 7d476d559e..a7f4838228 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -803,7 +803,7 @@ stage = GIBTONITE_DETONATE explosion(bombturf,1,2,5, adminlog = 0) if(stage == GIBTONITE_STABLE) //Gibtonite deposit is now benign and extractable. Depending on how close you were to it blowing up before defusing, you get better quality ore. - var/obj/item/twohanded/required/gibtonite/G = new (src) + var/obj/item/gibtonite/G = new (src) if(det_time <= 0) G.quality = 3 G.icon_state = "Gibtonite ore 3" diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index b04f4f0aa0..01c321bf36 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -136,7 +136,7 @@ /turf/closed/wall/mineral/wood/attackby(obj/item/W, mob/user) if(W.sharpness && W.force) var/duration = (48/W.force) * 2 //In seconds, for now. - if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/twohanded/fireaxe)) + if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/fireaxe)) duration /= 4 //Much better with hatchets and axes. var/src_type = type if(do_after(user, duration*10, target=src) && type == src_type) //Into deciseconds. diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 88f6dd6962..8d5e497138 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -179,7 +179,7 @@ target.zImpact(A, levels, src) return TRUE -/turf/proc/handleRCL(obj/item/twohanded/rcl/C, mob/user) +/turf/proc/handleRCL(obj/item/rcl/C, mob/user) if(C.loaded) for(var/obj/structure/cable/LC in src) if(!LC.d1 || !LC.d2) @@ -202,7 +202,7 @@ coil.place_turf(src, user) return TRUE - else if(istype(C, /obj/item/twohanded/rcl)) + else if(istype(C, /obj/item/rcl)) handleRCL(C, user) return FALSE diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 44dcfc0ae6..417663fcb7 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -126,7 +126,7 @@ L.forceMove(LA) L.hallucination = 0 to_chat(L, "The battle is won. Your bloodlust subsides.") - for(var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw in L) + for(var/obj/item/chainsaw/doomslayer/chainsaw in L) qdel(chainsaw) else to_chat(L, "You are not yet worthy of passing. Drag a severed head to the barrier to be allowed entry to the hall of champions.") diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 28d1a66e00..90d7563ce6 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -801,7 +801,7 @@ var/turf/T = get_turf(user) qdel(src) var/datum/action/innate/cult/spear/S = new(user) - var/obj/item/twohanded/cult_spear/rite = new(T) + var/obj/item/cult_spear/rite = new(T) S.Grant(user, rite) rite.spear_act = S if(user.put_in_hands(rite)) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index ffab8174e5..84775329c7 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -100,7 +100,7 @@ user.apply_damage(30, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) user.dropItemToGround(src) -/obj/item/twohanded/required/cult_bastard +/obj/item/cult_bastard name = "bloody bastard sword" desc = "An enormous sword used by Nar'Sien cultists to rapidly harvest the souls of non-believers." w_class = WEIGHT_CLASS_HUGE @@ -127,31 +127,35 @@ var/spin_cooldown = 250 var/dash_toggled = TRUE -/obj/item/twohanded/required/cult_bastard/Initialize() +/obj/item/cult_bastard/Initialize() . = ..() set_light(4) jaunt = new(src) linked_action = new(src) - AddComponent(/datum/component/butchering, 50, 80) -/obj/item/twohanded/required/cult_bastard/examine(mob/user) +/obj/item/cult_bastard/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 50, 80) + AddComponent(/datum/component/two_handed, require_twohands=TRUE) + +/obj/item/cult_bastard/examine(mob/user) . = ..() if(contents.len) . += "
There are [contents.len] souls trapped within the sword's core." else . += "
The sword appears to be quite lifeless." -/obj/item/twohanded/required/cult_bastard/can_be_pulled(user) +/obj/item/cult_bastard/can_be_pulled(user) return FALSE -/obj/item/twohanded/required/cult_bastard/attack_self(mob/user) +/obj/item/cult_bastard/attack_self(mob/user) dash_toggled = !dash_toggled if(dash_toggled) to_chat(loc, "You raise [src] and prepare to jaunt with it.") else to_chat(loc, "You lower [src] and prepare to swing it normally.") -/obj/item/twohanded/required/cult_bastard/pickup(mob/living/user) +/obj/item/cult_bastard/pickup(mob/living/user) . = ..() if(!iscultist(user)) if(!is_servant_of_ratvar(user)) @@ -171,13 +175,13 @@ linked_action.Grant(user, src) user.update_icons() -/obj/item/twohanded/required/cult_bastard/dropped(mob/user) +/obj/item/cult_bastard/dropped(mob/user) . = ..() linked_action.Remove(user) jaunt.Remove(user) user.update_icons() -/obj/item/twohanded/required/cult_bastard/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/cult_bastard/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(spinning && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE)) playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, 1) return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT @@ -192,7 +196,7 @@ return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL return BLOCK_NONE -/obj/item/twohanded/required/cult_bastard/afterattack(atom/target, mob/user, proximity, click_parameters) +/obj/item/cult_bastard/afterattack(atom/target, mob/user, proximity, click_parameters) . = ..() if(dash_toggled && !proximity) jaunt.Teleport(user, target) @@ -235,7 +239,7 @@ button_icon_state = "sintouch" var/cooldown = 0 var/mob/living/carbon/human/holder - var/obj/item/twohanded/required/cult_bastard/sword + var/obj/item/cult_bastard/sword /datum/action/innate/cult/spin2win/Grant(mob/user, obj/bastard) . = ..() @@ -686,7 +690,7 @@ to_chat(user, "\The [src] can only transport items!") -/obj/item/twohanded/cult_spear +/obj/item/cult_spear name = "blood halberd" desc = "A sickening spear composed entirely of crystallized blood." icon_state = "bloodspear0" @@ -694,8 +698,6 @@ righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' slot_flags = 0 force = 17 - force_unwielded = 17 - force_wielded = 24 throwforce = 40 throw_speed = 2 armour_penetration = 30 @@ -704,20 +706,36 @@ sharpness = IS_SHARP hitsound = 'sound/weapons/bladeslice.ogg' var/datum/action/innate/cult/spear/spear_act + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/cult_spear/Initialize() + +/obj/item/cult_spear/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/cult_spear/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 100, 90) + AddComponent(/datum/component/two_handed, force_unwielded=17, force_wielded=24, icon_wielded="bloodspear1") -/obj/item/twohanded/cult_spear/Destroy() +/// triggered on wield of two handed item +/obj/item/cult_spear/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/cult_spear/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/cult_spear/update_icon_state() + icon_state = "bloodspear0" + +/obj/item/cult_spear/Destroy() if(spear_act) qdel(spear_act) ..() -/obj/item/twohanded/cult_spear/update_icon_state() - icon_state = "bloodspear[wielded]" - -/obj/item/twohanded/cult_spear/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) +/obj/item/cult_spear/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) var/turf/T = get_turf(hit_atom) if(isliving(hit_atom)) var/mob/living/L = hit_atom @@ -740,7 +758,7 @@ else ..() -/obj/item/twohanded/cult_spear/proc/break_spear(turf/T) +/obj/item/cult_spear/proc/break_spear(turf/T) if(src) if(!T) T = get_turf(src) @@ -751,7 +769,7 @@ playsound(T, 'sound/effects/glassbr3.ogg', 100) qdel(src) -/obj/item/twohanded/cult_spear/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/cult_spear/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(wielded) final_block_chance *= 2 if(prob(final_block_chance)) @@ -770,7 +788,7 @@ desc = "Call the blood spear back to your hand!" background_icon_state = "bg_demon" button_icon_state = "bloodspear" - var/obj/item/twohanded/cult_spear/spear + var/obj/item/cult_spear/spear var/cooldown = 0 /datum/action/innate/cult/spear/Grant(mob/user, obj/blood_spear) diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index ff3d95598d..b96087a7cb 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -234,7 +234,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), SLOT_SHOES) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/claymore(H), TRUE) - H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), SLOT_BACK) + H.equip_to_slot_or_del(new /obj/item/spear(H), SLOT_BACK) /obj/item/voodoo diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index d49a8f83c6..68ed0d736e 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -426,12 +426,12 @@ /datum/spellbook_entry/item/mjolnir name = "Mjolnir" desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power." - item_path = /obj/item/twohanded/mjollnir + item_path = /obj/item/mjollnir /datum/spellbook_entry/item/singularity_hammer name = "Singularity Hammer" desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everything nearby to the point of impact." - item_path = /obj/item/twohanded/singularityhammer + item_path = /obj/item/singularityhammer /datum/spellbook_entry/item/battlemage name = "Battlemage Armour" diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index f841ae20ca..fcdc564380 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -7,7 +7,7 @@ #define AMMO_DROP_LIFETIME 300 #define CTF_REQUIRED_PLAYERS 4 -/obj/item/twohanded/ctf +/obj/item/ctf name = "banner" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "banner" @@ -16,6 +16,7 @@ righthand_file = 'icons/mob/inhands/equipment/banners_righthand.dmi' desc = "A banner with Nanotrasen's logo on it." slowdown = 2 + item_flags = SLOWS_WHILE_IN_HAND throw_speed = 0 throw_range = 1 force = 200 @@ -28,16 +29,20 @@ var/obj/effect/ctf/flag_reset/reset var/reset_path = /obj/effect/ctf/flag_reset -/obj/item/twohanded/ctf/Destroy() +/obj/item/ctf/Destroy() QDEL_NULL(reset) return ..() -/obj/item/twohanded/ctf/Initialize() +/obj/item/ctf/Initialize() . = ..() if(!reset) reset = new reset_path(get_turf(src)) -/obj/item/twohanded/ctf/process() +/obj/item/ctf/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed) + +/obj/item/ctf/process() if(is_ctf_target(loc)) //don't reset from someone's hands. return PROCESS_KILL if(world.time > reset_cooldown) @@ -49,7 +54,7 @@ STOP_PROCESSING(SSobj, src) //ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/item/twohanded/ctf/attack_hand(mob/living/user) +/obj/item/ctf/attack_hand(mob/living/user) if(!is_ctf_target(user) && !anyonecanpickup) to_chat(user, "Non players shouldn't be moving the flag!") return @@ -73,7 +78,7 @@ STOP_PROCESSING(SSobj, src) ..() -/obj/item/twohanded/ctf/dropped(mob/user) +/obj/item/ctf/dropped(mob/user) ..() user.anchored = FALSE user.status_flags |= CANPUSH @@ -86,7 +91,7 @@ anchored = TRUE -/obj/item/twohanded/ctf/red +/obj/item/ctf/red name = "red flag" icon_state = "banner-red" item_state = "banner-red" @@ -95,7 +100,7 @@ reset_path = /obj/effect/ctf/flag_reset/red -/obj/item/twohanded/ctf/blue +/obj/item/ctf/blue name = "blue flag" icon_state = "banner-blue" item_state = "banner-blue" @@ -276,8 +281,8 @@ attack_ghost(ghost) /obj/machinery/capture_the_flag/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/twohanded/ctf)) - var/obj/item/twohanded/ctf/flag = I + if(istype(I, /obj/item/ctf)) + var/obj/item/ctf/flag = I if(flag.team != src.team) user.transferItemToLoc(flag, get_turf(flag.reset), TRUE) points++ @@ -294,7 +299,7 @@ if(istype(mob_area, /area/ctf)) to_chat(M, "[team] team wins!") to_chat(M, "Teams have been cleared. Click on the machines to vote to begin another round.") - for(var/obj/item/twohanded/ctf/W in M) + for(var/obj/item/ctf/W in M) M.dropItemToGround(W) M.dust() for(var/obj/machinery/control_point/control in GLOB.machines) @@ -335,7 +340,7 @@ var/list/ctf_object_typecache = typecacheof(list( /obj/machinery, /obj/effect/ctf, - /obj/item/twohanded/ctf + /obj/item/ctf )) for(var/atm in A) if (isturf(A) || ismob(A) || isarea(A)) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index c11267a5f3..e91dfee034 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -661,5 +661,5 @@ /datum/outfit/lavaknight/captain name ="Cydonian Knight Captain" - l_pocket = /obj/item/twohanded/dualsaber/hypereutactic + l_pocket = /obj/item/dualsaber/hypereutactic id = /obj/item/card/id/knight/captain diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index fc797d227c..547f74105b 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -519,11 +519,11 @@ /obj/effect/spawner/lootdrop/snowdin/dungeonheavy name = "dungeon heavy" - loot = list(/obj/item/twohanded/singularityhammer = 25, - /obj/item/twohanded/mjollnir = 10, - /obj/item/twohanded/fireaxe = 25, + loot = list(/obj/item/singularityhammer = 25, + /obj/item/mjollnir = 10, + /obj/item/fireaxe = 25, /obj/item/organ/brain/alien = 17, - /obj/item/twohanded/dualsaber = 15, + /obj/item/dualsaber = 15, /obj/item/organ/heart/demon = 7, /obj/item/gun/ballistic/automatic/c20r/unrestricted = 16, /obj/item/gun/magic/wand/resurrection/inert = 15, @@ -544,7 +544,7 @@ loot = list(/obj/item/stack/sheet/mineral/snow{amount = 25} = 10, /obj/item/toy/snowball = 15, /obj/item/shovel = 10, - /obj/item/twohanded/spear = 8, + /obj/item/spear = 8, ) //special items//-- diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm index 4af28d78cc..744c01a257 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -31,7 +31,7 @@ description = "CentCom's security forces are going through budget cuts. You will be paid if you ship a set of spears." reward = 1000 required_count = 5 - wanted_types = list(/obj/item/twohanded/spear) + wanted_types = list(/obj/item/spear) /datum/bounty/item/assistant/toolbox name = "Toolboxes" @@ -134,7 +134,7 @@ description = "Central Command is looking to commission a new BirdBoat-class station. You've been ordered to supply the potted plants." reward = 2000 required_count = 8 - wanted_types = list(/obj/item/twohanded/required/kirbyplants) + wanted_types = list(/obj/item/kirbyplants) // /datum/bounty/item/assistant/earmuffs // name = "Earmuffs" @@ -160,7 +160,7 @@ name = "Chainsaw" description = "The chef at CentCom is having trouble butchering her animals. She requests one chainsaw, please." reward = 2500 - wanted_types = list(/obj/item/twohanded/required/chainsaw) + wanted_types = list(/obj/item/chainsaw) /datum/bounty/item/assistant/ied name = "IED" diff --git a/code/modules/cargo/bounties/mining.dm b/code/modules/cargo/bounties/mining.dm index 1f3266af62..cd8d5707d8 100644 --- a/code/modules/cargo/bounties/mining.dm +++ b/code/modules/cargo/bounties/mining.dm @@ -22,7 +22,7 @@ name = "Bone Axe" description = "Station 12 has had their fire axes stolen by marauding clowns. Ship them a bone axe as a replacement." reward = 3500 - wanted_types = list(/obj/item/twohanded/fireaxe/boneaxe) + wanted_types = list(/obj/item/fireaxe/boneaxe) /datum/bounty/item/mining/bone_armor name = "Bone Armor" diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 2342603bde..983348a358 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -267,7 +267,7 @@ /datum/export/weapon/duelsaber cost = 360 //Get it? unit_name = "energy saber" - export_types = list(/obj/item/twohanded/dualsaber) + export_types = list(/obj/item/dualsaber) /datum/export/weapon/esword cost = 130 diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index 5265b2c2f6..cd834940e9 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -294,11 +294,11 @@ name = "Potted Plants Crate" desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from Nanotrasen's potted plant research division. Warranty void if thrown." cost = 730 - contains = list(/obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random) + contains = list(/obj/item/kirbyplants/random, + /obj/item/kirbyplants/random, + /obj/item/kirbyplants/random, + /obj/item/kirbyplants/random, + /obj/item/kirbyplants/random) crate_name = "potted plants crate" crate_type = /obj/structure/closet/crate/hydroponics diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index d692f9c3fb..afe74de6a0 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -123,7 +123,7 @@ l_pocket = /obj/item/reagent_containers/food/snacks/grown/banana r_pocket = /obj/item/bikehorn id = /obj/item/card/id - r_hand = /obj/item/twohanded/fireaxe + r_hand = /obj/item/fireaxe /datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) if(visualsOnly) @@ -148,7 +148,7 @@ suit = /obj/item/clothing/suit/apron l_pocket = /obj/item/kitchen/knife r_pocket = /obj/item/scalpel - r_hand = /obj/item/twohanded/fireaxe + r_hand = /obj/item/fireaxe /datum/outfit/psycho/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) for(var/obj/item/carried_item in H.get_equipped_items(TRUE)) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index c3369204f9..c765247dc0 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -59,7 +59,7 @@ name = "goliath cloak" icon_state = "goliath_cloak" desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits." - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/twohanded/spear, /obj/item/twohanded/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/spear/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) armor = list("melee" = 35, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath body_parts_covered = CHEST|ARMS|LEGS @@ -75,7 +75,7 @@ name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake." - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/twohanded/spear) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear) armor = list("melee" = 60, "bullet" = 20, "laser" = 30, "energy" = 25, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6c4511324d..fadb1b481b 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -854,7 +854,7 @@ icon_state = "coatnarsie" item_state = "coatnarsie" armor = list("melee" = 30, "bullet" = 20, "laser" = 30,"energy" = 10, "bomb" = 30, "bio" = 10, "rad" = 10, "fire" = 30, "acid" = 30) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/restraints/legcuffs/bola/cult,/obj/item/melee/cultblade,/obj/item/melee/cultblade/dagger,/obj/item/reagent_containers/glass/beaker/unholywater,/obj/item/cult_shift,/obj/item/flashlight/flare/culttorch,/obj/item/twohanded/cult_spear) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/restraints/legcuffs/bola/cult,/obj/item/melee/cultblade,/obj/item/melee/cultblade/dagger,/obj/item/reagent_containers/glass/beaker/unholywater,/obj/item/cult_shift,/obj/item/flashlight/flare/culttorch,/obj/item/cult_spear) hoodtype = /obj/item/clothing/head/hooded/winterhood/narsie var/real = TRUE diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index fd4e6abfc5..91cdea1246 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -162,7 +162,7 @@ /obj/item/integrated_circuit/manipulation/grabber/do_work() var/obj/item/AM = get_pin_data_as_type(IC_INPUT, 1, /obj/item) - if(!QDELETED(AM) && !istype(AM, /obj/item/electronic_assembly) && !istype(AM, /obj/item/transfer_valve) && !istype(AM, /obj/item/twohanded) && !istype(assembly.loc, /obj/item/implant/storage)) + if(!QDELETED(AM) && !istype(AM, /obj/item/electronic_assembly) && !istype(AM, /obj/item/transfer_valve) && !istype(assembly.loc, /obj/item/implant/storage) && !AM.GetComponent(/datum/component/two_handed)) var/mode = get_pin_data(IC_INPUT, 2) switch(mode) if(1) @@ -300,7 +300,7 @@ var/target_y_rel = round(get_pin_data(IC_INPUT, 2)) var/obj/item/A = get_pin_data_as_type(IC_INPUT, 3, /obj/item) - if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/twohanded) || istype(A, /obj/item/transfer_valve)) + if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/transfer_valve) || A.GetComponent(/datum/component/two_handed)) return if (istype(assembly.loc, /obj/item/implant/storage)) //Prevents the more abusive form of chestgun. diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm index 2f6a2cd841..88742dfa9a 100644 --- a/code/modules/integrated_electronics/subtypes/weaponized.dm +++ b/code/modules/integrated_electronics/subtypes/weaponized.dm @@ -246,7 +246,7 @@ var/obj/item/A = get_pin_data_as_type(IC_INPUT, 3, /obj/item) var/obj/item/integrated_circuit/atmospherics/AT = get_pin_data_as_type(IC_INPUT, 4, /obj/item/integrated_circuit/atmospherics) - if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/twohanded) || istype(A, /obj/item/transfer_valve)) + if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/transfer_valve) || A.GetComponent(/datum/component/two_handed)) return var/obj/item/I = get_object() diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 1fd1b31b69..0998ccf36f 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -1,5 +1,5 @@ /*********************Mining Hammer****************/ -/obj/item/twohanded/kinetic_crusher +/obj/item/kinetic_crusher icon = 'icons/obj/mining.dmi' icon_state = "crusher" item_state = "crusher0" @@ -11,8 +11,6 @@ force = 0 //You can't hit stuff unless wielded w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK - force_unwielded = 0 - force_wielded = 20 throwforce = 5 throw_speed = 4 armour_penetration = 10 @@ -28,33 +26,45 @@ var/backstab_bonus = 30 var/light_on = FALSE var/brightness_on = 7 + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/kinetic_crusher/cyborg //probably give this a unique sprite later +/obj/item/kinetic_crusher/cyborg //probably give this a unique sprite later desc = "An integrated version of the standard kinetic crusher with a grinded down axe head to dissuade mis-use against crewmen. Deals damage equal to the standard crusher against creatures, however." force = 10 //wouldn't want to give a borg a 20 brute melee weapon unemagged now would we detonation_damage = 60 wielded = 1 -/obj/item/twohanded/kinetic_crusher/cyborg/unwield() - return +/obj/item/kinetic_crusher/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) -/obj/item/twohanded/kinetic_crusher/Initialize() +/obj/item/kinetic_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it + AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=20) -/obj/item/twohanded/kinetic_crusher/Destroy() +/obj/item/kinetic_crusher/Destroy() QDEL_LIST(trophies) return ..() -/obj/item/twohanded/kinetic_crusher/examine(mob/living/user) +/// triggered on wield of two handed item +/obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/kinetic_crusher/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/kinetic_crusher/examine(mob/living/user) . = ..() - . += "Mark a large creature with the destabilizing force, then hit them in melee to do [force_wielded + detonation_damage] damage." - . += "Does [force_wielded + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force_wielded + detonation_damage]." + . += "Mark a large creature with the destabilizing force, then hit them in melee to do [force + detonation_damage] damage." + . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]." for(var/t in trophies) var/obj/item/crusher_trophy/T = t . += "It has \a [T] attached, which causes [T.effect_desc()]." -/obj/item/twohanded/kinetic_crusher/attackby(obj/item/I, mob/living/user) +/obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user) if(istype(I, /obj/item/crowbar)) if(LAZYLEN(trophies)) to_chat(user, "You remove [src]'s trophies.") @@ -70,7 +80,7 @@ else return ..() -/obj/item/twohanded/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) +/obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) if(!wielded) to_chat(user, "[src] is too heavy to use with one hand.") return @@ -84,7 +94,7 @@ if(!QDELETED(C) && !QDELETED(target)) C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did -/obj/item/twohanded/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams) +/obj/item/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams) . = ..() if(istype(target, /obj/item/crusher_trophy)) var/obj/item/crusher_trophy/T = target @@ -137,28 +147,28 @@ if(user && lavaland_equipment_pressure_check(get_turf(user))) //CIT CHANGE - makes sure below only happens in low pressure environments user.adjustStaminaLoss(-30)//CIT CHANGE - makes crushers heal stamina -/obj/item/twohanded/kinetic_crusher/proc/Recharge() +/obj/item/kinetic_crusher/proc/Recharge() if(!charged) charged = TRUE update_icon() playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) -/obj/item/twohanded/kinetic_crusher/ui_action_click(mob/user, actiontype) +/obj/item/kinetic_crusher/ui_action_click(mob/user, actiontype) light_on = !light_on playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) update_brightness(user) update_icon() -/obj/item/twohanded/kinetic_crusher/proc/update_brightness(mob/user = null) +/obj/item/kinetic_crusher/proc/update_brightness(mob/user = null) if(light_on) set_light(brightness_on) else set_light(0) -/obj/item/twohanded/kinetic_crusher/update_icon_state() - item_state = "crusher[wielded]" +/obj/item/kinetic_crusher/update_icon_state() + item_state = "crusher[wielded]" // this is not icon_state and not supported by 2hcomponent -/obj/item/twohanded/kinetic_crusher/update_overlays() +/obj/item/kinetic_crusher/update_overlays() . = ..() if(!charged) . += "[icon_state]_uncharged" @@ -175,7 +185,7 @@ flag = "bomb" range = 6 log_override = TRUE - var/obj/item/twohanded/kinetic_crusher/hammer_synced + var/obj/item/kinetic_crusher/hammer_synced /obj/item/projectile/destabilizer/Destroy() hammer_synced = null @@ -214,12 +224,12 @@ return "errors" /obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user) - if(istype(A, /obj/item/twohanded/kinetic_crusher)) + if(istype(A, /obj/item/kinetic_crusher)) add_to(A, user) else ..() -/obj/item/crusher_trophy/proc/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/proc/add_to(obj/item/kinetic_crusher/H, mob/living/user) for(var/t in H.trophies) var/obj/item/crusher_trophy/T = t if(istype(T, denied_type) || istype(src, T.denied_type)) @@ -231,7 +241,7 @@ to_chat(user, "You attach [src] to [H].") return TRUE -/obj/item/crusher_trophy/proc/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/H, mob/living/user) forceMove(get_turf(H)) H.trophies -= src return TRUE @@ -318,12 +328,12 @@ /obj/item/crusher_trophy/legion_skull/effect_desc() return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster" -/obj/item/crusher_trophy/legion_skull/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/legion_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.charge_time -= bonus_value -/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.charge_time += bonus_value @@ -376,21 +386,19 @@ /obj/item/crusher_trophy/demon_claws/effect_desc() return "melee hits to do [bonus_value * 0.2] more damage and heal you for [bonus_value * 0.1], with 5X effect on mark detonation" -/obj/item/crusher_trophy/demon_claws/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/demon_claws/add_to(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.force += bonus_value * 0.2 - H.force_unwielded += bonus_value * 0.2 - H.force_wielded += bonus_value * 0.2 H.detonation_damage += bonus_value * 0.8 + AddComponent(/datum/component/two_handed, force_wielded=(20 + bonus_value * 0.2)) -/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.force -= bonus_value * 0.2 - H.force_unwielded -= bonus_value * 0.2 - H.force_wielded -= bonus_value * 0.2 H.detonation_damage -= bonus_value * 0.8 + AddComponent(/datum/component/two_handed, force_wielded=20) /obj/item/crusher_trophy/demon_claws/on_melee_hit(mob/living/target, mob/living/user) user.heal_ordered_damage(bonus_value * 0.1, damage_heal_order) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index ed6d9e31db..dd317c5b23 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -30,7 +30,7 @@ new /datum/data/mining_equipment("500 Point Transfer Card", /obj/item/card/mining_point_card/mp500, 500), new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), - new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/kinetic_crusher, 750), + new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/kinetic_crusher, 750), new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 750), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 800), @@ -176,7 +176,7 @@ new /obj/item/stack/marker_beacon/thirty(drop_location) if("Crusher Kit") new /obj/item/extinguisher/mini(drop_location) - new /obj/item/twohanded/kinetic_crusher(drop_location) + new /obj/item/kinetic_crusher(drop_location) if("Mining Conscription Kit") new /obj/item/storage/backpack/duffelbag/mining_conscript(drop_location) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index b54b990c77..581072c5bf 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -194,7 +194,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ item_state = "slag" singular_name = "slag chunk" -/obj/item/twohanded/required/gibtonite +/obj/item/gibtonite name = "gibtonite ore" desc = "Extremely explosive if struck with mining equipment, Gibtonite is often used by miners to speed up their work by using it as a mining charge. This material is illegal to possess by unauthorized personnel under space law." icon = 'icons/obj/mining.dmi' @@ -208,12 +208,16 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ var/attacher = "UNKNOWN" var/det_timer -/obj/item/twohanded/required/gibtonite/Destroy() +/obj/item/gibtonite/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, require_twohands=TRUE) + +/obj/item/gibtonite/Destroy() qdel(wires) wires = null return ..() -/obj/item/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params) +/obj/item/gibtonite/attackby(obj/item/I, mob/user, params) if(!wires && istype(I, /obj/item/assembly/igniter)) user.visible_message("[user] attaches [I] to [src].", "You attach [I] to [src].") wires = new /datum/wires/explosive/gibtonite(src) @@ -241,22 +245,22 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ return ..() -/obj/item/twohanded/required/gibtonite/attack_self(user) +/obj/item/gibtonite/attack_self(user) if(wires) wires.interact(user) else ..() -/obj/item/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P) +/obj/item/gibtonite/bullet_act(obj/item/projectile/P) GibtoniteReaction(P.firer) return ..() -/obj/item/twohanded/required/gibtonite/ex_act() +/obj/item/gibtonite/ex_act() GibtoniteReaction(null, 1) -/obj/item/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0) +/obj/item/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0) if(!primed) primed = TRUE playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1) @@ -282,7 +286,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ log_game("[key_name(user)] has primed a [name] for detonation at [AREACOORD(bombturf)]") det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE) -/obj/item/twohanded/required/gibtonite/proc/detonate(notify_admins) +/obj/item/gibtonite/proc/detonate(notify_admins) if(primed) switch(quality) if(GIBTONITE_QUALITY_HIGH) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index f694890b95..e15c2b010d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -50,16 +50,13 @@ /mob/living/carbon/swap_hand(held_index) + . = ..() + if(!.) + var/obj/item/held_item = get_active_held_item() + to_chat(usr, "Your other hand is too busy holding [held_item].") + return if(!held_index) held_index = (active_hand_index % held_items.len)+1 - - var/obj/item/item_in_hand = src.get_active_held_item() - if(item_in_hand) //this segment checks if the item in your hand is twohanded. - var/obj/item/twohanded/TH = item_in_hand - if(istype(TH)) - if(TH.wielded == 1) - to_chat(usr, "Your other hand is too busy holding [TH]") - return var/oindex = active_hand_index active_hand_index = held_index if(hud_used) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index bf693d70b6..358dc399fc 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -339,7 +339,7 @@ /obj/item/organ_storage, /obj/item/borg/lollipop, /obj/item/sensor_device, - /obj/item/twohanded/shockpaddles/cyborg) + /obj/item/shockpaddles/cyborg) emag_modules = list(/obj/item/reagent_containers/borghypo/hacked) ratvar_modules = list( /obj/item/clockwork/slab/cyborg/medical, @@ -910,7 +910,7 @@ /obj/item/borg/sight/meson, /obj/item/storage/bag/ore/cyborg, /obj/item/pickaxe/drill/cyborg, - /obj/item/twohanded/kinetic_crusher/cyborg, + /obj/item/kinetic_crusher/cyborg, /obj/item/weldingtool/mini, /obj/item/storage/bag/sheetsnatcher/borg, /obj/item/t_scanner/adv_mining_scanner, @@ -1027,7 +1027,7 @@ /obj/item/extinguisher/mini, /obj/item/crowbar/cyborg, /obj/item/reagent_containers/borghypo/syndicate, - /obj/item/twohanded/shockpaddles/syndicate, + /obj/item/shockpaddles/syndicate, /obj/item/healthanalyzer/advanced, /obj/item/surgical_drapes/advanced, /obj/item/retractor, diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index adb49938e1..5bfaf8ad27 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -91,7 +91,7 @@ else to_chat(user, "\the [src] already has this mop!") - if(istype(W, /obj/item/twohanded/broom)) + if(istype(W, /obj/item/broom)) if(bot_core.allowed(user) && open && broom == TRUE) to_chat(user, "You add to \the [src] a broom speeding it up!") broom = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index c406baf2a6..47756688c8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -158,7 +158,7 @@ var/client/C = L.client SSmedals.UnlockMedal("Boss [BOSS_KILL_MEDAL]", C) SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL]", C) - if(crusher_kill && istype(L.get_active_held_item(), /obj/item/twohanded/kinetic_crusher)) + if(crusher_kill && istype(L.get_active_held_item(), /obj/item/kinetic_crusher)) SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL_CRUSHER]", C) SSmedals.SetScore(BOSS_SCORE, C, 1) SSmedals.SetScore(score_type, C, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index e4362711b3..822dafcb9f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -317,7 +317,7 @@ suit = /obj/item/clothing/suit/armor/bone gloves = /obj/item/clothing/gloves/bracer if(prob(5)) - back = pickweight(list(/obj/item/twohanded/bonespear = 3, /obj/item/twohanded/fireaxe/boneaxe = 2)) + back = pickweight(list(/obj/item/spear/bonespear = 3, /obj/item/fireaxe/boneaxe = 2)) if(prob(10)) belt = /obj/item/storage/belt/mining/primitive if(prob(30)) @@ -404,7 +404,7 @@ if(prob(5)) gloves = /obj/item/clothing/gloves/color/yellow if(prob(10)) - back = /obj/item/twohanded/spear + back = /obj/item/spear else if(prob(80)) //Now they dont always have a backpack back = /obj/item/storage/backpack backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/skeleton.dm index df71701bb7..9aee944c6d 100644 --- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/skeleton.dm @@ -52,7 +52,7 @@ melee_damage_upper = 20 deathmessage = "collapses into a pile of bones, its gear falling to the floor!" loot = list(/obj/effect/decal/remains/human, - /obj/item/twohanded/spear, + /obj/item/spear, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/suit/hooded/wintercoat) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index def6327461..25a4215670 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -493,17 +493,13 @@ mode() /mob/living/simple_animal/swap_hand(hand_index) + . = ..() + if(!.) + return if(!dextrous) - return ..() + return if(!hand_index) hand_index = (active_hand_index % held_items.len)+1 - var/obj/item/held_item = get_active_held_item() - if(held_item) - if(istype(held_item, /obj/item/twohanded)) - var/obj/item/twohanded/T = held_item - if(T.wielded == 1) - to_chat(usr, "Your other hand is too busy holding the [T.name].") - return var/oindex = active_hand_index active_hand_index = hand_index if(hud_used) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7eec11892e..a3d5a4f3c5 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -745,7 +745,11 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) return FALSE /mob/proc/swap_hand() - return + var/obj/item/held_item = get_active_held_item() + if(SEND_SIGNAL(src, COMSIG_MOB_SWAP_HANDS, held_item) & COMPONENT_BLOCK_SWAP) + to_chat(src, "Your other hand is too busy holding [held_item].") + return FALSE + return TRUE /mob/proc/activate_hand(selhand) return diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index c8563c653f..6bfd2046fc 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -170,8 +170,8 @@ By design, d1 is the smallest direction and d2 is the highest return coil.cable_join(src, user) - else if(istype(W, /obj/item/twohanded/rcl)) - var/obj/item/twohanded/rcl/R = W + else if(istype(W, /obj/item/rcl)) + var/obj/item/rcl/R = W if(R.loaded) R.loaded.cable_join(src, user) R.is_empty(user) diff --git a/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm index c2076db121..6db9755585 100644 --- a/code/modules/research/designs/autoylathe_designs.dm +++ b/code/modules/research/designs/autoylathe_designs.dm @@ -63,7 +63,7 @@ name = "Double-Bladed Toy Sword" id = "dbtoysword" materials = list(/datum/material/plastic = 1000) - build_path = /obj/item/twohanded/dualsaber/toy + build_path = /obj/item/dualsaber/toy category = list("initial", "Melee") /datum/design/autoylathe/toykatana diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index e407277ebf..ff60478eb4 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -295,7 +295,7 @@ id = "broom" build_type = PROTOLATHE | AUTOLATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 600) - build_path = /obj/item/twohanded/broom + build_path = /obj/item/broom category = list("initial", "Equipment", "Misc") departmental_flags = DEPARTMENTAL_FLAG_SERVICE diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index 7b5004e722..1a8b82232b 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -276,7 +276,7 @@ Burning extracts: /obj/item/slimecross/burning/adamantine/do_effect(mob/user) user.visible_message("[src] crystallizes into a large shield!") - new /obj/item/twohanded/required/adamantineshield(get_turf(user)) + new /obj/item/shield/adamantineshield(get_turf(user)) ..() /obj/item/slimecross/burning/rainbow @@ -440,7 +440,7 @@ Burning extracts: attack_verb = list("irradiated","mutated","maligned") return ..() -/obj/item/twohanded/required/adamantineshield +/obj/item/shield/adamantineshield name = "adamantine shield" desc = "A gigantic shield made of solid adamantium." icon = 'icons/obj/slimecrossing.dmi' @@ -450,12 +450,15 @@ Burning extracts: armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) slot_flags = ITEM_SLOT_BACK block_chance = 75 + force = 0 throw_range = 1 //How far do you think you're gonna throw a solid crystalline shield...? throw_speed = 2 - force = 15 //Heavy, but hard to wield. attack_verb = list("bashed","pounded","slammed") item_flags = SLOWS_WHILE_IN_HAND +/obj/item/shield/adamantineshield/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_wielded=15) /obj/effect/proc_holder/spell/targeted/shapeshift/slimeform name = "Slime Transformation" diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index 34b033fd17..6e66fa1a4a 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -5,7 +5,7 @@ include_user = 1 range = -1 clothes_req = NONE - item_type = /obj/item/twohanded/pitchfork/demonic + item_type = /obj/item/pitchfork/demonic school = "conjuration" charge_max = 150 @@ -15,10 +15,10 @@ action_background_icon_state = "bg_demon" /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater - item_type = /obj/item/twohanded/pitchfork/demonic/greater + item_type = /obj/item/pitchfork/demonic/greater /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended - item_type = /obj/item/twohanded/pitchfork/demonic/ascended + item_type = /obj/item/pitchfork/demonic/ascended /obj/effect/proc_holder/spell/targeted/conjure_item/violin item_type = /obj/item/instrument/violin/golden diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index e9f8ff4446..b4c78b5d6e 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -25,12 +25,12 @@ return TRUE /datum/surgery_step/revive name = "electrically stimulate brain" - implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60) + implements = list(/obj/item/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60) time = 120 /datum/surgery_step/revive/tool_check(mob/user, obj/item/tool) . = TRUE - if(istype(tool, /obj/item/twohanded/shockpaddles)) - var/obj/item/twohanded/shockpaddles/S = tool + if(istype(tool, /obj/item/shockpaddles)) + var/obj/item/shockpaddles/S = tool if((S.req_defib && !S.defib.powered) || !S.wielded || S.cooldown || S.busy) to_chat(user, "You need to wield both paddles, and [S.defib] must be powered!") return FALSE diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 5c77532188..e00ff66ee7 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -6,7 +6,7 @@ requires_bodypart_type = 0 /datum/surgery_step/sever_limb name = "sever limb" - implements = list(TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/melee/arm_blade = 80, /obj/item/twohanded/required/chainsaw = 80, /obj/item/mounted_chainsaw = 80, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25) + implements = list(TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/melee/arm_blade = 80, /obj/item/chainsaw = 80, /obj/item/mounted_chainsaw = 80, /obj/item/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25) time = 64 /datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/emergency_cardioversion_recovery.dm b/code/modules/surgery/emergency_cardioversion_recovery.dm index 5646c43f00..5df90c5e80 100644 --- a/code/modules/surgery/emergency_cardioversion_recovery.dm +++ b/code/modules/surgery/emergency_cardioversion_recovery.dm @@ -6,13 +6,13 @@ /datum/surgery_step/ventricular_electrotherapy name = "ventricular electrotherapy" - implements = list(/obj/item/twohanded/shockpaddles = 90, /obj/item/defibrillator = 75, /obj/item/inducer = 55, /obj/item/stock_parts/cell = 25) //Just because the idea of a new player using the whole magine to defib is hillarious to me + implements = list(/obj/item/shockpaddles = 90, /obj/item/defibrillator = 75, /obj/item/inducer = 55, /obj/item/stock_parts/cell = 25) //Just because the idea of a new player using the whole magine to defib is hillarious to me time = 50 repeatable = TRUE //So you can retry /datum/surgery_step/ventricular_electrotherapy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(istype(tool, /obj/item/twohanded/shockpaddles)) - var/obj/item/twohanded/shockpaddles/pads = tool + if(istype(tool, /obj/item/shockpaddles)) + var/obj/item/shockpaddles/pads = tool if(!pads.wielded) to_chat(user, "You need to wield the paddles in both hands before you can use them!") return FALSE @@ -23,8 +23,8 @@ playsound(src, 'sound/machines/defib_charge.ogg', 75, 0) /datum/surgery_step/ventricular_electrotherapy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(istype(tool, /obj/item/twohanded/shockpaddles)) - var/obj/item/twohanded/shockpaddles/pads = tool + if(istype(tool, /obj/item/shockpaddles)) + var/obj/item/shockpaddles/pads = tool if(!pads.wielded) return FALSE var/mob/living/carbon/human/H = target @@ -52,7 +52,7 @@ H.adjustOrganLoss(ORGAN_SLOT_BRAIN, -5) H.electrocute_act(0, (tool), 1, SHOCK_ILLUSION) //If we're using a defib, let the defib handle the revive. - if(istype(tool, /obj/item/twohanded/shockpaddles)) + if(istype(tool, /obj/item/shockpaddles)) return //Otherwise, we're ad hocing it if(!(do_after(user, 50, target = target))) diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 3b05873a0a..0b38ecc2fe 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -91,7 +91,7 @@ //saw bone /datum/surgery_step/saw name = "saw bone" - implements = list(TOOL_SAW = 100, /obj/item/melee/arm_blade = 75, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25) + implements = list(TOOL_SAW = 100, /obj/item/melee/arm_blade = 75, /obj/item/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25) time = 54 /datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index 62ce16e7e6..8eac5b7895 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -13,7 +13,7 @@ return 1 /datum/surgery_step/add_prosthetic name = "add prosthetic" - implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/twohanded/required/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100) + implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100) time = 32 var/organ_rejection_dam = 0 /datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -79,7 +79,7 @@ "[user] finishes attaching [tool]!", "[user] finishes the attachment procedure!") qdel(tool) - if(istype(tool, /obj/item/twohanded/required/chainsaw)) + if(istype(tool, /obj/item/chainsaw)) var/obj/item/mounted_chainsaw/new_arm = new(target) target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm) return 1 diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index 99c9c505c0..7d96390115 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -109,7 +109,7 @@ name = "Double-Bladed Energy Sword" desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ all energy projectiles, but requires two hands to wield." - item = /obj/item/twohanded/dualsaber + item = /obj/item/dualsaber player_minimum = 25 cost = 16 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm index 8ed4cd85ae..9f9b489266 100644 --- a/code/modules/vending/liberation_toy.dm +++ b/code/modules/vending/liberation_toy.dm @@ -20,7 +20,7 @@ /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10, /obj/item/ammo_box/foambox/riot = 20, /obj/item/toy/katana = 10, - /obj/item/twohanded/dualsaber/toy = 5, + /obj/item/dualsaber/toy = 5, /obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm index a00dd17a9c..f8b9e134b2 100644 --- a/code/modules/vending/toys.dm +++ b/code/modules/vending/toys.dm @@ -21,7 +21,7 @@ /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 10, /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 10, /obj/item/toy/katana = 10, - /obj/item/twohanded/dualsaber/toy = 5) + /obj/item/dualsaber/toy = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/donksoft diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index b2a8b59403..a1caca0200 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -306,7 +306,7 @@ /obj/item/cartridge/janitor = 3, /obj/item/clothing/gloves/color/black = 2, /obj/item/clothing/head/soft/purple = 2, - /obj/item/twohanded/broom = 2, + /obj/item/broom = 2, /obj/item/paint/paint_remover = 2, /obj/item/melee/flyswatter = 2, /obj/item/flashlight = 2, diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 58083f5f6d34358bbea2baecc38ff968a4becc20..8c61c287acbf3a4b949877c1d1a2c3b4fcc3d747 100644 GIT binary patch literal 132474 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

MFb$CF8C)bH4xbicp-q7{l_)jx= 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 diff --git a/modular_citadel/code/game/machinery/wishgranter.dm b/modular_citadel/code/game/machinery/wishgranter.dm index 6cfe07b7a0..0035828136 100644 --- a/modular_citadel/code/game/machinery/wishgranter.dm +++ b/modular_citadel/code/game/machinery/wishgranter.dm @@ -96,7 +96,7 @@ killwish.health = killwish.maxHealth killwish.vine_grab_distance = 6 killwish.melee_damage_upper = 30 - killwish.loot = list(/obj/item/twohanded/dualsaber/hypereutactic) + killwish.loot = list(/obj/item/dualsaber/hypereutactic) charges-- insisting = FALSE if(!charges) diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 8ecc6151a1..d428fc290a 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -220,7 +220,7 @@ /datum/gear/torisword name = "Rainbow Zweihander" category = SLOT_IN_BACKPACK - path = /obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow + path = /obj/item/dualsaber/hypereutactic/toy/rainbow ckeywhitelist = list("annoymous35") /datum/gear/darksabre diff --git a/tgstation.dme b/tgstation.dme index 619f6767bb..ff68c231c2 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -436,6 +436,7 @@ #include "code\datums\components\tackle.dm" #include "code\datums\components\tactical.dm" #include "code\datums\components\thermite.dm" +#include "code\datums\components\twohanded.dm" #include "code\datums\components\uplink.dm" #include "code\datums\components\virtual_reality.dm" #include "code\datums\components\wearertargeting.dm" @@ -920,13 +921,16 @@ #include "code\game\objects\items\airlock_painter.dm" #include "code\game\objects\items\apc_frame.dm" #include "code\game\objects\items\balls.dm" +#include "code\game\objects\items\binoculars.dm" #include "code\game\objects\items\blueprints.dm" #include "code\game\objects\items\body_egg.dm" #include "code\game\objects\items\bodybag.dm" #include "code\game\objects\items\boombox.dm" +#include "code\game\objects\items\broom.dm" #include "code\game\objects\items\candle.dm" #include "code\game\objects\items\cardboard_cutouts.dm" #include "code\game\objects\items\cards_ids.dm" +#include "code\game\objects\items\chainsaw.dm" #include "code\game\objects\items\charter.dm" #include "code\game\objects\items\chromosome.dm" #include "code\game\objects\items\chrono_eraser.dm" @@ -944,8 +948,11 @@ #include "code\game\objects\items\dice.dm" #include "code\game\objects\items\dna_injector.dm" #include "code\game\objects\items\documents.dm" +#include "code\game\objects\items\dualsaber.dm" #include "code\game\objects\items\eightball.dm" +#include "code\game\objects\items\electrostaff.dm" #include "code\game\objects\items\extinguisher.dm" +#include "code\game\objects\items\fireaxe.dm" #include "code\game\objects\items\flamethrower.dm" #include "code\game\objects\items\gift.dm" #include "code\game\objects\items\granters.dm" @@ -964,6 +971,7 @@ #include "code\game\objects\items\paiwire.dm" #include "code\game\objects\items\pet_carrier.dm" #include "code\game\objects\items\pinpointer.dm" +#include "code\game\objects\items\pitchfork.dm" #include "code\game\objects\items\plushes.dm" #include "code\game\objects\items\pneumaticCannon.dm" #include "code\game\objects\items\powerfist.dm" @@ -979,6 +987,7 @@ #include "code\game\objects\items\shooting_range.dm" #include "code\game\objects\items\signs.dm" #include "code\game\objects\items\singularityhammer.dm" +#include "code\game\objects\items\spear.dm" #include "code\game\objects\items\stunbaton.dm" #include "code\game\objects\items\taster.dm" #include "code\game\objects\items\teleportation.dm" @@ -987,7 +996,6 @@ #include "code\game\objects\items\theft_tools.dm" #include "code\game\objects\items\toys.dm" #include "code\game\objects\items\trash.dm" -#include "code\game\objects\items\twohanded.dm" #include "code\game\objects\items\vending_items.dm" #include "code\game\objects\items\weaponry.dm" #include "code\game\objects\items\circuitboards\circuitboard.dm"