mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-29 23:17:28 +01:00
Merge pull request #4146 from Baystation12/dev-freeze
Dev-freeze --> Master staging [Going live!]
This commit is contained in:
@@ -16,6 +16,13 @@
|
||||
icon_state = "ash"
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/decal/cleanable/ash/attack_hand(mob/user as mob)
|
||||
user << "<span class='notice'>[src] sifts through your fingers.</span>"
|
||||
var/turf/simulated/floor/F = get_turf(src)
|
||||
if (istype(F))
|
||||
F.dirt += 4
|
||||
del(src)
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow
|
||||
|
||||
New()
|
||||
|
||||
+17
-17
@@ -38,6 +38,7 @@
|
||||
var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
var/list/allowed = null //suit storage stuff.
|
||||
var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers.
|
||||
var/icon_override = null //Used to override hardcoded clothing dmis in human clothing proc.
|
||||
|
||||
/obj/item/device
|
||||
icon = 'icons/obj/device.dmi'
|
||||
@@ -522,29 +523,28 @@
|
||||
"\red You stab yourself in the eyes with [src]!" \
|
||||
)
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/datum/organ/internal/eyes/eyes = H.internal_organs["eyes"]
|
||||
eyes.damage += rand(3,4)
|
||||
if(eyes.damage >= eyes.min_bruised_damage)
|
||||
if(M.stat != 2)
|
||||
if(eyes.robotic <= 1) //robot eyes bleeding might be a bit silly
|
||||
M << "\red Your eyes start to bleed profusely!"
|
||||
if(prob(50))
|
||||
if(M.stat != 2)
|
||||
M << "\red You drop what you're holding and clutch at your eyes!"
|
||||
M.drop_item()
|
||||
M.eye_blurry += 10
|
||||
M.Paralyse(1)
|
||||
M.Weaken(4)
|
||||
if (eyes.damage >= eyes.min_broken_damage)
|
||||
if(M.stat != 2)
|
||||
M << "\red You go blind!"
|
||||
var/datum/organ/external/affecting = M:get_organ("head")
|
||||
if(affecting.take_damage(7))
|
||||
M:UpdateDamageIcon()
|
||||
else
|
||||
M.take_organ_damage(7)
|
||||
M.eye_blurry += rand(3,4)
|
||||
M.eye_stat += rand(2,4)
|
||||
if (M.eye_stat >= 10)
|
||||
M.eye_blurry += 15+(0.1*M.eye_blurry)
|
||||
M.disabilities |= NEARSIGHTED
|
||||
if(M.stat != 2)
|
||||
M << "\red Your eyes start to bleed profusely!"
|
||||
if(prob(50))
|
||||
if(M.stat != 2)
|
||||
M << "\red You drop what you're holding and clutch at your eyes!"
|
||||
M.drop_item()
|
||||
M.eye_blurry += 10
|
||||
M.Paralyse(1)
|
||||
M.Weaken(4)
|
||||
if (prob(M.eye_stat - 10 + 1))
|
||||
if(M.stat != 2)
|
||||
M << "\red You go blind!"
|
||||
M.sdisabilities |= BLIND
|
||||
return
|
||||
|
||||
/obj/item/clean_blood()
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
if(M.stat == DEAD || M.sdisabilities & BLIND) //mob is dead or fully blind
|
||||
user << "<span class='notice'>[M] pupils does not react to the light!</span>"
|
||||
else if(XRAY in M.mutations) //mob has X-RAY vision
|
||||
flick("flash", M.flash) //Yes, you can still get flashed wit X-Ray.
|
||||
user << "<span class='notice'>[M] pupils give an eerie glow!</span>"
|
||||
else //they're okay!
|
||||
if(!M.blinded)
|
||||
|
||||
@@ -65,24 +65,31 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||
|
||||
if(!affecting.bandage())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been bandaged."
|
||||
return 1
|
||||
if(affecting.open == 0)
|
||||
if(!affecting.bandage())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been bandaged."
|
||||
return 1
|
||||
else
|
||||
for (var/datum/wound/W in affecting.wounds)
|
||||
if (W.internal)
|
||||
continue
|
||||
if (W.current_stage <= W.max_bleeding_stage)
|
||||
user.visible_message( "\blue [user] bandages [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You bandage [W.desc] on [M]'s [affecting.display_name]." )
|
||||
//H.add_side_effect("Itch")
|
||||
else if (istype(W,/datum/wound/bruise))
|
||||
user.visible_message( "\blue [user] places bruise patch over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You place bruise patch over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
else
|
||||
user.visible_message( "\blue [user] places bandaid over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You place bandaid over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
use(1)
|
||||
else
|
||||
for (var/datum/wound/W in affecting.wounds)
|
||||
if (W.internal)
|
||||
continue
|
||||
if (W.current_stage <= W.max_bleeding_stage)
|
||||
user.visible_message( "\blue [user] bandages [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You bandage [W.desc] on [M]'s [affecting.display_name]." )
|
||||
//H.add_side_effect("Itch")
|
||||
else if (istype(W,/datum/wound/bruise))
|
||||
user.visible_message( "\blue [user] places bruise patch over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You place bruise patch over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
else
|
||||
user.visible_message( "\blue [user] places bandaid over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You place bandaid over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
use(1)
|
||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||
if (do_surgery(H,user,src))
|
||||
return
|
||||
else
|
||||
user << "<span class='notice'>The [affecting.display_name] is cut open, you'll need more than a bandage!</span>"
|
||||
|
||||
/obj/item/stack/medical/ointment
|
||||
name = "ointment"
|
||||
@@ -101,30 +108,38 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||
|
||||
if(!affecting.salve())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been salved."
|
||||
return 1
|
||||
if(affecting.open == 0)
|
||||
if(!affecting.salve())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been salved."
|
||||
return 1
|
||||
else
|
||||
user.visible_message( "\blue [user] salves wounds on [M]'s [affecting.display_name].", \
|
||||
"\blue You salve wounds on [M]'s [affecting.display_name]." )
|
||||
use(1)
|
||||
else
|
||||
user.visible_message( "\blue [user] salves wounds on [M]'s [affecting.display_name].", \
|
||||
"\blue You salve wounds on [M]'s [affecting.display_name]." )
|
||||
use(1)
|
||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||
if (do_surgery(H,user,src))
|
||||
return
|
||||
else
|
||||
user << "<span class='notice'>The [affecting.display_name] is cut open, you'll need more than a bandage!</span>"
|
||||
|
||||
/obj/item/stack/medical/bruise_pack/tajaran
|
||||
name = "\improper S'rendarr's Hand leaf"
|
||||
singular_name = "S'rendarr's Hand leaf"
|
||||
desc = "A soft leaf that is rubbed on bruises."
|
||||
desc = "A poultice made of soft leaves that is rubbed on bruises."
|
||||
icon = 'icons/obj/harvest.dmi'
|
||||
icon_state = "cabbage"
|
||||
icon_state = "shandp"
|
||||
heal_brute = 7
|
||||
|
||||
/obj/item/stack/medical/ointment/tajaran
|
||||
name = "\improper Messa's Tear leaf"
|
||||
singular_name = "Messa's Tear leaf"
|
||||
desc = "A cold leaf that is rubbed on burns."
|
||||
name = "\improper Messa's Tear petals"
|
||||
singular_name = "Messa's Tear petals"
|
||||
desc = "A poultice made of cold, blue petals that is rubbed on burns."
|
||||
icon = 'icons/obj/harvest.dmi'
|
||||
icon_state = "ambrosiavulgaris"
|
||||
icon_state = "mtearp"
|
||||
heal_burn = 7
|
||||
|
||||
|
||||
/obj/item/stack/medical/advanced/bruise_pack
|
||||
name = "advanced trauma kit"
|
||||
singular_name = "advanced trauma kit"
|
||||
@@ -141,25 +156,32 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||
|
||||
if(!affecting.bandage())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been treated."
|
||||
return 1
|
||||
if(affecting.open == 0)
|
||||
if(!affecting.bandage())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been treated."
|
||||
return 1
|
||||
else
|
||||
for (var/datum/wound/W in affecting.wounds)
|
||||
if (W.internal)
|
||||
continue
|
||||
if (W.current_stage <= W.max_bleeding_stage)
|
||||
user.visible_message( "\blue [user] cleans [W.desc] on [M]'s [affecting.display_name] and seals edges with bioglue.", \
|
||||
"\blue You clean and seal [W.desc] on [M]'s [affecting.display_name]." )
|
||||
//H.add_side_effect("Itch")
|
||||
else if (istype(W,/datum/wound/bruise))
|
||||
user.visible_message( "\blue [user] places medicine patch over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You place medicine patch over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
else
|
||||
user.visible_message( "\blue [user] smears some bioglue over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You smear some bioglue over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
affecting.heal_damage(heal_brute,0)
|
||||
use(1)
|
||||
else
|
||||
for (var/datum/wound/W in affecting.wounds)
|
||||
if (W.internal)
|
||||
continue
|
||||
if (W.current_stage <= W.max_bleeding_stage)
|
||||
user.visible_message( "\blue [user] cleans [W.desc] on [M]'s [affecting.display_name] and seals edges with bioglue.", \
|
||||
"\blue You clean and seal [W.desc] on [M]'s [affecting.display_name]." )
|
||||
//H.add_side_effect("Itch")
|
||||
else if (istype(W,/datum/wound/bruise))
|
||||
user.visible_message( "\blue [user] places medicine patch over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You place medicine patch over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
else
|
||||
user.visible_message( "\blue [user] smears some bioglue over [W.desc] on [M]'s [affecting.display_name].", \
|
||||
"\blue You smear some bioglue over [W.desc] on [M]'s [affecting.display_name]." )
|
||||
affecting.heal_damage(heal_brute,0)
|
||||
use(1)
|
||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||
if (do_surgery(H,user,src))
|
||||
return
|
||||
else
|
||||
user << "<span class='notice'>The [affecting.display_name] is cut open, you'll need more than a bandage!</span>"
|
||||
|
||||
/obj/item/stack/medical/advanced/ointment
|
||||
name = "advanced burn kit"
|
||||
@@ -178,14 +200,21 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||
|
||||
if(!affecting.salve())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been salved."
|
||||
return 1
|
||||
if(affecting.open == 0)
|
||||
if(!affecting.salve())
|
||||
user << "\red The wounds on [M]'s [affecting.display_name] have already been salved."
|
||||
return 1
|
||||
else
|
||||
user.visible_message( "\blue [user] covers wounds on [M]'s [affecting.display_name] with regenerative membrane.", \
|
||||
"\blue You cover wounds on [M]'s [affecting.display_name] with regenerative membrane." )
|
||||
affecting.heal_damage(0,heal_burn)
|
||||
use(1)
|
||||
else
|
||||
user.visible_message( "\blue [user] covers wounds on [M]'s [affecting.display_name] with regenerative membrane.", \
|
||||
"\blue You cover wounds on [M]'s [affecting.display_name] with regenerative membrane." )
|
||||
affecting.heal_damage(0,heal_burn)
|
||||
use(1)
|
||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||
if (do_surgery(H,user,src))
|
||||
return
|
||||
else
|
||||
user << "<span class='notice'>The [affecting.display_name] is cut open, you'll need more than a bandage!</span>"
|
||||
|
||||
/obj/item/stack/medical/splint
|
||||
name = "medical splints"
|
||||
|
||||
@@ -26,12 +26,20 @@
|
||||
if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/external/S = H.get_organ(user.zone_sel.selecting)
|
||||
if (S && (S.status & ORGAN_ROBOT))
|
||||
if(S.get_damage())
|
||||
S.heal_damage(15, 15, robo_repair = 1)
|
||||
H.updatehealth()
|
||||
use(1)
|
||||
user.visible_message("<span class='notice'>\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " \the"][S.display_name] with \the [src].</span>",\
|
||||
"<span class='notice'>You apply some nanite paste at [user == M ? "your" : "[M]'s"] [S.display_name].</span>")
|
||||
|
||||
if(S.open == 1)
|
||||
if (S && (S.status & ORGAN_ROBOT))
|
||||
if(S.get_damage())
|
||||
S.heal_damage(15, 15, robo_repair = 1)
|
||||
H.updatehealth()
|
||||
use(1)
|
||||
user.visible_message("<span class='notice'>\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " \the"][S.display_name] with \the [src].</span>",\
|
||||
"<span class='notice'>You apply some nanite paste at [user == M ? "your" : "[M]'s"] [S.display_name].</span>")
|
||||
else
|
||||
user << "<span class='notice'>Nothing to fix here.</span>"
|
||||
else
|
||||
if (can_operate(H))
|
||||
if (do_surgery(H,user,src))
|
||||
return
|
||||
else
|
||||
user << "<span class='notice'>Nothing to fix here.</span>"
|
||||
user << "<span class='notice'>Nothing to fix in here.</span>"
|
||||
@@ -4,7 +4,7 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "dnainjector"
|
||||
var/dnatype = null
|
||||
var/dna = null
|
||||
var/list/dna = null
|
||||
var/block = null
|
||||
var/owner = null
|
||||
var/ue = null
|
||||
@@ -21,6 +21,34 @@
|
||||
return attack_hand(user)
|
||||
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/GetState(var/selblock=0)
|
||||
var/real_block
|
||||
if(!selblock)
|
||||
real_block=block
|
||||
selblock=1
|
||||
else
|
||||
real_block=selblock
|
||||
var/list/BOUNDS = GetDNABounds(real_block)
|
||||
return dna[selblock] > BOUNDS[DNA_ON_LOWERBOUND]
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/SetState(var/on, var/selblock=0)
|
||||
var/real_block
|
||||
if(!selblock)
|
||||
real_block=block
|
||||
selblock=1
|
||||
else
|
||||
real_block=selblock
|
||||
var/list/BOUNDS=GetDNABounds(real_block)
|
||||
var/val
|
||||
if(on)
|
||||
val=rand(BOUNDS[DNA_ON_LOWERBOUND],BOUNDS[DNA_ON_UPPERBOUND])
|
||||
else
|
||||
val=rand(BOUNDS[DNA_OFF_LOWERBOUND],BOUNDS[DNA_OFF_UPPERBOUND])
|
||||
dna[selblock]=val
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/GetValue(var/block=1)
|
||||
return dna[block]
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob, mob/user as mob)
|
||||
if(istype(M,/mob/living))
|
||||
M.radiation += rand(5,20)
|
||||
@@ -28,29 +56,23 @@
|
||||
if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
|
||||
if (dnatype == "ui")
|
||||
if (!block) //isolated block?
|
||||
M.UpdateAppearance(dna)
|
||||
if (ue) //unique enzymes? yes
|
||||
M.dna.uni_identity = dna
|
||||
updateappearance(M, M.dna.uni_identity)
|
||||
M.real_name = ue
|
||||
M.name = ue
|
||||
uses--
|
||||
else //unique enzymes? no
|
||||
M.dna.uni_identity = dna
|
||||
updateappearance(M, M.dna.uni_identity)
|
||||
uses--
|
||||
uses--
|
||||
else
|
||||
M.dna.uni_identity = setblock(M.dna.uni_identity,block,dna,3)
|
||||
updateappearance(M, M.dna.uni_identity)
|
||||
M.dna.SetUIValue(block,src.GetValue())
|
||||
M.UpdateAppearance()
|
||||
uses--
|
||||
if (dnatype == "se")
|
||||
if (!block) //isolated block?
|
||||
M.dna.struc_enzymes = dna
|
||||
domutcheck(M, null)
|
||||
uses--
|
||||
M.dna.SE = dna
|
||||
M.dna.UpdateSE()
|
||||
else
|
||||
M.dna.struc_enzymes = setblock(M.dna.struc_enzymes,block,dna,3)
|
||||
domutcheck(M, null,1)
|
||||
uses--
|
||||
M.dna.SetSEValue(block,src.GetValue())
|
||||
domutcheck(M, null, block!=null)
|
||||
uses--
|
||||
if(prob(5))
|
||||
trigger_side_effect(M)
|
||||
|
||||
@@ -86,7 +108,10 @@
|
||||
inuse = 0
|
||||
M.requests += O
|
||||
if (dnatype == "se")
|
||||
if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
|
||||
// So you're checking for 14, and yet MONKEYBLOCK is 27 in globals.dm,
|
||||
// and domutcheck checks MONKEYBLOCK...? wat. - N3X
|
||||
//if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
|
||||
if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human) )
|
||||
msg_admin_attack("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
||||
else
|
||||
// message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
|
||||
@@ -108,7 +133,9 @@
|
||||
user << "\red Apparently it didn't work."
|
||||
return
|
||||
if (dnatype == "se")
|
||||
if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
|
||||
// And again... ?
|
||||
//if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
|
||||
if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human))
|
||||
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
|
||||
log_game("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
|
||||
else
|
||||
@@ -135,21 +162,21 @@
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/dnainjector/antihulk
|
||||
name = "DNA-Injector (Anti-Hulk)"
|
||||
desc = "Cures green skin."
|
||||
/obj/item/weapon/dnainjector/hulkmut
|
||||
name = "DNA-Injector (Hulk)"
|
||||
desc = "This will make you big and strong, but give you a bad skin condition."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = HULKBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/hulkmut
|
||||
name = "DNA-Injector (Hulk)"
|
||||
desc = "This will make you big and strong, but give you a bad skin condition."
|
||||
/obj/item/weapon/dnainjector/antihulk
|
||||
name = "DNA-Injector (Anti-Hulk)"
|
||||
desc = "Cures green skin."
|
||||
dnatype = "se"
|
||||
dna = "FED"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
@@ -159,7 +186,7 @@
|
||||
name = "DNA-Injector (Xray)"
|
||||
desc = "Finally you can see what the Captain does."
|
||||
dnatype = "se"
|
||||
dna = "FED"
|
||||
dna = list(4090)
|
||||
//block = 8
|
||||
New()
|
||||
..()
|
||||
@@ -169,60 +196,298 @@
|
||||
name = "DNA-Injector (Anti-Xray)"
|
||||
desc = "It will make you see harder."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
dna = list(1)
|
||||
//block = 8
|
||||
New()
|
||||
..()
|
||||
block = XRAYBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/firemut
|
||||
name = "DNA-Injector (Fire)"
|
||||
desc = "Gives you fire."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 10
|
||||
New()
|
||||
..()
|
||||
block = FIREBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antifire
|
||||
name = "DNA-Injector (Anti-Fire)"
|
||||
desc = "Cures fire."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 10
|
||||
New()
|
||||
..()
|
||||
block = FIREBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/telemut
|
||||
name = "DNA-Injector (Tele.)"
|
||||
desc = "Super brain man!"
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 12
|
||||
New()
|
||||
..()
|
||||
block = TELEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antitele
|
||||
name = "DNA-Injector (Anti-Tele.)"
|
||||
desc = "Will make you not able to control your mind."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 12
|
||||
New()
|
||||
..()
|
||||
block = TELEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/nobreath
|
||||
name = "DNA-Injector (No Breath)"
|
||||
desc = "Hold your breath and count to infinity."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = NOBREATHBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antinobreath
|
||||
name = "DNA-Injector (Anti-No Breath)"
|
||||
desc = "Hold your breath and count to 100."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = NOBREATHBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/remoteview
|
||||
name = "DNA-Injector (Remote View)"
|
||||
desc = "Stare into the distance for a reason."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = REMOTEVIEWBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antiremoteview
|
||||
name = "DNA-Injector (Anti-Remote View)"
|
||||
desc = "Cures green skin."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = REMOTEVIEWBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/regenerate
|
||||
name = "DNA-Injector (Regeneration)"
|
||||
desc = "Healthy but hungry."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = REGENERATEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antiregenerate
|
||||
name = "DNA-Injector (Anti-Regeneration)"
|
||||
desc = "Sickly but sated."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = REGENERATEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/runfast
|
||||
name = "DNA-Injector (Increase Run)"
|
||||
desc = "Running Man."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = INCREASERUNBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antirunfast
|
||||
name = "DNA-Injector (Anti-Increase Run)"
|
||||
desc = "Walking Man."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = INCREASERUNBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/morph
|
||||
name = "DNA-Injector (Morph)"
|
||||
desc = "A total makeover."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = MORPHBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antimorph
|
||||
name = "DNA-Injector (Anti-Morph)"
|
||||
desc = "Cures identity crisis."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = MORPHBLOCK
|
||||
/*
|
||||
/obj/item/weapon/dnainjector/cold
|
||||
name = "DNA-Injector (Cold)"
|
||||
desc = "Feels a bit chilly."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = COLDBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/anticold
|
||||
name = "DNA-Injector (Anti-Cold)"
|
||||
desc = "Feels room-temperature."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = COLDBLOCK
|
||||
*/
|
||||
/obj/item/weapon/dnainjector/noprints
|
||||
name = "DNA-Injector (No Prints)"
|
||||
desc = "Better than a pair of budget insulated gloves."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = NOPRINTSBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antinoprints
|
||||
name = "DNA-Injector (Anti-No Prints)"
|
||||
desc = "Not quite as good as a pair of budget insulated gloves."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = NOPRINTSBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/insulation
|
||||
name = "DNA-Injector (Shock Immunity)"
|
||||
desc = "Better than a pair of real insulated gloves."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = SHOCKIMMUNITYBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antiinsulation
|
||||
name = "DNA-Injector (Anti-Shock Immunity)"
|
||||
desc = "Not quite as good as a pair of real insulated gloves."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = SHOCKIMMUNITYBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/midgit
|
||||
name = "DNA-Injector (Small Size)"
|
||||
desc = "Makes you shrink."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = SMALLSIZEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antimidgit
|
||||
name = "DNA-Injector (Anti-Small Size)"
|
||||
desc = "Makes you grow. But not too much."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = SMALLSIZEBLOCK
|
||||
|
||||
/////////////////////////////////////
|
||||
/obj/item/weapon/dnainjector/antiglasses
|
||||
name = "DNA-Injector (Anti-Glasses)"
|
||||
desc = "Toss away those glasses!"
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
block = 1
|
||||
dna = list(1)
|
||||
//block = 1
|
||||
New()
|
||||
..()
|
||||
block = GLASSESBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/glassesmut
|
||||
name = "DNA-Injector (Glasses)"
|
||||
desc = "Will make you need dorkish glasses."
|
||||
dnatype = "se"
|
||||
dna = "BD6"
|
||||
block = 1
|
||||
dna = list(4090)
|
||||
//block = 1
|
||||
New()
|
||||
..()
|
||||
block = GLASSESBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/epimut
|
||||
name = "DNA-Injector (Epi.)"
|
||||
desc = "Shake shake shake the room!"
|
||||
dnatype = "se"
|
||||
dna = "FA0"
|
||||
block = 3
|
||||
dna = list(4090)
|
||||
//block = 3
|
||||
New()
|
||||
..()
|
||||
block = HEADACHEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antiepi
|
||||
name = "DNA-Injector (Anti-Epi.)"
|
||||
desc = "Will fix you up from shaking the room."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
block = 3
|
||||
////////////////////////////////////
|
||||
dna = list(1)
|
||||
//block = 3
|
||||
New()
|
||||
..()
|
||||
block = HEADACHEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/anticough
|
||||
name = "DNA-Injector (Anti-Cough)"
|
||||
desc = "Will stop that awful noise."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
block = 5
|
||||
dna = list(1)
|
||||
//block = 5
|
||||
New()
|
||||
..()
|
||||
block = COUGHBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/coughmut
|
||||
name = "DNA-Injector (Cough)"
|
||||
desc = "Will bring forth a sound of horror from your throat."
|
||||
dnatype = "se"
|
||||
dna = "BD6"
|
||||
block = 5
|
||||
dna = list(4090)
|
||||
//block = 5
|
||||
New()
|
||||
..()
|
||||
block = COUGHBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/clumsymut
|
||||
name = "DNA-Injector (Clumsy)"
|
||||
desc = "Makes clumsy minions."
|
||||
dnatype = "se"
|
||||
dna = "FA0"
|
||||
dna = list(4090)
|
||||
//block = 6
|
||||
New()
|
||||
..()
|
||||
@@ -232,7 +497,7 @@
|
||||
name = "DNA-Injector (Anti-Clumy)"
|
||||
desc = "Cleans up confusion."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
dna = list(1)
|
||||
//block = 6
|
||||
New()
|
||||
..()
|
||||
@@ -242,55 +507,47 @@
|
||||
name = "DNA-Injector (Anti-Tour.)"
|
||||
desc = "Will cure tourrets."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
block = 7
|
||||
dna = list(1)
|
||||
//block = 7
|
||||
New()
|
||||
..()
|
||||
block = TWITCHBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/tourmut
|
||||
name = "DNA-Injector (Tour.)"
|
||||
desc = "Gives you a nasty case off tourrets."
|
||||
dnatype = "se"
|
||||
dna = "BD6"
|
||||
block = 7
|
||||
dna = list(4090)
|
||||
//block = 7
|
||||
New()
|
||||
..()
|
||||
block = TWITCHBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/stuttmut
|
||||
name = "DNA-Injector (Stutt.)"
|
||||
desc = "Makes you s-s-stuttterrr"
|
||||
dnatype = "se"
|
||||
dna = "FA0"
|
||||
block = 9
|
||||
dna = list(4090)
|
||||
//block = 9
|
||||
New()
|
||||
..()
|
||||
block = NERVOUSBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antistutt
|
||||
name = "DNA-Injector (Anti-Stutt.)"
|
||||
desc = "Fixes that speaking impairment."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
block = 9
|
||||
|
||||
/obj/item/weapon/dnainjector/antifire
|
||||
name = "DNA-Injector (Anti-Fire)"
|
||||
desc = "Cures fire."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
//block = 10
|
||||
dna = list(1)
|
||||
//block = 9
|
||||
New()
|
||||
..()
|
||||
block = FIREBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/firemut
|
||||
name = "DNA-Injector (Fire)"
|
||||
desc = "Gives you fire."
|
||||
dnatype = "se"
|
||||
dna = "FED"
|
||||
//block = 10
|
||||
New()
|
||||
..()
|
||||
block = FIREBLOCK
|
||||
block = NERVOUSBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/blindmut
|
||||
name = "DNA-Injector (Blind)"
|
||||
desc = "Makes you not see anything."
|
||||
dnatype = "se"
|
||||
dna = "FA0"
|
||||
dna = list(4090)
|
||||
//block = 11
|
||||
New()
|
||||
..()
|
||||
@@ -300,37 +557,17 @@
|
||||
name = "DNA-Injector (Anti-Blind)"
|
||||
desc = "ITS A MIRACLE!!!"
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
dna = list(1)
|
||||
//block = 11
|
||||
New()
|
||||
..()
|
||||
block = BLINDBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antitele
|
||||
name = "DNA-Injector (Anti-Tele.)"
|
||||
desc = "Will make you not able to control your mind."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
//block = 12
|
||||
New()
|
||||
..()
|
||||
block = TELEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/telemut
|
||||
name = "DNA-Injector (Tele.)"
|
||||
desc = "Super brain man!"
|
||||
dnatype = "se"
|
||||
dna = "FED"
|
||||
//block = 12
|
||||
New()
|
||||
..()
|
||||
block = TELEBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/deafmut
|
||||
name = "DNA-Injector (Deaf)"
|
||||
desc = "Sorry, what did you say?"
|
||||
dnatype = "se"
|
||||
dna = "FA0"
|
||||
dna = list(4090)
|
||||
//block = 13
|
||||
New()
|
||||
..()
|
||||
@@ -340,22 +577,48 @@
|
||||
name = "DNA-Injector (Anti-Deaf)"
|
||||
desc = "Will make you hear once more."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
dna = list(1)
|
||||
//block = 13
|
||||
New()
|
||||
..()
|
||||
block = DEAFBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/hallucination
|
||||
name = "DNA-Injector (Halluctination)"
|
||||
desc = "What you see isn't always what you get."
|
||||
dnatype = "se"
|
||||
dna = list(4090)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = HALLUCINATIONBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/antihallucination
|
||||
name = "DNA-Injector (Anti-Hallucination)"
|
||||
desc = "What you see is what you get."
|
||||
dnatype = "se"
|
||||
dna = list(1)
|
||||
//block = 2
|
||||
New()
|
||||
..()
|
||||
block = HALLUCINATIONBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/h2m
|
||||
name = "DNA-Injector (Human > Monkey)"
|
||||
desc = "Will make you a flea bag."
|
||||
dnatype = "se"
|
||||
dna = "FA0"
|
||||
block = 14
|
||||
dna = list(4090)
|
||||
//block = 14
|
||||
New()
|
||||
..()
|
||||
block = MONKEYBLOCK
|
||||
|
||||
/obj/item/weapon/dnainjector/m2h
|
||||
name = "DNA-Injector (Monkey > Human)"
|
||||
desc = "Will make you...less hairy."
|
||||
dnatype = "se"
|
||||
dna = "708"
|
||||
block = 14
|
||||
dna = list(1)
|
||||
//block = 14
|
||||
New()
|
||||
..()
|
||||
block = MONKEYBLOCK
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
//Flashing everyone
|
||||
if(eye_safety < 1)
|
||||
flick("e_flash", M.flash)
|
||||
M.eye_stat += rand(1, 3)
|
||||
M.Stun(2)
|
||||
M.Weaken(10)
|
||||
|
||||
@@ -80,13 +79,14 @@
|
||||
M.ear_deaf = max(M.ear_deaf,5)
|
||||
|
||||
//This really should be in mob not every check
|
||||
if (M.eye_stat >= 20)
|
||||
M << "\red Your eyes start to burn badly!"
|
||||
M.disabilities |= NEARSIGHTED
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if (prob(M.eye_stat - 20 + 1))
|
||||
M << "\red You can't see anything!"
|
||||
M.sdisabilities |= BLIND
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/organ/internal/eyes/E = H.internal_organs["eyes"]
|
||||
if (E.damage >= E.min_bruised_damage)
|
||||
M << "\red Your eyes start to burn badly!"
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if (E.damage >= E.min_broken_damage)
|
||||
M << "\red You can't see anything!"
|
||||
if (M.ear_damage >= 15)
|
||||
M << "\red Your ears start to ring badly!"
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
|
||||
|
||||
/obj/item/weapon/implant/freedom
|
||||
name = "freedom"
|
||||
name = "freedom implant"
|
||||
desc = "Use this to escape from those evil Red Shirts."
|
||||
item_color = "r"
|
||||
var/activation_emote = "chuckle"
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
obj/item/weapon/mop/proc/clean(turf/simulated/A)
|
||||
if(reagents.has_reagent("water", 1))
|
||||
A.clean_blood()
|
||||
A.dirt = 0
|
||||
for(var/obj/effect/O in A)
|
||||
if(istype(O,/obj/effect/rune) || istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay))
|
||||
del(O)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* Mining Satchel
|
||||
* Plant Bag
|
||||
* Sheet Snatcher
|
||||
* Cash Bag
|
||||
*
|
||||
* -Sayu
|
||||
*/
|
||||
@@ -237,4 +238,19 @@
|
||||
/obj/item/weapon/storage/bag/sheetsnatcher/borg
|
||||
name = "Sheet Snatcher 9000"
|
||||
desc = ""
|
||||
capacity = 500//Borgs get more because >specialization
|
||||
capacity = 500//Borgs get more because >specialization
|
||||
|
||||
// -----------------------------
|
||||
// Cash Bag
|
||||
// -----------------------------
|
||||
|
||||
/obj/item/weapon/storage/bag/cash
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "cashbag"
|
||||
name = "Cash bag"
|
||||
desc = "A bag for carrying lots of cash. It's got a big dollar sign printed on the front."
|
||||
storage_slots = 50; //the number of cash pieces it can carry.
|
||||
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class
|
||||
max_w_class = 3
|
||||
w_class = 1
|
||||
can_hold = list("/obj/item/weapon/coin","/obj/item/weapon/spacecash")
|
||||
|
||||
@@ -354,33 +354,36 @@
|
||||
/obj/item/weapon/weldingtool/proc/eyecheck(mob/user as mob)
|
||||
if(!iscarbon(user)) return 1
|
||||
var/safety = user:eyecheck()
|
||||
switch(safety)
|
||||
if(1)
|
||||
usr << "\red Your eyes sting a little."
|
||||
user.eye_stat += rand(1, 2)
|
||||
if(user.eye_stat > 12)
|
||||
user.eye_blurry += rand(3,6)
|
||||
if(0)
|
||||
usr << "\red Your eyes burn."
|
||||
user.eye_stat += rand(2, 4)
|
||||
if(user.eye_stat > 10)
|
||||
user.eye_blurry += rand(4,10)
|
||||
if(-1)
|
||||
usr << "\red Your thermals intensify the welder's glow. Your eyes itch and burn severely."
|
||||
user.eye_blurry += rand(12,20)
|
||||
user.eye_stat += rand(12, 16)
|
||||
if(user.eye_stat > 10 && safety < 2)
|
||||
user << "\red Your eyes are really starting to hurt. This can't be good for you!"
|
||||
if (prob(user.eye_stat - 25 + 1))
|
||||
user << "\red You go blind!"
|
||||
user.sdisabilities |= BLIND
|
||||
else if (prob(user.eye_stat - 15 + 1))
|
||||
user << "\red You go blind!"
|
||||
user.eye_blind = 5
|
||||
user.eye_blurry = 5
|
||||
user.disabilities |= NEARSIGHTED
|
||||
spawn(100)
|
||||
user.disabilities &= ~NEARSIGHTED
|
||||
if(istype(user, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/datum/organ/internal/eyes/E = H.internal_organs["eyes"]
|
||||
switch(safety)
|
||||
if(1)
|
||||
usr << "\red Your eyes sting a little."
|
||||
E.damage += rand(1, 2)
|
||||
if(E.damage > 12)
|
||||
user.eye_blurry += rand(3,6)
|
||||
if(0)
|
||||
usr << "\red Your eyes burn."
|
||||
E.damage += rand(2, 4)
|
||||
if(E.damage > 10)
|
||||
E.damage += rand(4,10)
|
||||
if(-1)
|
||||
usr << "\red Your thermals intensify the welder's glow. Your eyes itch and burn severely."
|
||||
user.eye_blurry += rand(12,20)
|
||||
E.damage += rand(12, 16)
|
||||
if(E.damage > 10 && safety < 2)
|
||||
user << "\red Your eyes are really starting to hurt. This can't be good for you!"
|
||||
if (E.damage >= E.min_broken_damage)
|
||||
user << "\red You go blind!"
|
||||
user.sdisabilities |= BLIND
|
||||
else if (E.damage >= E.min_bruised_damage)
|
||||
user << "\red You go blind!"
|
||||
user.eye_blind = 5
|
||||
user.eye_blurry = 5
|
||||
user.disabilities |= NEARSIGHTED
|
||||
spawn(100)
|
||||
user.disabilities &= ~NEARSIGHTED
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -247,20 +247,24 @@
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/clothing/under/det(src)
|
||||
new /obj/item/clothing/under/det/black(src)
|
||||
new /obj/item/clothing/under/det/slob(src)
|
||||
new /obj/item/clothing/suit/storage/det_suit(src)
|
||||
new /obj/item/clothing/suit/storage/det_suit/black(src)
|
||||
new /obj/item/clothing/suit/storage/forensics/blue(src)
|
||||
new /obj/item/clothing/suit/storage/forensics/red(src)
|
||||
new /obj/item/clothing/gloves/black(src)
|
||||
new /obj/item/clothing/head/det_hat(src)
|
||||
new /obj/item/clothing/head/det_hat/black(src)
|
||||
new /obj/item/clothing/shoes/brown(src)
|
||||
new /obj/item/weapon/storage/box/evidence(src)
|
||||
new /obj/item/device/radio/headset/headset_sec(src)
|
||||
new /obj/item/device/detective_scanner(src)
|
||||
new /obj/item/clothing/suit/armor/det_suit(src)
|
||||
new /obj/item/ammo_magazine/c38(src)
|
||||
new /obj/item/ammo_magazine/c38(src)
|
||||
new /obj/item/ammo_magazine/c45r(src)
|
||||
new /obj/item/ammo_magazine/c45r(src)
|
||||
new /obj/item/taperoll/police(src)
|
||||
new /obj/item/weapon/gun/projectile/detective(src)
|
||||
new /obj/item/weapon/gun/projectile/detective/semiauto(src)
|
||||
new /obj/item/clothing/tie/holster/armpit(src)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user