Skip to content

Commit

Permalink
The blue juice
Browse files Browse the repository at this point in the history
This juice don't work!!!!
  • Loading branch information
MeH0y committed Jan 9, 2025
1 parent 30e6143 commit b087cd0
Show file tree
Hide file tree
Showing 7 changed files with 88 additions and 2 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/equipment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@
#define FORCEDROP_CONDITIONAL (1<<14)
/// Overrides smartgunner not being able to wear backpacks
#define SMARTGUNNER_BACKPACK_OVERRIDE (1<<15)
/// Is in the process of falling apart.
#define ITEM_DISSOLVING (1<<16)
//==========================================================================================


Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
GLOBAL_LIST_INIT(cm_vending_equipment_yautja, list(
list("Essential Hunting Supplies", 0, null, null, null),
list("Hunting Equipment", 0, list(/obj/item/clothing/under/chainshirt/hunter, /obj/item/storage/backpack/yautja, /obj/item/storage/medicomp/full, /obj/item/device/yautja_teleporter), MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
list("Hunting Equipment", 0, list(/obj/item/clothing/under/chainshirt/hunter, /obj/item/storage/backpack/yautja, /obj/item/storage/medicomp/full, /obj/item/device/yautja_teleporter, /obj/item/tool/yautja_cleaner), MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY),
list("Armor", 0, list(/obj/item/clothing/suit/armor/yautja/hunter, /obj/item/clothing/mask/gas/yautja/hunter, /obj/item/clothing/accessory/mask, /obj/item/clothing/shoes/yautja/hunter/knife), MARINE_CAN_BUY_COMBAT_ARMOR, VENDOR_ITEM_MANDATORY),

list("Main Weapons (CHOOSE 1)", 0, null, null, null),
Expand Down
46 changes: 45 additions & 1 deletion code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,8 @@
. += desc
if(desc_lore)
. += SPAN_NOTICE("This has an <a href='byond://?src=\ref[src];desc_lore=1'>extended lore description</a>.")
if(flags_item & ITEM_DISSOLVING)
. += SPAN_WARNING("It is currently dissolving into bits!")

/obj/item/attack_hand(mob/user)
if (!user)
Expand Down Expand Up @@ -354,7 +356,9 @@
/obj/item/attackby(obj/item/W, mob/user)
if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACKED, W, user) & COMPONENT_CANCEL_ITEM_ATTACK)
return

if((istype(W, /obj/item/tool/yautja_cleaner)))
if(handle_dissolve(src))
return
if(istype(W,/obj/item/storage))
var/obj/item/storage/S = W
if(S.storage_flags & STORAGE_CLICK_GATHER && isturf(loc))
Expand Down Expand Up @@ -1124,6 +1128,46 @@
animate(time = 1)
animate(alpha = 0, time = 3, easing = CIRCULAR_EASING|EASE_OUT)

/obj/item/proc/handle_dissolve(obj/item/melting)
if(!HAS_TRAIT(usr, TRAIT_YAUTJA_TECH))
to_chat(usr, SPAN_WARNING("You have no idea what this even does..."))
return FALSE
if(istype(melting, /obj/item/tool/yautja_cleaner))
to_chat(usr, SPAN_WARNING("You cannot dissolve more dissolving fluid..."))
return FALSE
if(usr.alpha < 255)
to_chat(usr, SPAN_BOLDWARNING("It would not be safe to attempt this while cloaked!"))
return FALSE
if(anchored)
to_chat(usr, SPAN_WARNING("\The [src] cannot be moved by any means, why dissolve it?"))
return FALSE

var/mob/living/location = loc
var/mob/living/loc_loc = loc.loc
if(istype(location) || istype(loc_loc))
to_chat(usr, SPAN_WARNING("You cannot dissolve this while it is being held!"))
return FALSE

dissolve()
return TRUE

/obj/item/proc/dissolve()
usr.visible_message(SPAN_DANGER("[usr] uncaps a vial and begins to pour out a vibrant blue liquid over \the [src]!"), \
SPAN_NOTICE("You begin to spread dissolving gel onto \the [src]!"))
if(do_after(usr, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE))
usr.visible_message(SPAN_DANGER("[usr] pours blue liquid all over \the [src]!"), \
SPAN_NOTICE("You cover \the [src] with dissolving gel!"))
playsound(src.loc, 'sound/effects/acid_sizzle1.ogg', 25)
add_filter("dissolve_gel", 1, list("type" = "outline", "color" = "#3333FFff", "size" = 1))
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 15 SECONDS)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, visible_message), SPAN_WARNING("[src] crumbles into pieces!")), 15 SECONDS)
flags_item |= ITEM_DISSOLVING
log_attack("[key_name(usr)] dissolved [src] with Yautja Cleaner!")
return TRUE
else
usr.visible_message(SPAN_WARNING("[usr] stops pouring liquid on to \the [src]!"), \
SPAN_WARNING("You decide not to cover \the [src] with dissolving gel."))
return FALSE
///Called by /mob/living/carbon/swap_hand() when hands are swapped
/obj/item/proc/hands_swapped(mob/living/carbon/swapper_of_hands)
return
6 changes: 6 additions & 0 deletions code/modules/cm_preds/smartdisc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
force = 15
throwforce = 25

