mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 22:42:26 +01:00
Xenomorphs fixes and improvements (#3548)
This pr makes xenomorphs less awful via some additions and porting some fixes: -removes the NO_MINOR_CUT that is not used anywhere and replace with NO_EMBED that stops things from embedding into mobs, like xenomorphs, shadow people and golems -adds the night vision verbs to xenomorphs -fixes aliens eggs layers behind under their weeds -fixes some hud things missing -makes their limbs unbreakable This should make them a bit less buggy.
This commit is contained in:
@@ -261,7 +261,6 @@
|
||||
/*
|
||||
This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed,
|
||||
and the english syllables had to be duplicated so that there is roughly a 50-50 weighting.
|
||||
|
||||
Sources:
|
||||
http://www.sttmedia.com/syllablefrequency-english
|
||||
http://www.chinahighlights.com/travelguide/learning-chinese/pinyin-syllables.htm
|
||||
|
||||
@@ -26,7 +26,7 @@ emp_act
|
||||
return 100
|
||||
|
||||
//Shrapnel
|
||||
if(P.can_embed())
|
||||
if(!(species.flags & NO_EMBED) && P.can_embed())
|
||||
var/armor = getarmor_organ(organ, "bullet")
|
||||
if(prob(20 + max(P.damage - armor, -10)))
|
||||
var/obj/item/weapon/SP = new P.shrapnel_type()
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
remains_type = /obj/effect/decal/cleanable/ash
|
||||
death_message = "dissolves into ash..."
|
||||
|
||||
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_MINOR_CUT
|
||||
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_EMBED
|
||||
spawn_flags = IS_RESTRICTED
|
||||
|
||||
vision_flags = DEFAULT_SIGHT | SEE_MOBS
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
breath_type = null
|
||||
poison_type = null
|
||||
|
||||
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_MINOR_CUT
|
||||
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_EMBED
|
||||
spawn_flags = IS_RESTRICTED
|
||||
|
||||
has_limbs = list(
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
flesh_color = "#551A8B"
|
||||
|
||||
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_MINOR_CUT
|
||||
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE
|
||||
spawn_flags = IS_RESTRICTED
|
||||
|
||||
stamina = 500 //Tireless automatons
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
poison_type = "oxygen"
|
||||
siemens_coefficient = 0.2
|
||||
|
||||
flags = NO_SCAN | NO_MINOR_CUT
|
||||
flags = NO_SCAN
|
||||
spawn_flags = IS_RESTRICTED
|
||||
appearance_flags = HAS_EYE_COLOR
|
||||
|
||||
|
||||
@@ -8,18 +8,18 @@
|
||||
|
||||
language = "Ceti Basic"
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch)
|
||||
flags = NO_BREATHE | NO_PAIN | NO_BLOOD | NO_SCAN | NO_POISON | NO_MINOR_CUT
|
||||
flags = NO_BREATHE | NO_PAIN | NO_BLOOD | NO_SCAN | NO_POISON | NO_EMBED
|
||||
spawn_flags = IS_RESTRICTED
|
||||
siemens_coefficient = 0
|
||||
rarity_value = 5
|
||||
|
||||
|
||||
ethanol_resistance = -1
|
||||
taste_sensitivity = TASTE_NUMB
|
||||
|
||||
|
||||
brute_mod = 0.5
|
||||
slowdown = 1
|
||||
virus_immune = 1
|
||||
|
||||
|
||||
warning_low_pressure = 50 //golems can into space now
|
||||
hazard_low_pressure = 0
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
language = null //todo?
|
||||
unarmed_types = list(/datum/unarmed_attack/slime_glomp)
|
||||
flags = NO_SCAN | NO_SLIP | NO_BREATHE | NO_MINOR_CUT
|
||||
flags = NO_SCAN | NO_SLIP | NO_BREATHE | NO_EMBED
|
||||
spawn_flags = IS_RESTRICTED
|
||||
siemens_coefficient = 3 //conductive
|
||||
darksight = 3
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
|
||||
body_temperature = T0C + 15 //make the plant people have a bit lower body temperature, why not
|
||||
|
||||
flags = NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_PAIN | NO_SLIP | NO_MINOR_CUT
|
||||
flags = NO_BREATHE | NO_SCAN | IS_PLANT | NO_BLOOD | NO_PAIN | NO_SLIP
|
||||
appearance_flags = 0
|
||||
spawn_flags = CAN_JOIN | IS_WHITELISTED
|
||||
|
||||
@@ -449,7 +449,7 @@
|
||||
body_temperature = null
|
||||
passive_temp_gain = 10 // This should cause IPCs to stabilize at ~80 C in a 20 C environment.
|
||||
|
||||
flags = NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | NO_POISON | NO_MINOR_CUT
|
||||
flags = NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | NO_POISON
|
||||
appearance_flags = HAS_SKIN_COLOR | HAS_HAIR_COLOR
|
||||
spawn_flags = CAN_JOIN | IS_WHITELISTED
|
||||
|
||||
@@ -675,7 +675,7 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
heat_level_1 = 330 //Default 360
|
||||
heat_level_2 = 380 //Default 400
|
||||
heat_level_3 = 600 //Default 1000
|
||||
flags = NO_SLIP | NO_MINOR_CUT
|
||||
flags = NO_SLIP
|
||||
spawn_flags = CAN_JOIN | IS_WHITELISTED
|
||||
appearance_flags = HAS_SKIN_COLOR
|
||||
blood_color = "#E6E600" // dark yellow
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
stamina_recovery = 3
|
||||
|
||||
spawn_flags = IS_RESTRICTED
|
||||
flags = NO_SCAN | NO_SLIP | NO_MINOR_CUT
|
||||
flags = NO_SCAN | NO_SLIP
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/bugbite,
|
||||
|
||||
@@ -173,25 +173,8 @@
|
||||
|
||||
visible_message("<span class='warning'>[src] spits neurotoxin at [target]!</span>", "<span class='alium'>You spit neurotoxin at [target].</span>")
|
||||
|
||||
//I'm not motivated enough to revise this. Prjectile code in general needs update.
|
||||
// Maybe change this to use throw_at? ~ Z
|
||||
var/turf/T = loc
|
||||
var/turf/U = (istype(target, /atom/movable) ? target.loc : target)
|
||||
|
||||
if(!U || !T)
|
||||
return
|
||||
while(U && !istype(U,/turf))
|
||||
U = U.loc
|
||||
if(!istype(T, /turf))
|
||||
return
|
||||
if (U == T)
|
||||
usr.bullet_act(new /obj/item/projectile/energy/neurotoxin(usr.loc), get_organ_target())
|
||||
return
|
||||
if(!istype(U, /turf))
|
||||
return
|
||||
|
||||
var/obj/item/projectile/energy/neurotoxin/A = new /obj/item/projectile/energy/neurotoxin(usr.loc)
|
||||
A.launch(target, get_organ_target())
|
||||
A.launch(target,get_organ_target())
|
||||
|
||||
/mob/living/carbon/human/proc/resin() // -- TLE
|
||||
set name = "Secrete Resin (75)"
|
||||
|
||||
@@ -17,6 +17,20 @@
|
||||
mob_size = 14
|
||||
fall_mod = 0
|
||||
|
||||
has_limbs = list(
|
||||
"chest" = list("path" = /obj/item/organ/external/chest/unbreakable),
|
||||
"groin" = list("path" = /obj/item/organ/external/groin/unbreakable),
|
||||
"head" = list("path" = /obj/item/organ/external/head/unbreakable),
|
||||
"l_arm" = list("path" = /obj/item/organ/external/arm/unbreakable),
|
||||
"r_arm" = list("path" = /obj/item/organ/external/arm/right/unbreakable),
|
||||
"l_leg" = list("path" = /obj/item/organ/external/leg/unbreakable),
|
||||
"r_leg" = list("path" = /obj/item/organ/external/leg/right/unbreakable),
|
||||
"l_hand" = list("path" = /obj/item/organ/external/hand/unbreakable),
|
||||
"r_hand" = list("path" = /obj/item/organ/external/hand/right/unbreakable),
|
||||
"l_foot" = list("path" = /obj/item/organ/external/foot/unbreakable),
|
||||
"r_foot" = list("path" = /obj/item/organ/external/foot/right/unbreakable)
|
||||
)
|
||||
|
||||
eyes = "blank_eyes"
|
||||
|
||||
stamina = 175
|
||||
@@ -27,7 +41,7 @@
|
||||
virus_immune = 1
|
||||
|
||||
brute_mod = 0.25 // Hardened carapace.
|
||||
burn_mod = 2 // Weak to fire.
|
||||
burn_mod = 1.75 // Weak to fire.
|
||||
|
||||
warning_low_pressure = 50
|
||||
hazard_low_pressure = -1
|
||||
@@ -36,7 +50,7 @@
|
||||
cold_level_2 = -1
|
||||
cold_level_3 = -1
|
||||
|
||||
flags = NO_BREATHE | NO_SCAN | NO_PAIN | NO_SLIP | NO_POISON | NO_MINOR_CUT
|
||||
flags = NO_BREATHE | NO_SCAN | NO_PAIN | NO_SLIP | NO_POISON | NO_EMBED
|
||||
spawn_flags = IS_RESTRICTED
|
||||
|
||||
reagent_tag = IS_XENOS
|
||||
@@ -56,6 +70,8 @@
|
||||
|
||||
vision_flags = DEFAULT_SIGHT | SEE_MOBS
|
||||
|
||||
darksight = 8
|
||||
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/heart,
|
||||
"brain" = /obj/item/organ/brain/xeno,
|
||||
@@ -180,7 +196,8 @@
|
||||
/mob/living/carbon/human/proc/transfer_plasma,
|
||||
/mob/living/carbon/human/proc/evolve,
|
||||
/mob/living/carbon/human/proc/resin,
|
||||
/mob/living/carbon/human/proc/corrosive_acid
|
||||
/mob/living/carbon/human/proc/corrosive_acid,
|
||||
/mob/living/carbon/human/proc/darkness_eyes
|
||||
)
|
||||
|
||||
/datum/species/xenos/drone/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
@@ -222,7 +239,8 @@
|
||||
/mob/living/carbon/human/proc/leap,
|
||||
/mob/living/carbon/human/proc/psychic_whisper,
|
||||
/mob/living/proc/devour,
|
||||
/mob/living/carbon/human/proc/regurgitate
|
||||
/mob/living/carbon/human/proc/regurgitate,
|
||||
/mob/living/carbon/human/proc/darkness_eyes
|
||||
)
|
||||
|
||||
/datum/species/xenos/sentinel
|
||||
@@ -252,7 +270,8 @@
|
||||
/mob/living/carbon/human/proc/regurgitate,
|
||||
/mob/living/carbon/human/proc/transfer_plasma,
|
||||
/mob/living/carbon/human/proc/corrosive_acid,
|
||||
/mob/living/carbon/human/proc/neurotoxin
|
||||
/mob/living/carbon/human/proc/neurotoxin,
|
||||
/mob/living/carbon/human/proc/darkness_eyes
|
||||
)
|
||||
|
||||
/datum/species/xenos/queen
|
||||
@@ -291,7 +310,8 @@
|
||||
/mob/living/carbon/human/proc/corrosive_acid,
|
||||
/mob/living/carbon/human/proc/neurotoxin,
|
||||
/mob/living/carbon/human/proc/resin,
|
||||
/mob/living/carbon/human/proc/xeno_infest
|
||||
/mob/living/carbon/human/proc/xeno_infest,
|
||||
/mob/living/carbon/human/proc/darkness_eyes
|
||||
)
|
||||
|
||||
/datum/species/xenos/queen/handle_login_special(var/mob/living/carbon/human/H)
|
||||
|
||||
@@ -996,6 +996,8 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
/obj/item/organ/external/proc/embed(var/obj/item/weapon/W, var/silent = 0, var/supplied_message)
|
||||
if(!owner || loc != owner)
|
||||
return
|
||||
if(species.flags & NO_EMBED)
|
||||
return
|
||||
if(!silent)
|
||||
if(supplied_message)
|
||||
owner.visible_message("<span class='danger'>[supplied_message]</span>")
|
||||
|
||||
Reference in New Issue
Block a user