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