mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +00:00
Adds auto-setting for vacpack
This commit is contained in:
@@ -16,7 +16,8 @@
|
|||||||
"medium objects" = 4,
|
"medium objects" = 4,
|
||||||
"large objects" = 5,
|
"large objects" = 5,
|
||||||
"large pests" = 6,
|
"large pests" = 6,
|
||||||
"output destination" = 7,
|
"auto-level" = 7,
|
||||||
|
"output destination" = 8
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/device/vac_attachment/New()
|
/obj/item/device/vac_attachment/New()
|
||||||
@@ -91,6 +92,7 @@
|
|||||||
to_chat(user, "<span class='warning'>Ore storage full. Deposit ore contents to a box continue.</span>")
|
to_chat(user, "<span class='warning'>Ore storage full. Deposit ore contents to a box continue.</span>")
|
||||||
return
|
return
|
||||||
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||||
|
var/auto_setting = 1
|
||||||
if(isturf(target))
|
if(isturf(target))
|
||||||
user.visible_message("<span class='filter_notice'>[user] begins vacuuming the mess off \the [target.name]...</span>", "<span class='notice'>You begin vacuuming the mess off \the [target.name]...</span>")
|
user.visible_message("<span class='filter_notice'>[user] begins vacuuming the mess off \the [target.name]...</span>", "<span class='notice'>You begin vacuuming the mess off \the [target.name]...</span>")
|
||||||
var/list/suckables = list()
|
var/list/suckables = list()
|
||||||
@@ -134,7 +136,23 @@
|
|||||||
continue
|
continue
|
||||||
suckables |= L
|
suckables |= L
|
||||||
if(LAZYLEN(suckables))
|
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
|
var/vac_conga = 0
|
||||||
for(var/atom/movable/F in suckables)
|
for(var/atom/movable/F in suckables)
|
||||||
if(is_type_in_list(F,item_vore_blacklist) || F.loc != target)
|
if(is_type_in_list(F,item_vore_blacklist) || F.loc != target)
|
||||||
@@ -153,8 +171,8 @@
|
|||||||
if(isitem(F))
|
if(isitem(F))
|
||||||
var/obj/item/I = F
|
var/obj/item/I = F
|
||||||
if(I.drop_sound)
|
if(I.drop_sound)
|
||||||
playsound(src, I.drop_sound, vac_power * 5, 1, -1)
|
playsound(src, I.drop_sound, auto_setting * 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)
|
||||||
F.forceMove(output_dest)
|
F.forceMove(output_dest)
|
||||||
if(istype(target, /turf/simulated))
|
if(istype(target, /turf/simulated))
|
||||||
var/turf/simulated/T = target
|
var/turf/simulated/T = target
|
||||||
@@ -168,7 +186,11 @@
|
|||||||
if(is_type_in_list(I,item_vore_blacklist))
|
if(is_type_in_list(I,item_vore_blacklist))
|
||||||
return
|
return
|
||||||
if(vac_power > I.w_class)
|
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("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
|
user.visible_message("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
|
||||||
I.SpinAnimation(5,1)
|
I.SpinAnimation(5,1)
|
||||||
spawn(5)
|
spawn(5)
|
||||||
@@ -176,10 +198,10 @@
|
|||||||
return
|
return
|
||||||
if(I.drop_sound)
|
if(I.drop_sound)
|
||||||
playsound(src, I.drop_sound, vac_power * 5, 1, -1)
|
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)
|
I.forceMove(output_dest)
|
||||||
else if(istype(target,/obj/effect/decal/cleanable))
|
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("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
|
user.visible_message("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
|
||||||
qdel(target)
|
qdel(target)
|
||||||
else if(isliving(target))
|
else if(isliving(target))
|
||||||
@@ -190,16 +212,18 @@
|
|||||||
if(vac_power >= 3)
|
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))
|
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
|
valid_to_suck = TRUE
|
||||||
|
auto_setting = 3
|
||||||
if(vac_power >= 6)
|
if(vac_power >= 6)
|
||||||
valid_to_suck = TRUE
|
valid_to_suck = TRUE
|
||||||
|
auto_setting = 6
|
||||||
if(valid_to_suck)
|
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("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
|
user.visible_message("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
|
||||||
L.SpinAnimation(5,1)
|
L.SpinAnimation(5,1)
|
||||||
spawn(5)
|
spawn(5)
|
||||||
if(!L.Adjacent(user) || src.loc != user || vac_power < 2) //Cancel if moved/unpowered/dropped
|
if(!L.Adjacent(user) || src.loc != user || vac_power < 2) //Cancel if moved/unpowered/dropped
|
||||||
return
|
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)
|
L.forceMove(output_dest)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.1 KiB |
Reference in New Issue
Block a user