diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm
index e046056abc7..bcc7684a474 100644
--- a/code/game/objects/effects/aliens.dm
+++ b/code/game/objects/effects/aliens.dm
@@ -309,6 +309,7 @@
anchored = 1
var/health = 100
var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive
+ layer = MOB_LAYER
/obj/structure/alien/egg/New()
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 8ed0e47dd22..c3f7d22fe8a 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -194,9 +194,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
if (loc == user)
if(!user.unEquip(src))
return
- else
- if(isliving(loc))
- return
+
pickup(user)
add_fingerprint(user)
user.put_in_active_hand(src)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
index f4e62fdaf7c..46899474a5a 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
@@ -1,8 +1,8 @@
/mob/living/carbon/alien/humanoid/hunter
name = "alien hunter"
caste = "h"
- maxHealth = 150
- health = 150
+ maxHealth = 125
+ health = 125
icon_state = "alienh_s"
/mob/living/carbon/alien/humanoid/hunter/New()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
index 9194dafe2b6..aa86fe90a52 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
@@ -1,8 +1,8 @@
/mob/living/carbon/alien/humanoid/sentinel
name = "alien sentinel"
caste = "s"
- maxHealth = 125
- health = 125
+ maxHealth = 150
+ health = 150
icon_state = "aliens_s"
@@ -35,4 +35,3 @@
/mob/living/carbon/alien/humanoid/sentinel/movement_delay()
. = ..()
- . += 1
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm
index 3bc9e44a910..3f9cb657498 100644
--- a/code/modules/mob/living/carbon/alien/larva/powers.dm
+++ b/code/modules/mob/living/carbon/alien/larva/powers.dm
@@ -40,9 +40,9 @@
if(L.amount_grown >= L.max_grown) //TODO ~Carn
L << "You are growing into a beautiful alien! It is time to choose a caste."
L << "There are three to choose from:"
- L << "Hunters are strong and agile, able to hunt away from the hive and rapidly move through ventilation shafts. Hunters generate plasma slowly and have low reserves."
- L << "Sentinels are tasked with protecting the hive and are deadly up close and at a range. They are not as physically imposing nor fast as the hunters."
- L << "Drones are the working class, offering the largest plasma storage and generation. They are the only caste which may evolve again, turning into the dreaded alien queen."
+ L << "Hunters are the most agile caste tasked with hunting for hosts. They are faster than a human and can even pounce, but are not much tougher than a drone."
+ L << "Sentinels are tasked with protecting the hive. With their ranged spit, invisibility, and high health, they make formidable guardians and acceptable secondhand hunters."
+ L << "Drones are the weakest and slowest of the castes, but can grow into the queen if there is none, and are vital to maintaining a hive with their resin secretion abilities."
var/alien_caste = alert(L, "Please choose which alien caste you shall belong to.",,"Hunter","Sentinel","Drone")
var/mob/living/carbon/alien/humanoid/new_xeno
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index d4f997ddf7b..8253084dc46 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -19,6 +19,7 @@ var/const/MAX_ACTIVE_TIME = 400
throw_range = 5
tint = 3
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
+ layer = MOB_LAYER
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm
index 30e03e615cb..50616ff5af8 100644
--- a/code/modules/mob/living/carbon/human/human_attackalien.dm
+++ b/code/modules/mob/living/carbon/human/human_attackalien.dm
@@ -7,7 +7,7 @@
if(M.a_intent == "harm")
if (w_uniform)
w_uniform.add_fingerprint(M)
- var/damage = rand(15, 30)
+ var/damage = prob(90) ? 20 : 0
if(!damage)
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1)
visible_message("[M] has lunged at [src]!", \
@@ -21,7 +21,7 @@
"[M] has slashed at [src]!")
apply_damage(damage, BRUTE, affecting, armor_block)
- if (damage >= 25)
+ if (prob(30))
visible_message("[M] has wounded [src]!", \
"[M] has wounded [src]!")
apply_effect(4, WEAKEN, armor_block)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index d765473f1a6..fe134199e80 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -653,7 +653,7 @@
if(!(lying))
M.do_attack_animation(src)
if (prob(85))
- Stun(7)
+ Stun(2)
step(src,get_dir(M,src))
spawn(5)
step(src,get_dir(M,src))
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index ad30be604bf..1b730a52172 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -366,7 +366,7 @@
/mob/living/silicon/attack_alien(mob/living/carbon/alien/humanoid/M)
if(..()) //if harm or disarm intent
- var/damage = rand(10, 20)
+ var/damage = 20
if (prob(90))
add_logs(M, src, "attacked")
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 10c009cbd46..084327a2b75 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -207,9 +207,9 @@
var/mob/living/carbon/attacker = user
user.visible_message("[user] is attempting to devour [affecting]!")
if(istype(user, /mob/living/carbon/alien/humanoid/hunter))
- if(!do_mob(user, affecting)||!do_after(user, 30, target = affecting)) return
+ if(!do_mob(user, affecting, 60)) return
else
- if(!do_mob(user, affecting)||!do_after(user, 100, target = affecting)) return
+ if(!do_mob(user, affecting, 130)) return
user.visible_message("[user] devours [affecting]!")
affecting.loc = user
attacker.stomach_contents.Add(affecting)
diff --git a/html/changelogs/xxalpha-aliums.yml b/html/changelogs/xxalpha-aliums.yml
new file mode 100644
index 00000000000..dededd6093d
--- /dev/null
+++ b/html/changelogs/xxalpha-aliums.yml
@@ -0,0 +1,14 @@
+author: xxalpha
+
+delete-after: True
+
+changes:
+ - bugfix: "Fixed not being able to grab things from storage while inside aliens."
+ - bugfix: "Fixed two progress bars when devouring."
+ - rscadd: "Shields will now block alien hunter pounces."
+ - tweak: "Alien hunters health reduced to 125 from 150. Alien sentinels health increased to 150 from 125."
+ - tweak: "Alien hunters will no longer be transparent when stalking, this ability was given to alien sentinels."
+ - tweak: "Alien slashing now deals constant 20 damage but has a chance to miss."
+ - tweak: "Reduced alien disarm stun duration vs cyborgs, from 7 seconds to 2 seconds."
+ - tweak: "Alien sentinels now move as fast as humans."
+ - tweak: "Facehuggers and alien eggs layers increased to be higher than resin walls."
\ No newline at end of file
diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi
index 0b2c7f8e136..24a4ca0cb63 100644
Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