diff --git a/code/datums/outfits/misc/nostromo_crew.dm b/code/datums/outfits/misc/nostromo_crew.dm
index 7d35669df774..77cd85d518c3 100644
--- a/code/datums/outfits/misc/nostromo_crew.dm
+++ b/code/datums/outfits/misc/nostromo_crew.dm
@@ -1,6 +1,7 @@
/datum/outfit/nostromo
name = "Nostromo Outfit"
uniform = /obj/item/clothing/under/nostromo/white
+ shoes = /obj/item/clothing/shoes/white
/datum/outfit/nostromo/Arthur_Dallas
name = "Nostromo Arthur Dallas"
diff --git a/code/game/gamemodes/factions/alien.dm b/code/game/gamemodes/factions/alien.dm
index 9b0e5da809ce..b5e0bf451e9a 100644
--- a/code/game/gamemodes/factions/alien.dm
+++ b/code/game/gamemodes/factions/alien.dm
@@ -88,9 +88,9 @@
UnregisterSignal(crewmate, list(COMSIG_MOB_DIED, COMSIG_PARENT_QDELETING))
dead_crew++
MM.deadcrew_ratio = dead_crew / alltime_crew * 100
- if(dead_crew == 2)
+ if(MM.deadcrew_ratio == 20)
MM.open_cargo()
- if(dead_crew == 5)
+ if(MM.deadcrew_ratio == 50)
MM.open_evac()
if(dead_crew == alltime_crew)
round_end = TRUE
diff --git a/code/game/gamemodes/modes_gameplays/nuclear/pinpointer.dm b/code/game/gamemodes/modes_gameplays/nuclear/pinpointer.dm
index be0fa55ab22a..8b0242b17623 100644
--- a/code/game/gamemodes/modes_gameplays/nuclear/pinpointer.dm
+++ b/code/game/gamemodes/modes_gameplays/nuclear/pinpointer.dm
@@ -315,6 +315,7 @@
/obj/item/weapon/pinpointer/nostromo
+ icon_state = "n_pinoff"
mode = SEARCH_FOR_OBJECT
var/datum/map_module/alien/MM = null
@@ -341,6 +342,8 @@
to_chat(user, "The target is missing")
return
..()
+ if(!active)
+ icon_state = "n_pinoff"
/obj/item/weapon/pinpointer/nostromo/process()
if(!active)
@@ -349,18 +352,18 @@
if(isxenolonehunter(target))
var/mob/living/carbon/xenomorph/humanoid/hunter/H = target
if(H.invisible)
- icon_state = "pinonnull"
+ icon_state = "n_pinonnull"
return
set_dir(get_dir(src, target))
var/turf/self_turf = get_turf(src)
var/turf/target_turf = get_turf(target)
switch(get_dist(target_turf, self_turf))
if(1 to 6)
- icon_state = "pinonalert"
+ icon_state = "n_pinonalert"
if(7 to 20)
- icon_state = "pinonfar"
+ icon_state = "n_pinon"
if(21 to INFINITY)
- icon_state = "pinonnull"
+ icon_state = "n_pinonnull"
#undef SEARCH_FOR_DISK
#undef SEARCH_FOR_OBJECT
diff --git a/code/game/gamemodes/roles/alien.dm b/code/game/gamemodes/roles/alien.dm
index a5553aaff8e7..dbe5b30bd4d1 100644
--- a/code/game/gamemodes/roles/alien.dm
+++ b/code/game/gamemodes/roles/alien.dm
@@ -132,68 +132,68 @@
switch(code)
if("Captain")
output_text += {"
-Вы - капитан этого судна. Ваша задача - свести потери экипажа к минимуму.
+Вы - капитан этого судна. Ваша задача - свести потери среди экипажа к минимуму.
+Распределите среди людей обязанности и удостоверьтесь что они их выполняют.
Собирайте людей вместе, следите за тем, чтобы никто и никуда не ходил в одиночку.
-Регулярно проверяйте и восстанавливайте курс корабля.
Держите при себе рацию и внимательно следите за сообщениями от бортового ИИ.
В вашем шкафу есть датчик движения для отслеживания ксеноморфа и энергетический карабин.
+
+Регулярно проверяйте и восстанавливайте курс корабля.
Для восстановления курса корабля проследуйте в кабину пилота на мостике.
Там находятся 2 консоли, каждая из них отвечает за свой угол отклонения от курса.
Осмотрите их и поочерёдно используйте для восстановления курса корабля.
-Использование консоли приводит к приближению отклонения на ней к нулю и отдалению от него отклонения второй консоли.
-"}
+Использование консоли приводит к приближению отклонения на ней к нулю и отдалению от него отклонения второй консоли.
- if("Station Engineer")
- output_text += {"
-Вы - инженер этого судна. Ваша задача - не допустить поломки энергосистемы корабля.
Запустите двигатель и регулярно занимайтесь починкой СМЕСа.
-Будьте осторожны при запуске, двигатель излучает радиацию!
-Держите при себе рацию и внимательно следите за сообщениями от бортового ИИ.
+Будьте осторожны при запуске, двигатель излучает радиацию!
Для починки СМЕСа в первую очередь осмотрите его.
В чат будет выведено сообщение о его неисправности, по его содержанию поймите какой инструмент необходим.
Используйте нужные инструменты до полного восстановления СМЕСа.
При низкой стабильности СМЕСа вас может ударить током при попытке починить, используйте изоляцию!
+
+По кораблю в технических помещениях разбросано множество предметов, что могут быть полезны.
+Фонари, рации, куски ткани, инструменты.
+
Ксеноморф уязвим к огню. Используйте коктейли молотова и огнемёт для борьбы с ним.
Чтобы сделать молотов опустошите бутылку и наполните её топливом, затем поместите в горлышко ткань.
Для опустошения бутылки нажмите на неё пкм и в выпадающем списке найдите кнопку для этого.
Чтобы сделать огнемёт используйте прутья на сварке, а затем добавьте к этому воспламенитель и бак с горючим газом.
-Также можете сделать болы, но не используйте их слишком часто!
+Также можете сделать болы, но не используйте их слишком часто!
+
+Ксеноморф питается трупами, хоть на корабле и не предусмотрен морг, позаботьтесь о том, чтобы любой труп был спрятан до того, как ксеноморф им полакомится.
"}
- if("Blueshield Officer")
+ if("Crewmate")
output_text += {"
-Вы - пилот этого судна. Ваша задача - не допустить схождения корабля с его курса.
-Помогайте капитану. Регулярно проверяйте и восстанавливайте курс корабля.
+Вы - член экипажа этого судна. Ваша задача - остаться в живых.
+Слушайте что вам говорит капитан!
+Не разбегайтесь в самом начале, сначала распределите между собой обязанности!
+
Держите при себе рацию и внимательно следите за сообщениями от бортового ИИ.
-В вашем шкафу есть мощный флэшер, используйте его для отпора ксеноморфу.
+
+Регулярно проверяйте и восстанавливайте курс корабля.
Для восстановления курса корабля проследуйте в кабину пилота на мостике.
Там находятся 2 консоли, каждая из них отвечает за свой угол отклонения от курса.
Осмотрите их и поочерёдно используйте для восстановления курса корабля.
Использование консоли приводит к приближению отклонения на ней к нулю и отдалению от него отклонения второй консоли.
-"}
- if("Medical Doctor")
- output_text += {"
-Вы - врач этого судна. Ваша задача - лечение раненых.
-Для этого в мед лаборатории вы найдёте.
-Пояс и мешки для хранения мед инвентаря.
-Шприцемёт и автоинжекторы для быстрого введения препаратов.
-Слипер для введения специфичных лекарств.
-Бинты и нити для остановки кровотечений.
-Бутылёк перидаксона для лечения внутренних органов.
-Банка пилюль с антибиотиками для лечения заражений.
-Ксеноморф питается трупами, хоть на корабле и не предусмотрен морг, позаботьтесь о том, чтобы любой труп был спрятан до того, как ксеноморф им полакомится.
-"}
+Запустите двигатель и регулярно занимайтесь починкой СМЕСа.
+Будьте осторожны при запуске, двигатель излучает радиацию!
+Для починки СМЕСа в первую очередь осмотрите его.
+В чат будет выведено сообщение о его неисправности, по его содержанию поймите какой инструмент необходим.
+Используйте нужные инструменты до полного восстановления СМЕСа.
+При низкой стабильности СМЕСа вас может ударить током при попытке починить, используйте изоляцию!
- if("Cargo Technician")
- output_text += {"
-Вы - снабженец этого судна. Ваша задача - снабдить людей всем необходимым.
-По кораблю в технических помещениях разбросано множество предметов, что могут быть полезны.
-Фонари, рации, куски ткани, инструменты. Соберите это всё и раздайте среди экипажа.
-В комнате отдыха, в ближайшем ко входу шкафу вы найдёте свой небольшой мешок.
-Ксеноморф уязвим к огню. Используйте коктейли молотова для борьбы с ним.
+По кораблю в технических помещениях разбросано множество предметов, что могут быть полезны.
+Фонари, рации, куски ткани, инструменты.
+
+Ксеноморф уязвим к огню. Используйте коктейли молотова и огнемёт для борьбы с ним.
Чтобы сделать молотов опустошите бутылку и наполните её топливом, затем поместите в горлышко ткань.
-Для опустошения бутылки нажмите на неё пкм и в выпадающем списке вы найдите кнопку для этого.
+Для опустошения бутылки нажмите на неё пкм и в выпадающем списке найдите кнопку для этого.
+Чтобы сделать огнемёт используйте прутья на сварке, а затем добавьте к этому воспламенитель и бак с горючим газом.
+Также можете сделать болы, но не используйте их слишком часто!
+
+Ксеноморф питается трупами, хоть на корабле и не предусмотрен морг, позаботьтесь о том, чтобы любой труп был спрятан до того, как ксеноморф им полакомится.
"}
if("Alien")
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 868127d043f6..f95130f0fefc 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -728,6 +728,7 @@
icon_state = "leathjacket"
item_state = "leathjacket"
item_state_world = "leathjacket_w"
+ armor = list(melee = 20, bullet = 20, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0)
var/open = TRUE
/obj/item/clothing/suit/nostromo/leathjacket/verb/toggle()
diff --git a/code/modules/map_module/alien.dm b/code/modules/map_module/alien.dm
index 1a33f66c48de..f1921729515c 100644
--- a/code/modules/map_module/alien.dm
+++ b/code/modules/map_module/alien.dm
@@ -48,7 +48,6 @@
var/datum/faction/nostromo_crew/crew_faction = null
var/list/crew_outfit = list(
- /datum/outfit/nostromo/Arthur_Dallas,
/datum/outfit/nostromo/Thomas_Kane,
/datum/outfit/nostromo/Ellen_Ripley,
/datum/outfit/nostromo/Ash,
@@ -66,6 +65,7 @@
/obj/item/stack/sheet/cloth/three,
/obj/item/weapon/grenade/chem_grenade/antiweed,
/obj/item/weapon/kitchenknife/combat,
+ /obj/item/weapon/storage/pouch/medium_generic,
/obj/item/weapon/storage/toolbox/mechanical)
/datum/map_module/alien/New()
@@ -87,10 +87,15 @@
/datum/map_module/alien/proc/equip(mob/living/carbon/human/crewmate)
for(var/item in crewmate.get_equipped_items())
qdel(item)
- crewmate.equipOutfit(pick_n_take(crew_outfit)) // random outfit
+ if(crewmate.job == "Captain")
+ crewmate.equipOutfit(/datum/outfit/nostromo/Arthur_Dallas)
+ else
+ crewmate.equipOutfit(pick_n_take(crew_outfit)) // random outfit
var/obj/item/weapon/card/id/C = new(crewmate)
C.assign(crewmate.real_name) // no job on card
- C.access = crewmate.mind.assigned_job.get_access()
+ C.access = list(access_maint_tunnels)
+ if(crewmate.job == "Captain")
+ C.access += access_captain
crewmate.equip_or_collect(C, SLOT_WEAR_ID)
/////////////////////////////////////////////////////////////////////////////////////
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index a3087b74e365..4d2761d2fa34 100644
Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ
diff --git a/maps/_events/job_changes.dm b/maps/_events/job_changes.dm
index 64142748ae21..576085257fa8 100644
--- a/maps/_events/job_changes.dm
+++ b/maps/_events/job_changes.dm
@@ -1,65 +1,38 @@
#define JOB_MODIFICATION_MAP_NAME "Nostromo (Alien)"
-/datum/job/captain/New()
- ..()
- MAP_JOB_CHECK
- access = list(access_maint_tunnels, access_captain)
- minimal_player_ingame_minutes = 1200
- skillsets = list("Captain" = /datum/skillset/falcon/captain)
- outfit = /datum/outfit/nostromo
-
-/datum/job/doctor/New()
- ..()
- MAP_JOB_CHECK
- access = list(access_maint_tunnels, access_medical)
- total_positions = 2
- spawn_positions = 2
- alt_titles = list()
- minimal_player_ingame_minutes = 300
- supervisors = "the captain"
- skillsets = list("Medical Doctor" = /datum/skillset/falcon/doctor)
- outfit = /datum/outfit/nostromo
-
-/datum/job/engineer/New()
- ..()
- MAP_JOB_CHECK
- title = "Engineer"
- access = list(access_maint_tunnels, access_engine)
- total_positions = 2
- spawn_positions = 2
- alt_titles = list()
- minimal_player_ingame_minutes = 300
- supervisors = "the captain"
- skillsets = list("Engineer" = /datum/skillset/falcon/engineer)
- outfit = /datum/outfit/nostromo
-
-/datum/job/blueshield/New()
+/datum/job/assistant/New()
..()
MAP_JOB_CHECK
- title = "Pilot"
- access = list(access_maint_tunnels, access_blueshield)
- total_positions = 1
- spawn_positions = 1
+ title = "Crewmate"
alt_titles = list()
- supervisors = "the captain"
- skillsets = list("Pilot" = /datum/skillset/falcon/officer)
+ total_positions = 6
+ spawn_positions = 6
+ access = list(access_maint_tunnels)
+ skillsets = list("Crewmate" = /datum/skillset/jack_of_all_trades)
outfit = /datum/outfit/nostromo
-/datum/job/cargo_tech/New()
+/datum/job/captain/New()
..()
MAP_JOB_CHECK
- access = list(access_maint_tunnels, access_cargo)
- total_positions = 1
- spawn_positions = 1
- minimal_player_ingame_minutes = 300
- supervisors = "the captain"
- skillsets = list("Cargo Technician" = /datum/skillset/falcon/quartermaster)
- outfit = /datum/outfit/nostromo
+ access = list(access_maint_tunnels, access_captain)
+ minimal_player_ingame_minutes = 1200
+ skillsets = list("Captain" = /datum/skillset/jack_of_all_trades)
+ outfit = /datum/outfit/nostromo/Arthur_Dallas
// ONLY HUMAN CAN PLAY THIS IVENT XENOSI SOSAAAAT
/datum/job/special_species_check(datum/species/S)
return S.name == HUMAN
+MAP_REMOVE_JOB(cargo_tech)
+
+MAP_REMOVE_JOB(doctor)
+
+MAP_REMOVE_JOB(blueshield)
+
+MAP_REMOVE_JOB(engineer)
+
+MAP_REMOVE_JOB(chief_engineer)
+
MAP_REMOVE_JOB(chief_engineer)
MAP_REMOVE_JOB(atmos)
@@ -136,6 +109,4 @@ MAP_REMOVE_JOB(warden)
MAP_REMOVE_JOB(forensic)
-MAP_REMOVE_JOB(assistant)
-
#undef JOB_MODIFICATION_MAP_NAME
diff --git a/maps/_events/nostromo.dmm b/maps/_events/nostromo.dmm
index 102cbb027184..73081f1303aa 100644
--- a/maps/_events/nostromo.dmm
+++ b/maps/_events/nostromo.dmm
@@ -1571,11 +1571,13 @@
},
/area/station/nostromo)
"ig" = (
-/obj/random/vending/cola,
/obj/effect/decal/turf_decal/alpha/black{
dir = 9;
icon_state = "nostromo"
},
+/obj/machinery/vending/cola/black{
+ prices = list()
+ },
/turf/simulated/floor{
dir = 9;
icon_state = "nostromo"
@@ -1969,7 +1971,6 @@
icon_state = "nostromo"
},
/obj/effect/landmark/nostromo/random_loot,
-/obj/item/weapon/storage/pouch/medium_generic,
/obj/item/clothing/under/nostromo/green,
/turf/simulated/floor{
dir = 6;
@@ -2860,8 +2861,8 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/effect/landmark/start/blueshield_officer{
- name = "Pilot"
+/obj/effect/landmark/start/assistant{
+ name = "Crewmate"
},
/turf/simulated/floor{
icon_state = "nostromofull"
@@ -5622,7 +5623,7 @@
icon_opened = "secureeng_open";
icon_state = "secureeng";
name = "Engineers Locker";
- req_access = list(10)
+ req_access = list(12)
},
/obj/item/clothing/gloves/insulated,
/obj/item/clothing/gloves/insulated,
@@ -7184,7 +7185,7 @@
icon_opened = "blueshieldsecure_open";
icon_state = "blueshieldsecure";
name = "Pilot Locker";
- req_access = list(42)
+ req_access = list(12)
},
/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate,
/obj/item/device/flashlight/seclite,
@@ -7231,7 +7232,9 @@
},
/area/station/nostromo)
"Gg" = (
-/obj/machinery/vending/coffee,
+/obj/machinery/vending/coffee{
+ prices = list()
+ },
/obj/effect/decal/turf_decal/alpha/black{
dir = 1;
icon_state = "nostromo"
@@ -7291,9 +7294,7 @@
/area/station/nostromo)
"Gu" = (
/obj/structure/stool/bed/chair/metal/white,
-/obj/effect/landmark/start/station_engineer{
- name = "Engineer"
- },
+/obj/effect/landmark/start/captain,
/turf/simulated/floor{
icon_state = "nostromofull"
},
@@ -7832,12 +7833,14 @@
d2 = 8;
icon_state = "4-8"
},
-/obj/effect/landmark/start/medical_doctor,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/effect/landmark/start/assistant{
+ name = "Crewmate"
+ },
/turf/simulated/floor{
icon_state = "nostromofull"
},
@@ -7928,12 +7931,14 @@
d2 = 8;
icon_state = "4-8"
},
-/obj/effect/landmark/start/cargo_technician,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/effect/landmark/start/assistant{
+ name = "Crewmate"
+ },
/turf/simulated/floor{
icon_state = "nostromofull"
},
@@ -8497,8 +8502,8 @@
/obj/structure/stool/bed/chair/metal/white{
dir = 4
},
-/obj/effect/landmark/start/station_engineer{
- name = "Engineer"
+/obj/effect/landmark/start/assistant{
+ name = "Crewmate"
},
/turf/simulated/floor{
icon_state = "nostromofull"
@@ -8554,7 +8559,9 @@
/obj/structure/stool/bed/chair/metal/white{
dir = 8
},
-/obj/effect/landmark/start/medical_doctor,
+/obj/effect/landmark/start/assistant{
+ name = "Crewmate"
+ },
/turf/simulated/floor{
icon_state = "nostromofull"
},
@@ -8672,7 +8679,7 @@
icon_opened = "cmosecure_open";
icon_state = "cmosecure";
name = "Doctors Locker";
- req_access = list(5)
+ req_access = list(12)
},
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack_adv,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack_adv,
@@ -8831,7 +8838,9 @@
/obj/structure/stool/bed/chair/metal/white{
dir = 1
},
-/obj/effect/landmark/start/captain,
+/obj/effect/landmark/start/assistant{
+ name = "Crewmate"
+ },
/turf/simulated/floor{
icon_state = "nostromofull"
},
@@ -9701,10 +9710,18 @@
},
/area/station/nostromo)
"PO" = (
-/obj/machinery/vending/hydroseeds,
/obj/effect/decal/turf_decal/alpha/black{
icon_state = "nostromofull"
},
+/obj/structure/closet/crate/secure/hydrosec{
+ anchored = 1;
+ req_access = list(12);
+ resistance_flags = 64
+ },
+/obj/item/weapon/reagent_containers/spray/plantbgone,
+/obj/item/weapon/reagent_containers/spray/plantbgone,
+/obj/item/seeds/appleseed,
+/obj/item/seeds/meatwheat,
/turf/simulated/floor{
icon_state = "nostromofull"
},
@@ -12015,7 +12032,7 @@
},
/area/station/nostromo)
"YQ" = (
-/obj/random/vending/cola,
+/obj/machinery/vending/chinese,
/turf/simulated/floor/plating,
/area/station/nostromo)
"YT" = (
diff --git a/sound/antag/Alien_sounds/alien_lobby_ambience.ogg b/sound/antag/Alien_sounds/alien_lobby_ambience.ogg
index 0b3c71109b18..2bc8451818a3 100644
Binary files a/sound/antag/Alien_sounds/alien_lobby_ambience.ogg and b/sound/antag/Alien_sounds/alien_lobby_ambience.ogg differ