mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Merge pull request #8127 from uraniummeltdown/biodegrade
Changeling Biodegrade Power, Fixes Hivemind Link
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
/obj/effect/proc_holder/changeling/biodegrade
|
||||
name = "Biodegrade"
|
||||
desc = "Dissolves restraints or other objects preventing free movement."
|
||||
helptext = "This is obvious to nearby people, and can destroy standard restraints and closets."
|
||||
chemical_cost = 30 //High cost to prevent spam
|
||||
dna_cost = 2
|
||||
req_human = 1
|
||||
|
||||
/obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user)
|
||||
var/used = FALSE // only one form of shackles removed per use
|
||||
if(!user.restrained() && !istype(user.loc, /obj/structure/closet) && !istype(user.loc, /obj/structure/spider/cocoon))
|
||||
to_chat(user, "<span class='warning'>We are already free!</span>")
|
||||
return FALSE
|
||||
|
||||
if(user.handcuffed)
|
||||
var/obj/O = user.get_item_by_slot(slot_handcuffed)
|
||||
if(!istype(O))
|
||||
return FALSE
|
||||
user.visible_message("<span class='warning'>[user] vomits a glob of acid on \his [O]!</span>", \
|
||||
"<span class='warning'>We vomit acidic ooze onto our restraints!</span>")
|
||||
addtimer(src, "dissolve_handcuffs", 30, FALSE, user, O)
|
||||
used = TRUE
|
||||
|
||||
if(user.wear_suit && user.wear_suit.breakouttime && !used)
|
||||
var/obj/item/clothing/suit/S = user.get_item_by_slot(slot_wear_suit)
|
||||
if(!istype(S))
|
||||
return FALSE
|
||||
user.visible_message("<span class='warning'>[user] vomits a glob of acid across the front of \his [S]!</span>", \
|
||||
"<span class='warning'>We vomit acidic ooze onto our straight jacket!</span>")
|
||||
addtimer(src, "dissolve_straightjacket", 30, FALSE, user, S)
|
||||
used = TRUE
|
||||
|
||||
|
||||
if(istype(user.loc, /obj/structure/closet) && !used)
|
||||
var/obj/structure/closet/C = user.loc
|
||||
if(!istype(C))
|
||||
return FALSE
|
||||
C.visible_message("<span class='warning'>[C]'s hinges suddenly begin to melt and run!</span>")
|
||||
to_chat(user, "<span class='warning'>We vomit acidic goop onto the interior of [C]!</span>")
|
||||
addtimer(src, "open_closet", 70, FALSE, user, C)
|
||||
used = TRUE
|
||||
|
||||
if(istype(user.loc, /obj/structure/spider/cocoon) && !used)
|
||||
var/obj/structure/spider/cocoon/C = user.loc
|
||||
if(!istype(C))
|
||||
return FALSE
|
||||
C.visible_message("<span class='warning'>[src] shifts and starts to fall apart!</span>")
|
||||
to_chat(user, "<span class='warning'>We secrete acidic enzymes from our skin and begin melting our cocoon...</span>")
|
||||
addtimer(src, "dissolve_cocoon", 25, FALSE, user, C) //Very short because it's just webs
|
||||
used = TRUE
|
||||
|
||||
if(used)
|
||||
feedback_add_details("changeling_powers","BD")
|
||||
return TRUE
|
||||
|
||||
/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_handcuffs(mob/living/carbon/human/user, obj/O)
|
||||
if(O && user.handcuffed == O)
|
||||
user.unEquip(O)
|
||||
O.visible_message("<span class='warning'>[O] dissolves into a puddle of sizzling goop.</span>")
|
||||
O.forceMove(get_turf(user))
|
||||
qdel(O)
|
||||
|
||||
/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_straightjacket(mob/living/carbon/human/user, obj/S)
|
||||
if(S && user.wear_suit == S)
|
||||
user.unEquip(S)
|
||||
S.visible_message("<span class='warning'>[S] dissolves into a puddle of sizzling goop.</span>")
|
||||
S.forceMove(get_turf(user))
|
||||
qdel(S)
|
||||
|
||||
/obj/effect/proc_holder/changeling/biodegrade/proc/open_closet(mob/living/carbon/human/user, obj/structure/closet/C)
|
||||
if(C && user.loc == C)
|
||||
C.visible_message("<span class='warning'>[C]'s door breaks and opens!</span>")
|
||||
C.welded = FALSE
|
||||
C.locked = FALSE
|
||||
C.broken = TRUE
|
||||
C.open()
|
||||
to_chat(user, "<span class='warning'>We open the container restraining us!</span>")
|
||||
|
||||
/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_cocoon(mob/living/carbon/human/user, obj/structure/spider/cocoon/C)
|
||||
if(C && user.loc == C)
|
||||
qdel(C) //The cocoon's destroy will move the changeling outside of it without interference
|
||||
to_chat(user, "<span class='warning'>We dissolve the cocoon!</span>")
|
||||
@@ -8,6 +8,8 @@
|
||||
var/icon_opened = "open"
|
||||
var/opened = 0
|
||||
var/welded = 0
|
||||
var/locked = 0
|
||||
var/broken = 0
|
||||
var/wall_mounted = 0 //never solid (You can always pass over it)
|
||||
var/health = 100
|
||||
var/lastbang
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/localopened = 0 //Setting this to keep it from behaviouring like a normal closet and obstructing movement in the map. -Agouri
|
||||
opened = 1
|
||||
var/hitstaken = 0
|
||||
var/locked = 1
|
||||
locked = 1
|
||||
var/smashed = 0
|
||||
|
||||
attackby(var/obj/item/O as obj, var/mob/living/user as mob) //Marker -Agouri
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
icon_state = "secure1"
|
||||
density = 1
|
||||
opened = 0
|
||||
var/locked = 1
|
||||
var/broken = 0
|
||||
locked = 1
|
||||
broken = 0
|
||||
var/large = 1
|
||||
icon_closed = "secure"
|
||||
var/icon_locked = "secure1"
|
||||
|
||||
@@ -242,8 +242,8 @@
|
||||
var/greenlight = "securecrateg"
|
||||
var/sparks = "securecratesparks"
|
||||
var/emag = "securecrateemag"
|
||||
var/broken = 0
|
||||
var/locked = 1
|
||||
broken = 0
|
||||
locked = 1
|
||||
health = 1000
|
||||
|
||||
/obj/structure/closet/crate/secure/update_icon()
|
||||
|
||||
@@ -408,6 +408,7 @@
|
||||
#include "code\game\gamemodes\changeling\traitor_chan.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\absorb.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\biodegrade.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\chameleon_skin.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\digitalcamo.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\epinephrine.dm"
|
||||
@@ -417,6 +418,7 @@
|
||||
#include "code\game\gamemodes\changeling\powers\hivemind.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\humanform.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\lesserform.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\linglink.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\mimic_voice.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\mutations.dm"
|
||||
#include "code\game\gamemodes\changeling\powers\panacea.dm"
|
||||
|
||||
Reference in New Issue
Block a user