diff --git a/code/__defines/is_helpers.dm b/code/__defines/is_helpers.dm index 0fbcd3c719..07c25a40ab 100644 --- a/code/__defines/is_helpers.dm +++ b/code/__defines/is_helpers.dm @@ -13,7 +13,7 @@ #define isitem(D) istype(D, /obj/item) -#define isradio(A) istype(A, /obj/item/device/radio) +#define isradio(A) istype(A, /obj/item/device/radio) #define isairlock(A) istype(A, /obj/machinery/door/airlock) @@ -23,8 +23,6 @@ #define ismecha(A) istype(A, /obj/mecha) -#define isstructure(A) istype(A, /obj/structure) - //--------------- //#define isarea(D) istype(D, /area) //Built in diff --git a/code/datums/supplypacks/atmospherics.dm b/code/datums/supplypacks/atmospherics.dm index a18b630892..3630b9bea0 100644 --- a/code/datums/supplypacks/atmospherics.dm +++ b/code/datums/supplypacks/atmospherics.dm @@ -106,16 +106,3 @@ cost = 35 containertype = /obj/structure/closet/crate/aether containername = "Emergency crate" - -/datum/supply_pack/atmos/firefighting - name = "Firefighting equipment" - contains = list( - /obj/item/clothing/suit/fire/heavy = 2, - /obj/item/weapon/tank/oxygen/red = 2, - /obj/item/weapon/watertank/atmos = 2, - /obj/item/device/flashlight = 2, - /obj/item/clothing/head/hardhat/firefighter/atmos = 2 - ) - cost = 35 - containertype = /obj/structure/closet/crate/aether - containername = "Firefighting crate" \ No newline at end of file diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 18cc82af76..c19c4b0097 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -288,16 +288,6 @@ containername = "Riot armor crate" access = access_armory -/datum/supply_pack/security/riot_sprayer - name = "Gear - Riot sprayer" - contains = list( - /obj/item/weapon/watertank/pepperspray - ) - cost = 40 - containertype = /obj/structure/closet/crate/secure/lawson - containername = "Riot sprayer crate" - access = access_armory - /datum/supply_pack/security/ablative_armor name = "Armor - Ablative" contains = list( diff --git a/code/game/objects/random/_random.dm b/code/game/objects/random/_random.dm index 460ef4ef4f..df32a567d7 100644 --- a/code/game/objects/random/_random.dm +++ b/code/game/objects/random/_random.dm @@ -59,7 +59,7 @@ var/list/random_useful_ if(prob(70)) // Misc. junk if(!random_junk_) random_junk_ = subtypesof(/obj/item/trash) - random_junk_ += /obj/effect/decal/cleanable/bug_remains + random_junk_ += /obj/effect/decal/cleanable/spiderling_remains random_junk_ += /obj/effect/decal/remains/mouse random_junk_ += /obj/effect/decal/remains/robot random_junk_ += /obj/item/weapon/paper/crumpled diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 76a4ccd067..0a96e31f9f 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -24,7 +24,7 @@ /obj/effect/decal/cleanable/blood/gibs/robot, /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/blood/oil/streak, - /obj/effect/decal/cleanable/bug_remains, + /obj/effect/decal/cleanable/spiderling_remains, /obj/effect/decal/remains/mouse, /obj/effect/decal/cleanable/vomit, /obj/effect/decal/cleanable/blood/splatter, diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index c3c0544037..63b5b8547e 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -760,7 +760,7 @@ /obj/random/mouseremains/item_to_spawn() return pick(/obj/item/device/assembly/mousetrap, /obj/item/device/assembly/mousetrap/armed, - /obj/effect/decal/cleanable/bug_remains, + /obj/effect/decal/cleanable/spiderling_remains, /obj/effect/decal/cleanable/ash, /obj/item/trash/cigbutt, /obj/item/trash/cigbutt/cigarbutt, diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index aaf93580ff..61a8fe6afd 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -97,8 +97,7 @@ starts_with = list( /obj/item/clothing/suit/fire/heavy, /obj/item/weapon/tank/oxygen/red, - /obj/item/weapon/watertank/atmos, - /obj/item/device/flashlight, + /obj/item/weapon/extinguisher/atmo, /obj/item/clothing/head/hardhat/firefighter/atmos) /* diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index b84682dd29..ab9d13c97e 100644 --- a/code/game/objects/structures/trash_pile_vr.dm +++ b/code/game/objects/structures/trash_pile_vr.dm @@ -283,12 +283,10 @@ /obj/structure/mob_spawner/mouse_nest name = "trash" - desc = "A small heap of trash, perfect for mice and other pests to nest in." + desc = "A small heap of trash, perfect for mice to nest in." icon = 'icons/obj/trash_piles.dmi' icon_state = "randompile" - spawn_types = list( - /mob/living/simple_mob/animal/passive/mouse= 100, - /mob/living/simple_mob/animal/passive/cockroach = 25) + spawn_types = list(/mob/living/simple_mob/animal/passive/mouse) simultaneous_spawns = 1 destructible = 1 spawn_delay = 1 HOUR diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index b05417013b..4973281ccd 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -487,7 +487,6 @@ /obj/item/weapon/plantspray/pests = 20, /obj/item/weapon/reagent_containers/syringe = 5, /obj/item/weapon/reagent_containers/glass/beaker = 4, - /obj/item/weapon/watertank = 1, /obj/item/weapon/storage/bag/plants = 5) premium = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10, /obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5) @@ -1522,8 +1521,7 @@ /obj/item/clothing/gloves/black = 5, /obj/item/weapon/storage/belt/janitor = 5, /obj/item/clothing/shoes/galoshes = 5, - /obj/item/weapon/cartridge/janitor = 5, - /obj/item/weapon/watertank/janitor = 1 + /obj/item/weapon/cartridge/janitor = 5 ) req_log_access = access_hop has_logs = 1 diff --git a/code/modules/gamemaster/event2/events/everyone/infestation.dm b/code/modules/gamemaster/event2/events/everyone/infestation.dm index fa07e60b4c..512679d2fc 100644 --- a/code/modules/gamemaster/event2/events/everyone/infestation.dm +++ b/code/modules/gamemaster/event2/events/everyone/infestation.dm @@ -17,10 +17,6 @@ name = "infestation - spiders" event_type = /datum/event2/event/infestation/spiderlings -/datum/event2/event/infestation/cockroaches - vermin_string = "cockroaches" - max_vermin = 6 - things_to_spawn = list(/mob/living/simple_mob/animal/passive/cockroach) /datum/event2/event/infestation var/vermin_string = null diff --git a/code/modules/hydroponics/backtank.dm b/code/modules/hydroponics/backtank.dm deleted file mode 100644 index 9ecb6b7bb5..0000000000 --- a/code/modules/hydroponics/backtank.dm +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Hydroponics tank and base code - */ -/obj/item/weapon/watertank - name = "backpack water tank" - desc = "A S.U.N.S.H.I.N.E. brand watertank backpack with nozzle to water plants." - icon = 'icons/inventory/back/item.dmi' - icon_state = "waterbackpack" - item_state = "waterbackpack" - w_class = ITEMSIZE_LARGE - slot_flags = SLOT_BACK - slowdown = 0.5 - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 30) - - var/obj/item/noz - var/volume = 500 - -/obj/item/weapon/watertank/Initialize() - . = ..() - create_reagents(volume, OPENCONTAINER) - noz = make_noz() - -/obj/item/weapon/watertank/MouseDrop() - if(ismob(loc)) - if(!CanMouseDrop(src)) - return - var/mob/M = loc - if(!M.unEquip(src)) - return - add_fingerprint(usr) - M.put_in_any_hand_if_possible(src) - -/obj/item/weapon/watertank/Destroy() - QDEL_NULL(noz) - return ..() - -/obj/item/weapon/watertank/ui_action_click(mob/user) - toggle_mister(user) - -/obj/item/weapon/watertank/attack_hand(var/mob/user) - if(loc == user) - toggle_mister() - else - ..() - -/obj/item/weapon/watertank/item_action_slot_check(slot, mob/user) - if(slot == user.getBackSlot()) - return 1 - -//checks that the base unit is in the correct slot to be used -/obj/item/weapon/watertank/proc/slot_check() - var/mob/M = loc - if(!istype(M)) - return 0 //not equipped - - if((slot_flags & SLOT_BACK) && M.get_equipped_item(slot_back) == src) - return 1 - if((slot_flags & SLOT_BACK) && M.get_equipped_item(slot_s_store) == src) - return 1 - - return 0 - -/obj/item/weapon/watertank/verb/toggle_mister() - set name = "Toggle Mister" - set category = "Object" - - var/mob/living/carbon/human/user = usr - if(!noz) - to_chat(user, "The mister is missing!") - return - if(noz.loc != src) - remove_noz(user) //Remove from their hands and back onto the defib unit - return - if(!slot_check()) - to_chat(user, "You need to equip [src] before taking out [noz].") - else - if(!usr.put_in_hands(noz)) //Detach the handset into the user's hands - to_chat(user, "You need a free hand to hold the handset!") - update_icon() //success - -/obj/item/weapon/watertank/proc/make_noz() - return new /obj/item/weapon/reagent_containers/spray/mister(src) - -/obj/item/weapon/watertank/equipped(mob/user, slot) - ..() - if(slot != slot_back) - remove_noz() - -/obj/item/weapon/watertank/proc/remove_noz(var/mob/user) - if(!noz) return - - if(ismob(noz.loc)) - var/mob/M = noz.loc - if(M.drop_from_inventory(noz, src)) - to_chat(user, "\The [noz] snaps back into the main unit.") - else - noz.forceMove(src) - -/obj/item/weapon/watertank/attackby(obj/item/W, mob/user, params) - if(W == noz) - remove_noz() - return 1 - else - return ..() - -/obj/item/weapon/watertank/dropped(var/mob/user) - ..() - remove_noz(user) - -/* - * This mister item is intended as an extension of the watertank and always attached to it. - * Therefore, it's designed to be "locked" to the player's hands or extended back onto - * the watertank backpack. Allowing it to be placed elsewhere or created without a parent - * watertank object will likely lead to weird behaviour or runtimes. - */ - -/* - * Hydroponics mister - */ -/obj/item/weapon/reagent_containers/spray/mister - name = "water mister" - desc = "A mister nozzle attached to a water tank." - icon_state = "mister" - item_state = "mister" - w_class = ITEMSIZE_LARGE - amount_per_transfer_from_this = 50 - possible_transfer_amounts = list(50) - volume = 500 - item_flags = NOBLUDGEON - slot_flags = NONE - - var/obj/item/weapon/watertank/tank - -/obj/item/weapon/reagent_containers/spray/mister/Initialize() - . = ..() - tank = loc - if(!istype(tank)) - return INITIALIZE_HINT_QDEL - reagents = tank.reagents //This mister is really just a proxy for the tank's reagents - -/obj/item/weapon/reagent_containers/spray/mister/doMove(atom/destination) - if(destination && (destination != tank.loc || !ismob(destination))) - if (loc != tank) - to_chat(tank.loc, "The mister snaps back onto the watertank.") - destination = tank - ..() - -/obj/item/weapon/reagent_containers/spray/mister/afterattack(obj/target, mob/user, proximity) - if(target.loc == loc) //Safety check so you don't fill your mister with mutagen or something and then blast yourself in the face with it - return - ..() - -/* - * Janitor tank - */ -/obj/item/weapon/watertank/janitor - name = "backpack cleaner tank" - desc = "A janitorial cleaner backpack with nozzle to clean blood and graffiti." - icon_state = "waterbackpackjani" - item_state = "waterbackpackjani" - -/obj/item/weapon/watertank/janitor/Initialize() - . = ..() - reagents.add_reagent("cleaner", 500) - -/obj/item/weapon/watertank/janitor/make_noz() - return new /obj/item/weapon/reagent_containers/spray/mister/janitor(src) - -/* - * Janitor mister - */ -/obj/item/weapon/reagent_containers/spray/mister/janitor - name = "janitor spray nozzle" - desc = "A janitorial spray nozzle attached to a watertank, designed to clean up large messes." - icon_state = "misterjani" - item_state = "misterjani" - amount_per_transfer_from_this = 5 - possible_transfer_amounts = list(5,10) - spray_size = 4 - -/* - * Security tank - */ -/obj/item/weapon/watertank/pepperspray - name = "ANTI-TIDER-2500 suppression backpack" - desc = "The ultimate crowd-control device; this tool allows the user to quickly and efficiently pacify groups of hostile targets." - icon_state = "pepperbackpacksec" - item_state = "pepperbackpacksec" - volume = 1000 - -/obj/item/weapon/watertank/pepperspray/Initialize() - . = ..() - reagents.add_reagent("condensedcapsaicin", 1000) - -/obj/item/weapon/watertank/pepperspray/make_noz() - return new /obj/item/weapon/reagent_containers/spray/mister/pepperspray(src) - -/* - * Security mister - */ -/obj/item/weapon/reagent_containers/spray/mister/pepperspray - name = "security spray nozzle" - desc = "A pacifying spray nozzle attached to a pepperspray tank, designed to silence perps." - icon_state = "mistersec" - item_state = "mistersec" - amount_per_transfer_from_this = 5 - possible_transfer_amounts = list(5,10) - spray_size = 6 - -/* - * Operative tank - */ -/obj/item/weapon/watertank/op - name = "uborka tank" - desc = "A Russian backpack spray for systematic cleansing of carbon lifeforms." - icon_state = "waterbackpackop" - item_state = "waterbackpackop" - w_class = ITEMSIZE_NORMAL - volume = 2000 - slowdown = 0 - -/obj/item/weapon/watertank/op/Initialize() - . = ..() - reagents.add_reagent("fuel", 500) - reagents.add_reagent("cryptobiolin", 500) - reagents.add_reagent("phoron", 500) - reagents.add_reagent("condensedcapsaicin", 500) - -/obj/item/weapon/watertank/op/make_noz() - return new /obj/item/weapon/reagent_containers/spray/mister/op(src) - -/* - * Operative mister - */ -/obj/item/weapon/reagent_containers/spray/mister/op - name = "uborka spray nozzle" - desc = "A mister nozzle attached to several extended water tanks. It suspiciously has a compressor in the system and is labelled entirely in Cyrillic." - icon_state = "misterop" - item_state = "misterop" - w_class = ITEMSIZE_HUGE - volume = 2000 - amount_per_transfer_from_this = 100 - possible_transfer_amounts = list(75,100,150) - -/* - * Atmos tank - */ -/obj/item/weapon/watertank/atmos - name = "backpack firefighter tank" - desc = "A pressurized backpack tank with extinguisher nozzle, intended to fight fires." - icon_state = "waterbackpackatmos" - item_state = "waterbackpackatmos" - volume = 200 - -/obj/item/weapon/watertank/atmos/Initialize() - . = ..() - reagents.add_reagent("water", 200) - -/obj/item/weapon/watertank/atmos/make_noz() - return new /obj/item/weapon/reagent_containers/spray/mister/atmos(src) - -/* - * Atmos hose - */ -/obj/item/weapon/reagent_containers/spray/mister/atmos - name = "extinguisher nozzle" - desc = "A heavy duty nozzle attached to a firefighter's backpack tank." - icon_state = "atmos_nozzle" - item_state = "nozzleatmos" - w_class = ITEMSIZE_HUGE - volume = 200 - amount_per_transfer_from_this = 5 - possible_transfer_amounts = list(5,10) - spray_size = null - -/obj/item/weapon/reagent_containers/spray/mister/atmos/Spray_at(atom/A as mob|obj) - playsound(src, 'sound/effects/spray3.ogg', rand(50,1), -6) - var/direction = get_dir(src, A) - var/turf/T = get_turf(A) - var/turf/T1 = get_step(T,turn(direction, 90)) - var/turf/T2 = get_step(T,turn(direction, -90)) - var/list/the_targets = list(T, T1, T2) - - for(var/a = 1 to 3) - spawn(0) - if(reagents.total_volume < 1) break - var/obj/effect/effect/water/chempuff/D = new/obj/effect/effect/water/chempuff(get_turf(src)) - var/turf/my_target = the_targets[a] - D.create_reagents(amount_per_transfer_from_this) - if(!src) - return - reagents.trans_to_obj(D, amount_per_transfer_from_this) - D.set_color() - D.set_up(my_target, rand(6, 8), 2) - return \ No newline at end of file diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 761ea37154..445bd3895e 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -202,23 +202,6 @@ var/list/slot_equipment_priority = list( \ drop_from_inventory(I, target) return TRUE -//visibly unequips I but it is NOT MOVED AND REMAINS IN SRC -//item MUST BE FORCEMOVE'D OR QDEL'D -/mob/proc/temporarilyRemoveItemFromInventory(obj/item/I, force = FALSE, idrop = TRUE) - return u_equip(I, force, null, TRUE, idrop) - -///sometimes we only want to grant the item's action if it's equipped in a specific slot. -/obj/item/proc/item_action_slot_check(slot, mob/user) - if(slot == SLOT_BACK || slot == LEGS) //these aren't true slots, so avoid granting actions there - return FALSE - return TRUE - -///Get the item on the mob in the storage slot identified by the id passed in -/mob/proc/get_item_by_slot(slot_id) - return null - -/mob/proc/getBackSlot() - return SLOT_BACK //Attemps to remove an object on a mob. /mob/proc/remove_from_mob(var/obj/O, var/atom/target) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/cockroach.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/cockroach.dm deleted file mode 100644 index b170d192d0..0000000000 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/cockroach.dm +++ /dev/null @@ -1,76 +0,0 @@ -//Base cockroach -/mob/living/simple_mob/animal/passive/cockroach - name = "cockroach" - real_name = "cockroach" - desc = "This station is just crawling with bugs." - tt_desc = "E Blattella germanica" - icon_state = "cockroach" - item_state = "cockroach" - icon_living = "cockroach" - icon_dead = "cockroach_rest" //No real 'dead' sprite - icon_rest = "cockroach_rest" - - maxHealth = 1 - health = 1 - - movement_cooldown = 2.5 - - mob_size = MOB_MINISCULE - pass_flags = PASSTABLE - can_pull_mobs = MOB_PULL_NONE - layer = MOB_LAYER - density = FALSE - - response_help = "pokes" - response_disarm = "shoos" - response_harm = "splats" - - speak_emote = list("chitters") - - //Cockroaches are enviromentally superior - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - maxbodytemp = 999999 - - var/squish_chance = 25 - -//Deletes the body upon death -/mob/living/simple_mob/animal/passive/cockroach/death() - new /obj/effect/decal/cleanable/bug_remains(src.loc) - qdel(src) - -//Squish code -/mob/living/simple_mob/animal/passive/cockroach/Crossed(var/atom/movable/AM) - if(ismob(AM)) - if(isliving(AM)) - var/mob/living/A = AM - if(A.mob_size > MOB_SMALL) - if(prob(squish_chance)) - A.visible_message("[A] squashed [src].", "You squashed [src].") - adjustBruteLoss(1) //kills a normal cockroach - else - visible_message("[src] avoids getting crushed.") - else - if(isstructure(AM)) - if(prob(squish_chance)) - AM.visible_message("[src] was crushed under [AM].") - adjustBruteLoss(1) - else - visible_message("[src] avoids getting crushed.") - -/mob/living/simple_mob/animal/passive/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach. - return - -//Custom stain so it's not "spiderling remains" -/obj/effect/decal/cleanable/bug_remains - name = "bug remains" - desc = "Green squishy mess." - icon = 'icons/effects/effects.dmi' - icon_state = "greenshatter" \ No newline at end of file diff --git a/icons/inventory/back/item.dmi b/icons/inventory/back/item.dmi index 73e6fae53f..230b3950c8 100644 Binary files a/icons/inventory/back/item.dmi and b/icons/inventory/back/item.dmi differ diff --git a/icons/inventory/back/mob.dmi b/icons/inventory/back/mob.dmi index e27f9d3048..3f11cc9dc1 100644 Binary files a/icons/inventory/back/mob.dmi and b/icons/inventory/back/mob.dmi differ diff --git a/icons/mob/items/lefthand_storage.dmi b/icons/mob/items/lefthand_storage.dmi index aeaf11a4a3..c8f275f173 100644 Binary files a/icons/mob/items/lefthand_storage.dmi and b/icons/mob/items/lefthand_storage.dmi differ diff --git a/icons/mob/items/righthand_storage.dmi b/icons/mob/items/righthand_storage.dmi index 0dbd0d7f55..d8ce049aa5 100644 Binary files a/icons/mob/items/righthand_storage.dmi and b/icons/mob/items/righthand_storage.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 15f9486259..024c2d13ba 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2369,7 +2369,6 @@ #include "code\modules\holomap\holomap_datum.dm" #include "code\modules\holomap\mapper.dm" #include "code\modules\holomap\station_holomap.dm" -#include "code\modules\hydroponics\backtank.dm" #include "code\modules\hydroponics\grown.dm" #include "code\modules\hydroponics\grown_inedible.dm" #include "code\modules\hydroponics\grown_predefined.dm" @@ -2997,7 +2996,6 @@ #include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\thermic.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\tunneler.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\webslinger.dm" -#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\cockroach.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\crab.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish_vr.dm"