diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_remora.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_remora.dmm index f590c0cb49d3..d70b85c77c4d 100644 --- a/_maps/shuttles/syndicate/syndicate_cybersun_remora.dmm +++ b/_maps/shuttles/syndicate/syndicate_cybersun_remora.dmm @@ -74,12 +74,12 @@ dir = 8 }, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "aq" = ( @@ -98,10 +98,10 @@ /area/ship/hallway/central) "at" = ( /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/light/directional/east, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "au" = ( @@ -365,13 +365,13 @@ }, /obj/structure/window/reinforced, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "aV" = ( @@ -385,10 +385,10 @@ "aX" = ( /obj/structure/window/reinforced, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/syndi/scarlet, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/door/firedoor/border_only, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "aY" = ( @@ -1121,7 +1121,6 @@ dir = 1 }, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/cybersun, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -1130,6 +1129,7 @@ dir = 1 }, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "ct" = ( @@ -1145,12 +1145,12 @@ dir = 1 }, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/cybersun, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/door/firedoor/border_only{ dir = 1 }, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "cv" = ( @@ -1327,12 +1327,12 @@ dir = 8 }, /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/cybersun, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "cL" = ( @@ -2264,10 +2264,10 @@ /area/ship/hallway/central) "ey" = ( /obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/cybersun, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/light/directional/east, /obj/item/tank/jetpack/carbondioxide, +/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed, /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "ez" = ( diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index 08ca94db6c6a..bd31a45ed7b9 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -15,9 +15,12 @@ #error Please consider upgrading to 514.1577 or above. #endif -#if (DM_VERSION == 514 && DM_BUILD == 1589) -#warn Warning! Byond 514.1589 has been known to be unstable. Use at your own risk. -#warn Please consider using 514.1588. + + +#if (DM_VERSION == 514 && DM_BUILD == 1590) +#error Warning! Byond 514.1590 has been known to be unstable. Use at your own risk. +#error Please consider using 514.1589. + #endif // Keep savefile compatibilty at minimum supported level diff --git a/code/game/machinery/shuttle/shuttle_engine_types.dm b/code/game/machinery/shuttle/shuttle_engine_types.dm index f0b8e5bea354..2c6e5fbb8e03 100644 --- a/code/game/machinery/shuttle/shuttle_engine_types.dm +++ b/code/game/machinery/shuttle/shuttle_engine_types.dm @@ -90,15 +90,15 @@ desc = "A thruster that burns plasma from an adjacent heater to create thrust." circuit = /obj/item/circuitboard/machine/shuttle/engine/plasma fuel_type = GAS_PLASMA - fuel_use = 20 - thrust = 25 + fuel_use = 30 + thrust = 12 /obj/machinery/power/shuttle/engine/fueled/expulsion name = "expulsion thruster" desc = "A thruster that expels gas inefficiently to create thrust." circuit = /obj/item/circuitboard/machine/shuttle/engine/expulsion - fuel_use = 80 - thrust = 15 + fuel_use = 90 + thrust = 8 //All fuel code already handled /** @@ -113,20 +113,53 @@ icon_state_off = "burst_off" icon_state_closed = "burst" icon_state_open = "burst_open" - thrust = 1.5 + thrust = 0.8 ///Amount, in kilojoules, needed for a full burn. - var/power_per_burn = 85000 + var/power_per_burn = 25000 + +/obj/machinery/power/shuttle/engine/electric/tech1 + name = "1-st ion thruster" + desc = "A thruster that expels charged particles to generate thrust." + circuit = /obj/item/circuitboard/machine/shuttle/engine/electric/tech1 + icon_state = "tech1" + icon_state_off = "tech1_off" + icon_state_closed = "tech1" + icon_state_open = "tech1_open" + thrust = 2 + power_per_burn = 35000 + +/obj/machinery/power/shuttle/engine/electric/tech2 + name = "2-st ion thruster" + desc = "A thruster that expels charged particles to generate thrust." + circuit = /obj/item/circuitboard/machine/shuttle/engine/electric/tech2 + icon_state = "tech2" + icon_state_off = "tech2_off" + icon_state_closed = "tech2" + icon_state_open = "tech2_open" + thrust = 4 + power_per_burn = 50000 + +/obj/machinery/power/shuttle/engine/electric/tech3 + name = "3-st ion thruster" + desc = "A thruster that expels charged particles to generate thrust." + circuit = /obj/item/circuitboard/machine/shuttle/engine/electric/tech3 + icon_state = "tech3" + icon_state_off = "tech3_off" + icon_state_closed = "tech3" + icon_state_open = "tech3_open" + thrust = 6 + power_per_burn = 65000 /obj/machinery/power/shuttle/engine/electric/bad name = "Outdated Ion Thruster" circuit = /obj/item/circuitboard/machine/shuttle/engine/electric/bad - thrust = 2 - power_per_burn = 70000 + thrust = 0.5 + power_per_burn = 50000 /obj/machinery/power/shuttle/engine/electric/premium name = "high performance ion thruster" desc = "An expensive variant of a standard ion thruster, using highest quality components in order to achieve much better performance." - thrust = 30 + thrust = 3 power_per_burn = 65000 /obj/machinery/power/smes/shuttle diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 7e7bd499a19b..8ab4b94b6145 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -1454,6 +1454,24 @@ req_components = list(/obj/item/stock_parts/capacitor = 2, /obj/item/stock_parts/micro_laser = 2) +/obj/item/circuitboard/machine/shuttle/engine/electric/tech1 + name = "1st Ion Thruster (Machine Board)" + build_path = /obj/machinery/power/shuttle/engine/electric/tech1 + req_components = list(/obj/item/stock_parts/capacitor = 2, + /obj/item/stock_parts/micro_laser = 2) + +/obj/item/circuitboard/machine/shuttle/engine/electric/tech2 + name = "2st Ion Thruster (Machine Board)" + build_path = /obj/machinery/power/shuttle/engine/electric/tech2 + req_components = list(/obj/item/stock_parts/capacitor = 2, + /obj/item/stock_parts/micro_laser = 2) + +/obj/item/circuitboard/machine/shuttle/engine/electric/tech3 + name = "3st Ion Thruster (Machine Board)" + build_path = /obj/machinery/power/shuttle/engine/electric/tech3 + req_components = list(/obj/item/stock_parts/capacitor = 2, + /obj/item/stock_parts/micro_laser = 2) + /obj/item/circuitboard/machine/shuttle/engine/expulsion name = "Expulsion Thruster (Machine Board)" build_path = /obj/machinery/power/shuttle/engine/fueled/expulsion diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm index 791ad4aa90b6..43400ff83e62 100644 --- a/code/modules/admin/chat_commands.dm +++ b/code/modules/admin/chat_commands.dm @@ -2,7 +2,8 @@ /datum/tgs_chat_command/restart name = "restart" - help_text = "Restarts the server if there are no active admins on." + help_text = "Перезапустит сервер при отсутствии администрации на нём." + admin_only = TRUE /datum/tgs_chat_command/restart/Run(datum/tgs_chat_user/sender, params) var/active_admins = FALSE @@ -12,20 +13,20 @@ break if(!active_admins) SSticker.Reboot("Restart requested from the discord.", "discord") - return "Rebooting..." + return "Запущен перезапуск..." else - return "There are active admins on the server! Ask them to restart." + return "На данный момент имеются активные администраторы на сервере! Перезапуск через Discord невозможен!" /datum/tgs_chat_command/join name = "join" - help_text = "Sends a join link." + help_text = "Покажет ссылку для подключения к игре." /datum/tgs_chat_command/join/Run(datum/tgs_chat_user/sender, params) return "<[world.internet_address]:[world.port]>" /datum/tgs_chat_command/tgsstatus name = "status" - help_text = "Gets the admincount, playercount, gamemode, and true game mode of the server" + help_text = "Покажет список администраторов, количество игроков и игровой режим." admin_only = TRUE var/last_tgs_status = 0 @@ -36,8 +37,8 @@ last_tgs_status = rtod var/list/adm = get_admin_counts() var/list/allmins = adm["total"] - var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " - status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]." + var/status = "Администраторы: [allmins.len] (Активные: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Скрытые: [english_list(adm["stealth"])] Пропущенные: [english_list(adm["noflags"])]). " + status += "Игроки: [GLOB.clients.len] (Активные: [get_active_player_count(0,1,0)]). Режим: [SSticker.mode ? SSticker.mode.name : "Не запущен."]." for(var/c in GLOB.clients) var/client/C = c status += "\n[C.key]" @@ -45,7 +46,7 @@ /datum/tgs_chat_command/tgscheck name = "check" - help_text = "Gets the playercount, gamemode, and address of the server" + help_text = "Показывает количество игроков, игровой режим и ссылку для доступа к игре." var/last_tgs_check = 0 /datum/tgs_chat_command/tgscheck/Run(datum/tgs_chat_user/sender, params) @@ -54,7 +55,7 @@ return last_tgs_check = rtod var/server = CONFIG_GET(string/server) - return "[GLOB.round_id ? "Round #[GLOB.round_id]: " : ""][GLOB.clients.len] players, Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]" + return "[GLOB.round_id ? "Раунд #[GLOB.round_id]: " : ""][GLOB.clients.len] игроков, Игровой режим: [GLOB.master_mode]; Раунд [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [server ? server : "[world.internet_address]:[world.port]"]" /datum/tgs_chat_command/ahelp name = "ahelp" @@ -64,7 +65,7 @@ /datum/tgs_chat_command/ahelp/Run(datum/tgs_chat_user/sender, params) var/list/all_params = splittext(params, " ") if(all_params.len < 2) - return "Insufficient parameters" + return "Неверные параметры." var/target = all_params[1] all_params.Cut(1, 2) var/id = text2num(target) @@ -73,14 +74,14 @@ if(AH) target = AH.initiator_ckey else - return "Ticket #[id] not found!" + return "Тикет #[id] не найден!" var/res = TgsPm(target, all_params.Join(" "), sender.friendly_name) if(res != "Message Successful") return res /datum/tgs_chat_command/namecheck name = "namecheck" - help_text = "Returns info on the specified target" + help_text = "Показывает информацию по игроку с указанным активным игроком." admin_only = TRUE /datum/tgs_chat_command/namecheck/Run(datum/tgs_chat_user/sender, params) @@ -93,7 +94,7 @@ /datum/tgs_chat_command/adminwho name = "adminwho" - help_text = "Lists administrators currently on the server" + help_text = "Покажет список администрации на сервере." admin_only = TRUE /datum/tgs_chat_command/adminwho/Run(datum/tgs_chat_user/sender, params) @@ -103,14 +104,14 @@ GLOBAL_LIST(round_end_notifiees) /datum/tgs_chat_command/endnotify name = "endnotify" - help_text = "Pings the invoker when the round ends" + help_text = "Оповестит об окончании раунда." admin_only = TRUE /datum/tgs_chat_command/endnotify/Run(datum/tgs_chat_user/sender, params) if(!SSticker.IsRoundInProgress() && SSticker.HasRoundStarted()) - return "[sender.mention], the round has already ended!" + return "[sender.mention], раунд уже закончился!" LAZYSET(GLOB.round_end_notifiees, sender.mention, TRUE) - return "I will notify [sender.mention] when the round ends." + return "Я дам знать, [sender.mention], когда закончится раунд." /datum/tgs_chat_command/sdql name = "sdql" @@ -131,13 +132,13 @@ GLOBAL_LIST(round_end_notifiees) /datum/tgs_chat_command/reload_admins name = "reload_admins" - help_text = "Forces the server to reload admins." + help_text = "Принудительно перезагрузит администраторов на сервере." admin_only = TRUE /datum/tgs_chat_command/reload_admins/Run(datum/tgs_chat_user/sender, params) ReloadAsync() log_admin("[sender.friendly_name] reloaded admins via chat command.") - return "Admins reloaded." + return "Администраторы перезагружены." /datum/tgs_chat_command/reload_admins/proc/ReloadAsync() set waitfor = FALSE diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index a38d1a24c7c6..61f7f77c74c7 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -664,6 +664,33 @@ category = list ("Shuttle Machinery") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE +/datum/design/board/shuttle/engine/electric/tech1 + name = "Machine Design (Ion Thruster Board) 1st generation" + desc = "The circuit board for an 1st generation ion thruster." + id = "engine_ion_t1" + materials = list(/datum/material/glass = 1000, /datum/material/silver = 2000, /datum/material/bluespace = 1000) + build_path = /obj/item/circuitboard/machine/shuttle/engine/electric/tech1 + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/shuttle/engine/electric/tech2 + name = "Machine Design (Ion Thruster Board) 2nd generation" + desc = "The circuit board for an 2nd generation ion thruster." + id = "engine_ion_t2" + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000, /datum/material/silver = 2000) + build_path = /obj/item/circuitboard/machine/shuttle/engine/electric/tech2 + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/shuttle/engine/electric/tech3 + name = "Machine Design (Ion Thruster Board) 3nd generation" + desc = "The circuit board for an 3nd generation ion thruster." + id = "engine_ion_t3" + materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000, /datum/material/silver = 2000,/datum/material/diamond = 1500) + build_path = /obj/item/circuitboard/machine/shuttle/engine/electric/tech3 + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + /datum/design/board/shuttle/engine/expulsion name = "Machine Design (Expulsion Thruster Board)" desc = "The circuit board for an expulsion thruster." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 1334353b205f..7a24bf52ff46 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -1155,17 +1155,44 @@ description = "Research the technology required to create and use basic shuttles." prereq_ids = list("bluespace_travel", "adv_engi") design_ids = list("engine_plasma", "engine_ion", "engine_heater", "engine_smes", "shuttle_helm", "rapid_shuttle_designator") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 2500 + +/datum/techweb_node/t1_shuttle_tech + id = "t1_ion" + display_name = "First generation ion Propulsion" + description = "Pioneer space travel with First Gen ion engines—where it all began." + prereq_ids = list("basic_shuttle") + design_ids = list("engine_ion_t1") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6500) + export_price = 6500 + +/datum/techweb_node/t2_shuttle_tech + id = "t2_ion" + display_name = "Second generation ion Propulsion" + description = "Upgrade to Second Gen ion engines for advanced cosmic navigation." + prereq_ids = list("t1_ion") + design_ids = list("engine_ion_t2") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - export_price = 5000 + export_price = 10000 + +/datum/techweb_node/t3_shuttle_tech + id = "t3_ion" + display_name = "Third generation ion Propulsion" + description = "Unleash ultimate exploration with Third Gen ion propulsion." + prereq_ids = list("t2_ion") + design_ids = list("engine_ion_t3") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 15000) + export_price = 15000 /datum/techweb_node/exp_shuttle_tech id = "exp_shuttle" display_name = "Experimental Shuttle Research" description = "A bunch of engines and related shuttle parts that are likely not really that useful, but could be in strange situations." - prereq_ids = list("basic_shuttle") + prereq_ids = list("t3_ion") design_ids = list("engine_expulsion") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 2500 + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) + export_price = 7500 ////////////////////// IPC Parts /////////////////////// /datum/techweb_node/ipc_organs diff --git a/icons/obj/shuttle.dmi b/icons/obj/shuttle.dmi index 0158ef0c2a9c..95126b843391 100644 Binary files a/icons/obj/shuttle.dmi and b/icons/obj/shuttle.dmi differ diff --git a/sound/misc/announce_misc_old.ogg b/sound/misc/announce_misc_old.ogg deleted file mode 100644 index 5cd387c96189..000000000000 Binary files a/sound/misc/announce_misc_old.ogg and /dev/null differ