mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
Changes Swoopies to only swoop on grab, along with QOL and bugfixes (#7144)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound/swoopie
|
||||
name = "SWOOPIE XL"
|
||||
desc = "A large birdlike robot with thick assets, plump belly, and a long elastic vacuum hose of a neck. Somehow still a cleanbot, even if just for its duties. Use DISARM intent to access Vac-Pack settings."
|
||||
desc = "A large birdlike robot with thick assets, plump belly, and a long elastic vacuum hose of a neck. Somehow still a cleanbot, even if just for its duties."
|
||||
description_info = "Use DISARM intent to access the integrated Vac-Pack settings.<br>Use GRAB intent while targeting the head damage zone to grab the SWOOPIE XL's neck and use it as a vaccum."
|
||||
icon_state = "swoopie"
|
||||
icon_living = "swoopie"
|
||||
icon_dead = "swoopie_dead"
|
||||
@@ -22,6 +23,8 @@
|
||||
say_list_type = /datum/say_list/swoopie
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
|
||||
mob_bump_flag = 0
|
||||
player_msg = "You are a SWOOPIE XL cleaning bot! Use DISARM intent to change your integrated Vac-Pack settings, or GRAB intent to swoop stuff up! Turning off the Vac-Pack will make your grab clicks function as normal grab intent clicks."
|
||||
|
||||
var/static/list/crew_creatures = list( /mob/living/simple_mob/protean_blob,
|
||||
/mob/living/simple_mob/slime/promethean)
|
||||
var/obj/item/device/vac_attachment/Vac
|
||||
@@ -60,6 +63,7 @@
|
||||
B.digest_messages_prey = list("Under the heat and internal pressure of the greedy machine's gutworks, you can feel the tides of the hot caustic sludge claiming the last bits of space around your body, a few more squeezes of the synthetic muscles squelching and glurking as your body finally loses its form, completely blending down and merging into the tingly sludge to fuel the mean machine.")
|
||||
B.digest_mode = DM_DIGEST
|
||||
B.item_digest_mode = IM_DIGEST
|
||||
B.mode_flags = DM_FLAG_TURBOMODE | DM_FLAG_THICKBELLY //Hard to be heard from inside the swoop! Also very active belly.
|
||||
B.digest_burn = 3
|
||||
B.fancy_vore = 1
|
||||
B.vore_sound = "Stomach Move"
|
||||
@@ -111,9 +115,14 @@
|
||||
B.affects_vore_sprites = FALSE
|
||||
B.name = "Vac-Beak"
|
||||
B.desc = "SNAP! You have been sucked up into the big synthbird's beak, the powerful vacuum within the bird roaring somewhere beyond the abyssal deep gullet hungrily gaping before you, eagerly sucking you deeper inside towards a long bulgy ride down the bird's vacuum hose of a neck!"
|
||||
B.entrance_logs = TRUE //Exept for the maw. I think that's reasonable. -Reo
|
||||
B.autotransferlocation = "vacuum hose"
|
||||
B.autotransfer_max_amount = 0
|
||||
B.autotransferwait = 60
|
||||
B.belly_fullscreen_color2 = "#1C1C1C"
|
||||
B.belly_fullscreen_color3 = "#292929"
|
||||
B.belly_fullscreen_color4 = "#CCFFFF"
|
||||
B.belly_fullscreen = "VBO_maw8" //Swoopies have beaks!!
|
||||
|
||||
vore_selected = B
|
||||
|
||||
@@ -124,6 +133,8 @@
|
||||
desc = "With a mighty WHUMP, the suction of the big bird's ravenous vacuum system has sucked you up out of the embrace of its voracious main beak and into a tight bulge squeezing along the long ribbed rubbery tube leading towards the roaring doom of the synthetic bird's efficient waste disposal system."
|
||||
digest_mode = DM_HOLD
|
||||
item_digest_mode = IM_HOLD
|
||||
contaminates = FALSE //Stuff doesnt get messy in the throat, the bird's gut is the messy place!
|
||||
entrance_logs = FALSE //QOL to stop spam when stuff is getting gulped down~
|
||||
autotransfer_enabled = TRUE
|
||||
autotransferchance = 100
|
||||
autotransferwait = 70
|
||||
@@ -137,7 +148,9 @@
|
||||
count_items_for_sprite = TRUE
|
||||
item_multiplier = 10
|
||||
health_impacts_size = FALSE
|
||||
speedy_mob_processing = TRUE
|
||||
//speedy_mob_processing = TRUE
|
||||
mode_flags = DM_FLAG_TURBOMODE
|
||||
|
||||
size_factor_for_sprite = 5
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound/swoopie/Life()
|
||||
@@ -155,20 +168,21 @@
|
||||
if(!Vac.output_dest)
|
||||
if(isbelly(vore_selected))
|
||||
Vac.output_dest = vore_selected
|
||||
if(istype(T) && istype(Vac) && has_AI() && Vac.loc == src)
|
||||
if(istype(T, /turf/simulated))
|
||||
var/turf/simulated/S = T
|
||||
if(S.dirt > 10)
|
||||
Vac.afterattack(S, src, 1)
|
||||
return
|
||||
for(var/obj/O in T)
|
||||
if(is_type_in_list(O, edible_trash) && !O.anchored)
|
||||
Vac.afterattack(T, src, 1)
|
||||
return
|
||||
for(var/mob/living/L in T)
|
||||
if(!L.anchored || L.devourable || !L == src || !L.buckled || L.can_be_drop_prey)
|
||||
Vac.afterattack(L, src, 1)
|
||||
return
|
||||
if(!(src.stat && istype(T) && istype(Vac) && has_AI() && Vac.loc == src))
|
||||
return
|
||||
if(istype(T, /turf/simulated))
|
||||
var/turf/simulated/S = T
|
||||
if(S.dirt > 10)
|
||||
Vac.afterattack(S, src, 1)
|
||||
return
|
||||
for(var/obj/O in T)
|
||||
if(is_type_in_list(O, edible_trash) && !O.anchored)
|
||||
Vac.afterattack(T, src, 1)
|
||||
return
|
||||
for(var/mob/living/L in T)
|
||||
if(!L.anchored || L.devourable || !L == src || !L.buckled || L.can_be_drop_prey)
|
||||
Vac.afterattack(L, src, 1)
|
||||
return
|
||||
|
||||
/datum/say_list/swoopie
|
||||
speak = list("Scanning for debris...", "Scanning for dirt...", "Scanning for pests...", "Squawk!")
|
||||
@@ -181,12 +195,16 @@
|
||||
var/list/modifiers = params2list(params)
|
||||
if(modifiers["shift"] || modifiers["ctrl"] || modifiers["middle"] || modifiers["alt"])
|
||||
return ..()
|
||||
if(!stat) //Cant suck if we're dead...
|
||||
return ..()
|
||||
if(istype(Vac) && A.Adjacent(src))
|
||||
face_atom(A)
|
||||
if(A == src)
|
||||
if(src.a_intent == I_DISARM && A == src) //Only if on disarm intent.
|
||||
Vac.attack_self(src)
|
||||
return
|
||||
if(Vac.vac_power != 0)
|
||||
if(istype(A, /obj/machinery/disposal)) //Dont put the nossle in the trash
|
||||
return
|
||||
if(src.a_intent == I_GRAB && Vac.vac_power != 0) //Only on grab intent. if someone needs to use grab intent they can just turn off the vac
|
||||
var/resolved = Vac.resolve_attackby(A, src, click_parameters = params)
|
||||
if(!resolved && A && Vac)
|
||||
Vac.afterattack(A, src, 1, params)
|
||||
@@ -194,6 +212,8 @@
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound/swoopie/attack_hand(mob/living/L)
|
||||
if(!stat) //Make sure we're alive
|
||||
return ..()
|
||||
if(L.a_intent == I_DISARM && Vac)
|
||||
Vac.attack_self(L)
|
||||
return
|
||||
@@ -217,4 +237,4 @@
|
||||
var/mob/living/L = input("Borrow Vac-Pack for") as null| mob in view(1,usr.loc)
|
||||
if(!L || L == usr)
|
||||
return
|
||||
L.put_in_active_hand(Vac)
|
||||
L.put_in_active_hand(Vac)
|
||||
|
||||
Reference in New Issue
Block a user