From 9dc3f22d3a0d7a1fd4365e59f433cccca2aabe54 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sun, 7 May 2023 20:00:58 +0300 Subject: [PATCH] dropping a fat one Moves the code and sprites into their own files and fixes a whole bunch of stuff. Also adds worn icons with 3 options ("full vac-pack", "tube only", and "hidden") Also added the vac pack into janitor locker contents and into the janitor supply cargo pack. --- code/datums/supplypacks/supply.dm | 1 + .../crates_lockers/closets/job_closets.dm | 1 + .../living/silicon/robot/drone/drone_items.dm | 207 ------------------ modular_chomp/icons/mob/dogborg_ch.dmi | Bin 5233 -> 3777 bytes vorestation.dme | 1 + 5 files changed, 3 insertions(+), 207 deletions(-) diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index d80f7d1bc4..a6825b32ef 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -57,6 +57,7 @@ /obj/item/weapon/reagent_containers/spray/cleaner, /obj/item/weapon/reagent_containers/glass/rag, /obj/item/weapon/grenade/chem_grenade/cleaner = 3, + /obj/item/device/vac_attachment, //CHOMPAdd /obj/structure/mopbucket ) cost = 10 diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 86cb04e20d..0492608962 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -80,6 +80,7 @@ /obj/item/device/lightreplacer, /obj/item/weapon/storage/bag/trash, /obj/item/weapon/storage/belt/janitor, + /obj/item/device/vac_attachment, //CHOMPAdd /obj/item/clothing/shoes/galoshes ) diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm index 037497dd0f..d9ad755156 100644 --- a/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -611,210 +611,3 @@ /obj/item/toy, /obj/item/petrifier ) - -//Vac attachment -/obj/item/device/vac_attachment - name = "Vac attachment" - desc = "Useful for slurping mess off the floors. Even things and stuff depending on settings. Can be connected to a trash bag or vore belly." - icon = 'modular_chomp/icons/mob/dogborg_ch.dmi' - icon_state = "sucker-0" - var/vac_power = 0 - var/output_dest = null - var/list/vac_settings = list( - "power off" = 0, - "dust and grime" = 1, - "tiny objects" = 2, - "pests and small objects" = 3, - "medium objects" = 4, - "large objects" = 5, - "large pests" = 6, - "output destination" = 7, - ) - -/obj/item/device/vac_attachment/New() - ..() - flags |= NOBLUDGEON //No more attack messages - -/obj/item/device/vac_attachment/attack_self(mob/living/user) - var/set_input = null - if(!output_dest) - set_input = "output destination" - if(!set_input) - set_input = tgui_input_list(user, "Set your vacuum attachment's power level or output mode.", "Vac Settings", vac_settings) - if(set_input) - if(set_input == "output destination") - var/set_output = tgui_input_list(user, "Set your vacuum attachment's connection port", "Vac Settings", list("Vore Belly", "Borg Belly", "Trash Bag")) - if(set_output) - if(set_output == "Borg Belly") - if(isrobot(user)) - var/mob/living/silicon/robot/R = user - var/obj/item/weapon/robot_module/M = R.module - for(var/obj/item/device/dogborg/sleeper/S in M.modules) - if(istype(S)) - output_dest = S - return - to_chat(user, "Borg belly not found.") - if(set_output == "Trash Bag") - if(isrobot(user)) - var/mob/living/silicon/robot/R = user - var/obj/item/weapon/robot_module/M = R.module - for(var/obj/item/weapon/storage/bag/trash/T in M.modules) - if(istype(T)) - output_dest = T - return - for(var/obj/item/weapon/storage/bag/trash/T in user.contents) - if(istype(T)) - output_dest = T - return - to_chat(user, "Trash bag not found.") - if(set_output == "Vore Belly") - if(user.vore_selected) - output_dest = user.vore_selected - return - else - vac_power = vac_settings[set_input] - icon_state = "sucker-[vac_power]" - -/obj/item/device/vac_attachment/afterattack(atom/target, mob/living/user, proximity) - if(vac_power < 1) - return - if(!proximity) - return - if(!output_dest) - return - if(istype(output_dest,/obj/item/weapon/storage/bag/trash)) - if(get_turf(output_dest) != get_turf(user)) - vac_power = 0 - icon_state = "sucker-0" - output_dest = null - to_chat(user, "Trash bag not found. Shutting down.") - return - var/obj/item/weapon/storage/bag/trash/B = output_dest - if(LAZYLEN(B.contents) >= B.max_storage_space) //A bit more lenient than the w_class system to avoid complicated spaghetti. - to_chat(user, "Trash bag full. Empty trash bag contents to continue.") - return - if(istype(output_dest,/obj/item/device/dogborg/sleeper)) - var/obj/item/device/dogborg/sleeper/B = output_dest - if(LAZYLEN(B.contents) >= B.max_item_count) - to_chat(user, "[B.name] full. Empty or process contents to continue.") - return - if(B.ore_storage) - if(B.current_capacity >= B.max_ore_storage) - to_chat(user, "Ore storage full. Deposit ore contents to a box continue.") - return - user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - if(isturf(target)) - user.visible_message("[user] begins vacuuming the mess off \the [target.name]...", "You begin vacuuming the mess off \the [target.name]...") - var/list/suckables = list() - if(vac_power >= 1) - for(var/obj/effect/decal/cleanable/C in target) - suckables |= C - if(vac_power >= 2) - for(var/obj/item/I in target) - if(I.anchored || I.w_class > 1) - continue - else - suckables |= I - if(vac_power >= 3) - for(var/obj/item/I in target) - if(I.anchored || I.w_class > 2) - continue - else - suckables |= I - for(var/mob/living/L in target) - if(L.anchored || !L.devourable || L == user) - continue - if(L.size_multiplier < 0.5) - suckables |= L - if(istype(L,/mob/living/simple_mob/animal/passive/mouse) || istype(L,/mob/living/simple_mob/animal/passive/lizard) || istype(L,/mob/living/simple_mob/animal/passive/cockroach)) - suckables |= L - if(vac_power >= 4) - for(var/obj/item/I in target) - if(I.anchored || I.w_class > 3) - continue - else - suckables |= I - if(vac_power >= 5) - for(var/obj/item/I in target) - if(I.anchored) - continue - else - suckables |= I - if(vac_power >= 6) - for(var/mob/living/L in target) - if(L.anchored || !L.devourable || L == user) - continue - suckables |= L - if(LAZYLEN(suckables)) - playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', vac_power * 20, 1, -1) - var/vac_conga = 0 - for(var/atom/movable/F in suckables) - if(!F.Adjacent(user) || vac_power < 1 || src.loc != user) //Cancel if moved/unpowered/dropped - break - if(is_type_in_list(F,item_vore_blacklist) || F.loc != target) - continue - if(istype(F,/obj/effect/decal/cleanable)) - qdel(F) - continue - if(vac_power < 2) - break - if(vac_conga < 100) - vac_conga += 3 - spawn(3 + vac_conga) - F.SpinAnimation(5,1) - spawn(5) - if(F.loc == target) - if(isitem(F)) - var/obj/item/I = F - if(I.drop_sound) - playsound(src, I.drop_sound, vac_power * 5, 1, -1) - playsound(src, 'sound/rakshasa/corrosion3.ogg', vac_power * 15, 1, -1) - F.forceMove(output_dest) - if(istype(target, /turf/simulated)) - var/turf/simulated/T = target - T.dirt = 0 - T.clean_blood() - return - if(!isturf(target.loc)) - return - if(istype(target,/obj/item)) - var/obj/item/I = target - if(is_type_in_list(I,item_vore_blacklist)) - return - if(vac_power > I.w_class) - playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', vac_power * 20, 1, -1) - user.visible_message("[user] vacuums up \the [target.name].", "You vacuum up \the [target.name]...") - I.SpinAnimation(5,1) - spawn(5) - if(I.drop_sound) - playsound(src, I.drop_sound, vac_power * 5, 1, -1) - playsound(src, 'sound/rakshasa/corrosion3.ogg', vac_power * 15, 1, -1) - I.forceMove(output_dest) - else if(istype(target,/obj/effect/decal/cleanable)) - playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', vac_power * 20, 1, -1) - user.visible_message("[user] vacuums up \the [target.name].", "You vacuum up \the [target.name]...") - qdel(target) - else if(isliving(target)) - var/mob/living/L = target - var/valid_to_suck = FALSE - if(L.anchored || !L.devourable || L == user) - return - if(vac_power >= 3) - if(L.size_multiplier > 0.5 || istype(L,/mob/living/simple_mob/animal/passive/mouse) || istype(L,/mob/living/simple_mob/animal/passive/lizard)) - valid_to_suck = TRUE - if(vac_power >= 6) - valid_to_suck = TRUE - if(valid_to_suck) - playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', vac_power * 20, 1, -1) - user.visible_message("[user] vacuums up \the [target.name].", "You vacuum up \the [target.name]...") - L.SpinAnimation(5,1) - spawn(5) - playsound(src, 'sound/rakshasa/corrosion3.ogg', vac_power * 15, 1, -1) - L.forceMove(output_dest) - return - -/obj/item/device/vac_attachment/resolve_attackby(atom/A, mob/user, var/attack_modifier = 1, var/click_parameters) - if(istype(A,/obj/structure) && vac_power > 0) - afterattack(A.loc, user, click_parameters) - return TRUE - return ..() diff --git a/modular_chomp/icons/mob/dogborg_ch.dmi b/modular_chomp/icons/mob/dogborg_ch.dmi index d227a74a584cbc896f8781f2c90f53dde100063b..d26acf669e07b27054addf7398a9959156e24c9a 100644 GIT binary patch literal 3777 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 literal 5233 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 diff --git a/vorestation.dme b/vorestation.dme index 5969c732e0..c7654a94c8 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4552,6 +4552,7 @@ #include "modular_chomp\code\game\objects\items\petrifier.dm" #include "modular_chomp\code\game\objects\items\clockwork\ratvarian_spear.dm" #include "modular_chomp\code\game\objects\items\devices\flipper.dm" +#include "modular_chomp\code\game\objects\items\devices\vacpack.dm" #include "modular_chomp\code\game\objects\items\weapons\capture_crystal.dm" #include "modular_chomp\code\game\objects\random\mapping.dm" #include "modular_chomp\code\game\objects\structures\desert_planet_structures.dm"