Box of Things for Events and the Future MK1 (#5281)

* Lots of Stuff for Events

* Adds changelog.

* Review & QOL
This commit is contained in:
Mechoid
2018-05-25 16:26:31 -07:00
committed by Atermonera
parent f1b00c9e26
commit 917c7b71a5
26 changed files with 595 additions and 12 deletions
@@ -56,14 +56,26 @@
name = "stack of steel"
type_to_spawn = /obj/item/stack/material/steel
/obj/fiftyspawner/steel/hull
name = "stack of steel hull"
type_to_spawn = /obj/item/stack/material/steel/hull
/obj/fiftyspawner/plasteel
name = "stack of plasteel"
type_to_spawn = /obj/item/stack/material/plasteel
/obj/fiftyspawner/plasteel/hull
name = "stack of plasteel hull"
type_to_spawn = /obj/item/stack/material/plasteel/hull
/obj/fiftyspawner/durasteel
name = "stack of durasteel"
type_to_spawn = /obj/item/stack/material/durasteel
/obj/fiftyspawner/durasteel/hull
name = "stack of durasteel hull"
type_to_spawn = /obj/item/stack/material/durasteel/hull
/obj/fiftyspawner/wood
name = "stack of wood"
type_to_spawn = /obj/item/stack/material/wood
+11
View File
@@ -192,12 +192,20 @@
default_type = DEFAULT_WALL_MATERIAL
no_variants = FALSE
/obj/item/stack/material/steel/hull
name = MAT_STEELHULL
default_type = MAT_STEELHULL
/obj/item/stack/material/plasteel
name = "plasteel"
icon_state = "sheet-plasteel"
default_type = "plasteel"
no_variants = FALSE
/obj/item/stack/material/plasteel/hull
name = MAT_PLASTEELHULL
default_type = MAT_PLASTEELHULL
/obj/item/stack/material/durasteel
name = "durasteel"
icon_state = "sheet-durasteel"
@@ -205,6 +213,9 @@
default_type = "durasteel"
no_variants = FALSE
/obj/item/stack/material/durasteel/hull
name = "MAT_DURASTEELHULL"
/obj/item/stack/material/wood
name = "wooden plank"
icon_state = "sheet-wood"
+48 -1
View File
@@ -16,7 +16,17 @@
stone
metal
solid
cult
ONLY WALLS
cult
hull
curvy
jaggy
brick
REINFORCEMENT
reinf_over
reinf_mesh
reinf_cult
reinf_metal
DOORS
stone
metal
@@ -358,6 +368,18 @@ var/list/name_to_material
icon_reinf = "reinf_over"
icon_colour = "#666666"
/material/steel/hull
name = MAT_STEELHULL
stack_type = /obj/item/stack/material/steel/hull
integrity = 250
explosion_resistance = 10
icon_base = "hull"
icon_reinf = "reinf_mesh"
icon_colour = "#666677"
/material/steel/hull/place_sheet(var/turf/target) //Deconstructed into normal steel sheets.
new /obj/item/stack/material/steel(target)
/material/diona
name = "biomass"
icon_colour = null
@@ -394,6 +416,17 @@ var/list/name_to_material
stack_origin_tech = list(TECH_MATERIAL = 2)
composite_material = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT, "platinum" = SHEET_MATERIAL_AMOUNT) //todo
/material/plasteel/hull
name = MAT_PLASTEELHULL
stack_type = /obj/item/stack/material/plasteel/hull
integrity = 600
icon_base = "hull"
icon_reinf = "reinf_mesh"
icon_colour = "#777788"
explosion_resistance = 40
/material/plasteel/hull/place_sheet(var/turf/target) //Deconstructed into normal plasteel sheets.
new /obj/item/stack/material/plasteel(target)
// Very rare alloy that is reflective, should be used sparingly.
/material/durasteel
@@ -412,6 +445,14 @@ var/list/name_to_material
stack_origin_tech = list(TECH_MATERIAL = 8)
composite_material = list("plasteel" = SHEET_MATERIAL_AMOUNT, "diamond" = SHEET_MATERIAL_AMOUNT) //shrug
/material/durasteel/hull //The 'Hardball' of starship hulls.
name = MAT_DURASTEELHULL
icon_base = "hull"
icon_reinf = "reinf_mesh"
icon_colour = "#45829a"
explosion_resistance = 90
reflectivity = 0.9
/material/plasteel/titanium
name = "titanium"
stack_type = null
@@ -421,6 +462,12 @@ var/list/name_to_material
icon_colour = "#D1E6E3"
icon_reinf = "reinf_metal"
/material/plasteel/titanium/hull
name = MAT_TITANIUMHULL
stack_type = null
icon_base = "hull"
icon_reinf = "reinf_mesh"
/material/glass
name = "glass"
stack_type = /obj/item/stack/material/glass
+13 -1
View File
@@ -129,4 +129,16 @@
flags = RESTRICTED
syllables = list("rus","zem","ave","groz","ski","ska","ven","konst","pol","lin","svy",
"danya","da","mied","zan","das","krem","myka","cyka","blyat","to","st","no","na","ni",
"ko","ne","en","po","ra","li","on","byl","cto","eni","ost","ol","ego","ver","stv","pro")
"ko","ne","en","po","ra","li","on","byl","cto","eni","ost","ol","ego","ver","stv","pro")
//For your event purposes.
/datum/language/occursus
name = LANGUAGE_EVENT1
desc = "The Powers That Be have seen it fit to grace you with a special language that sounds like... something. This description should be overridden by the time you see this."
speech_verb = "says"
ask_verb = "asks"
exclaim_verb = "shouts"
colour = "warning"
key = "]"
flags = RESTRICTED
syllables = list("chan","ange","thi","se")
@@ -51,3 +51,6 @@
/mob/living/carbon/human/stok/New(var/new_loc)
..(new_loc, SPECIES_MONKEY_UNATHI)
/mob/living/carbon/human/event1/New(var/new_loc)
..(new_loc, SPECIES_EVENT1)
@@ -0,0 +1,221 @@
/*
This species is meant to be used both as a base for Event species and possible future per-round RNG'd species, hence the proc var-ization in some places.
IF YOU ARE USING THIS SPECIES:
Variables you may want to make use of are:
icobase and deform Set both to the same thing, unless you have special deformed sprites.
mobtemplate The blank bounding box used by your species.
mob_size The size class of the species. 20 is human.
show_ssd What is shown when they're SSD?
virus_immune Immune to viruses? 1/0
short_sighted Permanent weldervision. 1/0
blood_volume Initial blood volume.
bloodloss_rate Multiplier for how fast a species bleeds out. Higher = Faster
hunger_factor Multiplier for hunger.
active_regen_mult Multiplier for 'Regenerate' power speed, in human_powers.dm
scream_verb The text descriptor of the scream. Default screams.
male_scream_sound Sound played when a male *scream s.
female_scream_sound Sound played when a female *scream s.
male_cough_sounds List of cough sounds for males.
female_cough_sounds List of cough sounds for females.
male_sneeze_sound Sound played when a male *sneeze s..
female_sneeze_sound Sound played when a female *sneeze s.
speech_sounds A list of sounds used randomly when the species talks.
speech_chance Percentile chance to do the above.
total_health How much damage can they take before entering crit? Default 100.
brute_mod Physical damage multiplier.
burn_mod Burn damage multiplier.
oxy_mod Oxyloss modifier
toxins_mod Toxloss modifier
radiation_mod Radiation modifier
flash_mod Stun from blindness modifier.
sound_mod Stun from sounds, I.E. flashbangs.
chemOD_mod Damage modifier for overdose
siemens_coefficient The lower, the thicker the skin and better the insulation.
darksight Native darksight distance.
meat_type The food given when they are turned into meat.
remains_type The effect left behind when they are ashed.
death_sound The sound played when they die.
death_message The deathgasp.
knockout_message The message when someone gets a lucky shot on the head.
cloning_modifier The modifier given when they are by chance cloned.
Any 'heat' or 'pressure' vars. Environmental survivability.
speech_bubble_appearance Part of icon_state to use for speech bubbles when talking. See talk.dmi for available icons.
slowdown Passive movement speed malus (or boost, if negative)
move_trail What effect marks are left when walking
has_floating_eyes Whether the eyes can be shown above other icons
has_glowing_eyes Whether the eyes are shown above all lighting
water_movement How much faster or slower the species is in water
snow_movement How much faster or slower the species is on snow
item_slowdown_mod How affected by item slowdown the species is. Multiplier.
*/
/datum/species/event1 //Essentially, by default a 'better' human.
name = SPECIES_EVENT1
name_plural = SPECIES_EVENT1
primitive_form = SPECIES_MONKEY
unarmed_types = list(/datum/unarmed_attack/stomp/event1, /datum/unarmed_attack/kick/event1, /datum/unarmed_attack/punch/event1, /datum/unarmed_attack/bite/event1)
blurb = "We're not quite sure where these things came from. Are you?"
num_alternate_languages = 3
species_language = LANGUAGE_GALCOM
secondary_langs = list()
name_language = null // Use the first-name last-name generator rather than a language scrambler
min_age = 0
max_age = 999
health_hud_intensity = 1.5
flags = NO_MINOR_CUT | NO_HALLUCINATION | NO_INFECT
vision_flags = SEE_SELF
darksight = 7
brute_mod = 0.9
burn_mod = 0.9
oxy_mod = 0.9
toxins_mod = 0.9
radiation_mod = 0.9
flash_mod = 0.9
sound_mod = 0.9
chemOD_mod = 0.9
siemens_coefficient = 0.9
spawn_flags = SPECIES_IS_RESTRICTED
appearance_flags = HAS_SKIN_TONE | HAS_EYE_COLOR
//Far more organs, due to the issues with adding them and their respective verbs mid round, I'll include them here.
//Colormatch organs will change to match the blood color of the species.
has_organ = list(
O_HEART = /obj/item/organ/internal/heart/grey/colormatch,
O_LUNGS = /obj/item/organ/internal/lungs/grey/colormatch,
O_LIVER = /obj/item/organ/internal/liver/grey/colormatch,
O_KIDNEYS = /obj/item/organ/internal/kidneys/grey/colormatch,
O_BRAIN = /obj/item/organ/internal/brain/grey/colormatch,
O_EYES = /obj/item/organ/internal/eyes/grey/colormatch,
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel/grey/colormatch,
O_ACID = /obj/item/organ/internal/xenos/acidgland/grey/colormatch,
O_HIVE = /obj/item/organ/internal/xenos/hivenode/grey/colormatch,
O_RESIN = /obj/item/organ/internal/xenos/resinspinner/grey/colormatch
)
var/use_bodyshape = SPECIES_HUMAN
var/waterbreathing = 0
var/overcome_gravity = 0
var/hover = 0
/datum/species/event1/proc/set_limbset(var/setnum = 1) //Will require existing ones to be respawned for changes to take effect.
switch(setnum)
if(1) //Normal.
has_limbs = list(
BP_TORSO = list("path" = /obj/item/organ/external/chest),
BP_GROIN = list("path" = /obj/item/organ/external/groin),
BP_HEAD = list("path" = /obj/item/organ/external/head),
BP_L_ARM = list("path" = /obj/item/organ/external/arm),
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right),
BP_L_LEG = list("path" = /obj/item/organ/external/leg),
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right),
BP_L_HAND = list("path" = /obj/item/organ/external/hand),
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right),
BP_L_FOOT = list("path" = /obj/item/organ/external/foot),
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
)
if(2) //No broken bones.
has_limbs = list(
BP_TORSO = list("path" = /obj/item/organ/external/chest/unbreakable),
BP_GROIN = list("path" = /obj/item/organ/external/groin/unbreakable),
BP_HEAD = list("path" = /obj/item/organ/external/head/unbreakable),
BP_L_ARM = list("path" = /obj/item/organ/external/arm/unbreakable),
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/unbreakable),
BP_L_LEG = list("path" = /obj/item/organ/external/leg/unbreakable),
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right/unbreakable),
BP_L_HAND = list("path" = /obj/item/organ/external/hand/unbreakable),
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/unbreakable),
BP_L_FOOT = list("path" = /obj/item/organ/external/foot/unbreakable),
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unbreakable)
)
if(3) //No removing from the body.
has_limbs = list(
BP_TORSO = list("path" = /obj/item/organ/external/chest/unseverable),
BP_GROIN = list("path" = /obj/item/organ/external/groin/unseverable),
BP_HEAD = list("path" = /obj/item/organ/external/head/unseverable),
BP_L_ARM = list("path" = /obj/item/organ/external/arm/unseverable),
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/unseverable),
BP_L_LEG = list("path" = /obj/item/organ/external/leg/unseverable),
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right/unseverable),
BP_L_HAND = list("path" = /obj/item/organ/external/hand/unseverable),
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/unseverable),
BP_L_FOOT = list("path" = /obj/item/organ/external/foot/unseverable),
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unseverable)
)
if(4) //No breaking, OR removing from the body. For things that are more monsterous.
has_limbs = list(
BP_TORSO = list("path" = /obj/item/organ/external/chest/indestructible),
BP_GROIN = list("path" = /obj/item/organ/external/groin/indestructible),
BP_HEAD = list("path" = /obj/item/organ/external/head/indestructible),
BP_L_ARM = list("path" = /obj/item/organ/external/arm/indestructible),
BP_R_ARM = list("path" = /obj/item/organ/external/arm/right/indestructible),
BP_L_LEG = list("path" = /obj/item/organ/external/leg/indestructible),
BP_R_LEG = list("path" = /obj/item/organ/external/leg/right/indestructible),
BP_L_HAND = list("path" = /obj/item/organ/external/hand/indestructible),
BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/indestructible),
BP_L_FOOT = list("path" = /obj/item/organ/external/foot/indestructible),
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/indestructible)
)
return
/datum/species/event1/proc/choose_limbset()
var/list/limb_sets = list("Normal" = 1, "Unbreakable" = 2, "Unseverable" = 3, "Indestructible" = 4)
var/choice = input("Choose limb set to use for future spawns.", "Limb types.") as null|anything in limb_sets
set_limbset(limb_sets[choice])
return limb_sets[choice]
/datum/species/event1/proc/toggle_thermal()
vision_flags ^= SEE_MOBS
/datum/species/event1/proc/toggle_meson()
vision_flags ^= SEE_TURFS
/datum/species/event1/proc/toggle_material()
vision_flags ^= SEE_OBJS
/datum/species/event1/proc/toggle_infection()
flags ^= NO_INFECT
/datum/species/event1/proc/toggle_noslip()
flags ^= NO_SLIP
/datum/species/event1/proc/toggle_cloning()
flags ^= NO_SCAN
/datum/species/event1/proc/toggle_pain()
flags ^= NO_PAIN
/datum/species/event1/proc/toggle_embedding()
flags ^= NO_EMBED
/datum/species/event1/proc/toggle_plant() //Maybe it's a distant cousin of the Venus Fly Trap.
flags ^= IS_PLANT
/datum/species/event1/get_bodytype(var/mob/living/carbon/human/H) //Default to human sprites, if they're based on another species, var edit use_bodyshape to the correct thing in _defines/mobs.dm of the species you want to use.
return use_bodyshape
/datum/species/event1/can_breathe_water()
return waterbreathing
/datum/species/event1/can_overcome_gravity(var/mob/living/carbon/human/H)
return overcome_gravity
/datum/species/event1/can_fall(var/mob/living/carbon/human/H)
return hover
@@ -54,8 +54,8 @@
var/language = LANGUAGE_GALCOM // Default racial language, if any.
var/species_language = LANGUAGE_GALCOM // Used on the Character Setup screen
var/list/secondary_langs = list() // The names of secondary languages that are available to this species.
var/list/speech_sounds // A list of sounds to potentially play when speaking.
var/list/speech_chance // The likelihood of a speech sound playing.
var/list/speech_sounds = list() // A list of sounds to potentially play when speaking.
var/list/speech_chance = list() // The likelihood of a speech sound playing.
var/num_alternate_languages = 0 // How many secondary languages are available to select at character creation
var/name_language = LANGUAGE_GALCOM // The language to use when determining names for this species, or null to use the first name/last name generator
@@ -153,7 +153,7 @@
var/health_hud_intensity = 1 // This modifies how intensely the health hud is colored.
// Body/form vars.
var/list/inherent_verbs // Species-specific verbs.
var/list/inherent_verbs = list() // Species-specific verbs.
var/has_fine_manipulation = 1 // Can use small items.
var/siemens_coefficient = 1 // The lower, the thicker the skin and better the insulation.
var/darksight = 2 // Native darksight distance.
@@ -113,6 +113,8 @@ var/global/list/sparring_attack_cache = list()
sharp = 0
edge = 0
/datum/unarmed_attack/bite/event1
/datum/unarmed_attack/bite/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone)
if (user.is_muzzled())
@@ -128,6 +130,8 @@ var/global/list/sparring_attack_cache = list()
eye_attack_text_victim = "digits"
damage = 0
/datum/unarmed_attack/punch/event1
/datum/unarmed_attack/punch/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage)
var/obj/item/organ/external/affecting = target.get_organ(zone)
var/organ = affecting.name
@@ -179,6 +183,8 @@ var/global/list/sparring_attack_cache = list()
attack_sound = "swing_hit"
damage = 0
/datum/unarmed_attack/kick/event1
/datum/unarmed_attack/kick/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone)
if (user.legcuffed)
return 0
@@ -220,6 +226,8 @@ var/global/list/sparring_attack_cache = list()
attack_sound = "swing_hit"
damage = 0
/datum/unarmed_attack/stomp/event1
/datum/unarmed_attack/stomp/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone)
if (user.legcuffed)
+12
View File
@@ -146,3 +146,15 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
desc = "A tightly furled roll of paper, covered with indecipherable runes."
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll"
/obj/item/organ/internal/brain/grey
desc = "A piece of juicy meat found in a person's head. This one is strange."
icon_state = "brain_grey"
/obj/item/organ/internal/brain/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
+11
View File
@@ -21,6 +21,17 @@
..()
robotize()
/obj/item/organ/internal/eyes/grey
icon_state = "eyes_grey"
/obj/item/organ/internal/eyes/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
/obj/item/organ/internal/eyes/proc/change_eye_color()
set name = "Change Eye Color"
set desc = "Changes your robotic eye color instantly."
+12
View File
@@ -20,3 +20,15 @@
if(prob(1))
owner.custom_pain("A stabbing pain rolls through your chest!",1)
owner.apply_damage(damage = 25, damagetype = HALLOSS, def_zone = parent_organ)
/obj/item/organ/internal/heart/grey
icon_state = "heart_grey-on"
dead_icon = "heart_grey-off"
/obj/item/organ/internal/heart/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
+11
View File
@@ -35,3 +35,14 @@
owner.custom_pain("You feel extremely tired, like you can't move!",1)
owner.m_intent = "walk"
owner.hud_used.move_intent.icon_state = "walking"
/obj/item/organ/internal/kidneys/grey
icon_state = "kidneys_grey"
/obj/item/organ/internal/kidneys/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
+11
View File
@@ -57,3 +57,14 @@
if(prob(1) && owner.getToxLoss() < owner.getMaxHealth()*0.3)
//owner << "" //Toxins provide their own messages for pain
owner.adjustToxLoss(5) //Not realistic to PA but there are basically no 'real' liver infections
/obj/item/organ/internal/liver/grey
icon_state = "liver_grey"
/obj/item/organ/internal/liver/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
+11
View File
@@ -39,3 +39,14 @@
if(prob(1))
owner.custom_pain("You suddenly feel short of breath and take a sharp, painful breath!",1)
owner.adjustOxyLoss(30) //Look it's hard to simulate low O2 perfusion okay
/obj/item/organ/internal/lungs/grey
icon_state = "lungs_grey"
/obj/item/organ/internal/lungs/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
+2 -1
View File
@@ -27,6 +27,7 @@ var/list/organ_cache = list()
var/min_bruised_damage = 10 // Damage before considered bruised
var/min_broken_damage = 30 // Damage before becoming broken
var/max_damage // Damage cap
var/can_reject = 1 // Can this organ reject?
var/rejecting // Is this organ already being rejected?
var/preserved = 0 // If this is 1, prevents organ decay.
@@ -188,7 +189,7 @@ var/list/organ_cache = list()
/obj/item/organ/proc/handle_rejection()
// Process unsuitable transplants. TODO: consider some kind of
// immunosuppressant that changes transplant data to make it match.
if(dna)
if(dna && can_reject)
if(!rejecting)
if(blood_incompatible(dna.b_type, owner.dna.b_type, species, owner.species))
rejecting = 1
@@ -0,0 +1,65 @@
/obj/item/organ/external/chest/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/groin/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/arm/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/arm/right/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/leg/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/leg/right/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/foot/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/foot/right/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/hand/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/hand/right/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
/obj/item/organ/external/head/indestructible
cannot_gib = 1
cannot_amputate = 1
cannot_break = 1
dislocated = -1
@@ -0,0 +1,43 @@
/obj/item/organ/external/chest/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/groin/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/arm/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/arm/right/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/leg/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/leg/right/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/foot/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/foot/right/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/hand/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/hand/right/unseverable
cannot_gib = 1
cannot_amputate = 1
/obj/item/organ/external/head/unseverable
cannot_gib = 1
cannot_amputate = 1
+63 -6
View File
@@ -1,23 +1,46 @@
//XENOMORPH ORGANS
/obj/item/organ/internal/xenos
name = "xeno organ"
icon = 'icons/effects/blood.dmi'
icon = 'icons/obj/surgery.dmi'
desc = "It smells like an accident in a chemical factory."
/obj/item/organ/internal/xenos/eggsac
name = "egg sac"
parent_organ = BP_GROIN
icon_state = "xgibmid1"
icon_state = "sac"
organ_tag = O_EGG
/obj/item/organ/internal/xenos/eggsac/grey
icon_state = "sac_grey"
/obj/item/organ/internal/xenos/eggsac/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
/obj/item/organ/internal/xenos/plasmavessel
name = "plasma vessel"
parent_organ = BP_TORSO
icon_state = "xgibdown1"
icon_state = "plasma"
organ_tag = O_PLASMA
var/stored_plasma = 0
var/max_plasma = 500
/obj/item/organ/internal/xenos/plasmavessel/grey
icon_state = "plasma_grey"
stored_plasma = 200
/obj/item/organ/internal/xenos/plasmavessel/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
/obj/item/organ/internal/xenos/plasmavessel/queen
name = "bloated plasma vessel"
stored_plasma = 200
@@ -35,17 +58,51 @@
/obj/item/organ/internal/xenos/acidgland
name = "acid gland"
parent_organ = BP_HEAD
icon_state = "xgibtorso"
icon_state = "acidgland"
organ_tag = O_ACID
/obj/item/organ/internal/xenos/acidgland/grey
icon_state = "acidgland_grey"
/obj/item/organ/internal/xenos/acidgland/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
/obj/item/organ/internal/xenos/hivenode
name = "hive node"
parent_organ = BP_TORSO
icon_state = "xgibmid2"
icon_state = "xenode"
organ_tag = O_HIVE
/obj/item/organ/internal/xenos/hivenode/grey
icon_state = "xenode_grey"
/obj/item/organ/internal/xenos/hivenode/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color
/obj/item/organ/internal/xenos/resinspinner
name = "resin spinner"
parent_organ = BP_HEAD
icon_state = "xgibmid2"
icon_state = "xenode"
organ_tag = O_RESIN
/obj/item/organ/internal/xenos/resinspinner/grey
icon_state = "xenode_grey"
/obj/item/organ/internal/xenos/resinspinner/grey/colormatch/New()
..()
var/mob/living/carbon/human/H = null
spawn(15)
if(ishuman(owner))
H = owner
color = H.species.blood_color