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 58083f5f6d..8c61c287ac 100644
Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ
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"