/obj/item/explosive/grenade/spawnergrenade/smartdisc/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/tool/yautja_cleaner))
if(handle_dissolve())
return
..()

/obj/item/explosive/grenade/spawnergrenade/smartdisc/launch_towards(datum/launch_metadata/LM)
..()
var/mob/user = usr
Expand Down
23 changes: 23 additions & 0 deletions code/modules/cm_preds/yaut_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,12 @@



/obj/item/clothing/shoes/yautja/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/tool/yautja_cleaner))
if(handle_dissolve())
return
..()

/obj/item/clothing/suit/armor/yautja/hunter
name = "clan armor"
desc = "A suit of armor with light padding. It looks old, yet functional."
Expand Down Expand Up @@ -328,6 +334,12 @@
black_market_value = 100
flags_item = ITEM_PREDATOR

/obj/item/device/radio/headset/yautja/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/tool/yautja_cleaner))
if(handle_dissolve())
return
..()

/obj/item/device/radio/headset/yautja/talk_into(mob/living/M as mob, message, channel, verb = "commands", datum/language/speaking)
if(!isyautja(M)) //Nope.
to_chat(M, SPAN_WARNING("You try to talk into the headset, but just get a horrible shrieking in your ears!"))
Expand Down Expand Up @@ -1099,6 +1111,17 @@
new_access = list(ACCESS_YAUTJA_SECURE, ACCESS_YAUTJA_ELITE, ACCESS_YAUTJA_ELDER, ACCESS_YAUTJA_ANCIENT)
access = new_access

/obj/item/tool/yautja_cleaner
name = "cleanser gel vial"
desc = "Used for dissolving the gear of the fallen whilst in the field."
icon = 'icons/obj/items/hunter/pred_gear.dmi'
icon_state = "blue_gel"
force = 0
throwforce = 1
w_class = SIZE_SMALL
flags_item = ITEM_PREDATOR
black_market_value = 150

/obj/item/storage/medicomp
name = "medicomp"
desc = "A complex kit of alien tools and medicines."
Expand Down
11 changes: 11 additions & 0 deletions code/modules/cm_preds/yaut_weapons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -990,6 +990,11 @@
if(refund) spikes++
return TRUE

/obj/item/weapon/gun/launcher/spike/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/tool/yautja_cleaner))
if(handle_dissolve())
return
..()

/obj/item/weapon/gun/energy/yautja
icon = 'icons/obj/items/hunter/pred_gear.dmi'
Expand All @@ -1003,6 +1008,12 @@
WEAR_R_HAND = 'icons/mob/humans/onmob/hunter/items_righthand.dmi'
)

/obj/item/weapon/gun/energy/yautja/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/tool/yautja_cleaner))
if(handle_dissolve())
return
..()

/obj/item/weapon/gun/energy/yautja/plasmarifle
name = "plasma rifle"
desc = "A long-barreled heavy plasma weapon. Intended for combat, not hunting. Has an integrated battery that allows for a functionally unlimited amount of shots to be discharged. Equipped with an internal gyroscopic stabilizer allowing its operator to fire the weapon one-handed if desired"
Expand Down
Binary file modified icons/obj/items/hunter/pred_gear.dmi
Binary file not shown.

0 comments on commit b087cd0

Please sign in to comment.