diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm index 827737cf92..675b01563a 100644 --- a/code/__defines/gamemode.dm +++ b/code/__defines/gamemode.dm @@ -63,7 +63,6 @@ var/list/be_special_flags = list( // Mode/antag template macros. #define MODE_BORER "borer" -#define MODE_XENOMORPH "xeno" #define MODE_LOYALIST "loyalist" #define MODE_MUTINEER "mutineer" #define MODE_COMMANDO "commando" diff --git a/code/game/antagonist/alien/borer.dm b/code/game/antagonist/alien/borer.dm index d0d1183a0d..783055381c 100644 --- a/code/game/antagonist/alien/borer.dm +++ b/code/game/antagonist/alien/borer.dm @@ -1,7 +1,8 @@ -var/datum/antagonist/xenos/borer/borers +var/datum/antagonist/borer/borers -/datum/antagonist/xenos/borer +/datum/antagonist/borer id = MODE_BORER + role_type = BE_ALIEN role_text = "Cortical Borer" role_text_plural = "Cortical Borers" mob_path = /mob/living/simple_animal/borer @@ -10,6 +11,8 @@ var/datum/antagonist/xenos/borer/borers antag_indicator = "brainworm" antaghud_indicator = "hudborer" + flags = ANTAG_OVERRIDE_MOB | ANTAG_RANDSPAWN | ANTAG_OVERRIDE_JOB | ANTAG_VOTABLE + faction_role_text = "Borer Thrall" faction_descriptor = "Unity" faction_welcome = "You are now a thrall to a cortical borer. Please listen to what they have to say; they're in your head." @@ -17,21 +20,26 @@ var/datum/antagonist/xenos/borer/borers initial_spawn_req = 3 initial_spawn_target = 5 -/datum/antagonist/xenos/borer/New() + spawn_announcement = "Unidentified lifesigns detected coming aboard the station. Secure any exterior access, including ducting and ventilation." + spawn_announcement_title = "Lifesign Alert" + spawn_announcement_sound = 'sound/AI/aliens.ogg' + spawn_announcement_delay = 5000 + +/datum/antagonist/borer/New() ..(1) borers = src /datum/antagonist/xenos/borer/get_extra_panel_options(var/datum/mind/player) return "\[put in host\]" -/datum/antagonist/xenos/borer/create_objectives(var/datum/mind/player) +/datum/antagonist/borer/create_objectives(var/datum/mind/player) if(!..()) return player.objectives += new /datum/objective/borer_survive() player.objectives += new /datum/objective/borer_reproduce() player.objectives += new /datum/objective/escape() -/datum/antagonist/xenos/borer/place_mob(var/mob/living/mob) +/datum/antagonist/borer/place_mob(var/mob/living/mob) var/mob/living/simple_animal/borer/borer = mob if(istype(borer)) var/mob/living/carbon/human/host @@ -51,4 +59,16 @@ var/datum/antagonist/xenos/borer/borers borer.host_brain.name = host.name borer.host_brain.real_name = host.real_name return - ..() // Place them at a vent if they can't get a host. + // Place them at a vent if they can't get a host. + borer.forceMove(get_turf(pick(get_vents()))) + +/datum/antagonist/borer/attempt_random_spawn() + if(config.aliens_allowed) ..() + +/datum/antagonist/borer/proc/get_vents() + var/list/vents = list() + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines) + if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels) + if(temp_vent.network.normal_members.len > 50) + vents += temp_vent + return vents \ No newline at end of file diff --git a/code/game/antagonist/alien/xenomorph.dm b/code/game/antagonist/alien/xenomorph.dm deleted file mode 100644 index 08cbeebca9..0000000000 --- a/code/game/antagonist/alien/xenomorph.dm +++ /dev/null @@ -1,47 +0,0 @@ -var/datum/antagonist/xenos/xenomorphs - -/datum/antagonist/xenos - id = MODE_XENOMORPH - role_type = BE_ALIEN - role_text = "Xenomorph" - role_text_plural = "Xenomorphs" - mob_path = /mob/living/carbon/alien/larva - bantype = "Xenomorph" - flags = ANTAG_OVERRIDE_MOB | ANTAG_RANDSPAWN | ANTAG_OVERRIDE_JOB | ANTAG_VOTABLE - welcome_text = "Hiss! You are a larval alien. Hide and bide your time until you are ready to evolve." - antaghud_indicator = "hudalien" - - hard_cap = 5 - hard_cap_round = 8 - initial_spawn_req = 4 - initial_spawn_target = 6 - - spawn_announcement = "Unidentified lifesigns detected coming aboard the station. Secure any exterior access, including ducting and ventilation." - spawn_announcement_title = "Lifesign Alert" - spawn_announcement_sound = 'sound/AI/aliens.ogg' - spawn_announcement_delay = 5000 - -/datum/antagonist/xenos/New(var/no_reference) - ..() - if(!no_reference) - xenomorphs = src - -/datum/antagonist/xenos/attempt_random_spawn() - if(config.aliens_allowed) ..() - -/datum/antagonist/xenos/proc/get_vents() - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines) - if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels) - if(temp_vent.network.normal_members.len > 50) - vents += temp_vent - return vents - -/datum/antagonist/xenos/create_objectives(var/datum/mind/player) - if(!..()) - return - player.objectives += new /datum/objective/survive() - player.objectives += new /datum/objective/escape() - -/datum/antagonist/xenos/place_mob(var/mob/living/player) - player.forceMove(get_turf(pick(get_vents()))) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index c6330e6a20..073383ac20 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -260,7 +260,7 @@ var/global/list/additional_antag_types = list() "artifacts of eldritch horror", "a brain slug infestation", "killer bugs that lay eggs in the husks of the living", - "a deserted transport carrying xenomorph specimens", + "a deserted transport carrying alien specimens", "an emissary for the gestalt requesting a security detail", "a Tajaran slave rebellion", "radical Skrellian transevolutionaries", diff --git a/code/game/gamemodes/mixed/bughunt.dm b/code/game/gamemodes/mixed/bughunt.dm deleted file mode 100644 index 2accc6a966..0000000000 --- a/code/game/gamemodes/mixed/bughunt.dm +++ /dev/null @@ -1,14 +0,0 @@ -/datum/game_mode/bughunt - name = "Bughunt" - round_description = "A mercenary strike force is approaching the station to eradicate a xenomorph infestation!" - extended_round_description = "Mercenaries and xenomorphs spawn in this game mode." - config_tag = "bughunt" - required_players = 15 - required_players_secret = 25 - required_enemies = 1 - end_on_antag_death = 1 - antag_tags = list(MODE_XENOMORPH, MODE_DEATHSQUAD) - auto_recall_shuttle = 1 - ert_disabled = 1 - require_all_templates = 1 - votable = 0 \ No newline at end of file diff --git a/code/game/gamemodes/mixed/infestation.dm b/code/game/gamemodes/mixed/infestation.dm index 71e9ebe180..346f51967c 100644 --- a/code/game/gamemodes/mixed/infestation.dm +++ b/code/game/gamemodes/mixed/infestation.dm @@ -1,12 +1,12 @@ /datum/game_mode/infestation name = "infestation" round_description = "There's something in the walls!" - extended_round_description = "Two alien antagonists (Xenomorphs, Cortical Borers or Changelings) may spawn during this round." + extended_round_description = "Two alien antagonists (Cortical Borers or Changelings) spawn during this round." config_tag = "infestation" required_players = 15 required_enemies = 5 end_on_antag_death = 1 - antag_tags = list(MODE_BORER, MODE_XENOMORPH, MODE_CHANGELING) + antag_tags = list(MODE_BORER, MODE_CHANGELING) require_all_templates = 1 votable = 0 diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 355ee4b02d..6e20801680 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -502,7 +502,7 @@ var/list/turret_icons if(isanimal(L) || issmall(L)) // Animals are not so dangerous return check_anomalies ? TURRET_SECONDARY_TARGET : TURRET_NOT_TARGET - if(isxenomorph(L) || isalien(L)) // Xenos are dangerous + if(isalien(L)) // Xenos are dangerous return check_anomalies ? TURRET_PRIORITY_TARGET : TURRET_NOT_TARGET if(ishuman(L)) //if the target is a human, analyze threat level diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm deleted file mode 100644 index 598b8ad5d3..0000000000 --- a/code/game/objects/effects/aliens.dm +++ /dev/null @@ -1,440 +0,0 @@ -/* Alien Effects! - * Contains: - * effect/alien - * Resin - * Weeds - * Acid - * Egg - */ - -/* - * effect/alien - */ -/obj/effect/alien - name = "alien thing" - 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 = 1 - opacity = 1 - anchored = 1 - 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 = 0 - qdel(src) - return - -/obj/effect/alien/resin/bullet_act(var/obj/item/projectile/Proj) - health -= Proj.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(loc, '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) - 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 - - 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(DEFAULT_ATTACK_COOLDOWN) - var/aforce = W.force - health = max(0, health - aforce) - playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) - healthcheck() - ..() - return - -/obj/effect/alien/resin/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(air_group) return 0 - if(istype(mover) && mover.checkpass(PASSGLASS)) - return !opacity - return !density - - -/* - * Weeds - */ -#define NODERANGE 3 - -/obj/effect/alien/weeds - name = "weeds" - desc = "Weird purple weeds." - icon_state = "weeds" - - anchored = 1 - density = 0 - layer = 2 - var/health = 15 - var/obj/effect/alien/weeds/node/linked_node = null - -/obj/effect/alien/weeds/node - icon_state = "weednode" - name = "purple sac" - desc = "Weird purple octopus-like thing." - layer = 3 - light_range = NODERANGE - var/node_range = NODERANGE - -/obj/effect/alien/weeds/node/New() - ..(src.loc, src) - - -/obj/effect/alien/weeds/New(pos, node) - ..() - if(istype(loc, /turf/space)) - qdel(src) - return - linked_node = node - if(icon_state == "weeds")icon_state = pick("weeds", "weeds1", "weeds2") - spawn(rand(150, 200)) - if(src) - Life() - return - -/obj/effect/alien/weeds/proc/Life() - set background = 1 - var/turf/U = get_turf(src) -/* - if (locate(/obj/movable, U)) - U = locate(/obj/movable, U) - if(U.density == 1) - qdel(src) - return - -Alien plants should do something if theres a lot of poison - if(U.poison> 200000) - health -= round(U.poison/200000) - update() - return -*/ - if (istype(U, /turf/space)) - qdel(src) - return - - if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range) ) - return - - direction_loop: - for(var/dirn in cardinal) - var/turf/T = get_step(src, dirn) - - if (!istype(T) || T.density || locate(/obj/effect/alien/weeds) in T || istype(T.loc, /area/arrival) || istype(T, /turf/space)) - continue - - // if (locate(/obj/movable, T)) // don't propogate into movables - // continue - - for(var/obj/O in T) - if(O.density) - continue direction_loop - - PoolOrNew(/obj/effect/alien/weeds, T, linked_node) - - -/obj/effect/alien/weeds/ex_act(severity) - switch(severity) - if(1.0) - qdel(src) - if(2.0) - if (prob(50)) - qdel(src) - if(3.0) - if (prob(5)) - qdel(src) - return - -/obj/effect/alien/weeds/attackby(var/obj/item/weapon/W, var/mob/user) - user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - if(W.attack_verb.len) - visible_message("\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]") - else - visible_message("\The [src] have been attacked with \the [W][(user ? " by [user]." : ".")]") - - var/damage = W.force / 4.0 - - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - - if(WT.remove_fuel(0, user)) - damage = 15 - playsound(loc, 'sound/items/Welder.ogg', 100, 1) - - health -= damage - healthcheck() - -/obj/effect/alien/weeds/proc/healthcheck() - if(health <= 0) - qdel(src) - - -/obj/effect/alien/weeds/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - if(exposed_temperature > 300 + T0C) - health -= 5 - healthcheck() - -#undef NODERANGE - - -/* - * Acid - */ -/obj/effect/alien/acid - name = "acid" - desc = "Burbling corrossive stuff. I wouldn't want to touch it." - icon_state = "acid" - - density = 0 - opacity = 0 - anchored = 1 - - var/atom/target - var/ticks = 0 - var/target_strength = 0 - -/obj/effect/alien/acid/New(loc, target) - ..(loc) - src.target = target - - if(isturf(target)) // Turf take twice as long to take down. - target_strength = 8 - else - target_strength = 4 - tick() - -/obj/effect/alien/acid/proc/tick() - if(!target) - qdel(src) - - ticks += 1 - - if(ticks >= target_strength) - - for(var/mob/O in hearers(src, null)) - O.show_message("[src.target] collapses under its own weight into a puddle of goop and undigested debris!", 1) - - if(istype(target, /turf/simulated/wall)) // I hate turf code. - var/turf/simulated/wall/W = target - W.dismantle_wall(1) - else - qdel(target) - qdel(src) - return - - switch(target_strength - ticks) - if(6) - visible_message("[src.target] is holding up against the acid!") - if(4) - visible_message("[src.target]\s structure is being melted by the acid!") - if(2) - visible_message("[src.target] is struggling to withstand the acid!") - if(0 to 1) - visible_message("[src.target] begins to crumble under the acid!") - spawn(rand(150, 200)) tick() - -/* - * Egg - */ -/var/const //for the status var - BURST = 0 - BURSTING = 1 - GROWING = 2 - GROWN = 3 - - MIN_GROWTH_TIME = 1800 //time it takes to grow a hugger - MAX_GROWTH_TIME = 3000 - -/obj/effect/alien/egg - desc = "It looks like a weird egg" - name = "egg" - icon_state = "egg_growing" - density = 0 - anchored = 1 - - var/health = 100 - var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive - flags = PROXMOVE - -/obj/effect/alien/egg/New() - if(config.aliens_allowed) - ..() - spawn(rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME)) - Grow() - else - qdel(src) - -/obj/effect/alien/egg/attack_hand(user as mob) - - var/mob/living/carbon/M = user - if(!istype(M) || !(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)) - return attack_hand(user) - - switch(status) - if(BURST) - user << "You clear the hatched egg." - qdel(src) - return - if(GROWING) - user << "The child is not developed yet." - return - if(GROWN) - user << "You retrieve the child." - Burst(0) - return - -/obj/effect/alien/egg/proc/GetFacehugger() - return locate(/obj/item/clothing/mask/facehugger) in contents - -/obj/effect/alien/egg/proc/Grow() - icon_state = "egg" - status = GROWN - new /obj/item/clothing/mask/facehugger(src) - return - -/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining - if(status == GROWN || status == GROWING) - var/obj/item/clothing/mask/facehugger/child = GetFacehugger() - icon_state = "egg_hatched" - flick("egg_opening", src) - status = BURSTING - spawn(15) - status = BURST - child.loc = get_turf(src) - - if(kill && istype(child)) - child.Die() - else - for(var/mob/M in range(1,src)) - if(CanHug(M)) - child.Attach(M) - break - -/obj/effect/alien/egg/bullet_act(var/obj/item/projectile/Proj) - health -= Proj.damage - ..() - healthcheck() - return - - -/obj/effect/alien/egg/attackby(var/obj/item/weapon/W, var/mob/user) - if(health <= 0) - return - if(W.attack_verb.len) - src.visible_message("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]") - else - src.visible_message("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]") - var/damage = W.force / 4.0 - - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - - if(WT.remove_fuel(0, user)) - damage = 15 - playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) - - src.health -= damage - src.healthcheck() - - -/obj/effect/alien/egg/proc/healthcheck() - if(health <= 0) - Burst() - -/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - if(exposed_temperature > 500 + T0C) - health -= 5 - healthcheck() - -/obj/effect/alien/egg/HasProximity(atom/movable/AM as mob|obj) - if(status == GROWN) - if(!CanHug(AM)) - return - - var/mob/living/carbon/C = AM - if(C.stat == CONSCIOUS && C.status_flags & XENO_HOST) - return - - Burst(0) diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm deleted file mode 100644 index 7d0bc76b18..0000000000 --- a/code/game/objects/structures/lamarr_cage.dm +++ /dev/null @@ -1,87 +0,0 @@ -/obj/structure/lamarr - name = "lab cage" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "labcage1" - desc = "A glass lab container for storing interesting creatures." - density = 1 - anchored = 1 - unacidable = 1//Dissolving the case would also delete Lamarr - var/health = 30 - var/occupied = 1 - var/destroyed = 0 - -/obj/structure/lamarr/ex_act(severity) - switch(severity) - if (1) - new /obj/item/weapon/material/shard( src.loc ) - Break() - qdel(src) - if (2) - if (prob(50)) - src.health -= 15 - src.healthcheck() - if (3) - if (prob(50)) - src.health -= 5 - src.healthcheck() - - -/obj/structure/lamarr/bullet_act(var/obj/item/projectile/Proj) - health -= Proj.damage - ..() - src.healthcheck() - return - -/obj/structure/lamarr/proc/healthcheck() - if (src.health <= 0) - if (!( src.destroyed )) - src.density = 0 - src.destroyed = 1 - new /obj/item/weapon/material/shard( src.loc ) - playsound(src, "shatter", 70, 1) - Break() - else - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) - return - -/obj/structure/lamarr/update_icon() - if(src.destroyed) - src.icon_state = "labcageb[src.occupied]" - else - src.icon_state = "labcage[src.occupied]" - return - - -/obj/structure/lamarr/attackby(obj/item/weapon/W as obj, mob/user as mob) - src.health -= W.force - src.healthcheck() - ..() - return - -/obj/structure/lamarr/attack_hand(mob/user as mob) - if (src.destroyed) - return - else - usr << "You kick the lab cage." - for(var/mob/O in oviewers()) - if ((O.client && !( O.blinded ))) - O << "[usr] kicks the lab cage." - src.health -= 2 - healthcheck() - return - -/obj/structure/lamarr/proc/Break() - if(occupied) - new /obj/item/clothing/mask/facehugger/lamarr(src.loc) - occupied = 0 - update_icon() - return - -/obj/item/clothing/mask/facehugger/lamarr - name = "Lamarr" - desc = "The worst she might do is attempt to... couple with your head."//hope we don't get sued over a harmless reference, rite? - sterile = 1 - gender = FEMALE - -/obj/item/clothing/mask/facehugger/lamarr/New()//to prevent deleting it if aliums are disabled - return diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm deleted file mode 100644 index cbe89ec86f..0000000000 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ /dev/null @@ -1,86 +0,0 @@ -//Alium nests. Essentially beds with an unbuckle delay that only aliums can buckle mobs to. -#define NEST_RESIST_TIME 1200 - -/obj/structure/bed/nest - name = "alien nest" - desc = "It's a gruesome pile of thick, sticky resin shaped like a nest." - icon = 'icons/mob/alien.dmi' - icon_state = "nest" - var/health = 100 - -/obj/structure/bed/nest/update_icon() - return - -/obj/structure/bed/nest/user_unbuckle_mob(mob/user as mob) - if(buckled_mob) - if(buckled_mob.buckled == src) - if(buckled_mob != user) - buckled_mob.visible_message(\ - "[user.name] pulls [buckled_mob.name] free from the sticky nest!",\ - "[user.name] pulls you free from the gelatinous resin.",\ - "You hear squelching...") - buckled_mob.pixel_y = 0 - buckled_mob.old_y = 0 - unbuckle_mob() - else - if(world.time <= buckled_mob.last_special+NEST_RESIST_TIME) - return - buckled_mob.last_special = world.time - buckled_mob.visible_message(\ - "[buckled_mob.name] struggles to break free of the gelatinous resin...",\ - "You struggle to break free from the gelatinous resin...",\ - "You hear squelching...") - spawn(NEST_RESIST_TIME) - if(user && buckled_mob && user.buckled == src) - buckled_mob.last_special = world.time - buckled_mob.pixel_y = 0 - buckled_mob.old_y = 0 - unbuckle_mob() - src.add_fingerprint(user) - return - -/obj/structure/bed/nest/user_buckle_mob(mob/M as mob, mob/user as mob) - if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || usr.stat || M.buckled || istype(user, /mob/living/silicon/pai) ) - return - - unbuckle_mob() - - var/mob/living/carbon/xenos = user - var/mob/living/carbon/victim = M - - if(istype(victim) && locate(/obj/item/organ/internal/xenos/hivenode) in victim.internal_organs) - return - - if(istype(xenos) && !(locate(/obj/item/organ/internal/xenos/hivenode) in xenos.internal_organs)) - return - - if(M == usr) - return - else - M.visible_message(\ - "[user.name] secretes a thick vile goo, securing [M.name] into [src]!",\ - "[user.name] drenches you in a foul-smelling resin, trapping you in the [src]!",\ - "You hear squelching...") - M.buckled = src - M.loc = src.loc - M.set_dir(src.dir) - M.update_canmove() - M.pixel_y = 6 - M.old_y = 6 - src.buckled_mob = M - src.add_fingerprint(user) - return - -/obj/structure/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob) - var/aforce = W.force - health = max(0, health - aforce) - playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) - for(var/mob/M in viewers(src, 7)) - M.show_message("[user] hits [src] with [W]!", 1) - healthcheck() - -/obj/structure/bed/nest/proc/healthcheck() - if(health <=0) - density = 0 - qdel(src) - return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 342f231c7f..be3b6e0136 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -145,11 +145,6 @@ proc/admin_notice(var/message, var/rights) body += {"

Rudimentary transformation:
These transformations only create a new mob type and copy stuff over. They do not take into account MMIs and similar mob-specific things. The buttons in 'Transformations' are preferred, when possible.

Observer | - \[ Xenos: Larva - Drone - Hunter - Sentinel - Queen \] | \[ Crew: Human Unathi Tajaran diff --git a/code/modules/admin/secrets/random_events/trigger_xenomorph_infestation.dm b/code/modules/admin/secrets/random_events/trigger_xenomorph_infestation.dm deleted file mode 100644 index 11dad2e84c..0000000000 --- a/code/modules/admin/secrets/random_events/trigger_xenomorph_infestation.dm +++ /dev/null @@ -1,7 +0,0 @@ -/datum/admin_secret_item/random_event/trigger_xenomorph_infestation - name = "Trigger a Xenomorph Infestation" - -/datum/admin_secret_item/random_event/trigger_xenomorph_infestation/execute(var/mob/user) - . = ..() - if(.) - return xenomorphs.attempt_random_spawn() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 40f10e3f44..4bc8298193 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1119,16 +1119,6 @@ log_admin("[key_name(usr)] AIized [key_name(H)]") H.AIize() - else if(href_list["makealien"]) - if(!check_rights(R_SPAWN)) return - - var/mob/living/carbon/human/H = locate(href_list["makealien"]) - if(!istype(H)) - usr << "This can only be used on instances of type /mob/living/carbon/human" - return - - usr.client.cmd_admin_alienize(H) - else if(href_list["makeslime"]) if(!check_rights(R_SPAWN)) return diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 3db3cfbca6..6522c5e1a4 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -100,23 +100,6 @@ paiController.pai_candidates.Remove(candidate) feedback_add_details("admin_verb","MPAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/cmd_admin_alienize(var/mob/M in mob_list) - set category = "Fun" - set name = "Make Alien" - - if(!ticker) - alert("Wait until the game starts") - return - if(ishuman(M)) - log_admin("[key_name(src)] has alienized [M.key].") - spawn(10) - M:Alienize() - feedback_add_details("admin_verb","MKAL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - log_admin("[key_name(usr)] made [key_name(M)] into an alien.") - message_admins("\blue [key_name_admin(usr)] made [key_name(M)] into an alien.", 1) - else - alert("Invalid mob") - /client/proc/cmd_admin_slimeize(var/mob/M in mob_list) set category = "Fun" set name = "Make slime" diff --git a/code/modules/admin/view_variables/helpers.dm b/code/modules/admin/view_variables/helpers.dm index 44d524e06d..67eefc018d 100644 --- a/code/modules/admin/view_variables/helpers.dm +++ b/code/modules/admin/view_variables/helpers.dm @@ -75,7 +75,6 @@ - "} diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 0e4d122bd2..7014e9cf41 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -18,7 +18,7 @@ cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.9 - species_restricted = list("exclude","Diona", "Xenomorph") + species_restricted = list("exclude","Diona") var/obj/machinery/camera/camera var/list/camera_networks @@ -63,7 +63,7 @@ cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.9 - species_restricted = list("exclude","Diona", "Xenomorph") + species_restricted = list("exclude","Diona") var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit. diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 79a1f25bca..157d4acbd3 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -1151,23 +1151,3 @@ set_trait(TRAIT_PRODUCTION,7) set_trait(TRAIT_YIELD,3) set_trait(TRAIT_POTENCY,3) - -// Alien weeds. -/datum/seed/xenomorph - name = "xenomorph" - seed_name = "alien weed" - display_name = "alien weeds" - force_layer = 3 - chems = list("phoron" = list(1,3)) - -/datum/seed/xenomorph/New() - ..() - set_trait(TRAIT_PLANT_ICON,"vine2") - set_trait(TRAIT_IMMUTABLE,1) - set_trait(TRAIT_PRODUCT_COLOUR,"#3D1934") - set_trait(TRAIT_FLESH_COLOUR,"#3D1934") - set_trait(TRAIT_PLANT_COLOUR,"#3D1934") - set_trait(TRAIT_PRODUCTION,1) - set_trait(TRAIT_YIELD,-1) - set_trait(TRAIT_SPREAD,2) - set_trait(TRAIT_POTENCY,50) \ No newline at end of file diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 125d792ecf..760303ac23 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -640,21 +640,6 @@ var/list/name_to_material /material/cult/reinf/place_dismantled_product(var/turf/target) new /obj/effect/decal/remains/human(target) -/material/resin - name = "resin" - icon_colour = "#E85DD8" - dooropen_noise = 'sound/effects/attackblob.ogg' - door_icon_base = "resin" - melting_point = T0C+300 - sheet_singular_name = "blob" - sheet_plural_name = "blobs" - -/material/resin/can_open_material_door(var/mob/living/user) - var/mob/living/carbon/M = user - if(istype(M) && locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs) - return 1 - return 0 - //TODO PLACEHOLDERS: /material/leather name = "leather" diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index 1f6a663620..9585a4965b 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -21,7 +21,7 @@ generate_loot() /obj/structure/closet/crate/secure/loot/proc/generate_loot() - var/loot = rand(1, 100) + var/loot = rand(1, 99) switch(loot) if(1 to 5) // Common things go, 5% new/obj/item/weapon/reagent_containers/food/drinks/bottle/rum(src) @@ -104,7 +104,7 @@ if(88) new/obj/item/xenos_claw(src) if(89) - new/obj/item/organ/internal/xenos/plasmavessel(src) + new/obj/item/clothing/head/bearpelt(src) if(90) new/obj/item/organ/internal/heart(src) if(91) @@ -142,8 +142,6 @@ if(99) new/obj/item/weapon/storage/belt/champion(src) new/obj/item/clothing/mask/luchador(src) - if(100) - new/obj/item/clothing/head/bearpelt(src) /obj/structure/closet/crate/secure/loot/togglelock(mob/user as mob) if(!locked) diff --git a/code/modules/mob/language/outsider.dm b/code/modules/mob/language/outsider.dm index b8c795ea8f..562c578986 100644 --- a/code/modules/mob/language/outsider.dm +++ b/code/modules/mob/language/outsider.dm @@ -1,34 +1,3 @@ -/datum/language/xenocommon - name = "Xenomorph" - colour = "alien" - desc = "The common tongue of the xenomorphs." - speech_verb = "hisses" - ask_verb = "hisses" - exclaim_verb = "hisses" - key = "4" - flags = RESTRICTED - syllables = list("sss","sSs","SSS") - -/datum/language/xenos - name = "Hivemind" - desc = "Xenomorphs have the strange ability to commune over a psychic hivemind." - speech_verb = "hisses" - ask_verb = "hisses" - exclaim_verb = "hisses" - colour = "alien" - key = "a" - flags = RESTRICTED | HIVEMIND - -/datum/language/xenos/check_special_condition(var/mob/other) - - var/mob/living/carbon/M = other - if(!istype(M)) - return 1 - if(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs) - return 1 - - return 0 - /datum/language/ling name = "Changeling" desc = "Although they are normally wary and suspicious of each other, changelings can commune over a distance." diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm deleted file mode 100644 index 4ebf7986b6..0000000000 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ /dev/null @@ -1,14 +0,0 @@ -/mob/living/carbon/alien/larva - name = "alien larva" - real_name = "alien larva" - adult_form = /mob/living/carbon/human - speak_emote = list("hisses") - icon_state = "larva" - language = "Hivemind" - maxHealth = 25 - health = 25 - -/mob/living/carbon/alien/larva/New() - ..() - add_language("Xenomorph") //Bonus language. - internal_organs |= new /obj/item/organ/internal/xenos/hivenode(src) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm deleted file mode 100644 index 8d40ef9d5a..0000000000 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ /dev/null @@ -1,12 +0,0 @@ -//Larvae regenerate health and nutrition from plasma and alien weeds. -/mob/living/carbon/alien/larva/handle_environment(var/datum/gas_mixture/environment) - - if(!environment) return - - var/turf/T = get_turf(src) - if(environment.gas["phoron"] > 0 || (T && locate(/obj/effect/alien/weeds) in T.contents)) - update_progression() - adjustBruteLoss(-1) - adjustFireLoss(-1) - adjustToxLoss(-1) - adjustOxyLoss(-1) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/progression.dm b/code/modules/mob/living/carbon/alien/larva/progression.dm deleted file mode 100644 index 05bab1bfde..0000000000 --- a/code/modules/mob/living/carbon/alien/larva/progression.dm +++ /dev/null @@ -1,12 +0,0 @@ -/mob/living/carbon/alien/larva/confirm_evolution() - - src << "\blue You are growing into a beautiful alien! It is time to choose a caste." - src << "\blue There are three to choose from:" - src << "Hunters \blue 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." - src << "Sentinels \blue 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." - src << "Drones \blue 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." - var/alien_caste = alert(src, "Please choose which alien caste you shall belong to.",,"Hunter","Sentinel","Drone") - return alien_caste ? "Xenomorph [alien_caste]" : null - -/mob/living/carbon/alien/larva/show_evolution_blurb() - return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 64890c7634..a3b5426086 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -71,10 +71,6 @@ stat("Tank Pressure", internal.air_contents.return_pressure()) stat("Distribution Pressure", internal.distribute_pressure) - var/obj/item/organ/internal/xenos/plasmavessel/P = internal_organs_by_name[O_PLASMA] - if(P) - stat(null, "Phoron Stored: [P.stored_plasma]/[P.max_plasma]") - if(back && istype(back,/obj/item/weapon/rig)) var/obj/item/weapon/rig/suit = back var/cell_status = "ERROR" diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm deleted file mode 100644 index de601b2592..0000000000 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm +++ /dev/null @@ -1,159 +0,0 @@ -// This is to replace the previous datum/disease/alien_embryo for slightly improved handling and maintainability -// It functions almost identically (see code/datums/diseases/alien_embryo.dm) - -/obj/item/alien_embryo - name = "alien embryo" - desc = "All slimy and yuck." - icon = 'icons/mob/alien.dmi' - icon_state = "larva0_dead" - var/mob/living/affected_mob - var/stage = 0 - -/obj/item/alien_embryo/New() - if(istype(loc, /mob/living)) - affected_mob = loc - processing_objects.Add(src) - spawn(0) - AddInfectionImages(affected_mob) - else - qdel(src) - -/obj/item/alien_embryo/Destroy() - if(affected_mob) - affected_mob.status_flags &= ~(XENO_HOST) - spawn(0) - RemoveInfectionImages(affected_mob) - ..() - -/obj/item/alien_embryo/process() - if(!affected_mob) return - if(loc != affected_mob) - affected_mob.status_flags &= ~(XENO_HOST) - processing_objects.Remove(src) - spawn(0) - RemoveInfectionImages(affected_mob) - affected_mob = null - return - - if(stage < 5 && prob(3)) - stage++ - spawn(0) - RefreshInfectionImage(affected_mob) - - switch(stage) - if(2, 3) - if(prob(1)) - affected_mob.emote("sneeze") - if(prob(1)) - affected_mob.emote("cough") - if(prob(1)) - affected_mob << "\red Your throat feels sore." - if(prob(1)) - affected_mob << "\red Mucous runs down the back of your throat." - if(4) - if(prob(1)) - affected_mob.emote("sneeze") - if(prob(1)) - affected_mob.emote("cough") - if(prob(2)) - affected_mob << "\red Your muscles ache." - if(prob(20)) - affected_mob.take_organ_damage(1) - if(prob(2)) - affected_mob << "\red Your stomach hurts." - if(prob(20)) - affected_mob.adjustToxLoss(1) - affected_mob.updatehealth() - if(5) - affected_mob << "\red You feel something tearing its way out of your stomach..." - affected_mob.adjustToxLoss(10) - affected_mob.updatehealth() - if(prob(50)) - AttemptGrow() - -/obj/item/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1) - var/list/candidates = get_alien_candidates() - var/picked = null - - // To stop clientless larva, we will check that our host has a client - // if we find no ghosts to become the alien. If the host has a client - // he will become the alien but if he doesn't then we will set the stage - // to 2, so we don't do a process heavy check everytime. - - if(candidates.len) - picked = pick(candidates) - else if(affected_mob.client) - picked = affected_mob.key - else - stage = 4 // Let's try again later. - return - - if(affected_mob.lying) - affected_mob.overlays += image('icons/mob/alien.dmi', loc = affected_mob, icon_state = "burst_lie") - else - affected_mob.overlays += image('icons/mob/alien.dmi', loc = affected_mob, icon_state = "burst_stand") - spawn(6) - var/mob/living/carbon/alien/larva/new_xeno = new(affected_mob.loc) - new_xeno.key = picked - new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention - if(gib_on_success) - affected_mob.gib() - qdel(src) - -/*---------------------------------------- -Proc: RefreshInfectionImage() -Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens. -----------------------------------------*/ -/obj/item/alien_embryo/proc/RefreshInfectionImage() - - for(var/mob/living/carbon/alien in player_list) - - if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs) - continue - - if(alien.client) - for(var/image/I in alien.client.images) - if(dd_hasprefix_case(I.icon_state, "infected")) - qdel(I) - for(var/mob/living/L in mob_list) - if(iscorgi(L) || iscarbon(L)) - if(L.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[stage]") - alien.client.images += I - -/*---------------------------------------- -Proc: AddInfectionImages(C) -Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C. -----------------------------------------*/ -/obj/item/alien_embryo/proc/AddInfectionImages(var/mob/living/C) - if(C) - - for(var/mob/living/carbon/alien in player_list) - - if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs) - continue - - if(alien.client) - if(C.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") - alien.client.images += I - -/*---------------------------------------- -Proc: RemoveInfectionImage(C) -Des: Removes the alien infection image from all aliens in the world located in passed mob (C). -----------------------------------------*/ - -/obj/item/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C) - - if(C) - - for(var/mob/living/carbon/alien in player_list) - - if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs) - continue - - if(alien.client) - for(var/image/I in alien.client.images) - if(I.loc == C) - if(dd_hasprefix_case(I.icon_state, "infected")) - qdel(I) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm deleted file mode 100644 index 774075f7ad..0000000000 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm +++ /dev/null @@ -1,231 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 - -//TODO: Make these simple_animals - -var/const/MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone -var/const/MAX_IMPREGNATION_TIME = 150 - -var/const/MIN_ACTIVE_TIME = 200 //time between being dropped and going idle -var/const/MAX_ACTIVE_TIME = 400 - -/obj/item/clothing/mask/facehugger - name = "alien" - desc = "It has some sort of a tube at the end of its tail." - icon = 'icons/mob/alien.dmi' - icon_state = "facehugger" - item_state = "facehugger" - w_class = 3 //note: can be picked up by aliens unlike most other items of w_class below 4 - flags = PROXMOVE - body_parts_covered = FACE|EYES - throw_range = 5 - - var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case - var/sterile = 0 - var/strength = 5 - var/attached = 0 - -/obj/item/clothing/mask/facehugger/attack_hand(user as mob) - - if((stat == CONSCIOUS && !sterile)) - if(Attach(user)) - return - - ..() - -/obj/item/clothing/mask/facehugger/attack(mob/living/M as mob, mob/user as mob) - ..() - user.drop_from_inventory(src) - Attach(M) - -/obj/item/clothing/mask/facehugger/New() - if(config.aliens_allowed) - ..() - else - qdel(src) - -/obj/item/clothing/mask/facehugger/examine(mob/user) - ..(user) - switch(stat) - if(DEAD,UNCONSCIOUS) - user << "\red \b [src] is not moving." - if(CONSCIOUS) - user << "\red \b [src] seems to be active." - if (sterile) - user << "\red \b It looks like the proboscis has been removed." - return - -/obj/item/clothing/mask/facehugger/attackby(obj/item/I, mob/user) - if(I.force) - user.do_attack_animation(src) - Die() - return - -/obj/item/clothing/mask/facehugger/bullet_act() - Die() - return - -/obj/item/clothing/mask/facehugger/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) - if(exposed_temperature > T0C+80) - Die() - return - -/obj/item/clothing/mask/facehugger/equipped(mob/M) - ..() - Attach(M) - -/obj/item/clothing/mask/facehugger/Crossed(atom/target) - HasProximity(target) - return - -/obj/item/clothing/mask/facehugger/on_found(mob/finder as mob) - if(stat == CONSCIOUS) - HasProximity(finder) - return 1 - return - -/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj) - if(CanHug(AM)) - Attach(AM) - -/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed) - ..() - if(stat == CONSCIOUS) - icon_state = "[initial(icon_state)]_thrown" - spawn(15) - if(icon_state == "[initial(icon_state)]_thrown") - icon_state = "[initial(icon_state)]" - -/obj/item/clothing/mask/facehugger/throw_impact(atom/hit_atom) - ..() - if(stat == CONSCIOUS) - icon_state = "[initial(icon_state)]" - throwing = 0 - GoIdle(30,100) //stunned for a few seconds - allows throwing them to be useful for positioning but not as an offensive action (unless you're setting up a trap) - -/obj/item/clothing/mask/facehugger/proc/Attach(M as mob) - - if((!iscorgi(M) && !iscarbon(M))) - return - - if(attached) - return - - var/mob/living/carbon/C = M - if(istype(C) && locate(/obj/item/organ/internal/xenos/hivenode) in C.internal_organs) - return - - - attached++ - spawn(MAX_IMPREGNATION_TIME) - attached = 0 - - var/mob/living/L = M //just so I don't need to use : - - if(loc == L) return - if(stat != CONSCIOUS) return - if(!sterile) L.take_organ_damage(strength,0) //done here so that even borgs and humans in helmets take damage - - L.visible_message("\red \b [src] leaps at [L]'s face!") - - if(iscarbon(M)) - var/mob/living/carbon/target = L - - if(target.wear_mask) - if(prob(20)) return - var/obj/item/clothing/W = target.wear_mask - if(!W.canremove) return - target.drop_from_inventory(W) - - target.visible_message("\red \b [src] tears [W] off of [target]'s face!") - - target.equip_to_slot(src, slot_wear_mask) - target.contents += src // Monkey sanity check - Snapshot - - if(!sterile) L.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings - else if (iscorgi(M)) - var/mob/living/simple_animal/corgi/corgi = M - src.loc = corgi - corgi.facehugger = src - corgi.wear_mask = src - //C.regenerate_icons() - - GoIdle() //so it doesn't jump the people that tear it off - - spawn(rand(MIN_IMPREGNATION_TIME,MAX_IMPREGNATION_TIME)) - Impregnate(L) - - return - -/obj/item/clothing/mask/facehugger/proc/Impregnate(mob/living/target as mob) - if(!target || target.wear_mask != src || target.stat == DEAD) //was taken off or something - return - - if(!sterile) - new /obj/item/alien_embryo(target) - target.status_flags |= XENO_HOST - - target.visible_message("\red \b [src] falls limp after violating [target]'s face!") - - Die() - icon_state = "[initial(icon_state)]_impregnated" - - if(iscorgi(target)) - var/mob/living/simple_animal/corgi/C = target - src.loc = get_turf(C) - C.facehugger = null - else - target.visible_message("\red \b [src] violates [target]'s face!") - return - -/obj/item/clothing/mask/facehugger/proc/GoActive() - if(stat == DEAD || stat == CONSCIOUS) - return - - stat = CONSCIOUS - icon_state = "[initial(icon_state)]" - - return - -/obj/item/clothing/mask/facehugger/proc/GoIdle(var/min_time=MIN_ACTIVE_TIME, var/max_time=MAX_ACTIVE_TIME) - if(stat == DEAD || stat == UNCONSCIOUS) - return - -/* RemoveActiveIndicators() */ - - stat = UNCONSCIOUS - icon_state = "[initial(icon_state)]_inactive" - - spawn(rand(min_time,max_time)) - GoActive() - return - -/obj/item/clothing/mask/facehugger/proc/Die() - if(stat == DEAD) - return - -/* RemoveActiveIndicators() */ - - icon_state = "[initial(icon_state)]_dead" - stat = DEAD - - src.visible_message("\red \b[src] curls up into a ball!") - - return - -/proc/CanHug(var/mob/M) - - if(iscorgi(M)) - return 1 - - if(!iscarbon(M)) - return 0 - - var/mob/living/carbon/C = M - if(istype(C) && locate(/obj/item/organ/internal/xenos/hivenode) in C.internal_organs) - return 0 - - if(ishuman(C)) - var/mob/living/carbon/human/H = C - if(H.head && (H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL)) - return 0 - return 1 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 deleted file mode 100644 index c046c0d857..0000000000 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm +++ /dev/null @@ -1,222 +0,0 @@ -/proc/alien_queen_exists(var/ignore_self,var/mob/living/carbon/human/self) - for(var/mob/living/carbon/human/Q in living_mob_list) - if(self && ignore_self && self == Q) - continue - if(Q.species.name != "Xenomorph Queen") - continue - if(!Q.key || !Q.client || Q.stat) - continue - return 1 - return 0 - -/mob/living/carbon/human/proc/gain_plasma(var/amount) - - var/obj/item/organ/internal/xenos/plasmavessel/I = internal_organs_by_name[O_PLASMA] - if(!istype(I)) return - - if(amount) - 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) - - var/obj/item/organ/internal/xenos/plasmavessel/P = internal_organs_by_name[O_PLASMA] - if(!istype(P)) - src << "Your plasma vessel has been removed!" - return - - if(needs_organ) - var/obj/item/organ/internal/I = internal_organs_by_name[needs_organ] - if(!I) - src << "Your [needs_organ] has been removed!" - return - else if((I.status & ORGAN_CUT_AWAY) || I.is_broken()) - src << "Your [needs_organ] is too damaged to function!" - return - - if(P.stored_plasma < cost) - src << "\red You don't have enough phoron stored to do that." - return 0 - - if(needs_foundation) - var/turf/T = get_turf(src) - var/has_foundation - if(T) - //TODO: Work out the actual conditions this needs. - if(!(istype(T,/turf/space))) - has_foundation = 1 - if(!has_foundation) - src << "\red You need a solid foundation to do that on." - return 0 - - P.stored_plasma -= cost - return 1 - -// Free abilities. -/mob/living/carbon/human/proc/transfer_plasma(mob/living/carbon/human/M as mob in oview()) - set name = "Transfer Plasma" - set desc = "Transfer Plasma to another alien" - set category = "Abilities" - - if (get_dist(src,M) <= 1) - src << "You need to be closer." - return - - var/obj/item/organ/internal/xenos/plasmavessel/I = M.internal_organs_by_name[O_PLASMA] - if(!istype(I)) - src << "Their plasma vessel is missing." - return - - var/amount = input("Amount:", "Transfer Plasma to [M]") as num - if (amount) - amount = abs(round(amount)) - if(check_alien_ability(amount,0,O_PLASMA)) - M.gain_plasma(amount) - M << "[src] has transfered [amount] plasma to you." - src << "You have transferred [amount] plasma to [M]." - return - -// Queen verbs. -/mob/living/carbon/human/proc/lay_egg() - - set name = "Lay Egg (75)" - set desc = "Lay an egg to produce huggers to impregnate prey with." - set category = "Abilities" - - if(!config.aliens_allowed) - src << "You begin to lay an egg, but hesitate. You suspect it isn't allowed." - verbs -= /mob/living/carbon/human/proc/lay_egg - return - - if(locate(/obj/effect/alien/egg) in get_turf(src)) - src << "There's already an egg here." - return - - if(check_alien_ability(75,1,O_EGG)) - visible_message("[src] has laid an egg!") - new /obj/effect/alien/egg(loc) - - return - -// Drone verbs. -/mob/living/carbon/human/proc/evolve() - set name = "Evolve (500)" - set desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time." - set category = "Abilities" - - if(alien_queen_exists()) - src << "We already have an active queen." - return - - if(check_alien_ability(500)) - visible_message("[src] begins to twist and contort!", "You begin to evolve!") - src.set_species("Xenomorph Queen") - - return - -/mob/living/carbon/human/proc/plant() - set name = "Plant Weeds (50)" - set desc = "Plants some alien weeds" - set category = "Abilities" - - if(check_alien_ability(50,1,O_RESIN)) - visible_message("[src] has planted some alien weeds!") - new /obj/effect/alien/weeds/node(loc) - return - -/mob/living/carbon/human/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N - set name = "Corrosive Acid (200)" - set desc = "Drench an object in acid, destroying it over time." - set category = "Abilities" - - if(!O in oview(1)) - src << "[O] is too far away." - return - - // OBJ CHECK - var/cannot_melt - if(isobj(O)) - var/obj/I = O - if(I.unacidable) - cannot_melt = 1 - else - if(istype(O, /turf/simulated/wall)) - var/turf/simulated/wall/W = O - if(W.material.flags & MATERIAL_UNMELTABLE) - cannot_melt = 1 - else if(istype(O, /turf/simulated/floor)) - var/turf/simulated/floor/F = O - if(F.flooring && (F.flooring.flags & TURF_ACID_IMMUNE)) - cannot_melt = 1 - - if(cannot_melt) - src << "You cannot dissolve this object." - return - - if(check_alien_ability(200,0,O_ACID)) - new /obj/effect/alien/acid(get_turf(O), O) - visible_message("[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!") - - return - -/mob/living/carbon/human/proc/neurotoxin(mob/target as mob in oview()) - set name = "Spit Neurotoxin (50)" - 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)) - return - - if(stat || paralysis || stunned || weakened || lying || restrained() || buckled) - src << "You cannot spit neurotoxin in your current state." - return - - visible_message("[src] spits neurotoxin at [target]!", "You spit neurotoxin at [target].") - - //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.current = U - A.yo = U.y - T.y - A.xo = U.x - T.x - A.process() - return - -/mob/living/carbon/human/proc/resin() // -- TLE - set name = "Secrete Resin (75)" - set desc = "Secrete tough malleable resin." - set category = "Abilities" - - var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin door","resin wall","resin membrane","resin nest") //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 - - if(!check_alien_ability(75,1,O_RESIN)) - return - - visible_message("[src] vomits up a thick purple substance and begins to shape it!", "You shape a [choice].") - switch(choice) - if("resin door") - new /obj/structure/simple_door/resin(loc) - if("resin wall") - new /obj/effect/alien/resin/wall(loc) - if("resin membrane") - new /obj/effect/alien/resin/membrane(loc) - if("resin nest") - new /obj/structure/bed/nest(loc) - return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm deleted file mode 100644 index da641a4f6d..0000000000 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm +++ /dev/null @@ -1,324 +0,0 @@ -//Stand-in until this is made more lore-friendly. -/datum/species/xenos - name = "Xenomorph" - name_plural = "Xenomorphs" - - default_language = "Xenomorph" - language = "Hivemind" - unarmed_types = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong) - hud_type = /datum/hud_data/alien - rarity_value = 3 - - has_fine_manipulation = 0 - siemens_coefficient = 0 - gluttonous = 3 - - brute_mod = 0.5 // Hardened carapace. - burn_mod = 2 // Weak to fire. - - warning_low_pressure = 50 - hazard_low_pressure = -1 - - cold_level_1 = 50 - cold_level_2 = -1 - cold_level_3 = -1 - - flags = NO_SCAN | NO_PAIN | NO_SLIP | NO_POISON | NO_MINOR_CUT - spawn_flags = IS_RESTRICTED - - reagent_tag = IS_XENOS - - blood_color = "#05EE05" - flesh_color = "#282846" - gibbed_anim = "gibbed-a" - dusted_anim = "dust-a" - death_message = "lets out a waning guttural screech, green blood bubbling from its maw." - death_sound = 'sound/voice/hiss6.ogg' - - speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') - speech_chance = 100 - - breath_type = null - poison_type = null - - vision_flags = SEE_SELF|SEE_MOBS - - 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, - O_HIVE = /obj/item/organ/internal/xenos/hivenode, - O_NUTRIENT = /obj/item/organ/internal/diona/nutrients - ) - - bump_flag = ALIEN - swap_flags = ~HEAVY - push_flags = (~HEAVY) ^ ROBOT - - var/alien_number = 0 - var/caste_name = "creature" // Used to update alien name. - var/weeds_heal_rate = 1 // Health regen on weeds. - var/weeds_plasma_rate = 5 // Plasma regen on weeds. - - has_limbs = list( - BP_TORSO = list("path" = /obj/item/organ/external/chest), - BP_GROIN = list("path" = /obj/item/organ/external/groin), - BP_HEAD = list("path" = /obj/item/organ/external/head/no_eyes), - BP_L_ARM = list("path" = /obj/item/organ/external/arm), - BP_R_ARM = list("path" = /obj/item/organ/external/arm/right), - BP_L_LEG = list("path" = /obj/item/organ/external/leg), - BP_R_LEG = list("path" = /obj/item/organ/external/leg/right), - BP_L_HAND = list("path" = /obj/item/organ/external/hand), - BP_R_HAND = list("path" = /obj/item/organ/external/hand/right), - BP_L_FOOT = list("path" = /obj/item/organ/external/foot), - BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right) - ) - -/datum/species/xenos/get_bodytype() - return "Xenomorph" - -/datum/species/xenos/get_random_name() - return "alien [caste_name] ([alien_number])" - -/datum/species/xenos/can_understand(var/mob/other) - - if(istype(other,/mob/living/carbon/alien/larva)) - return 1 - - return 0 - -/datum/species/xenos/hug(var/mob/living/carbon/human/H,var/mob/living/target) - H.visible_message("[H] caresses [target] with its scythe-like arm.", \ - "You caress [target] with your scythe-like arm.") - -/datum/species/xenos/handle_post_spawn(var/mob/living/carbon/human/H) - - if(H.mind) - H.mind.assigned_role = "Alien" - H.mind.special_role = "Alien" - - alien_number++ //Keep track of how many aliens we've had so far. - H.real_name = "alien [caste_name] ([alien_number])" - H.name = H.real_name - - ..() - -/datum/species/xenos/handle_environment_special(var/mob/living/carbon/human/H) - - var/turf/T = H.loc - if(!T) return - var/datum/gas_mixture/environment = T.return_air() - if(!environment) return - - if(environment.gas["phoron"] > 0 || locate(/obj/effect/alien/weeds) in T) - if(!regenerate(H)) - var/obj/item/organ/internal/xenos/plasmavessel/P = H.internal_organs_by_name[O_PLASMA] - P.stored_plasma += weeds_plasma_rate - P.stored_plasma = min(max(P.stored_plasma,0),P.max_plasma) - ..() - -/datum/species/xenos/proc/regenerate(var/mob/living/carbon/human/H) - var/heal_rate = weeds_heal_rate - var/mend_prob = 10 - if (!H.resting) - heal_rate = weeds_heal_rate / 3 - mend_prob = 1 - - //first heal damages - if (H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss()) - H.adjustBruteLoss(-heal_rate) - H.adjustFireLoss(-heal_rate) - H.adjustOxyLoss(-heal_rate) - H.adjustToxLoss(-heal_rate) - if (prob(5)) - H << "You feel a soothing sensation come over you..." - return 1 - - //next internal organs - for(var/obj/item/organ/I in H.internal_organs) - if(I.damage > 0) - I.damage = max(I.damage - heal_rate, 0) - if (prob(5)) - H << "You feel a soothing sensation within your [I.parent_organ]..." - return 1 - - //next mend broken bones, approx 10 ticks each - for(var/obj/item/organ/external/E in H.bad_external_organs) - if (E.status & ORGAN_BROKEN) - if (prob(mend_prob)) - if (E.mend_fracture()) - H << "You feel something mend itself inside your [E.name]." - return 1 - - return 0 - -/datum/species/xenos/handle_login_special(var/mob/living/carbon/human/H) - H.AddInfectionImages() - ..() - -/datum/species/xenos/handle_logout_special(var/mob/living/carbon/human/H) - H.RemoveInfectionImages() - ..() - -/datum/species/xenos/drone - name = "Xenomorph Drone" - caste_name = "drone" - weeds_plasma_rate = 15 - slowdown = 1 - tail = "xenos_drone_tail" - rarity_value = 5 - - icobase = 'icons/mob/human_races/xenos/r_xenos_drone.dmi' - 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 - ) - - inherent_verbs = list( - /mob/living/proc/ventcrawl, - /mob/living/carbon/human/proc/regurgitate, - /mob/living/carbon/human/proc/plant, - /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 - ) - -/datum/species/xenos/drone/handle_post_spawn(var/mob/living/carbon/human/H) - - var/mob/living/carbon/human/A = H - if(!istype(A)) - return ..() - ..() - -/datum/species/xenos/hunter - - name = "Xenomorph Hunter" - weeds_plasma_rate = 5 - caste_name = "hunter" - slowdown = -2 - total_health = 150 - tail = "xenos_hunter_tail" - - icobase = 'icons/mob/human_races/xenos/r_xenos_hunter.dmi' - deform = 'icons/mob/human_races/xenos/r_xenos_hunter.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/hunter, - O_HIVE = /obj/item/organ/internal/xenos/hivenode, - O_NUTRIENT = /obj/item/organ/internal/diona/nutrients - ) - - inherent_verbs = list( - /mob/living/proc/ventcrawl, - /mob/living/carbon/human/proc/tackle, - /mob/living/carbon/human/proc/psychic_whisper, - /mob/living/carbon/human/proc/regurgitate - ) - -/datum/species/xenos/sentinel - name = "Xenomorph Sentinel" - weeds_plasma_rate = 10 - caste_name = "sentinel" - slowdown = 0 - total_health = 125 - tail = "xenos_sentinel_tail" - - icobase = 'icons/mob/human_races/xenos/r_xenos_sentinel.dmi' - deform = 'icons/mob/human_races/xenos/r_xenos_sentinel.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/sentinel, - O_ACID = /obj/item/organ/internal/xenos/acidgland, - O_HIVE = /obj/item/organ/internal/xenos/hivenode, - O_NUTRIENT = /obj/item/organ/internal/diona/nutrients - ) - - inherent_verbs = list( - /mob/living/proc/ventcrawl, - /mob/living/carbon/human/proc/tackle, - /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 - ) - -/datum/species/xenos/queen - - name = "Xenomorph Queen" - total_health = 250 - weeds_heal_rate = 5 - weeds_plasma_rate = 20 - caste_name = "queen" - slowdown = 4 - tail = "xenos_queen_tail" - rarity_value = 10 - - icobase = 'icons/mob/human_races/xenos/r_xenos_queen.dmi' - deform = 'icons/mob/human_races/xenos/r_xenos_queen.dmi' - - has_organ = list( - O_HEART = /obj/item/organ/internal/heart, - O_BRAIN = /obj/item/organ/internal/brain/xeno, - O_EGG = /obj/item/organ/internal/xenos/eggsac, - 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( - /mob/living/proc/ventcrawl, - /mob/living/carbon/human/proc/psychic_whisper, - /mob/living/carbon/human/proc/regurgitate, - /mob/living/carbon/human/proc/lay_egg, - /mob/living/carbon/human/proc/plant, - /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/resin - ) - -/datum/species/xenos/queen/handle_login_special(var/mob/living/carbon/human/H) - ..() - // Make sure only one official queen exists at any point. - if(!alien_queen_exists(1,H)) - H.real_name = "alien queen ([alien_number])" - H.name = H.real_name - else - H.real_name = "alien princess ([alien_number])" - H.name = H.real_name - -/datum/hud_data/alien - - icon = 'icons/mob/screen1_alien.dmi' - has_a_intent = 1 - has_m_intent = 1 - has_warnings = 1 - has_hands = 1 - has_drop = 1 - has_throw = 1 - has_resist = 1 - has_pressure = 0 - has_nutrition = 0 - has_bodytemp = 0 - has_internals = 0 - - gear = list( - "o_clothing" = list("loc" = ui_belt, "name" = "Suit", "slot" = slot_wear_suit, "state" = "equip", "dir" = SOUTH), - "head" = list("loc" = ui_id, "name" = "Hat", "slot" = slot_head, "state" = "hair"), - "storage1" = list("loc" = ui_storage1, "name" = "Left Pocket", "slot" = slot_l_store, "state" = "pocket"), - "storage2" = list("loc" = ui_storage2, "name" = "Right Pocket", "slot" = slot_r_store, "state" = "pocket"), - ) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm deleted file mode 100644 index 6cb8a46475..0000000000 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm +++ /dev/null @@ -1,49 +0,0 @@ -proc/create_new_xenomorph(var/alien_caste,var/target) - - target = get_turf(target) - if(!target || !alien_caste) return - - var/mob/living/carbon/human/new_alien = new(target) - new_alien.set_species("Xenomorph [alien_caste]") - return new_alien - -/mob/living/carbon/human/xdrone/New(var/new_loc) - h_style = "Bald" - ..(new_loc, "Xenomorph Drone") - -/mob/living/carbon/human/xsentinel/New(var/new_loc) - h_style = "Bald" - ..(new_loc, "Xenomorph Sentinel") - -/mob/living/carbon/human/xhunter/New(var/new_loc) - h_style = "Bald" - ..(new_loc, "Xenomorph Hunter") - -/mob/living/carbon/human/xqueen/New(var/new_loc) - h_style = "Bald" - ..(new_loc, "Xenomorph Queen") - -// I feel like we should generalize/condense down all the various icon-rendering antag procs. -/*---------------------------------------- -Proc: AddInfectionImages() -Des: Gives the client of the alien an image on each infected mob. -----------------------------------------*/ -/mob/living/carbon/human/proc/AddInfectionImages() - if (client) - for (var/mob/living/C in mob_list) - if(C.status_flags & XENO_HOST) - var/obj/item/alien_embryo/A = locate() in C - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]") - client.images += I - return - -/*---------------------------------------- -Proc: RemoveInfectionImages() -Des: Removes all infected images from the alien. -----------------------------------------*/ -/mob/living/carbon/human/proc/RemoveInfectionImages() - if (client) - for(var/image/I in client.images) - if(dd_hasprefix_case(I.icon_state, "infected")) - qdel(I) - return diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 322d08dc9f..ae172d7b71 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -22,7 +22,6 @@ var/obj/item/inventory_head var/obj/item/inventory_back - var/facehugger //IAN! SQUEEEEEEEEE~ /mob/living/simple_animal/corgi/Ian @@ -124,12 +123,6 @@ if(back_icon) overlays += back_icon - if(facehugger) - if(istype(src, /mob/living/simple_animal/corgi/puppy)) - overlays += image('icons/mob/mask.dmi',"facehugger_corgipuppy") - else - overlays += image('icons/mob/mask.dmi',"facehugger_corgi") - return diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm index d0a8e09207..77d52741ae 100644 --- a/code/modules/mob/living/simple_animal/friendly/slime.dm +++ b/code/modules/mob/living/simple_animal/friendly/slime.dm @@ -14,6 +14,18 @@ emote_see = list("jiggles", "bounces in place") var/colour = "grey" +/mob/living/simple_animal/slime/science + name = "Kendrick" + colour = "rainbow" + icon_state = "rainbow baby slime" + icon_living = "rainbow baby slime" + icon_dead = "rainbow baby slime dead" + +/mob/living/simple_animal/slime/science/initialize() + ..() + overlays.Cut() + overlays += "aslime-:33" + /mob/living/simple_animal/adultslime name = "pet slime" desc = "A lovable, domesticated slime." @@ -33,8 +45,7 @@ ..() overlays += "aslime-:33" - -/mob/living/simple_animal/slime/adult/death() +/mob/living/simple_animal/adultslime/death() var/mob/living/simple_animal/slime/S1 = new /mob/living/simple_animal/slime (src.loc) S1.icon_state = "[src.colour] baby slime" S1.icon_living = "[src.colour] baby slime" diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 34ee014bea..e351f08289 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -1,10 +1,4 @@ // fun if you want to typecast humans/monkeys/etc without writing long path-filled lines. -/proc/isxenomorph(A) - if(istype(A, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = A - return istype(H.species, /datum/species/xenos) - return 0 - /proc/issmall(A) if(A && istype(A, /mob/living)) var/mob/living/L = A diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index b0bc02f685..ca8d1bffe1 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -161,30 +161,6 @@ qdel(src) return O -//human -> alien -/mob/living/carbon/human/proc/Alienize() - if (transforming) - return - for(var/obj/item/W in src) - drop_from_inventory(W) - regenerate_icons() - transforming = 1 - canmove = 0 - icon = null - invisibility = 101 - for(var/t in organs) - qdel(t) - - var/alien_caste = pick("Hunter","Sentinel","Drone") - var/mob/living/carbon/human/new_xeno = create_new_xenomorph(alien_caste,loc) - - new_xeno.a_intent = I_HURT - new_xeno.key = key - - new_xeno << "You are now an alien." - qdel(src) - return - /mob/living/carbon/human/proc/slimeize(adult as num, reproduce as num) if (transforming) return diff --git a/code/modules/organs/subtypes/xenos.dm b/code/modules/organs/subtypes/xenos.dm deleted file mode 100644 index e734d745f7..0000000000 --- a/code/modules/organs/subtypes/xenos.dm +++ /dev/null @@ -1,52 +0,0 @@ -//XENOMORPH ORGANS -/obj/item/organ/internal/xenos - name = "xeno organ" - icon = 'icons/effects/blood.dmi' - desc = "It smells like an accident in a chemical factory." - -/obj/item/organ/internal/xenos/eggsac - name = "egg sac" - parent_organ = BP_GROIN - icon_state = "xgibmid1" - organ_tag = O_EGG - -/obj/item/organ/internal/xenos/plasmavessel - name = "plasma vessel" - parent_organ = BP_TORSO - icon_state = "xgibdown1" - organ_tag = O_PLASMA - var/stored_plasma = 0 - var/max_plasma = 500 - -/obj/item/organ/internal/xenos/plasmavessel/queen - name = "bloated plasma vessel" - stored_plasma = 200 - max_plasma = 500 - -/obj/item/organ/internal/xenos/plasmavessel/sentinel - stored_plasma = 100 - max_plasma = 250 - -/obj/item/organ/internal/xenos/plasmavessel/hunter - name = "tiny plasma vessel" - stored_plasma = 100 - max_plasma = 150 - -/obj/item/organ/internal/xenos/acidgland - name = "acid gland" - parent_organ = BP_HEAD - icon_state = "xgibtorso" - organ_tag = O_ACID - -/obj/item/organ/internal/xenos/hivenode - name = "hive node" - parent_organ = BP_TORSO - icon_state = "xgibmid2" - organ_tag = O_HIVE - -/obj/item/organ/internal/xenos/resinspinner - name = "resin spinner" - parent_organ = BP_HEAD - icon_state = "xgibmid2" - organ_tag = O_RESIN - diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 45e8910b38..9fcc709ba0 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -32,8 +32,6 @@ var/options = list("robot", "slime") for(var/t in all_species) options += t - options -= "Xenomorph Queen" - options -= "Xenomorph" if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.species) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 112887fa5d..8a6d50ab29 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -178,11 +178,8 @@ W.visible_message("The fungi are completely dissolved by the solution!") /datum/reagent/toxin/plantbgone/touch_obj(var/obj/O, var/volume) - if(istype(O, /obj/effect/alien/weeds/)) - var/obj/effect/alien/weeds/alien_weeds = O - alien_weeds.health -= rand(15, 35) - alien_weeds.healthcheck() - else if(istype(O, /obj/effect/plant)) + ..() + if(istype(O, /obj/effect/plant)) qdel(O) /datum/reagent/toxin/plantbgone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 4b1b83b215..9b7b006759 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -12,46 +12,6 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) return affected && affected.open == (affected.encased ? 3 : 2) -////////////////////////////////////////////////////////////////// -// ALIEN EMBRYO SURGERY // -////////////////////////////////////////////////////////////////// -/datum/surgery_step/internal/remove_embryo - allowed_tools = list( - /obj/item/weapon/hemostat = 100, \ - /obj/item/weapon/wirecutters = 75, \ - /obj/item/weapon/material/kitchen/utensil/fork = 20 - ) - blood_level = 2 - - min_duration = 80 - max_duration = 100 - - can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/embryo = 0 - for(var/obj/item/alien_embryo/A in target) - embryo = 1 - break - - if (!hasorgans(target)) - return - var/obj/item/organ/external/affected = target.get_organ(target_zone) - return ..() && affected && embryo && affected.open == 3 && target_zone == BP_TORSO - - begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/msg = "[user] starts to pull something out from [target]'s ribcage with \the [tool]." - var/self_msg = "You start to pull something out from [target]'s ribcage with \the [tool]." - user.visible_message(msg, self_msg) - target.custom_pain("Something hurts horribly in your chest!",1) - ..() - - end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] rips the larva out of [target]'s ribcage!", - "You rip the larva out of [target]'s ribcage!") - - for(var/obj/item/alien_embryo/A in target) - A.loc = A.loc.loc - - ////////////////////////////////////////////////////////////////// // CHEST INTERNAL ORGAN SURGERY // ////////////////////////////////////////////////////////////////// diff --git a/icons/mob/human_races/r_armalis.dmi b/icons/mob/human_races/r_armalis.dmi deleted file mode 100644 index b7609d9427..0000000000 Binary files a/icons/mob/human_races/r_armalis.dmi and /dev/null differ diff --git a/icons/mob/human_races/xenos/r_xenos_drone.dmi b/icons/mob/human_races/xenos/r_xenos_drone.dmi deleted file mode 100644 index 19094d66ed..0000000000 Binary files a/icons/mob/human_races/xenos/r_xenos_drone.dmi and /dev/null differ diff --git a/icons/mob/human_races/xenos/r_xenos_hunter.dmi b/icons/mob/human_races/xenos/r_xenos_hunter.dmi deleted file mode 100644 index a6ce545f3a..0000000000 Binary files a/icons/mob/human_races/xenos/r_xenos_hunter.dmi and /dev/null differ diff --git a/icons/mob/human_races/xenos/r_xenos_queen.dmi b/icons/mob/human_races/xenos/r_xenos_queen.dmi deleted file mode 100644 index efb5558ac1..0000000000 Binary files a/icons/mob/human_races/xenos/r_xenos_queen.dmi and /dev/null differ diff --git a/icons/mob/human_races/xenos/r_xenos_sentinel.dmi b/icons/mob/human_races/xenos/r_xenos_sentinel.dmi deleted file mode 100644 index 5b250c7445..0000000000 Binary files a/icons/mob/human_races/xenos/r_xenos_sentinel.dmi and /dev/null differ diff --git a/icons/mob/slimes.dmi b/icons/mob/slimes.dmi index 3e6b915efa..f2da09ad8f 100644 Binary files a/icons/mob/slimes.dmi and b/icons/mob/slimes.dmi differ diff --git a/maps/polaris-1.dmm b/maps/polaris-1.dmm index a3739a08c4..eeb01a2822 100644 --- a/maps/polaris-1.dmm +++ b/maps/polaris-1.dmm @@ -4743,7 +4743,7 @@ "bNk" = (/obj/structure/filingcabinet/chestdrawer,/obj/effect/floor_decal/corner/purple{dir = 9},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bNl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bNm" = (/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) -"bNn" = (/obj/structure/lamarr,/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice) +"bNn" = (/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice) "bNo" = (/obj/structure/table/standard,/obj/item/device/mmi,/obj/item/device/mmi,/obj/item/device/mmi,/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/simulated/floor/tiled,/area/assembly/robotics) "bNp" = (/turf/simulated/floor/tiled,/area/assembly/robotics) "bNq" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/assembly/robotics) @@ -4941,7 +4941,7 @@ "bRa" = (/obj/machinery/computer/aifixer,/obj/effect/floor_decal/corner/purple/full,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bRb" = (/obj/machinery/computer/robotics,/obj/effect/floor_decal/corner/purple{dir = 10},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bRc" = (/obj/machinery/computer/mecha,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/ai_status_display{pixel_y = -32},/obj/machinery/camera/network/research{c_tag = "SCI - RD's Office"; dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) -"bRd" = (/obj/effect/floor_decal/corner/purple/full{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) +"bRd" = (/obj/effect/floor_decal/corner/purple/full{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/mob/living/simple_animal/slime/science,/turf/simulated/floor/tiled/white,/area/rnd/rdoffice) "bRe" = (/obj/structure/table/rack,/obj/item/weapon/rig/hazmat/equipped,/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/rnd/rdoffice) "bRf" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/bodybags{pixel_x = -1; pixel_y = -2},/obj/item/weapon/pen,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/assembly/robotics) "bRg" = (/obj/machinery/optable{name = "Robotics Operating Table"},/turf/simulated/floor/tiled/white,/area/assembly/robotics) diff --git a/maps/polaris-2.dmm b/maps/polaris-2.dmm index fd6205abe3..c2df08447c 100644 --- a/maps/polaris-2.dmm +++ b/maps/polaris-2.dmm @@ -2148,31 +2148,31 @@ "Pp" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pq" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pr" = (/obj/item/clothing/head/xenos,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"Ps" = (/obj/item/organ/internal/xenos/plasmavessel,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"Pt" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) +"Ps" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) +"Pt" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/spikethrower,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pu" = (/obj/item/clothing/mask/gas/swat{desc = "A close-fitting mask clearly not made for a human face."; name = "\improper alien mask"},/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pv" = (/obj/item/xenos_claw,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"Pw" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/spikethrower,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"Px" = (/obj/structure/table/rack,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) +"Pw" = (/obj/structure/table/rack,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) +"Px" = (/obj/structure/table/rack,/obj/item/clothing/glasses/thermal/plain/monocle,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Py" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -28; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) "Pz" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) "PA" = (/obj/item/pizzabox/meat,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"PB" = (/obj/structure/table/rack,/obj/item/clothing/glasses/thermal/plain/monocle,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) +"PB" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PC" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PD" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PE" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"PF" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"PG" = (/turf/simulated/wall/skipjack,/area/skipjack_station/start) +"PF" = (/turf/simulated/wall/skipjack,/area/skipjack_station/start) +"PG" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start) "PH" = (/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PI" = (/obj/item/weapon/tank/nitrogen,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"PJ" = (/obj/item/organ/internal/xenos/eggsac,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) +"PJ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start) "PK" = (/obj/item/organ/internal/stack,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PL" = (/obj/structure/bed/chair,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PP" = (/obj/machinery/computer/station_alert,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"PQ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start) +"PQ" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "PR" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/weapon/tank/nitrogen,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PS" = (/obj/item/clothing/head/philosopher_wig,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PT" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"}) @@ -2182,14 +2182,12 @@ "PX" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "PY" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/skipjack_station/start) "PZ" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/skipjack_station/start) -"Qa" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start) -"Qb" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) +"Qa" = (/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start) "Qc" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northwest_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Qd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Qe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Qf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Qg" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northeast_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"Qh" = (/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start) "Qi" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Qj" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_west_sensor"; pixel_x = 25},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Qk" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) @@ -2600,34 +2598,34 @@ aRmjmjmjOvOPOPOvOvOvOvOvOvOvOvOgOxOxOIOgPeOxOgOxOxOxOMPbPfOvOvOgmjmjaRmjmjmjmjmd aRmjmjmjOvOPOvOvOvmjmjOvOgOgOgOgPgOxOwOgPgOwOgOxOxOxOgPbPbPbPhOgmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjmjmjOvPiPiOvmjmjmjOvPjPkPkOgOgOgOgOgOgOgOgOxOxOxOgPbPbPbPlOgmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNSNRaR aRmjOvOPOPOPOPOvOvmjmjOvPmPnPmOMOxOxOxOxOxOxOxOxOxOxOgPoPpPqOgOgmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRaR -aRmjPrOPOPOPOPPsOvmjmjOgPtPmPmOMOxOxOxOxOxOxOxOxOxOxOgOvOvOvOvOvmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaR -aRmjPuPvPwOPPwOPOPmjmjOgPyPzOgOgOgOgOgOgOgOgOgOgOMOgOgOgOgOgOgOgOgOgOgmjmjaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjPAOPPxOPPwOPOPmjmjOvOvOvOgOxOxOxOxOxOxOgPCPDPDPDPEOgOxOxOxOxOxOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjOvOPPxOPPBOPOPmjmjaPaPmjOgOxOwOxOxOxOxOgPDPDPHPDPDOgOxOxOxOxOwOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjOvPIPJOPOPPKOPmjmjaPaPmjOgOxOxOxOxOxOxOMPDPDPLPDPDOMOxOxOxOxOxOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjOvOvOPOPOPOPOvmjmjmSaPaPOgOxOxOgPMPNPOOgPDPPPFPDKmOgPMPNPOOgOxOxOgaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjPrOPOPOPOPOPOvmjmjOgPsPmPmOMOxOxOxOxOxOxOxOxOxOxOgOvOvOvOvOvmjmjaRmjmjmjaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaR +aRmjPuPvPtOPPtOPOPmjmjOgPyPzOgOgOgOgOgOgOgOgOgOgOMOgOgOgOgOgOgOgOgOgOgmjmjaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjPAOPPwOPPtOPOPmjmjOvOvOvOgOxOxOxOxOxOxOgPCPDPDPDPEOgOxOxOxOxOxOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjOvOPPwOPPxOPOPmjmjaPaPmjOgOxOwOxOxOxOxOgPDPDPHPDPDOgOxOxOxOxOwOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjOvPIOPOPOPPKOPmjmjaPaPmjOgOxOxOxOxOxOxOMPDPDPLPDPDOMOxOxOxOxOxOxOgmjaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjOvOvOPOPOPOPOvmjmjmSaPaPOgOxOxOgPMPNPOOgPDPPPBPDKmOgPMPNPOOgOxOxOgaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjOvOvOvOvPRPSOvmjmTmSaPaPOgOxOxOgaPaPaPOgOgPMPNPOOgOgaPaPaPOgOxOxOgaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjOvOvOvOvOvOvmjaPaPaPaPaPPTPUPUPVaPaPaPaPaPaPaPaPaPaPaPaPaPPTPUPUPVaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjmjmjmjmjaPaPaPaPPTPWPXPVaPaPaPaPaPaPaPaPaPaPaPaPaPPTPWPXPVaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjmjmjmjaPaPaPaPaPPTPWPXPVaPaPaPaPaPaPaPaPaPaPaPaPaPPTPWPXPVaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjmjmjmjaPaPaPaPaPPYPUPUPZaPaPaPPYaPaPaPaPaPPZaPaPaPPYPUPUPZaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjmjaPaPaPaPaPaPaPaPPGPQQcPGaPaPaPPGQdQeQeQeQfPGaPaPaPPGQgQaPGaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjmjaPaPaPaPaPaPaPaPPGQiQjPGaPaPPYPGPGQkQbQmQhPGPZaPaPPGQoQpPGaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjmjaPaPaPaPaPaPaPaPPGQqQrPGaPaPPGPGQsQtQuQtQvPGPGaPaPPGQwQxPGaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjmjaPaPaPaPaPaPaPaPPGQyPGPGPGPGPGQzQAQAQAQAQAQBPGPGPGPGPGQCPGaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjmjaPaPaPaPaPaPaPaPPGQDQEQFQGQHPGQIQAQAQAQAQAQIPGQJQKQLQMQNPGaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjaPaPaPaPaPaPaPaPaPaPaPPGQOQPQPQPQQPGQRQSQTQUQRQSQTPGQVQPQPQWQOPGaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjmjaPaPaPaPaPaPaPaPPFPGQcPFaPaPaPPFQdQeQeQeQfPFaPaPaPPFQgPJPFaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjmjaPaPaPaPaPaPaPaPPFQiQjPFaPaPPYPFPFQkPQQmQaPFPZaPaPPFQoQpPFaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjmjaPaPaPaPaPaPaPaPPFQqQrPFaPaPPFPFQsQtQuQtQvPFPFaPaPPFQwQxPFaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjmjaPaPaPaPaPaPaPaPPFQyPFPFPFPFPFQzQAQAQAQAQAQBPFPFPFPFPFQCPFaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjmjaPaPaPaPaPaPaPaPPFQDQEQFQGQHPFQIQAQAQAQAQAQIPFQJQKQLQMQNPFaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjaPaPaPaPaPaPaPaPaPaPaPPFQOQPQPQPQQPFQRQSQTQUQRQSQTPFQVQPQPQWQOPFaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjaPaPaPaPaPaPaPaPaPaPaPQXQOQPQPQPQPQUQAQAQAQAQAQAQAQUQPQPQYQPQOQXaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPaPaPaPaPaPaPQZRaQPRbRPQPPGRcRdQAQAQAQARePGQPRfQPRgQOQZaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPaPaPaPaPaPaPRhRaQPQPPGRiPGPGPGRjTERlPGPGPGRiPGRmRnRoRhaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPaPaPaPaPaPPYPGTFRqRqPGRrRsRrQXRtRuRvQXRwRxRyPGRzRATGPGPZaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRCRCRCRCRCRCRCRCRCRCRCRCRDRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPmjmjaPaPaPREPGRFRFPGPGRrRrRrQZRtRkRvQZRyRyRGPGPGRFRFPGRHaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRIRJRKRLRMRNRCROTHRQRCRRRSRTRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPmjmjaPaPaPaPRERURURHPGRVRWRrRhRXQARXRhRyRyRYPGRERURURHaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKRKRZSaSbSaScRSRSSdRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPmjmjaPaPaPaPaPaPaPaPPGRrRrRrPGPGQUPGPGSeRySfPGaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCSgSgRKRKRKShRCSaSaSiRCRCRCRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPPGRrRrSjPGSkQASlPGRyRySmPGaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKSnRCSoSoSpRCSqSrSsStRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPPGPGSuRrPGSvQASwPGSxSyPGPGaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCSzSzRKRKRKSARCSoSoSoSBSoSoSoSCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPREPGPGPGPGSDSESFPGPGPGPGRHaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKSGRCSHSISJRCSKSLSMStRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP -aRmjmjmjmjmjaPaPaPaPmjmjaPaPaPaPaPaPaPaPREPGRFRFRFRFRFPGRHaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKShRCRCRCRCRCRCRCRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPaPaPaPaPaPaPQZRaQPRbRPQPPFRcRdQAQAQAQARePFQPRfQPRgQOQZaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPaPaPaPaPaPaPRhRaQPQPPFRiPFPFPFRjTERlPFPFPFRiPFRmRnRoRhaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPaPaPaPaPaPPYPFTFRqRqPFRrRsRrQXRtRuRvQXRwRxRyPFRzRATGPFPZaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRCRCRCRCRCRCRCRCRCRCRCRCRDRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPmjmjaPaPaPREPFRFRFPFPFRrRrRrQZRtRkRvQZRyRyRGPFPFRFRFPFRHaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRIRJRKRLRMRNRCROTHRQRCRRRSRTRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPmjmjaPaPaPaPRERURURHPFRVRWRrRhRXQARXRhRyRyRYPFRERURURHaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKRKRZSaSbSaScRSRSSdRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPmjmjaPaPaPaPaPaPaPaPPFRrRrRrPFPFQUPFPFSeRySfPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCSgSgRKRKRKShRCSaSaSiRCRCRCRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPPFRrRrSjPFSkQASlPFRyRySmPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKSnRCSoSoSpRCSqSrSsStRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPPFPFSuRrPFSvQASwPFSxSyPFPFaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCSzSzRKRKRKSARCSoSoSoSBSoSoSoSCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPREPFPFPFPFSDSESFPFPFPFPFRHaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKSGRCSHSISJRCSKSLSMStRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP +aRmjmjmjmjmjaPaPaPaPmjmjaPaPaPaPaPaPaPaPREPFRFRFRFRFRFPFRHaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKRKRKRKRKShRCRCRCRCRCRCRCRCRCRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjaPaPaPaPmjmjmjaPaPaPaPaPaPaPaPRERURURURURURHaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKSNSOSPSQRKSRSSSTSRSUSVSWSWSVRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjaPaPaPaPmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKSNSXSYSQRKSZSZSZSZTaSaSaSaSaRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP aRmjmjmjmjmjaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPmdaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPRCRKSNTbTcSQRKSZSZSZSZSZSZSZSZSZRCaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaPaP diff --git a/polaris.dme b/polaris.dme index 89216cc18d..9869a1e55c 100644 --- a/polaris.dme +++ b/polaris.dme @@ -219,7 +219,6 @@ #include "code\game\antagonist\antagonist_print.dm" #include "code\game\antagonist\antagonist_update.dm" #include "code\game\antagonist\alien\borer.dm" -#include "code\game\antagonist\alien\xenomorph.dm" #include "code\game\antagonist\outsider\commando.dm" #include "code\game\antagonist\outsider\deathsquad.dm" #include "code\game\antagonist\outsider\ert.dm" @@ -324,7 +323,6 @@ #include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_networking.dm" #include "code\game\gamemodes\meteor\meteor.dm" #include "code\game\gamemodes\meteor\meteors.dm" -#include "code\game\gamemodes\mixed\bughunt.dm" #include "code\game\gamemodes\mixed\conflux.dm" #include "code\game\gamemodes\mixed\infestation.dm" #include "code\game\gamemodes\mixed\paranoia.dm" @@ -547,7 +545,6 @@ #include "code\game\objects\objs.dm" #include "code\game\objects\structures.dm" #include "code\game\objects\weapons.dm" -#include "code\game\objects\effects\aliens.dm" #include "code\game\objects\effects\bump_teleporter.dm" #include "code\game\objects\effects\effect_system.dm" #include "code\game\objects\effects\explosion_particles.dm" @@ -762,7 +759,6 @@ #include "code\game\objects\structures\inflatable.dm" #include "code\game\objects\structures\janicart.dm" #include "code\game\objects\structures\kitchen_spike.dm" -#include "code\game\objects\structures\lamarr_cage.dm" #include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\mirror.dm" #include "code\game\objects\structures\mop_bucket.dm" @@ -807,7 +803,6 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" -#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" #include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" #include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" #include "code\game\objects\structures\stool_bed_chair_nest\stools.dm" @@ -901,7 +896,6 @@ #include "code\modules\admin\secrets\fun_secrets\turn_humans_into_monkeys.dm" #include "code\modules\admin\secrets\random_events\gravity.dm" #include "code\modules\admin\secrets\random_events\trigger_cordical_borer_infestation.dm" -#include "code\modules\admin\secrets\random_events\trigger_xenomorph_infestation.dm" #include "code\modules\admin\verbs\adminhelp.dm" #include "code\modules\admin\verbs\adminjump.dm" #include "code\modules\admin\verbs\adminpm.dm" @@ -1312,9 +1306,6 @@ #include "code\modules\mob\living\carbon\alien\diona\progression.dm" #include "code\modules\mob\living\carbon\alien\diona\say_understands.dm" #include "code\modules\mob\living\carbon\alien\diona\update_icons.dm" -#include "code\modules\mob\living\carbon\alien\larva\larva.dm" -#include "code\modules\mob\living\carbon\alien\larva\life.dm" -#include "code\modules\mob\living\carbon\alien\larva\progression.dm" #include "code\modules\mob\living\carbon\brain\brain.dm" #include "code\modules\mob\living\carbon\brain\brain_item.dm" #include "code\modules\mob\living\carbon\brain\death.dm" @@ -1359,11 +1350,6 @@ #include "code\modules\mob\living\carbon\human\species\station\seromi.dm" #include "code\modules\mob\living\carbon\human\species\station\slime.dm" #include "code\modules\mob\living\carbon\human\species\station\station.dm" -#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_embryo.dm" -#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_facehugger.dm" -#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_powers.dm" -#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_species.dm" -#include "code\modules\mob\living\carbon\human\species\xenomorphs\xenomorphs.dm" #include "code\modules\mob\living\carbon\metroid\death.dm" #include "code\modules\mob\living\carbon\metroid\emote.dm" #include "code\modules\mob\living\carbon\metroid\examine.dm" @@ -1525,7 +1511,6 @@ #include "code\modules\organs\subtypes\seromi.dm" #include "code\modules\organs\subtypes\standard.dm" #include "code\modules\organs\subtypes\unbreakable.dm" -#include "code\modules\organs\subtypes\xenos.dm" #include "code\modules\overmap\_defines.dm" #include "code\modules\overmap\sectors.dm" #include "code\modules\overmap\ships\ship.dm"