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 644b09f83d..c58865cf8d 100644 Binary files a/modular_chomp/icons/mob/vacpack.dmi and b/modular_chomp/icons/mob/vacpack.dmi differ