mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Grey Species snowflake code
This commit is contained in:
@@ -46,6 +46,10 @@
|
||||
dna.mutantrace = "slime"
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/grey/New()
|
||||
set_species("Grey")
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/skellington/New()
|
||||
species = new /datum/species/skellington(src)
|
||||
..()
|
||||
@@ -1320,7 +1324,7 @@ mob/living/carbon/human/yank_out_object()
|
||||
else
|
||||
usr << "\blue [self ? "Your" : "[src]'s"] pulse is [src.get_pulse(GETPULSE_HAND)]."
|
||||
|
||||
/mob/living/carbon/human/proc/set_species(var/new_species)
|
||||
/mob/living/carbon/human/proc/set_species(var/new_species,var/on_spawn=0)
|
||||
|
||||
if(!new_species)
|
||||
new_species = "Human"
|
||||
@@ -1339,6 +1343,10 @@ mob/living/carbon/human/yank_out_object()
|
||||
if(species.name=="Slime People")
|
||||
dna.mutantrace = "slime"
|
||||
|
||||
if(mutations.len==0)
|
||||
mutations=species.default_mutations
|
||||
|
||||
|
||||
spawn(0)
|
||||
update_icons()
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
log_attack("[M.name] ([M.ckey]) [M.species.attack_verb]ed [src.name] ([src.ckey])")
|
||||
|
||||
var/damage = rand(0, 5)//BS12 EDIT
|
||||
var/damage = rand(0, M.species.max_hurt_damage)//BS12 EDIT
|
||||
if(!damage)
|
||||
if(M.species.attack_verb == "punch")
|
||||
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
var/warning_low_pressure = WARNING_LOW_PRESSURE // Low pressure warning.
|
||||
var/hazard_low_pressure = HAZARD_LOW_PRESSURE // Dangerously low pressure.
|
||||
|
||||
// This shit is apparently not even wired up.
|
||||
var/brute_resist // Physical damage reduction.
|
||||
var/burn_resist // Burn damage reduction.
|
||||
|
||||
@@ -38,6 +39,10 @@
|
||||
var/bloodflags=0
|
||||
var/bodyflags=0
|
||||
|
||||
// For grays
|
||||
var/max_hurt_damage = 5 // Max melee damage dealt + 5 if hulk
|
||||
var/default_mutations = list()
|
||||
|
||||
|
||||
/datum/species/human
|
||||
name = "Human"
|
||||
@@ -177,7 +182,10 @@
|
||||
deform = 'icons/mob/human_races/r_def_grey.dmi'
|
||||
language = "Galactic Standard"
|
||||
attack_verb = "punch"
|
||||
darksight = 8
|
||||
path = /mob/living/carbon/human/grey
|
||||
darksight = 5 // BOOSTED from 2
|
||||
max_hurt_damage = 3 // From 5 (for humans)
|
||||
default_mutations=list(mRemotetalk) // TK is also another candidate, but TK is overpowered as fuck.
|
||||
|
||||
primitive = /mob/living/carbon/monkey // TODO
|
||||
|
||||
|
||||
@@ -371,6 +371,8 @@
|
||||
new_character = new /mob/living/carbon/human/kidan(loc)
|
||||
if("Skellington")
|
||||
new_character = new /mob/living/carbon/human/skellington(loc)
|
||||
if("Grey")
|
||||
new_character = new /mob/living/carbon/human/grey(loc)
|
||||
if("Human")
|
||||
new_character = new /mob/living/carbon/human(loc)
|
||||
// new_character.set_species(client.prefs.species)
|
||||
|
||||
@@ -213,6 +213,44 @@ datum
|
||||
color = "#0064C8" // rgb: 0, 100, 200
|
||||
custom_metabolism = 0.01
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.species.name=="Grey")
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1*REM)
|
||||
M.take_organ_damage(0, 1*REM)
|
||||
..()
|
||||
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
|
||||
// Grays treat water like acid.
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.species.name=="Grey")
|
||||
if(method == TOUCH)
|
||||
if(H.wear_mask)
|
||||
H << "\red Your mask protects you from the water!"
|
||||
return
|
||||
if(H.head)
|
||||
H << "\red Your helmet protects you from the water!"
|
||||
return
|
||||
if(!M.unacidable)
|
||||
if(prob(15) && volume >= 30)
|
||||
var/datum/organ/external/affecting = H.get_organ("head")
|
||||
if(affecting)
|
||||
if(affecting.take_damage(25, 0))
|
||||
H.UpdateDamageIcon()
|
||||
H.status_flags |= DISFIGURED
|
||||
H.emote("scream")
|
||||
else
|
||||
M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl
|
||||
else
|
||||
if(!M.unacidable)
|
||||
M.take_organ_damage(min(15, volume * 2))
|
||||
|
||||
|
||||
reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if (!istype(T)) return
|
||||
src = null
|
||||
@@ -826,8 +864,12 @@ datum
|
||||
return
|
||||
|
||||
if(!M.unacidable)
|
||||
if(prob(15) && istype(M, /mob/living/carbon/human) && volume >= 30)
|
||||
if(prob(15) && istype(M, /mob/living/carbon/human/grey) && volume >= 30)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.species.name=="Grey")
|
||||
..()
|
||||
return // Greys lurve dem some sacid
|
||||
|
||||
var/datum/organ/external/affecting = H.get_organ("head")
|
||||
if(affecting)
|
||||
if(affecting.take_damage(25, 0))
|
||||
@@ -838,6 +880,11 @@ datum
|
||||
M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl
|
||||
else
|
||||
if(!M.unacidable)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/grey/H = M
|
||||
if(H.species.name=="Grey")
|
||||
..()
|
||||
return // Greys lurve dem some sacid
|
||||
M.take_organ_damage(min(15, volume * 2))
|
||||
|
||||
reaction_obj(var/obj/O, var/volume)
|
||||
|
||||
Reference in New Issue
Block a user