Xenomorph Tweaks/Buffs.

This commit is contained in:
Mechoid
2017-09-06 13:37:43 -07:00
parent d2e482d886
commit 98af877b21
14 changed files with 195 additions and 25 deletions
@@ -7,6 +7,7 @@
language = "Hivemind"
maxHealth = 25
health = 25
faction = "xeno"
/mob/living/carbon/alien/larva/New()
..()
@@ -30,6 +30,9 @@
transfer_languages(src, adult)
if(src.faction != "neutral")
adult.faction = src.faction
if(mind)
mind.transfer_to(adult)
if (can_namepick_as_adult)
@@ -38,7 +38,6 @@
if(prob(75))
T.Weaken(rand(0.5,3))
else
src.Weaken(rand(2,4))
failed = 1
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
@@ -57,11 +57,22 @@
damage = 5
shredding = 1
/datum/unarmed_attack/claws/strong/xeno
attack_verb = list("slashed", "gouged", "stabbed")
damage = 10
/datum/unarmed_attack/claws/strong/xeno/queen
attack_verb = list("slashed", "gouged", "stabbed", "gored")
damage = 15
/datum/unarmed_attack/bite/strong
attack_verb = list("mauled")
damage = 8
shredding = 1
/datum/unarmed_attack/bite/strong/xeno
damage = 10
/datum/unarmed_attack/slime_glomp
attack_verb = list("glomped")
attack_noun = list("body")
@@ -18,7 +18,7 @@
I.stored_plasma += amount
I.stored_plasma = max(0,min(I.stored_plasma,I.max_plasma))
/mob/living/carbon/human/proc/check_alien_ability(var/cost,var/needs_foundation,var/needs_organ)
/mob/living/carbon/human/proc/check_alien_ability(var/cost,var/needs_foundation,var/needs_organ) //Returns 1 if the ability is clear for usage.
var/obj/item/organ/internal/xenos/plasmavessel/P = internal_organs_by_name[O_PLASMA]
if(!istype(P))
@@ -161,11 +161,11 @@
return
/mob/living/carbon/human/proc/neurotoxin(mob/target as mob in oview())
set name = "Spit Neurotoxin (50)"
set name = "Spit Neurotoxin (40)"
set desc = "Spits neurotoxin at someone, paralyzing them for a short time if they are not wearing protective gear."
set category = "Abilities"
if(!check_alien_ability(50,0,O_ACID))
if(!check_alien_ability(40,0,O_ACID))
return
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
@@ -179,6 +179,25 @@
A.launch(target)
return
/mob/living/carbon/human/proc/acidspit(mob/target as mob in oview())
set name = "Spit Acid (50)"
set desc = "Spits a blob of acid at someone, burning them if they are not wearing protective gear."
set category = "Abilities"
if(!check_alien_ability(50,0,O_ACID))
return
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
src << "You cannot spit acid in your current state."
return
visible_message("<span class='warning'>[src] spits acid at [target]!</span>", "<span class='alium'>You spit acid at [target].</span>")
var/obj/item/projectile/energy/acid/A = new(get_turf(src))
A.firer = src
A.launch(target)
return
/mob/living/carbon/human/proc/resin() // -- TLE
set name = "Secrete Resin (75)"
set desc = "Secrete tough malleable resin."
@@ -239,7 +258,7 @@
src.visible_message("<span class='danger'>\The [src] leaps at [T]!</span>")
src.throw_at(get_step(get_turf(T),get_turf(src)), 4, 1, src)
playsound(src.loc, 'sound/voice/shriek1.ogg', 50, 1)
playsound(src.loc, 'sound/voice/hiss5.ogg', 50, 1)
sleep(5)
@@ -5,7 +5,7 @@
default_language = "Xenomorph"
language = "Hivemind"
unarmed_types = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong)
unarmed_types = list(/datum/unarmed_attack/claws/strong/xeno, /datum/unarmed_attack/bite/strong/xeno)
hud_type = /datum/hud_data/alien
rarity_value = 3
@@ -160,6 +160,7 @@
H.RemoveInfectionImages()
..()
*/
/datum/species/xenos/drone
name = "Xenomorph Drone"
caste_name = "drone"
@@ -172,13 +173,13 @@
deform = 'icons/mob/human_races/xenos/r_xenos_drone.dmi'
has_organ = list(
O_HEART = /obj/item/organ/internal/heart,
O_BRAIN = /obj/item/organ/internal/brain/xeno,
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel/queen,
O_ACID = /obj/item/organ/internal/xenos/acidgland,
O_HIVE = /obj/item/organ/internal/xenos/hivenode,
O_RESIN = /obj/item/organ/internal/xenos/resinspinner,
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients
O_HEART = /obj/item/organ/internal/heart,
O_BRAIN = /obj/item/organ/internal/brain/xeno,
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel/queen,
O_ACID = /obj/item/organ/internal/xenos/acidgland,
O_HIVE = /obj/item/organ/internal/xenos/hivenode,
O_RESIN = /obj/item/organ/internal/xenos/resinspinner,
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients
)
inherent_verbs = list(
@@ -232,7 +233,7 @@
weeds_plasma_rate = 10
caste_name = "sentinel"
slowdown = 0
total_health = 125
total_health = 200
tail = "xenos_sentinel_tail"
icobase = 'icons/mob/human_races/xenos/r_xenos_sentinel.dmi'
@@ -253,7 +254,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/acidspit
)
/datum/species/xenos/queen
@@ -270,6 +272,8 @@
icobase = 'icons/mob/human_races/xenos/r_xenos_queen.dmi'
deform = 'icons/mob/human_races/xenos/r_xenos_queen.dmi'
unarmed_types = list(/datum/unarmed_attack/claws/strong/xeno/queen, /datum/unarmed_attack/bite/strong/xeno)
has_organ = list(
O_HEART = /obj/item/organ/internal/heart,
O_BRAIN = /obj/item/organ/internal/brain/xeno,
@@ -290,6 +294,7 @@
/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/acidspit,
/mob/living/carbon/human/proc/resin
)
@@ -9,18 +9,20 @@ proc/create_new_xenomorph(var/alien_caste,var/target)
/mob/living/carbon/human/xdrone/New(var/new_loc)
h_style = "Bald"
faction = "xeno"
..(new_loc, "Xenomorph Drone")
/mob/living/carbon/human/xsentinel/New(var/new_loc)
h_style = "Bald"
faction = "xeno"
..(new_loc, "Xenomorph Sentinel")
/mob/living/carbon/human/xhunter/New(var/new_loc)
h_style = "Bald"
faction = "xeno"
..(new_loc, "Xenomorph Hunter")
/mob/living/carbon/human/xqueen/New(var/new_loc)
h_style = "Bald"
faction = "xeno"
..(new_loc, "Xenomorph Queen")
// I feel like we should generalize/condense down all the various icon-rendering antag procs.
@@ -62,7 +62,7 @@
melee_damage_lower = 15
melee_damage_upper = 15
ranged = 1
projectiletype = /obj/item/projectile/neurotox
projectiletype = /obj/item/projectile/energy/neurotoxin/toxic
projectilesound = 'sound/weapons/pierce.ogg'
@@ -77,7 +77,7 @@
melee_damage_upper = 15
ranged = 1
move_to_delay = 3
projectiletype = /obj/item/projectile/neurotox
projectiletype = /obj/item/projectile/energy/neurotoxin/toxic
projectilesound = 'sound/weapons/pierce.ogg'
rapid = 1
status_flags = 0
@@ -92,10 +92,6 @@
maxHealth = 400
health = 400
/obj/item/projectile/neurotox
damage = 30
icon_state = "toxin"
/mob/living/simple_animal/hostile/alien/death()
..()
visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...")
+18 -2
View File
@@ -111,13 +111,29 @@
name = "largebolt"
damage = 20
/obj/item/projectile/energy/acid //Slightly up-gunned (Read: The thing does agony and checks bio resist) variant of the simple alien mob's projectile, for queens and sentinels.
name = "acidic spit"
icon_state = "neurotoxin"
damage = 30
damage_type = BURN
agony = 10
check_armour = "bio"
/obj/item/projectile/energy/neurotoxin
name = "neuro"
name = "neurotoxic spit"
icon_state = "neurotoxin"
damage = 5
damage_type = TOX
weaken = 5
agony = 80
check_armour = "bio"
/obj/item/projectile/energy/neurotoxin/toxic //New alien mob projectile to match the player-variant's projectiles.
name = "neurotoxic spit"
icon_state = "neurotoxin"
damage = 20
damage_type = TOX
agony = 20
check_armour = "bio"
/obj/item/projectile/energy/phoron
name = "phoron bolt"
+12
View File
@@ -159,6 +159,18 @@
return ..()
/obj/structure/table/attack_hand(mob/user as mob)
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/X = user
if(istype(X.species, /datum/species/xenos))
src.attack_alien(user)
return
..()
/obj/structure/table/attack_alien(mob/user as mob)
visible_message("<span class='danger'>\The [user] tears apart \the [src]!</span>")
src.break_to_parts()
/obj/structure/table/MouseDrop_T(obj/item/stack/material/what)
if(can_reinforce && isliving(usr) && (!usr.stat) && istype(what) && usr.get_active_hand() == what && Adjacent(usr))
reinforce_table(what, usr)