diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index a3570d840d..49e03bdbdf 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -80,6 +80,15 @@
#define AI_IDLE 2
#define AI_OFF 3
+#define ENVIRONMENT_SMASH_NONE 0
+
+#define ENVIRONMENT_SMASH_STRUCTURES 1
+
+#define ENVIRONMENT_SMASH_WALLS 2
+
+#define ENVIRONMENT_SMASH_RWALLS 3
+
+
//SNPCs
//AI defines
#define INTERACTING 2
diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm
index 46853995cb..80bae6de89 100644
--- a/code/game/gamemodes/blob/blobs/blob_mobs.dm
+++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm
@@ -91,7 +91,7 @@
melee_damage_lower = 2
melee_damage_upper = 4
obj_damage = 20
- environment_smash = 1
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES
attacktext = "hits"
attack_sound = 'sound/weapons/genhit1.ogg'
movement_type = FLYING
diff --git a/code/game/gamemodes/devil/imp/imp.dm b/code/game/gamemodes/devil/imp/imp.dm
index 602fbf765e..70ed6dfc1d 100644
--- a/code/game/gamemodes/devil/imp/imp.dm
+++ b/code/game/gamemodes/devil/imp/imp.dm
@@ -25,7 +25,7 @@
maxHealth = 200
health = 200
healable = 0
- environment_smash = 1
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES
obj_damage = 40
melee_damage_lower = 10
melee_damage_upper = 15
diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
index 3b315bb668..b2b111dd4f 100644
--- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
+++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm
@@ -83,7 +83,7 @@
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD)
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
attacktext = "shocks"
attack_sound = 'sound/effects/EMPulse.ogg'
friendly = "pinches"
diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
index 53e92c639d..432bdadfff 100644
--- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm
+++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm
@@ -27,7 +27,7 @@
maxHealth = 200
health = 200
healable = 0
- environment_smash = 1
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES
obj_damage = 50
melee_damage_lower = 30
melee_damage_upper = 30
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index cef87fc57d..67b29af1e4 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -24,7 +24,7 @@
melee_damage_lower = 15
melee_damage_upper = 15
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
check_friendly_fire = 1
stop_automated_movement_when_pulled = 1
attacktext = "drills"
diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
index 32db638542..d8ae56e337 100644
--- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
@@ -9,7 +9,7 @@
maxHealth = 100
damage_coeff = list(BRUTE = 0.5, BURN = 0.7, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
obj_damage = 60
- environment_smash = 2 //Walls can't stop THE LAW
+ environment_smash = ENVIRONMENT_SMASH_WALLS //Walls can't stop THE LAW
mob_size = MOB_SIZE_LARGE
radio_key = /obj/item/device/encryptionkey/headset_sec
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index f988fc2477..6fe1c5db53 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -115,7 +115,7 @@
melee_damage_upper = 30
attacktext = "smashes their armored gauntlet into"
speed = 3
- environment_smash = 2
+ environment_smash = ENVIRONMENT_SMASH_WALLS
attack_sound = 'sound/weapons/punch3.ogg'
status_flags = 0
mob_size = MOB_SIZE_LARGE
@@ -126,7 +126,7 @@
/mob/living/simple_animal/hostile/construct/armored/hostile //actually hostile, will move around, hit things
AIStatus = AI_ON
- environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP
/mob/living/simple_animal/hostile/construct/armored/bullet_act(obj/item/projectile/P)
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
@@ -218,7 +218,7 @@
retreat_distance = 10
minimum_distance = 10 //AI artificers will flee like fuck
attacktext = "rams"
- environment_smash = 2
+ environment_smash = ENVIRONMENT_SMASH_WALLS
attack_sound = 'sound/weapons/punch2.ogg'
construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
/obj/effect/proc_holder/spell/aoe_turf/conjure/floor,
@@ -272,7 +272,7 @@
/mob/living/simple_animal/hostile/construct/builder/hostile //actually hostile, will move around, hit things, heal other constructs
AIStatus = AI_ON
- environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP
/////////////////////////////Non-cult Artificer/////////////////////////
/mob/living/simple_animal/hostile/construct/builder/noncult
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 2594700770..e4daeb66d1 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -24,7 +24,7 @@
maxHealth = 40
melee_damage_lower = 1
melee_damage_upper = 2
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
stop_automated_movement_when_pulled = 1
blood_volume = BLOOD_VOLUME_NORMAL
var/obj/item/udder/udder = null
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index 5297391462..8de57f1a85 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -20,7 +20,7 @@
mob_size = MOB_SIZE_SMALL
gold_core_spawnable = 2
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
var/list/edibles = list(/mob/living/simple_animal/butterfly,/mob/living/simple_animal/cockroach) //list of atoms, however turfs won't affect AI, but will affect consumption.
/mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target?
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index cd427ba33c..c20deec780 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -31,7 +31,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
health = INFINITY
healable = FALSE //don't brusepack the guardian
damage_coeff = list(BRUTE = 0.5, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5) //how much damage from each damage type we transfer to the owner
- environment_smash = 1
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES
obj_damage = 40
melee_damage_lower = 15
melee_damage_upper = 15
diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
index 1fa54dfd21..ed21310cd9 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
@@ -71,8 +71,8 @@
melee_damage_upper = 50
armour_penetration = 100
obj_damage = 0
- environment_smash = 0
- new /obj/effect/overlay/temp/guardian/phase/out(get_turf(src))
+ environment_smash = ENVIRONMENT_SMASH_NONE
+ new /obj/effect/temp_visual/guardian/phase/out(get_turf(src))
alpha = 15
if(!forced)
to_chat(src, "You enter stealth, empowering your next attack.")
diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm
index f7c14f336a..37777a5ead 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm
@@ -45,7 +45,7 @@
melee_damage_lower = 0
melee_damage_upper = 0
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
alpha = 45
range = 255
incorporeal_move = 1
diff --git a/code/modules/mob/living/simple_animal/guardian/types/standard.dm b/code/modules/mob/living/simple_animal/guardian/types/standard.dm
index 1d2cfdea6f..72bb57513e 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/standard.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/standard.dm
@@ -4,7 +4,7 @@
melee_damage_upper = 20
obj_damage = 80
next_move_modifier = 0.8 //attacks 20% faster
- environment_smash = 2
+ environment_smash = ENVIRONMENT_SMASH_WALLS
playstyle_string = "As a standard type you have no special abilities, but have a high damage resistance and a powerful attack capable of smashing through walls."
magic_fluff_string = "..And draw the Assistant, faceless and generic, but never to be underestimated."
tech_fluff_string = "Boot sequence complete. Standard combat modules loaded. Holoparasite swarm online."
diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm
index b2cb16efa2..2d511004e7 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien.dm
+++ b/code/modules/mob/living/simple_animal/hostile/alien.dm
@@ -158,7 +158,7 @@
a_intent = INTENT_HELP
friendly = "caresses"
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
gold_core_spawnable = 1
icon_state = "maid"
icon_living = "maid"
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index 51e782b019..6e60f6b958 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -31,7 +31,7 @@
faction = list("hostile")
move_to_delay = 0
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
mouse_opacity = 2
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
mob_size = MOB_SIZE_TINY
diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
index 951589daaf..8fac03970d 100644
--- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm
@@ -8,7 +8,7 @@
icon = 'icons/mob/simple_human.dmi'
icon_state = "paperwizard"
ranged = 1
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
minimum_distance = 3
retreat_distance = 3
obj_damage = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/flan.dm b/code/modules/mob/living/simple_animal/hostile/flan.dm
index c77fff881e..cb581b6ec5 100644
--- a/code/modules/mob/living/simple_animal/hostile/flan.dm
+++ b/code/modules/mob/living/simple_animal/hostile/flan.dm
@@ -8,7 +8,7 @@
icon_living = "flan"
icon_dead = "flan_dead"
turns_per_move = 5
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
speed = -2
maxHealth = 50
health = 50
diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm
index 77b68a936d..5f2c011665 100644
--- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm
+++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm
@@ -17,7 +17,7 @@
robust_searching = 1
stat_attack = 2
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
speak_emote = list("squeaks")
ventcrawler = VENTCRAWLER_ALWAYS
var/datum/mind/origin
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 994dcb96d3..48e756e408 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -2,7 +2,7 @@
faction = list("hostile")
stop_automated_movement_when_pulled = 0
obj_damage = 40
- environment_smash = 1 //Set to 1 to break closets,tables,racks, etc; 2 for walls; 3 for rwalls
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES //Set to 1 to break closets,tables,racks, etc; 2 for walls; 3 for rwalls
var/atom/target
var/ranged = 0
var/rapid = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm
index e09336059c..25ce0fc0ec 100644
--- a/code/modules/mob/living/simple_animal/hostile/illusion.dm
+++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm
@@ -67,7 +67,7 @@
melee_damage_upper = 0
speed = -1
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
/mob/living/simple_animal/hostile/illusion/escape/AttackingTarget()
diff --git a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm
index de1bf0b308..363753ee62 100644
--- a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm
@@ -4,7 +4,7 @@
faction = list("jungle")
weather_immunities = list("acid")
obj_damage = 30
- environment_smash = 2
+ environment_smash = ENVIRONMENT_SMASH_WALLS
minbodytemp = 0
maxbodytemp = 450
response_help = "pokes"
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index a390ecae71..778286475d 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -657,7 +657,7 @@ Difficulty: Very Hard
minbodytemp = 0
maxbodytemp = 1500
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
AIStatus = AI_OFF
stop_automated_movement = 1
var/heal_power = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
index 0a0ff6bdd3..9b8e037d61 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -8,7 +8,7 @@
maxHealth = 1000
a_intent = INTENT_HARM
sentience_type = SENTIENCE_BOSS
- environment_smash = 3
+ environment_smash = ENVIRONMENT_SMASH_RWALLS
obj_damage = 400
light_range = 3
faction = list("mining", "boss")
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index 16df9e4c7a..da45e31d1e 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -203,7 +203,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
if(..())
emote_see = list("aims menacingly")
obj_damage = 0
- environment_smash = 0 //needed? seems weird for them to do so
+ environment_smash = ENVIRONMENT_SMASH_NONE //needed? seems weird for them to do so
ranged = 1
retreat_distance = 1 //just enough to shoot
minimum_distance = 6
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index a68ccc4884..e3e4e37396 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -4,7 +4,7 @@
faction = list("mining")
weather_immunities = list("lava","ash")
obj_damage = 30
- environment_smash = 2
+ environment_smash = ENVIRONMENT_SMASH_WALLS
minbodytemp = 0
maxbodytemp = INFINITY
response_help = "pokes"
@@ -215,7 +215,7 @@
ranged_cooldown = 0
ranged_cooldown_time = 20
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
retreat_distance = 3
minimum_distance = 3
pass_flags = PASSTABLE
@@ -334,7 +334,7 @@
attack_sound = 'sound/weapons/pierce.ogg'
throw_message = "falls right through the strange body of the"
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
pass_flags = PASSTABLE
del_on_death = 1
@@ -595,7 +595,7 @@
aggro_vision_range = 9
idle_vision_range = 5
mob_size = MOB_SIZE_SMALL
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
var/wumbo = 0
var/inflate_cooldown = 0
loot = list(/obj/item/asteroid/fugu_gland{layer = ABOVE_MOB_LAYER})
@@ -640,7 +640,7 @@
minimum_distance = 1
move_to_delay = 6
transform *= 2
- environment_smash = 2
+ environment_smash = ENVIRONMENT_SMASH_WALLS
mob_size = MOB_SIZE_LARGE
speed = 1
addtimer(CALLBACK(src, .proc/Deflate), 100)
@@ -660,7 +660,7 @@
move_to_delay = 2
transform /= 2
inflate_cooldown = 4
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
mob_size = MOB_SIZE_SMALL
speed = 0
@@ -800,11 +800,12 @@
del_on_death = 1
stat_attack = 1
robust_searching = 1
+ var/can_infest_dead = FALSE
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life()
if(isturf(loc))
for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile
- if(H.stat == UNCONSCIOUS)
+ if(H.stat == UNCONSCIOUS || (can_infest_dead && H.stat == DEAD))
infest(H)
..()
@@ -818,6 +819,58 @@
H.forceMove(L)
qdel(src)
+//Advanced Legion is slightly tougher to kill and can raise corpses (revive other legions)
+
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion/advanced
+ stat_attack = 2
+ maxHealth = 120
+ health = 120
+ brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced
+ icon_state = "dwarf_legion"
+
+/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced
+ stat_attack = 2
+ can_infest_dead = TRUE
+
+//Legion that spawns Legions
+
+/mob/living/simple_animal/hostile/spawner/legion
+ name = "legion"
+ desc = "One of many."
+ icon = 'icons/mob/lavaland/dragon.dmi'
+ icon_state = "legion"
+ icon_living = "legion"
+ icon_dead = "legion"
+ health = 450
+ maxHealth = 450
+ max_mobs = 3
+ spawn_time = 200
+ spawn_text = "peels itself off from"
+ melee_damage_lower = 20
+ melee_damage_upper = 20
+ anchored = FALSE
+ AIStatus = AI_ON
+ stop_automated_movement = FALSE
+ wander = TRUE
+ maxbodytemp = INFINITY
+ layer = MOB_LAYER
+ del_on_death = TRUE
+ sentience_type = SENTIENCE_BOSS
+ loot = list(/obj/item/organ/hivelord_core/legion = 3, /obj/effect/mob_spawn/human/corpse/damaged = 5)
+ move_to_delay = 14
+ vision_range = 5
+ aggro_vision_range = 9
+ idle_vision_range = 5
+ speed = 3
+ faction = list("mining")
+ weather_immunities = list("lava","ash")
+ obj_damage = 30
+ environment_smash = ENVIRONMENT_SMASH_STRUCTURES
+ see_in_dark = 8
+ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
+
+//Organ
+
/obj/item/organ/hivelord_core/legion
name = "legion's soul"
desc = "A strange rock that still crackles with power... its \
@@ -871,7 +924,7 @@
speak_chance = 1
turns_per_move = 8
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
move_to_delay = 15
response_help = "pets"
response_disarm = "gently pushes aside"
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index d82a332027..125f96384b 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -20,7 +20,7 @@
attacktext = "chomps"
attack_sound = 'sound/weapons/bite.ogg'
faction = list("mushroom")
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
stat_attack = 2
mouse_opacity = 1
speed = 1
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
index 3eb8e85c93..57d016ae68 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
@@ -22,7 +22,7 @@
faction = list("hostile")
attack_sound = 'sound/weapons/bite.ogg'
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
ventcrawler = VENTCRAWLER_ALWAYS
mob_size = MOB_SIZE_TINY
movement_type = FLYING
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
index f0029af0d3..fb365aeb87 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
@@ -23,7 +23,7 @@
attacktext = "attacks"
attack_sound = 'sound/items/bikehorn.ogg'
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
del_on_death = 1
loot = list(/obj/effect/mob_spawn/human/clown/corpse)
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm
index 4a8c99a111..563c5a3d03 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm
@@ -20,6 +20,6 @@
attacktext = "hits"
attack_sound = 'sound/weapons/punch1.ogg'
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
del_on_death = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm
index 3f4267e164..b990b28ba5 100644
--- a/code/modules/mob/living/simple_animal/hostile/stickman.dm
+++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm
@@ -14,7 +14,7 @@
speed = 0
stat_attack = 1
robust_searching = 1
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
maxHealth = 100
health = 100
harm_intent_damage = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
index 20724fe179..b7b8b5aa85 100644
--- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
@@ -131,7 +131,7 @@
minimum_distance = 10
retreat_distance = 10
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
/mob/living/simple_animal/hostile/syndicate/civilian/Aggro()
..()
@@ -150,7 +150,7 @@
melee_damage_lower = 15
melee_damage_upper = 15
obj_damage = 0
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
attacktext = "cuts"
attack_sound = 'sound/weapons/bladeslice.ogg'
faction = list("syndicate")
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 831058a284..dfa5be37d5 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -51,7 +51,7 @@
var/attacktext = "attacks"
var/attack_sound = null
var/friendly = "nuzzles" //If the mob does no damage with it's attack
- var/environment_smash = 0 //Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls
+ var/environment_smash = ENVIRONMENT_SMASH_NONE //Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls
var/speed = 1 //LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster
diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm
index aa28f2402c..72e7b5bb3f 100644
--- a/code/modules/shuttle/special.dm
+++ b/code/modules/shuttle/special.dm
@@ -254,7 +254,7 @@
/mob/living/simple_animal/hostile/bear/fightpit
name = "fight pit bear"
desc = "This bear's trained through ancient Russian secrets to fear the walls of its glass prison."
- environment_smash = 0
+ environment_smash = ENVIRONMENT_SMASH_NONE
/obj/effect/decal/hammerandsickle
name = "hammer and sickle"
diff --git a/icons/mob/lavaland/dragon.dmi b/icons/mob/lavaland/dragon.dmi
index 911d7288d1..2a5e20a671 100644
Binary files a/icons/mob/lavaland/dragon.dmi and b/icons/mob/lavaland/dragon.dmi differ
diff --git a/icons/mob/lavaland/lavaland_monsters.dmi b/icons/mob/lavaland/lavaland_monsters.dmi
index c45d49fdc5..7c41752024 100644
Binary files a/icons/mob/lavaland/lavaland_monsters.dmi and b/icons/mob/lavaland/lavaland_monsters.dmi differ