diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm
index c9b68f9cfe..8cdeb690e4 100644
--- a/code/game/objects/effects/alien/aliens.dm
+++ b/code/game/objects/effects/alien/aliens.dm
@@ -1,7 +1,6 @@
/* Alien Effects!
* Contains:
* effect/alien
- * Resin
* Weeds
* Acid
*/
@@ -14,139 +13,6 @@
desc = "theres something alien about this"
icon = 'icons/mob/alien.dmi'
-/*
- * Resin
- */
-/obj/effect/alien/resin
- name = "resin"
- desc = "Looks like some kind of slimy growth."
- icon_state = "resin"
-
- density = TRUE
- opacity = 1
- anchored = TRUE
- can_atmos_pass = ATMOS_PASS_NO
- var/health = 200
- //var/mob/living/affecting = null
-
-/obj/effect/alien/resin/wall
- name = "resin wall"
- desc = "Purple slime solidified into a wall."
- icon_state = "resinwall" //same as resin, but consistency ho!
-
-/obj/effect/alien/resin/membrane
- name = "resin membrane"
- desc = "Purple slime just thin enough to let light pass through."
- icon_state = "resinmembrane"
- opacity = 0
- health = 120
-
-/obj/effect/alien/resin/New()
- ..()
- var/turf/T = get_turf(src)
- T.thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
-
-/obj/effect/alien/resin/Destroy()
- var/turf/T = get_turf(src)
- T.thermal_conductivity = initial(T.thermal_conductivity)
- ..()
-
-/obj/effect/alien/resin/proc/healthcheck()
- if(health <=0)
- density = FALSE
- qdel(src)
- return
-
-/obj/effect/alien/resin/bullet_act(var/obj/item/projectile/Proj)
- health -= Proj.damage
- ..()
- healthcheck()
- return
-
-/obj/effect/alien/resin/attack_generic(var/mob/user, var/damage, var/attack_verb)
- visible_message("[user] [attack_verb] the [src]!")
- playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
- user.do_attack_animation(src)
- health -= damage
- healthcheck()
- return
-
-/obj/effect/alien/resin/take_damage(var/damage)
- health -= damage
- healthcheck()
- return
-
-/obj/effect/alien/resin/ex_act(severity)
- switch(severity)
- if(1.0)
- health-=50
- if(2.0)
- health-=50
- if(3.0)
- if (prob(50))
- health-=50
- else
- health-=25
- healthcheck()
- return
-
-/obj/effect/alien/resin/hitby(AM as mob|obj)
- ..()
- for(var/mob/O in viewers(src, null))
- O.show_message("[src] was hit by [AM].", 1)
- var/tforce = 0
- if(ismob(AM))
- tforce = 10
- else
- tforce = AM:throwforce
- playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
- health = max(0, health - tforce)
- healthcheck()
- ..()
- return
-
-/obj/effect/alien/resin/attack_hand()
- usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
- if (HULK in usr.mutations)
- to_chat(usr, "You easily destroy the [name].")
- for(var/mob/O in oviewers(src))
- O.show_message("[usr] destroys the [name]!", 1)
- health = 0
- else
-
- // Aliens can get straight through these.
- if(istype(usr,/mob/living/carbon))
- var/mob/living/carbon/M = usr
- if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
- for(var/mob/O in oviewers(src))
- O.show_message("[usr] strokes the [name] and it melts away!", 1)
- health = 0
- healthcheck()
- return
-
- to_chat(usr, "You claw at the [name].")
- for(var/mob/O in oviewers(src))
- O.show_message("[usr] claws at the [name]!", 1)
- health -= rand(5,10)
- healthcheck()
- return
-
-/obj/effect/alien/resin/attackby(obj/item/weapon/W as obj, mob/user as mob)
-
- user.setClickCooldown(user.get_attack_speed(W))
- var/aforce = W.force
- health = max(0, health - aforce)
- playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
- healthcheck()
- ..()
- return
-
-/obj/effect/alien/resin/CanPass(atom/movable/mover, turf/target)
- if(istype(mover) && mover.checkpass(PASSGLASS))
- return !opacity
- return !density
-
-
/*
* Weeds
*/
diff --git a/code/game/objects/structures/alien/alien egg.dm b/code/game/objects/structures/alien/alien egg.dm
index 7ca4bd37b7..eebdbb9969 100644
--- a/code/game/objects/structures/alien/alien egg.dm
+++ b/code/game/objects/structures/alien/alien egg.dm
@@ -4,8 +4,7 @@
desc = "It looks like a weird egg."
name = "egg"
icon_state = "egg_growing"
- density = 0
- anchored = 1
+ density = FALSE
var/progress = 0
/obj/structure/alien/egg/Initialize()
diff --git a/code/game/objects/structures/alien/alien.dm b/code/game/objects/structures/alien/alien.dm
index 6aa1ec5060..77945491f7 100644
--- a/code/game/objects/structures/alien/alien.dm
+++ b/code/game/objects/structures/alien/alien.dm
@@ -1,10 +1,11 @@
-/obj/structure/alien //Gurg Addition, framework for alien eggs.
+/obj/structure/alien //Gurg Addition, framework for alien eggs and structures.
name = "alien thing"
desc = "There's something alien about this."
icon = 'icons/mob/alien.dmi'
layer = ABOVE_JUNK_LAYER
var/health = 50
unacidable = TRUE
+ anchored = TRUE
/obj/structure/alien/proc/healthcheck()
if(health <=0)
@@ -46,16 +47,45 @@
..()
return
-/obj/structure/alien/attack_generic()
- attack_hand(usr)
+/obj/structure/alien/attack_generic(var/mob/user, var/damage, var/attack_verb)
+ visible_message("[user] [attack_verb] the [src]!")
+ playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
+ user.do_attack_animation(src)
+ health -= damage
+ healthcheck()
+ return
-/obj/structure/alien/attackby(var/obj/item/weapon/W, var/mob/user)
- health = max(0, health - W.force)
- playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
+/obj/structure/alien/attackby(obj/item/weapon/W as obj, mob/user as mob)
+
+ user.setClickCooldown(user.get_attack_speed(W))
+ var/aforce = W.force
+ health = max(0, health - aforce)
+ playsound(src, 'sound/effects/attackblob.ogg', 100, 1)
+ visible_message("[user] attacks the [src]!")
healthcheck()
..()
return
+/obj/structure/alien/attack_hand()
+ usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
+ if (HULK in usr.mutations)
+ visible_message("[usr] destroys the [name]!")
+ health = 0
+ else
+
+ // Aliens can get straight through these.
+ if(istype(usr,/mob/living/carbon))
+ var/mob/living/carbon/M = usr
+ if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
+ visible_message ("[usr] strokes the [name] and it melts away!", 1)
+ health = 0
+ healthcheck()
+ return
+ visible_message("[usr] claws at the [name]!")
+ health -= rand(5,10)
+ healthcheck()
+ return
+
/obj/structure/alien/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group) return 0
if(istype(mover) && mover.checkpass(PASSGLASS))
diff --git a/code/game/objects/structures/alien/resin structures.dm b/code/game/objects/structures/alien/resin structures.dm
new file mode 100644
index 0000000000..b3326b8dd2
--- /dev/null
+++ b/code/game/objects/structures/alien/resin structures.dm
@@ -0,0 +1,17 @@
+/obj/structure/alien/wall
+ name = "resin wall"
+ desc = "A disgusting mass of purple slime solidified into a wall."
+ icon_state = "resin wall"
+ health = 200
+ opacity = 1
+ density = TRUE
+ can_atmos_pass = ATMOS_PASS_NO
+
+/obj/structure/alien/membrane
+ name = "resin membrane"
+ desc = "A revolting mass of purple slime, it appears to be stretched enough to be transparent."
+ icon_state = "resin membrane"
+ opacity = 0
+ health = 120
+ density = TRUE
+ can_atmos_pass = ATMOS_PASS_NO
diff --git a/code/modules/materials/materials/organic/resin.dm b/code/modules/materials/materials/organic/resin.dm
index a42735627a..a1d66e4eb0 100644
--- a/code/modules/materials/materials/organic/resin.dm
+++ b/code/modules/materials/materials/organic/resin.dm
@@ -35,11 +35,11 @@
/datum/material/resin/generate_recipes()
recipes = list(
new /datum/stack_recipe("[display_name] door", /obj/structure/simple_door/resin, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE),
- new /datum/stack_recipe("[display_name] barricade", /obj/effect/alien/resin/wall, 5, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]"),
+ new /datum/stack_recipe("[display_name] barricade", /obj/structure/alien/wall, 5, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]"),
new /datum/stack_recipe("[display_name] nest", /obj/structure/bed/nest, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE),
new /datum/stack_recipe("[display_name] wall girders", /obj/structure/girder/resin, 2, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE),
new /datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
new /datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE),
- new /datum/stack_recipe("[display_name] membrane", /obj/effect/alien/resin/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
+ new /datum/stack_recipe("[display_name] membrane", /obj/structure/alien/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
new /datum/stack_recipe("[display_name] node", /obj/effect/alien/weeds/node, 1, time = 4 SECONDS, recycle_material = "[name]")
)
\ No newline at end of file
diff --git a/code/modules/mob/_modifiers/traits_phobias.dm b/code/modules/mob/_modifiers/traits_phobias.dm
index 87f8ecc446..d8bd08a549 100644
--- a/code/modules/mob/_modifiers/traits_phobias.dm
+++ b/code/modules/mob/_modifiers/traits_phobias.dm
@@ -415,7 +415,10 @@
if(istype(thing, /obj/structure/blob)) // blobs are uncomfortable things
fear_amount += 3
- if(istype(thing, /obj/effect/alien/resin)) // Resin's a bit slimy according to its own description.
+ if(istype(thing, /obj/structure/alien)) // Pretty much anything made by xenos are slimey in some way.
+ fear_amount += 1
+
+ if(istype(thing, /obj/effect/alien/weeds)) // Disgusting slimey carpet.
fear_amount += 1
if(istype(thing, /obj/item/weed_extract))
diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
index e8751bce1b..5007cb8b41 100644
--- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
+++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm
@@ -225,36 +225,53 @@
spit_name = "acid"
to_chat(src, "You prepare to spit acid.")
-/mob/living/carbon/human/proc/resin() // -- TLE
+/mob/living/carbon/human/proc/resin() //Gurgs : Refactored resin ability, big thanks to Jon.
set name = "Secrete Resin (75)"
set desc = "Secrete tough malleable resin."
set category = "Abilities"
- var/choice = tgui_input_list(usr, "Choose what you wish to shape.","Resin building", list("resin door","resin wall","resin membrane","resin nest","resin blob")) //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist
- if(!choice)
- return
+ var/list/options = list("resin door","resin wall","resin membrane","nest","resin blob")
+ for(var/option in options)
+ LAZYSET(options, option, new /image('icons/mob/alien.dmi', option)) // based off 'icons/effects/thinktank_labels.dmi'
- if(!check_alien_ability(75,1,O_RESIN))
- return
+ var/choice = show_radial_menu(src, src, options, radius = 42, require_near = TRUE)
- visible_message("[src] vomits up a thick purple substance and begins to shape it!", "You shape a [choice].")
+ if(!choice || QDELETED(src) || src.incapacitated())
+ return FALSE
+ var/targetLoc = get_step(src, dir)
+
+ if(iswall(targetLoc))
+ targetLoc = get_turf(src)
+
var/obj/O
switch(choice)
if("resin door")
- O = new /obj/structure/simple_door/resin(loc)
+ if(!check_alien_ability(75,1,O_RESIN))
+ return
+ else O = new /obj/structure/simple_door/resin(targetLoc)
if("resin wall")
- O = new /obj/effect/alien/resin/wall(loc)
+ if(!check_alien_ability(75,1,O_RESIN))
+ return
+ else O = new /obj/structure/alien/wall(targetLoc)
if("resin membrane")
- O = new /obj/effect/alien/resin/membrane(loc)
- if("resin nest")
- O = new /obj/structure/bed/nest(loc)
+ if(!check_alien_ability(75,1,O_RESIN))
+ return
+ else O = new /obj/structure/alien/membrane(targetLoc)
+ if("nest")
+ if(!check_alien_ability(75,1,O_RESIN))
+ return
+ else O = new /obj/structure/bed/nest(targetLoc)
if("resin blob")
- O = new /obj/item/stack/material/resin(loc)
+ if(!check_alien_ability(75,1,O_RESIN))
+ return
+ else O = new /obj/item/stack/material/resin(targetLoc)
if(O)
+ visible_message("[src] vomits up a thick purple substance and begins to shape it!", "You shape a [choice].")
O.color = "#321D37"
+ playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
return
diff --git a/maps/overmap/example_sector2.dmm b/maps/overmap/example_sector2.dmm
index 16ee3cc6a9..e84bc1e9da 100644
--- a/maps/overmap/example_sector2.dmm
+++ b/maps/overmap/example_sector2.dmm
@@ -110,7 +110,7 @@
"cf" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor,/area/mine/abandoned)
"cg" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"ch" = (/obj/effect/decal/remains/human,/turf/simulated/floor{icon_state = "green"; dir = 8},/area/mine/abandoned)
-"ci" = (/obj/effect/alien/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"ci" = (/obj/item/stack/material/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
"cj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned)
"ck" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/abandoned)
"cl" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
diff --git a/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm b/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm
index 5042974f3c..cacdec03ca 100644
--- a/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm
+++ b/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm
@@ -5,11 +5,11 @@
"f" = (
/obj/structure/grille/broken,
/obj/effect/alien/weeds,
-/obj/effect/alien/resin/membrane,
+/obj/structure/alien/membrane,
/turf/simulated/floor/airless,
/area/submap/debrisfield/misc_debris)
"h" = (
-/obj/effect/alien/resin/wall,
+/obj/structure/alien/wall,
/obj/effect/alien/weeds,
/turf/space,
/area/submap/debrisfield/misc_debris)
@@ -24,7 +24,7 @@
dir = 4
},
/obj/effect/alien/weeds,
-/obj/effect/alien/resin/membrane,
+/obj/structure/alien/membrane,
/turf/simulated/floor/airless,
/area/submap/debrisfield/misc_debris)
"t" = (
@@ -48,7 +48,7 @@
/area/submap/debrisfield/misc_debris)
"D" = (
/obj/effect/alien/weeds,
-/obj/effect/alien/resin/wall,
+/obj/structure/alien/wall,
/turf/simulated/wall/rshull,
/area/submap/debrisfield/misc_debris)
"T" = (
@@ -57,7 +57,7 @@
dir = 8
},
/obj/effect/alien/weeds,
-/obj/effect/alien/resin/membrane,
+/obj/structure/alien/membrane,
/turf/simulated/floor/airless,
/area/submap/debrisfield/misc_debris)
"U" = (
diff --git a/maps/submaps/surface_submaps/mountains/vault4.dmm b/maps/submaps/surface_submaps/mountains/vault4.dmm
index 43939ca317..428e5466e3 100644
--- a/maps/submaps/surface_submaps/mountains/vault4.dmm
+++ b/maps/submaps/surface_submaps/mountains/vault4.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
@@ -20,3 +21,50 @@ abbfedbba
aabbcbbaa
aaaaaaaaa
"}
+||||||| parent of a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"j" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abdeeghba
+aciejeica
+abhgeedba
+abbfedbba
+aabbcbbaa
+aaaaaaaaa
+"}
+=======
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/structure/alien/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+"j" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abdeeghba
+aciejeica
+abhgeedba
+abbfedbba
+aabbcbbaa
+aaaaaaaaa
+"}
+>>>>>>> a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
diff --git a/maps/submaps/surface_submaps/mountains/vault5.dmm b/maps/submaps/surface_submaps/mountains/vault5.dmm
index 19b3a3d910..1d4cf151ba 100644
--- a/maps/submaps/surface_submaps/mountains/vault5.dmm
+++ b/maps/submaps/surface_submaps/mountains/vault5.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
@@ -21,3 +22,52 @@ abbkegbba
aabbcbbaa
aaaaaaaaa
"}
+||||||| parent of a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"i" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abgeeehba
+abiejeiba
+abheeegba
+abbkegbba
+aabbcbbaa
+aaaaaaaaa
+"}
+=======
+"a" = (/turf/template_noop,/area/template_noop)
+"b" = (/obj/structure/alien/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"i" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+
+(1,1,1) = {"
+aaaaaaaaa
+aabbcbbaa
+abbdefbba
+abgeeehba
+abiejeiba
+abheeegba
+abbkegbba
+aabbcbbaa
+aaaaaaaaa
+"}
+>>>>>>> a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
diff --git a/maps/submaps/surface_submaps/wilderness/xenohive.dmm b/maps/submaps/surface_submaps/wilderness/xenohive.dmm
index 838b5933cd..5c87aa1767 100644
--- a/maps/submaps/surface_submaps/wilderness/xenohive.dmm
+++ b/maps/submaps/surface_submaps/wilderness/xenohive.dmm
@@ -10,8 +10,16 @@
"fw" = (/turf/template_noop,/area/submap/XenoHive)
"fG" = (/obj/effect/alien/weeds,/turf/simulated/floor/tiled/steel_dirty,/area/submap/XenoHive)
"fW" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/map_effect/interval/sound_emitter/ballistic_gunfight,/turf/simulated/floor/outdoors/dirt,/area/submap/XenoHive)
+<<<<<<< HEAD
"gO" = (/obj/structure/closet/secure_closet/egg/xenomorph,/obj/effect/alien/weeds,/obj/item/stolenpackage,/obj/item/organ/internal/heart,/obj/item/organ/internal/kidneys/vox,/obj/structure/reagent_dispensers/space_cleaner{pixel_y = 31},/turf/simulated/floor,/area/submap/XenoHive)
"gS" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/ignore_mapgen,/area/template_noop)
+||||||| parent of a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
+"gO" = (/obj/effect/alien/weeds,/obj/item/organ/internal/heart,/obj/item/organ/internal/kidneys/vox,/obj/structure/safe,/obj/random/multiple/gun/projectile/shotgun,/obj/random/contraband,/turf/simulated/floor,/area/submap/XenoHive)
+"gS" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/ignore_mapgen,/area/template_noop)
+=======
+"gO" = (/obj/effect/alien/weeds,/obj/item/organ/internal/heart,/obj/item/organ/internal/kidneys/vox,/obj/structure/safe,/obj/random/multiple/gun/projectile/shotgun,/obj/random/contraband,/turf/simulated/floor,/area/submap/XenoHive)
+"gS" = (/obj/structure/alien/wall,/turf/simulated/mineral/ignore_mapgen,/area/template_noop)
+>>>>>>> a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
"hx" = (/obj/effect/alien/weeds,/obj/machinery/telecomms/broadcaster,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/XenoHive)
"im" = (/obj/item/stack/animalhide/xeno,/obj/effect/alien/weeds,/turf/simulated/floor/outdoors/rocks{outdoors = 0},/area/submap/XenoHive)
"iF" = (/obj/structure/bed/chair{dir = 8},/obj/effect/alien/weeds,/obj/effect/gibspawner/human,/turf/simulated/floor/tiled/steel_dirty,/area/submap/XenoHive)
@@ -42,12 +50,20 @@
"yS" = (/obj/structure/table/steel_reinforced,/obj/effect/alien/weeds,/obj/item/toy/plushie/face_hugger,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/XenoHive)
"zm" = (/obj/item/modular_computer/tablet/preset/custom_loadout/elite,/obj/effect/alien/weeds,/turf/simulated/floor/outdoors/rocks{outdoors = 0},/area/submap/XenoHive)
"zU" = (/obj/structure/salvageable/autolathe,/obj/effect/alien/weeds,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/steel_dirty,/area/submap/XenoHive)
-"AA" = (/obj/effect/alien/resin/wall,/obj/effect/alien/weeds,/turf/simulated/mineral/ignore_mapgen,/area/submap/XenoHive)
-"AB" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/ignore_mapgen,/area/submap/XenoHive)
-"BD" = (/obj/effect/alien/resin/membrane,/obj/effect/alien/weeds,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/XenoHive)
+"AA" = (/obj/structure/alien/wall,/obj/effect/alien/weeds,/turf/simulated/mineral/ignore_mapgen,/area/submap/XenoHive)
+"AB" = (/obj/structure/alien/wall,/turf/simulated/mineral/ignore_mapgen,/area/submap/XenoHive)
+"BD" = (/obj/structure/alien/membrane,/obj/effect/alien/weeds,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/XenoHive)
"Cb" = (/obj/structure/bed/chair,/obj/effect/alien/weeds,/obj/effect/gibspawner/human,/turf/simulated/floor/tiled/steel_dirty,/area/submap/XenoHive)
+<<<<<<< HEAD
"Ce" = (/obj/structure/closet/secure_closet/egg/xenomorph,/obj/effect/alien/weeds,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/item/organ/internal/brain/alraune,/obj/item/organ/internal/eyes/replicant,/obj/item/weapon/gun/energy/gun/fluff/dominator,/turf/simulated/floor,/area/submap/XenoHive)
"CR" = (/obj/effect/alien/resin/wall,/turf/simulated/floor/outdoors/dirt,/area/template_noop)
+||||||| parent of a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
+"Ce" = (/obj/effect/alien/weeds,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/item/organ/internal/eyes/replicant,/obj/structure/safe,/obj/random/multiple/gun/projectile/rifle,/obj/random/contraband,/turf/simulated/floor,/area/submap/XenoHive)
+"CR" = (/obj/effect/alien/resin/wall,/turf/simulated/floor/outdoors/dirt,/area/template_noop)
+=======
+"Ce" = (/obj/effect/alien/weeds,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/item/organ/internal/eyes/replicant,/obj/structure/safe,/obj/random/multiple/gun/projectile/rifle,/obj/random/contraband,/turf/simulated/floor,/area/submap/XenoHive)
+"CR" = (/obj/structure/alien/wall,/turf/simulated/floor/outdoors/dirt,/area/template_noop)
+>>>>>>> a038bece89... Merge pull request #11522 from MisterGrimm/XenomorphOverhaul
"De" = (/obj/effect/alien/weeds,/obj/effect/gibspawner/human,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/XenoHive)
"Dh" = (/mob/living/simple_mob/animal/space/alien/sentinel,/obj/effect/alien/weeds,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/XenoHive)
"Et" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/XenoHive)
@@ -55,7 +71,7 @@
"FV" = (/obj/effect/alien/weeds,/obj/structure/reagent_dispensers/fueltank/high,/turf/simulated/floor,/area/submap/XenoHive)
"Gw" = (/obj/structure/table,/obj/effect/alien/weeds,/obj/item/stack/material/phoron{amount = 10},/turf/simulated/floor,/area/submap/XenoHive)
"Gy" = (/mob/living/simple_mob/animal/space/alien/sentinel,/obj/effect/alien/weeds,/turf/simulated/floor/tiled/steel_dirty,/area/submap/XenoHive)
-"GN" = (/obj/effect/alien/weeds,/obj/effect/alien/resin/membrane,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/XenoHive)
+"GN" = (/obj/effect/alien/weeds,/obj/structure/alien/membrane,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/XenoHive)
"Hr" = (/turf/simulated/floor/outdoors/dirt,/area/template_noop)
"Hu" = (/obj/structure/table/rack/shelf/steel,/obj/effect/alien/weeds,/turf/simulated/floor,/area/submap/XenoHive)
"Hx" = (/obj/item/weapon/portable_destructive_analyzer,/obj/effect/alien/weeds,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/XenoHive)
diff --git a/vorestation.dme b/vorestation.dme
index 31fe972d75..fcb67e00b1 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1584,6 +1584,7 @@
#include "code\game\objects\structures\window_vr.dm"
#include "code\game\objects\structures\alien\alien egg.dm"
#include "code\game\objects\structures\alien\alien.dm"
+#include "code\game\objects\structures\alien\resin structures.dm"
#include "code\game\objects\structures\crates_lockers\__closets.dm"
#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions.dm"
#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions_vr.dm"