From ff327a5a3dbaee2a8c8b7edf3a9da3bb3a389ce6 Mon Sep 17 00:00:00 2001 From: Verkister Date: Thu, 11 May 2023 17:40:32 +0300 Subject: [PATCH] Adds auto-setting for vacpack --- .../game/objects/items/devices/vacpack.dm | 42 ++++++++++++++---- modular_chomp/icons/mob/vacpack.dmi | Bin 4519 -> 4185 bytes 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/modular_chomp/code/game/objects/items/devices/vacpack.dm b/modular_chomp/code/game/objects/items/devices/vacpack.dm index 130f71a6bd..d843bf8919 100644 --- a/modular_chomp/code/game/objects/items/devices/vacpack.dm +++ b/modular_chomp/code/game/objects/items/devices/vacpack.dm @@ -16,7 +16,8 @@ "medium objects" = 4, "large objects" = 5, "large pests" = 6, - "output destination" = 7, + "auto-level" = 7, + "output destination" = 8 ) /obj/item/device/vac_attachment/New() @@ -91,6 +92,7 @@ to_chat(user, "Ore storage full. Deposit ore contents to a box continue.") return user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) + var/auto_setting = 1 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() @@ -134,7 +136,23 @@ continue suckables |= L if(LAZYLEN(suckables)) - playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', vac_power * 20, 1, -1) + if(vac_power == 7) + for(var/atom/movable/F in suckables) + if(isitem(F)) + auto_setting = max(2, auto_setting) + var/obj/item/I = F + if(I.w_class > auto_setting) + auto_setting = min(I.w_class, 5) + if(isliving(F)) + var/mob/living/L = F + if(L.size_multiplier < 0.5 || 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)) + if(auto_setting < 3) + auto_setting = 3 + else + auto_setting = 6 + else + auto_setting = vac_power + playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', auto_setting * 20, 1, -1) var/vac_conga = 0 for(var/atom/movable/F in suckables) if(is_type_in_list(F,item_vore_blacklist) || F.loc != target) @@ -153,8 +171,8 @@ 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) + playsound(src, I.drop_sound, auto_setting * 5, 1, -1) + playsound(src, 'sound/rakshasa/corrosion3.ogg', auto_setting * 15, 1, -1) F.forceMove(output_dest) if(istype(target, /turf/simulated)) var/turf/simulated/T = target @@ -168,7 +186,11 @@ 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) + if(vac_power == 7) + auto_setting = min(I.w_class, 5) + else + auto_setting = vac_power + playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', auto_setting * 20, 1, -1) user.visible_message("[user] vacuums up \the [target.name].", "You vacuum up \the [target.name]...") I.SpinAnimation(5,1) spawn(5) @@ -176,10 +198,10 @@ return 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) + playsound(src, 'sound/rakshasa/corrosion3.ogg', auto_setting * 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) + playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', auto_setting * 20, 1, -1) user.visible_message("[user] vacuums up \the [target.name].", "You vacuum up \the [target.name]...") qdel(target) else if(isliving(target)) @@ -190,16 +212,18 @@ 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 + auto_setting = 3 if(vac_power >= 6) valid_to_suck = TRUE + auto_setting = 6 if(valid_to_suck) - playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', vac_power * 20, 1, -1) + playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', auto_setting * 20, 1, -1) user.visible_message("[user] vacuums up \the [target.name].", "You vacuum up \the [target.name]...") L.SpinAnimation(5,1) spawn(5) if(!L.Adjacent(user) || src.loc != user || vac_power < 2) //Cancel if moved/unpowered/dropped return - playsound(src, 'sound/rakshasa/corrosion3.ogg', vac_power * 15, 1, -1) + playsound(src, 'sound/rakshasa/corrosion3.ogg', auto_setting * 15, 1, -1) L.forceMove(output_dest) return diff --git a/modular_chomp/icons/mob/vacpack.dmi b/modular_chomp/icons/mob/vacpack.dmi index 644b09f83d20eb7b084014db4b1790799302fc4d..c58865cf8d5100b8881609be0d49367205affd16 100644 GIT binary patch literal 4185 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 rLr+1VA6p|%_I55h^Zr*xZo`qV{xdSO(MFs