diff --git a/Content.Server/Zombies/ZombieSystem.Transform.cs b/Content.Server/Zombies/ZombieSystem.Transform.cs index eed38d905a2..266884e4c56 100644 --- a/Content.Server/Zombies/ZombieSystem.Transform.cs +++ b/Content.Server/Zombies/ZombieSystem.Transform.cs @@ -47,6 +47,7 @@ using Content.Shared.Roles; using Content.Shared.Temperature.Components; using Content.Server.NPC.Components; // Corvax-Wega-Zombie +using Content.Shared.Mind; // Corvax-wega-Zomnie using Robust.Shared.Utility; namespace Content.Server.Zombies; @@ -328,6 +329,8 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) RemComp(target, handsComp); } + var mindLink = EnsureComp(target); // Corvax-wega-Zomnie + mindLink.Channels.Add(zombiecomp.MindChat); // Corvax-wega-Zomnie // Sloth: What the fuck? // How long until compregistry lmao. RemComp(target); diff --git a/Content.Shared/Chemistry/EntitySystems/SolutionRegenerationSystem.cs b/Content.Shared/Chemistry/EntitySystems/SolutionRegenerationSystem.cs index 3966a5b464e..152d407b9e7 100644 --- a/Content.Shared/Chemistry/EntitySystems/SolutionRegenerationSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SolutionRegenerationSystem.cs @@ -52,4 +52,15 @@ public override void Update(float frameTime) _solutionContainer.TryAddSolution((uid, solution), generated); } } + + // Corvax-Wega-Start + public void SetReagent(Entity ent,Solution reagent) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var regen, out var solution)) + { + regen.Generated = reagent; + } + } + // Corvax-Wega-End } diff --git a/Content.Shared/Verbs/VerbCategory.cs b/Content.Shared/Verbs/VerbCategory.cs index d106c9c8e48..7962b481431 100644 --- a/Content.Shared/Verbs/VerbCategory.cs +++ b/Content.Shared/Verbs/VerbCategory.cs @@ -90,6 +90,7 @@ public VerbCategory(string text, string? icon, bool iconsOnly = false) public static readonly VerbCategory ToggleHeadsetSound = new("verb-categories-toggle-headset-sound", null); // Corvax-Wega-Headset public static readonly VerbCategory CargoAccount = new("verb-categories-cargo-account", null); // Corvax-Wega-Chaneable-Cargo-Account + public static readonly VerbCategory ReagentChange = new("verb-categories-reagents-change", null); // Corvax-Wega-Chaneable-Reagent public static readonly VerbCategory Interaction = // Corvax-Wega-Interactions new("verb-categories-interaction", "/Textures/Interface/VerbIcons/group.svg.192dpi.png"); // Corvax-Wega-Interactions } diff --git a/Content.Shared/Zombies/ZombieComponent.cs b/Content.Shared/Zombies/ZombieComponent.cs index 38bfea2e29c..bcaf4f331ae 100644 --- a/Content.Shared/Zombies/ZombieComponent.cs +++ b/Content.Shared/Zombies/ZombieComponent.cs @@ -11,6 +11,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Content.Shared.Mind; // Corvax-wega-Zomnie namespace Content.Shared.Zombies; @@ -85,6 +86,8 @@ public sealed partial class ZombieComponent : Component [DataField("zombieStatusIcon")] public ProtoId StatusIcon { get; set; } = "ZombieFaction"; + public ProtoId MindChat { get; set; } = "MindZombie"; // Corvax-Wega-Add + /// /// Healing each second /// diff --git a/Content.Shared/_Wega/Reagenst/Components/ChangeableReagentComponent.cs b/Content.Shared/_Wega/Reagenst/Components/ChangeableReagentComponent.cs new file mode 100644 index 00000000000..105aa1427d8 --- /dev/null +++ b/Content.Shared/_Wega/Reagenst/Components/ChangeableReagentComponent.cs @@ -0,0 +1,31 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using System.Linq; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Chemistry.Components; + +namespace Content.Shared.ChangeableReagent.Components; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState] +public sealed partial class ChangeableReagentComponent : Component +{ + [DataField(required: true)] + [AutoNetworkedField] + public List Reagents = new(); + + [DataField] + [AutoNetworkedField] + public int CurrentReagent; +} + +[DataDefinition, Serializable, NetSerializable] +public sealed partial class ChangeableReagents +{ + [DataField(required: true)] + public Solution Generated = default!; + + [DataField(required: true)] + public LocId Name { get; set; } +} diff --git a/Content.Shared/_Wega/Reagenst/Systems/ChangeableReagentSystem.cs b/Content.Shared/_Wega/Reagenst/Systems/ChangeableReagentSystem.cs new file mode 100644 index 00000000000..83c9fc6a897 --- /dev/null +++ b/Content.Shared/_Wega/Reagenst/Systems/ChangeableReagentSystem.cs @@ -0,0 +1,99 @@ +using Robust.Shared.Prototypes; +using Content.Shared.Verbs; +using Content.Shared.Access.Systems; +using Content.Shared.Popups; +using Content.Shared.Database; +using Content.Shared.Examine; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.ChangeableReagent.Components; + +namespace Content.Shared.ChangeableReagent; + +public sealed partial class ChangeableReagentSystem : EntitySystem +{ + [Dependency] private IPrototypeManager _prototypeManager = default!; + [Dependency] private SharedPopupSystem _popupSystem = default!; + [Dependency] private SolutionRegenerationSystem _solutionrRagents = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>(OnGetVerb); + SubscribeLocalEvent(OnExamined); + } + + private void OnExamined(EntityUid uid, ChangeableReagentComponent component, ExaminedEvent args) + { + if (component.Reagents.Count < 2) + return; + + var account = GetReagent(component); + var name = account.Name; + + args.PushMarkup(Loc.GetString("set-reagent", ("reagent", Loc.GetString(name)))); + } + + private ChangeableReagents GetReagent(ChangeableReagentComponent component) + { + return component.Reagents[component.CurrentReagent]; + } + + private void OnGetVerb(EntityUid uid, ChangeableReagentComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || !args.CanComplexInteract) + return; + + if (component.Reagents.Count < 2) + return; + + for (var i = 0; i < component.Reagents.Count; i++) + { + var Reagent = component.Reagents[i]; + var index = i; + + var v = new Verb + { + Priority = 1, + Category = VerbCategory.ReagentChange, + Text = Loc.GetString(Reagent.Name), + Disabled = i == component.CurrentReagent, + Impact = LogImpact.Low, + DoContactInteraction = true, + Act = () => + { + TrySetReagent(uid, component, index, args.User); + } + }; + + args.Verbs.Add(v); + } + } + + public bool TrySetReagent(EntityUid uid, ChangeableReagentComponent component, int index, EntityUid? user = null) + { + if (index < 0 || index >= component.Reagents.Count) + return false; + + SetReagent(uid, component, index, user); + + return true; + } + + private void SetReagent(EntityUid uid, ChangeableReagentComponent component, int index, EntityUid? user = null) + { + var Reagent = component.Reagents[index]; + component.CurrentReagent = index; + Dirty(uid, component); + + if (user != null) + _popupSystem.PopupClient(Loc.GetString("set-reagent", ("reagent", Loc.GetString(Reagent.Name))), uid, user.Value); + + if (TryComp(uid, out SolutionRegenerationComponent? reagenComp)) + { + _solutionrRagents.SetReagent((uid,reagenComp), Reagent.Generated); + } + } +} diff --git a/Resources/Locale/ru-RU/_wega/components.ftl b/Resources/Locale/ru-RU/_wega/components.ftl new file mode 100644 index 00000000000..0183fd10936 --- /dev/null +++ b/Resources/Locale/ru-RU/_wega/components.ftl @@ -0,0 +1 @@ +set-reagent = Генерируемое вещество: { $reagent } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_wega/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/_wega/ghost/roles/ghost-role-component.ftl index 4d75ba45fe8..3a265b6b96d 100644 --- a/Resources/Locale/ru-RU/_wega/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/_wega/ghost/roles/ghost-role-component.ftl @@ -46,3 +46,9 @@ ghost-role-information-ratvar-desc = Дальше - больше... ghost-role-information-ash-guardian-name = Пепельный страж ghost-role-information-ash-guardian-description = Слушайте своего хозяина. Не танкуйте урон. Сильно бейте людей. + +ghost-role-information-sentient-carpshark-name = Карпоакула +ghost-role-information-sentient-golocarp-name = Голокарп +ghost-role-information-sentient-rainbowcarp-name = Радужный карп + +ghost-role-information-syndicate-cyborg-medical-name = Медицинский киборг Синдиката diff --git a/Resources/Locale/ru-RU/_wega/mind/mindlink.ftl b/Resources/Locale/ru-RU/_wega/mind/mindlink.ftl index b3776164601..b0c119d7097 100644 --- a/Resources/Locale/ru-RU/_wega/mind/mindlink.ftl +++ b/Resources/Locale/ru-RU/_wega/mind/mindlink.ftl @@ -1,4 +1,6 @@ blood-cult-mind-channel = Культ крови xenoborg-mind-channel = Ксеноборг veil-cult-mind-channel = Праведники Ратвара -diona-mind-channel = Дионы \ No newline at end of file +diona-mind-channel = Дионы +zomnie-mind-channel = Зомби +carp-mind-channel = Карпы \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_wega/silicons/borg-module.ftl b/Resources/Locale/ru-RU/_wega/silicons/borg-module.ftl index 5265501e915..16ffedced09 100644 --- a/Resources/Locale/ru-RU/_wega/silicons/borg-module.ftl +++ b/Resources/Locale/ru-RU/_wega/silicons/borg-module.ftl @@ -1 +1,2 @@ borg-type-sec = [color= #ba342d]киборга-охранника[/color] +borg-type-syndicate-medical = [color= #ba342d]медицинского киборга синдиката[/color] diff --git a/Resources/Locale/ru-RU/_wega/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_wega/store/uplink-catalog.ftl index d267c85148a..90e3118d134 100644 --- a/Resources/Locale/ru-RU/_wega/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/_wega/store/uplink-catalog.ftl @@ -61,4 +61,7 @@ uplink-pressure-upgrade-desc = Модкит, который отключает uplink-smoke-implant-name = Имплант "Дым" uplink-smoke-implant-desc = Имплант, который даст вам возможность выпустить облако дыма, очень полезен при отступлении или побеге. uplink-jumpsuit-ventcrawler-name = комбинезон лазальщика -uplink-jumpsuit-ventcrawler-desc = Специальный комбинезон, внешне идентичный тому, что носят атмосферные техники, позволяет пользователю лазить по вентиляциям, не забудьте про то, что там может быть давление! \ No newline at end of file +uplink-jumpsuit-ventcrawler-desc = Специальный комбинезон, внешне идентичный тому, что носят атмосферные техники, позволяет пользователю лазить по вентиляциям, не забудьте про то, что там может быть давление! + +nukie-delivery-medicineborg-bundle-name = Телепорт медицинского киборга Синдиката +nukie-delivery-medicineborg-bundle-desc = Поставщик редких реагентов, хирургических операций и успешных операций. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_wega/verbs/verb-system.ftl b/Resources/Locale/ru-RU/_wega/verbs/verb-system.ftl index 067fa59966e..9bc4a1337b9 100644 --- a/Resources/Locale/ru-RU/_wega/verbs/verb-system.ftl +++ b/Resources/Locale/ru-RU/_wega/verbs/verb-system.ftl @@ -6,3 +6,5 @@ verb-common-toggle-headset-disabled = Выключить звук verb-categories-cargo-account = Сменить аккаунт verb-categories-interaction = Взаимодействия + +verb-categories-reagents-change = Генерируемые реагенты \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/effects/misc.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/effects/misc.ftl new file mode 100644 index 00000000000..4f1ad199559 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/effects/misc.ftl @@ -0,0 +1,2 @@ +ent-BluespaceLifeline = блюспейс испарение + .desc = Частицы блюспейс энергии... \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/mobs/player/silicon.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/mobs/player/silicon.ftl index 95c9cbc3cef..578f00bb2a8 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/mobs/player/silicon.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/mobs/player/silicon.ftl @@ -2,4 +2,11 @@ ent-SyndicateCircuitBoard = плата законов (Синдикат) .desc = Электронная плата, хранящая набор законов ИИ 'Синдикат'. ent-ThiefimovCircuitBoard = плата законов (Воримов) - .desc = Электронная плата, хранящая набор законов ИИ 'Воримов'. \ No newline at end of file + .desc = Электронная плата, хранящая набор законов ИИ 'Воримов'. + +ent-PlayerBorgSyndicateMedicalBattery = { ent-BorgChassisSyndicateMedical } + .desc = { ent-BorgChassisSyndicateMedical.desc } + .suffix = Батарея, Модуль, Оперативник +ent-PlayerBorgSyndicateMedicalGhostRole = { ent-BorgChassisSyndicateMedical } + .desc = { ent-BorgChassisSyndicateMedical.desc } + .suffix = Роль призрака \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl new file mode 100644 index 00000000000..5035fd059f8 --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/devices/syndicate_gadgets/reinforcement_teleporter.ftl @@ -0,0 +1,3 @@ +ent-ReinforcementRadioSyndicateCyborgMedical = радио подкрепления мединского киборга Синдиката + .desc = Призовите хорошо оснащеного медицинского киборга, немедленно! + .suffix = Ядерные оперативники \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_items.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_items.ftl index 25e2931dc34..c4787a92df0 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_items.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_items.ftl @@ -103,6 +103,10 @@ ent-BorgDrinkSolutionMilk = синтезатор молока .desc = Синтезатор питьевых реагентов, который в данный момент генерирует молоко. ent-BorgDrinkSolutionWine = синтезатор вина .desc = Синтезатор питьевых реагентов, который в данный момент генерирует вино. +ent-BorgDrinkSolutionPro = продвинутый синтезатор питьевых реагентов + .desc = Синтезатор питьевых реагентов продвинутого типа для элиты НТ. +ent-BorgDrinkSolutionBase = синтезатор питьевых реагентов + .desc = Синтезатор питьевых реагентов базового типа для обслуживания клиентов. # Уборщик @@ -142,33 +146,10 @@ ent-BorgSyringe = { ent-BaseSyringe } ent-BorgAdvancedJetInjector = { ent-AdvancedJetInjector } .desc = { ent-AdvancedJetInjector.desc } .suffix = Киборг -ent-BorgHypoTricordrazineBase = базовый борг-гипоспрей трикордразина - .desc = Стерильный инъектор для быстрого введения и генерации трикордразина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Трикордразин -ent-BorgHypoEpinephrineBase = базовый борг-гипоспрей эпинефрина - .desc = Стерильный инъектор для быстрого введения и генерации эпинефрина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Эпинефрин -ent-BorgHypoTricordrazine = продвинутый борг-гипоспрей трикордразина - .desc = Стерильный инъектор для быстрого введения и генерации трикордразина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Трикордразин -ent-BorgHypoBicaridine = продвинутый борг-гипоспрей бикаридина - .desc = Стерильный инъектор для быстрого введения и генерации бикаридина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Бикаридин -ent-BorgHypoDermaline = продвинутый борг-гипоспрей дермалина - .desc = Стерильный инъектор для быстрого введения и генерации дермалина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Дермалин -ent-BorgHypoDylovene = продвинутый борг-гипоспрей диловаена - .desc = Стерильный инъектор для быстрого введения и генерации диловена пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Диловен -ent-BorgHypoHyronalin = продвинутый борг-гипоспрей хироналина - .desc = Стерильный инъектор для быстрого введения и генерации хироналина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Хироналин -ent-BorgHypoDexalin = продвинутый борг-гипоспрей дексалина - .desc = Стерильный инъектор для быстрого введения и генерации дексалина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Дексалин -ent-BorgHypoEpinephrine = продвинутый борг-гипоспрей эпинефрина - .desc = Стерильный инъектор для быстрого введения и генерации эпинефрина пациентам. Удешевлённый и более специализированный вариант для медицинских боргов. - .suffix = Эпинефрин +ent-BorgHypoGeneratedGeneral = базовый генератор реагентов + .desc = Гипоспрей с генерацией базовых медикаментов, теперь человеки не помрут! +ent-BorgHypoGeneratedAdvensed = продвинутый генератор реагентов + .desc = Гипоспрей с рассширенным арсеналом медикаментов, переносная аптечка теперь с вами. ent-BorgGeneratorProCandy = генератор конфет .desc = Успокойте членов экипажа вкусной ( или нет ) конфеткой! Убедите их, что Вы знакомый дядя для них! .suffix = 50% мед веществ @@ -221,7 +202,13 @@ ent-TelescopicShieldBorgSyndCr20 = универсальная броня син .desc = Штурм помещений никогда не был столь стандартизированным. ent-TelescopicShieldBorgSyndL6 = утяжалённая броня синдиборга .desc = Тяжелый ответ против балистики корпоратов и своих косых коллег. - +ent-DefibrillatorSyndicateCyborg = { ent-DefibrillatorSyndicate } + .desc = { ent-DefibrillatorSyndicate.desc } + .suffix = Киборг +ent-BaseBorgHypoSyndie = гипоспрей синдиборга + .desc = { ent-BorgHypo.desc } +ent-BorgHypoGeneratedSyndieGeneral = боевой генератор реагентов + .desc = Гипоспрей со множеством боевых реагентов, которые помогут в борьбе за диск # Ксеноборги ent-XenoborgHoloprojectorForcefield = голопроектор силового поля ксеноборгов @@ -262,4 +249,7 @@ ent-XenoborgModuleBag = синтетическое хранилище для ч ent-TurboItemRechargerXenoborg = { ent-TurboItemRecharger } .desc = { ent-TurboItemRecharger.desc } ent-ClothingHeadHatChameleonXenoborg = проекция головного убора - .desc = Дешевый элемент индивидуальности органиков, правда прибор очень хрупкий. \ No newline at end of file + .desc = Дешевый элемент индивидуальности органиков, правда прибор очень хрупкий. + +ent-WeaponClockworkSwordBorg = { ent-WeaponClockworkSword } + .desc = { ent-WeaponClockworkSword.desc } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_modules.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_modules.ftl index 695add6ce32..af7285b0ab2 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_modules.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/specific/robotics/borg_modules.ftl @@ -113,6 +113,11 @@ ent-BorgModuleRepiarSyndi = боевой модуль саморемонта .desc = Модуль боевых нанороботов, которые в три раза эффективнее востанавливают корпус, чистое зло! ent-BorgModuleClockwork = модуль заводного улучшения .desc = Модуль, созданный из латуни верными Праведниками Ратвара. +ent-BorgModuleSurgerySyndicate = хирургический модуль синдиката + .desc = Модуль для хирургических операций, вытаскивайте пули по злому, без уд +ent-BorgModuleChemSyndicate = модуль боевых химикатов + .desc = Модуль для генерации боевых химикатов для ваших оперативников. + borg-slot-biomaterials-empty = Органы и протезы @@ -168,6 +173,7 @@ borg-slot-swap-empty = Вакцина и палочки borg-slot-swap-only-empty = Стерильные палочки borg-slot-spray-empty = Спреи borg-slot-mmi-and-head-brains-empty = Мозги и шляпы +borg-slot-nukedisk-empty = Диск ядерной аутентификации ent-ActionBlinkBorg = Блюспейс прыжок .desc = Бесконечность не предел! diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/tools/jetpacks.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/tools/jetpacks.ftl index 8a610ea9e58..48c620af736 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/tools/jetpacks.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/tools/jetpacks.ftl @@ -8,3 +8,7 @@ ent-JetpackBlueModule = джетпак .desc = { ent-JetpackBlue.desc } ent-JetpackSecurityModule = джетпак .desc = { ent-JetpackSecurity.desc } +ent-JetpackBlackSyndicate = джетпак + .desc = { ent-JetpackBlack.desc } +ent-JetpackBlackSyndicateFilled = джетпак + .desc = { ent-JetpackBlack.desc } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/weapons/melee/nullrod_ert.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/weapons/melee/nullrod_ert.ftl index 791027ea213..45848fa3ae1 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/weapons/melee/nullrod_ert.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_wega/entities/objects/weapons/melee/nullrod_ert.ftl @@ -27,4 +27,7 @@ ent-WeaponHighFrequencyBladeERT = { ent-WeaponHighFrequencyBlade } .suffix = ОБР Священник ent-ArrhythmicKnifeERT = { ent-ArrhythmicKnife } .desc = { ent-ArrhythmicKnife.desc } + .suffix = ОБР Священник +ent-WeaponPossessedBladeERT = { ent-WeaponPossessedBlade } + .desc = { ent-WeaponPossessedBlade.desc } .suffix = ОБР Священник \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index b81f1fbfb6a..bf41bd21103 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -127,6 +127,42 @@ interactFailureString: petting-failure-syndicate-cyborg interactSuccessSound: path: /Audio/Ambience/Objects/periodic_beep.ogg +# Corvax-Wega-Start + - type: Inventory + templateId: borgDutch + - type: EmpResistance + strengthMultiplier: 0 + - type: MobThresholds # tankier + thresholds: + 0: Alive + 150: Critical + 300: Dead # Same as destruction threshold. Borgs act exactly like crit when dead, except for ghosting on move + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 125 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Machines/warning_buzzer.ogg + params: + volume: 5 + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:EmptyContainersBehaviour + containers: + - borg_brain + - borg_module + - cell_slot + - !type:DoActsBehavior + acts: [ "Destruction" ] +# Corvax-Wega-End - type: entity id: BorgChassisSyndicateMedical @@ -146,12 +182,13 @@ map: ["light"] visible: false - type: BorgChassis - maxModules: 3 + maxModules: 5 # Corvax-Wega-Add moduleWhitelist: tags: - BorgModuleGeneric - BorgModuleMedical - BorgModuleSyndicate + - BorgModuleSyndicateMedical # Corvax-Wega-add hasMindState: synd_medical_e noMindState: synd_medical - type: ShowHealthBars @@ -166,6 +203,42 @@ collection: FootstepHoverBorg params: volume: -6 +# Corvax-Wega-Start + - type: Inventory + templateId: borgDutch + - type: EmpResistance + strengthMultiplier: 0 + - type: MobThresholds # tankier + thresholds: + 0: Alive + 125: Critical + 300: Dead # Same as destruction threshold. Borgs act exactly like crit when dead, except for ghosting on move + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Machines/warning_buzzer.ogg + params: + volume: 5 + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:EmptyContainersBehaviour + containers: + - borg_brain + - borg_module + - cell_slot + - !type:DoActsBehavior + acts: [ "Destruction" ] +# Corvax-Wega-End - type: entity id: BorgChassisSyndicateSaboteur diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index ea17af0aacd..6a7ba53d91e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -86,6 +86,10 @@ interactFailureString: petting-failure-carp interactFailureSound: path: /Audio/Effects/bite.ogg +# Corvax-Wega-Start + - type: MindLink + channels: ["MindCarp"] +# Corvax-Wega-End - type: entity parent: BaseMobCarp diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml index 828d1d8a5ff..2f34b687793 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml @@ -170,6 +170,10 @@ path: /Audio/Items/crowbar.ogg - type: NaturalNightVision # Corvax-Wega-NightVision tintColor: "#fb1e1e" # Corvax-Wega-NightVision +# Corvax-Wega-start + - type: MindLink + channels: ["MindCarp"] +# Corvax-Wega-End - type: entity parent: BaseMobDragon diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 8932469b9a5..bb839816fd3 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -814,6 +814,8 @@ emptyRepresentative: ConstrukAndBattery # Corvax-Wega-add emptyLabel: borg-slot-construction-empty whitelist: + components: # Corvax-Wega-Add + - PowerCell # Corvax-Wega-Add tags: - ConstructionMaterial - PowerCell # Corvax-Wega-robots @@ -821,7 +823,9 @@ emptyRepresentative: ConstrukAndBattery # Corvax-Wega-Add emptyLabel: borg-slot-construction-empty whitelist: - tags: + components: # Corvax-Wega-Add + - PowerCell # Corvax-Wega-Add + tags: - ConstructionMaterial - PowerCell # Corvax-Wega-robots # Corvax-Wega-Robot-Start @@ -1039,19 +1043,7 @@ - item: HandheldHealthAnalyzer # - item: AdvancedJetInjector Corvax-Wega-Robot # Corvax-Wega-Robot-Start - - item: BorgHypoTricordrazineBase - hand: - emptyLabel: borg-slot-hypo-empty - emptyRepresentative: BorgHypoTricordrazineBase - whitelist: - tags: - - Itemborg - - hand: - emptyLabel: borg-slot-hypo-empty - emptyRepresentative: BorgHypoEpinephrineBase - whitelist: - tags: - - Itemborg + - item: BorgHypoGeneratedGeneral # Corvax-Wega-Robot-End - item: Gauze hand: @@ -1306,6 +1298,8 @@ emptyRepresentative: ConstrukAndCabel # Corvax-Wega-Robot emptyLabel: borg-slot-construction-empty whitelist: + components: # Corvax-Wega-Add + - PowerCell # Corvax-Wega-Add tags: - ConstructionMaterial - PowerCell # Corvax-Wega-Add @@ -1317,6 +1311,15 @@ # whitelist: # tags: # - ConstructionMaterial + - hand: + emptyRepresentative: DoorElectronics + emptyLabel: borg-slot-circuitboards-empty + whitelist: + components: + - Circuitboard + blacklist: + components: + - SiliconLawProvider - hand: emptyRepresentative: ScientistIcon # Corvax-Wega-Robot emptyLabel: borg-slot-diski-empty @@ -1324,6 +1327,7 @@ components: - ResearchDisk - TechnologyDisk + - item: TechDiskBag # Corvax-Wega-end - type: BorgModuleIcon icon: { sprite: _Wega/Interface/Actions/actions_borg.rsi, state: anomaly-module } # Corvax-Wega-add @@ -1389,19 +1393,7 @@ # components: # - FitsInDispenser # - item: BarSpoon - - item: BorgDrinkSolutionWaterBase - hand: - emptyLabel: borg-slot-drinks-empty - emptyRepresentative: BorgDrinkSolutionWaterBase - whitelist: - tags: - - Itemborg - - hand: - emptyLabel: borg-slot-drinks-empty - emptyRepresentative: BorgDrinkSolutionBeerBase - whitelist: - tags: - - Itemborg + - item: BorgDrinkSolutionBase - item: BorgGeneratorCup - hand: emptyLabel: borg-slot-chemical-containers-empty @@ -1637,6 +1629,12 @@ # - item: Emag - item: AccessBreaker - item: SyndicateDrill + - hand: + emptyRepresentative: NukeDisk + emptyLabel: borg-slot-nukedisk-empty # Corvax-Wega-Add + whitelist: + components: + - NukeDisk # Corvax-Wega-Robot-End - item: PinpointerSyndicateNuclear - item: PinpointerUniversal # Corvax-Wega-Robot-add @@ -1795,6 +1793,8 @@ - ConstructionMaterial # Corvax-Wega-Start - PowerCell + components: + - PowerCell # - hand: # emptyRepresentative: PowerCellHigh # emptyLabel: borg-slot-powercell-empty diff --git a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml index 7d603357e9a..9906f0ac7b7 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml @@ -74,6 +74,7 @@ singleUser: true inHandsOnly: true - type: ItemSlots + disableSmartEquipEject: true # Corvax-Wega-Add - type: ContainerContainer containers: AccessOverrider-privilegedId: !type:ContainerSlot diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 13d3911cdaf..9b33fa746fa 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -287,6 +287,7 @@ components: # Corvax-Wega-gun-start - type: Gun + fireRate: 3 availableModes: - SemiAuto - FullAuto @@ -302,6 +303,7 @@ price: 300 # Corvax-Wega-gun-start - type: Gun + fireRate: 3 availableModes: - SemiAuto - FullAuto diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml index b59b3b16a07..4642a3a51ef 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml @@ -29,6 +29,7 @@ - BorgModuleCommonCandy - BorgModuleCleaningCommon - BorgModuleMusique + - BorgModuleFulton - BorgModuleNightVison # Corvax-Wega-end diff --git a/Resources/Prototypes/Roles/Antags/zombie.yml b/Resources/Prototypes/Roles/Antags/zombie.yml index 7b9884b4525..5b0fd8863e3 100644 --- a/Resources/Prototypes/Roles/Antags/zombie.yml +++ b/Resources/Prototypes/Roles/Antags/zombie.yml @@ -28,6 +28,10 @@ - type: ZombifyOnDeath - type: IncurableZombie - type: InitialInfected +# Corvax-Wega-Start + - type: MindLink + channels: ["MindZombie"] +# Corvax-Wega-End mindRoles: - MindRoleInitialInfected diff --git a/Resources/Prototypes/_Wega/Catalog/nukie_delivery_catalog.yml b/Resources/Prototypes/_Wega/Catalog/nukie_delivery_catalog.yml new file mode 100644 index 00000000000..2b20c92609d --- /dev/null +++ b/Resources/Prototypes/_Wega/Catalog/nukie_delivery_catalog.yml @@ -0,0 +1,19 @@ +# The Nukie Catalog is -not- meant to be a "here's free equipment lmao" shop. +# Anything listed in here should aim to leverage the actual benefits of the console: +# 1. Equipment that should only be available in -limited numbers- for the Nukie team as a whole. +# 2. Equipment that should be timegated/locked to the Nukie planet. +# 3. Equipment that benefit from the team knowing it's been purchased/claimed. +# If you can't justify these benefits, consider other options: Uplinks, Starting Loadouts & Mapping on the planet/shuttle. +# NOTE: At the moment of writing the store doesn't take TC, but if you can find a scenario where pooling TC works with the above benefits, that could be changed. + +- type: listing + id: NukieDeliveryMedicineBorgBundle + name: nukie-delivery-medicineborg-bundle-name + description: nukie-delivery-medicineborg-bundle-desc + productEntity: ReinforcementRadioSyndicateCyborgMedical + categories: + - NukieDelivery + restockTime: 1200 + conditions: + - !type:ListingLimitedStockCondition + stock: 1 diff --git a/Resources/Prototypes/_Wega/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/_Wega/Entities/Mobs/NPCs/carp.yml index b90eb95e362..fc9e70eb579 100644 --- a/Resources/Prototypes/_Wega/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/_Wega/Entities/Mobs/NPCs/carp.yml @@ -7,7 +7,7 @@ allowMovement: true allowSpeech: true makeSentient: true - name: ghost-role-information-sentient-carp-name + name: ghost-role-information-sentient-carpshark-name description: ghost-role-information-sentient-carp-description rules: ghost-role-information-space-dragon-summoned-carp-rules mindRoles: @@ -21,7 +21,7 @@ types: {} - type: Temperature - type: TemperatureDamage - heatDamageThreshold: 1200 + heatDamageThreshold: 3600 - type: FriendlyFaction # Corvax-Wega-Friendly faction: Dragon # Corvax-Wega-Friendly @@ -34,7 +34,7 @@ allowMovement: true allowSpeech: true makeSentient: true - name: ghost-role-information-sentient-carp-name + name: ghost-role-information-sentient-rainbowcarp-name description: ghost-role-information-sentient-carp-description rules: ghost-role-information-space-dragon-summoned-carp-rules mindRoles: @@ -48,7 +48,7 @@ types: {} - type: Temperature - type: TemperatureDamage - heatDamageThreshold: 1200 + heatDamageThreshold: 3600 - type: FriendlyFaction # Corvax-Wega-Friendly faction: Dragon # Corvax-Wega-Friendly @@ -61,7 +61,7 @@ allowMovement: true allowSpeech: true makeSentient: true - name: ghost-role-information-sentient-carp-name + name: ghost-role-information-sentient-golocarp-name description: ghost-role-information-sentient-carp-description rules: ghost-role-information-space-dragon-summoned-carp-rules mindRoles: @@ -75,6 +75,6 @@ types: {} - type: Temperature - type: TemperatureDamage - heatDamageThreshold: 1200 + heatDamageThreshold: 3600 - type: FriendlyFaction # Corvax-Wega-Friendly faction: Dragon # Corvax-Wega-Friendly \ No newline at end of file diff --git a/Resources/Prototypes/_Wega/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/_Wega/Entities/Mobs/Player/silicon.yml index ff00f6851db..60ec7a4c057 100644 --- a/Resources/Prototypes/_Wega/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/_Wega/Entities/Mobs/Player/silicon.yml @@ -21,4 +21,40 @@ sprite: Objects/Misc/module.rsi state: std_mod - type: SiliconLawProvider - laws: thiefimov \ No newline at end of file + laws: thiefimov + +- type: entity + id: PlayerBorgSyndicateMedicalBattery + parent: BorgChassisSyndicateMedical + suffix: Battery, Module, Operative + components: + - type: NukeOperative + - type: ContainerFill + containers: + borg_brain: + - PositronicBrain + borg_module: + - BorgModuleOperative + - BorgModuleSyndicateWeapon + - BorgModuleTool + - BorgModuleChemSyndicate + - BorgModuleSurgerySyndicate + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMicroreactor # PowerCellHyper Corvax-Wega + +- type: entity + id: PlayerBorgSyndicateMedicalGhostRole + parent: PlayerBorgSyndicateMedicalBattery + suffix: Ghost role + components: + - type: GhostRole + name: ghost-role-information-syndicate-cyborg-medical-name + description: ghost-role-information-syndicate-cyborg-description + rules: ghost-role-information-silicon-rules + raffle: + settings: default + job: Borg + - type: GhostTakeoverAvailable \ No newline at end of file diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/_Wega/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml new file mode 100644 index 00000000000..77a53da4b22 --- /dev/null +++ b/Resources/Prototypes/_Wega/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml @@ -0,0 +1,18 @@ +- type: entity + parent: ReinforcementRadio + id: ReinforcementRadioSyndicateCyborgMedical # Reinforcement radio exclusive to nukeops uplink + name: syndicate assault cyborg reinforcement radio + description: Call in a well armed assault cyborg, instantly! + suffix: NukeOps + components: + - type: GhostRole + name: ghost-role-information-syndicate-cyborg-medical-name + description: ghost-role-information-syndicate-medical-description + rules: ghost-role-information-silicon-rules + mindRoles: + - MindRoleGhostRoleSilicon + raffle: + settings: default + job: Borg + - type: GhostRoleMobSpawner + prototype: PlayerBorgSyndicateMedicalBattery diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/_Wega/Entities/Objects/Devices/holoprojectors.yml index 610eb85d575..50f2642265f 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Devices/holoprojectors.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Devices/holoprojectors.yml @@ -33,9 +33,7 @@ description: Creates an impassable forcefield that won't let anything through. Close proximity may or may not cause cancer. components: - type: Item - size: Normal - shape: - - 0,0,0,1 + size: Small - type: HolosignProjector signProto: SyndiHolosignForcefield chargeUse: 240 @@ -46,6 +44,7 @@ tags: - HolofanProjector - type: ItemSlots + disableSmartEquipEject: true slots: cell_slot: name: power-cell-slot-component-slot-name-default @@ -60,9 +59,7 @@ description: Creates an impassable forcefield that won't let anything through. Close proximity may or may not cause cancer. components: - type: Item - size: Normal - shape: - - 0,0,0,1 + size: Small - type: HolosignProjector signProto: HoloCreate chargeUse: 720 @@ -74,6 +71,7 @@ tags: - HolofanProjector - type: ItemSlots + disableSmartEquipEject: true slots: cell_slot: name: power-cell-slot-component-slot-name-default diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/_Wega/Entities/Objects/Shields/shields.yml index af18f9acf1c..f45e97eb99e 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Shields/shields.yml @@ -31,7 +31,7 @@ shader: unshaded map: [ "shield" ] - type: Item - size: Normal + size: Small sprite: _Wega/Objects/Shields/blueshieldshield.rsi - type: UseDelay delay: 0.5 diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Medical/hypospray.yml index 2eb85d5f8fd..eb7f88ef8cc 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Medical/hypospray.yml @@ -51,16 +51,13 @@ layers: - state: stimpen map: ["enum.SolutionContainerLayers.Fill"] - - type: SolutionContainerManager - solutions: - pen: - maxVol: 30 + - type: Solution + solution: + maxVol: 30 - type: SolutionContainerVisuals maxFillLevels: 1 changeColor: false emptySpriteName: stimpen_empty - - type: Injector - solutionName: pen - type: entity parent: ChemicalMedipen @@ -120,14 +117,9 @@ emptySpriteName: ertpen_empty - type: Solution solution: + maxVol: 30 reagents: - ReagentId: Stimulants Quantity: 30 - - type: Injector - solutionName: pen - currentTransferAmount: null - activeModeProtoId: HyposprayInjectMode - allowedModes: - - HyposprayInjectMode - type: StaticPrice price: 1500 diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/meditem.yml b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/meditem.yml index 760ddfc3894..87faab3ccfc 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/meditem.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/meditem.yml @@ -59,386 +59,122 @@ swap: false - type: entity - parent: BorgHypoTricordrazine - suffix: tricordrazine - id: BorgHypoTricordrazineBase - components: - - type: ItemSelector - items: - - BorgHypoTricordrazineBase - - BorgHypoEpinephrineBase - -- type: entity - parent: BorgHypoEpinephrine - suffix: epinephrine - id: BorgHypoEpinephrineBase - components: - - type: ItemSelector - items: - - BorgHypoTricordrazineBase - - BorgHypoEpinephrineBase - -- type: entity - parent: Syringe - id: BorgSyringe - suffix: Cyborg - components: - - type: Unremoveable - - type: ItemSelector - items: - - BorgSyringe - - BorgAdvancedJetInjector - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Syringe - - Trash - - Itemborg - -- type: entity - parent: AdvancedJetInjector - id: BorgAdvancedJetInjector - suffix: Cyborg - components: - - type: Unremoveable - - type: ItemSelector - items: - - BorgSyringe - - BorgAdvancedJetInjector - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -## Doctor rare -- type: entity - parent: BorgHypo - suffix: tricordrazine - id: BorgHypoTricordrazine + parent: [BorgHypo,SolutionHyposprayTiny] + id: BaseBorgHypoGenerated + abstract: true components: - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi + sprite: _Wega/Objects/Specific/Medical/hyno.rsi layers: - state: borghypo - - state: borghypo_trico + map: [ "enum.SolutionContainerLayers.Base" ] + - state: borghypo_fill1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - type: SolutionContainerVisuals + maxFillLevels: 1 + fillBaseName: borghypo_fill + solutionName: hypospray - type: Item - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - - type: Label - currentLabel: reagent-name-tricordrazine - - type: SolutionContainerManager - solutions: - hypospray: - maxVol: 10 - reagents: - - ReagentId: Tricordrazine - Quantity: 0 + sprite: _Wega/Objects/Specific/Medical/hyno.rsi - type: SolutionRegeneration generated: reagents: - ReagentId: Tricordrazine Quantity: 0.5 - - type: Unremoveable - - type: ItemSelector - items: - - BorgHypoTricordrazine - - BorgHypoBicaridine - - BorgHypoDermaline - - BorgHypoDylovene - - BorgHypoHyronalin - - BorgHypoDexalin - - BorgHypoEpinephrine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: BorgHypo - suffix: bicaridine - id: BorgHypoBicaridine - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - layers: - - state: borghypo - - state: borghypo_bicka - - type: Item - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - - type: Label - currentLabel: reagent-name-bicaridine - - type: SolutionContainerManager - solutions: - hypospray: - maxVol: 10 + - type: Injector + currentTransferAmount: null + activeModeProtoId: HyposprayInjectMode + allowedModes: + - HyposprayInjectMode + - type: ChangeableReagent + reagents: + - generated: reagents: - ReagentId: Bicaridine - Quantity: 0 - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Bicaridine - Quantity: 0.5 - - type: Unremoveable - - type: ItemSelector - items: - - BorgHypoTricordrazine - - BorgHypoBicaridine - - BorgHypoDermaline - - BorgHypoDylovene - - BorgHypoHyronalin - - BorgHypoDexalin - - BorgHypoEpinephrine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: BorgHypo - suffix: dermaline - id: BorgHypoDermaline - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - layers: - - state: borghypo - - state: borghypo_derma - - type: Item - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - - type: Label - currentLabel: reagent-name-dermaline - - type: SolutionContainerManager - solutions: - hypospray: - maxVol: 10 + Quantity: 0.5 + name: Water + - generated: reagents: - - ReagentId: Dermaline - Quantity: 0 - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Dermaline - Quantity: 0.5 + - ReagentId: Tricordrazine + Quantity: 0.5 + name: Bica - type: Unremoveable - - type: ItemSelector - items: - - BorgHypoTricordrazine - - BorgHypoBicaridine - - BorgHypoDermaline - - BorgHypoDylovene - - BorgHypoHyronalin - - BorgHypoDexalin - - BorgHypoEpinephrine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - type: Tag tags: - Itemborg - type: entity - parent: BorgHypo - suffix: dylovene - id: BorgHypoDylovene + parent: BaseBorgHypoGenerated + id: BorgHypoGeneratedGeneral components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - layers: - - state: borghypo - - state: borghypo_dylov - - type: Item - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - - type: Label - currentLabel: reagent-name-dylovene - - type: SolutionContainerManager - solutions: - hypospray: - maxVol: 10 - reagents: - - ReagentId: Dylovene - Quantity: 0 + - type: Solution + solution: + maxVol: 10 - type: SolutionRegeneration generated: reagents: - - ReagentId: Dylovene + - ReagentId: Tricordrazine Quantity: 0.5 - - type: Unremoveable - - type: ItemSelector - items: - - BorgHypoTricordrazine - - BorgHypoBicaridine - - BorgHypoDermaline - - BorgHypoDylovene - - BorgHypoHyronalin - - BorgHypoDexalin - - BorgHypoEpinephrine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: BorgHypo - suffix: hyronalin - id: BorgHypoHyronalin - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - layers: - - state: borghypo - - state: borghypo_hyro - - type: Item - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - - type: Label - currentLabel: reagent-name-hyronalin - - type: SolutionContainerManager - solutions: - hypospray: - maxVol: 10 + - type: ChangeableReagent + reagents: + - generated: reagents: - - ReagentId: Hyronalin - Quantity: 0 - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Hyronalin - Quantity: 0.5 - - type: Unremoveable - - type: ItemSelector - items: - - BorgHypoTricordrazine - - BorgHypoBicaridine - - BorgHypoDermaline - - BorgHypoDylovene - - BorgHypoHyronalin - - BorgHypoDexalin - - BorgHypoEpinephrine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - + - ReagentId: Tricordrazine + Quantity: 0.5 + name: reagent-name-tricordrazine + - generated: + reagents: + - ReagentId: Epinephrine + Quantity: 0.5 + name: reagent-name-epinephrine + - type: entity - parent: BorgHypo - suffix: dexalin - id: BorgHypoDexalin + parent: BaseBorgHypoGenerated + id: BorgHypoGeneratedAdvensed components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - layers: - - state: borghypo - - state: borghypo_dexal - - type: Item - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - - type: Label - currentLabel: reagent-name-dexalin - - type: SolutionContainerManager - solutions: - hypospray: - maxVol: 10 - reagents: - - ReagentId: Dexalin - Quantity: 0 + - type: Solution + solution: + maxVol: 15 - type: SolutionRegeneration generated: reagents: - - ReagentId: Dexalin + - ReagentId: Tricordrazine Quantity: 0.5 - - type: Unremoveable - - type: ItemSelector - items: - - BorgHypoTricordrazine - - BorgHypoBicaridine - - BorgHypoDermaline - - BorgHypoDylovene - - BorgHypoHyronalin - - BorgHypoDexalin - - BorgHypoEpinephrine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: BorgHypo - suffix: epinephrine - id: BorgHypoEpinephrine - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - layers: - - state: borghypo - - state: borghypo_epi - - type: Item - sprite: /Textures/_Wega/Objects/Specific/Medical/hyno.rsi - - type: Label - currentLabel: reagent-name-epinephrine - - type: SolutionContainerManager - solutions: - hypospray: - maxVol: 10 + - type: ChangeableReagent + reagents: + - generated: + reagents: + - ReagentId: Tricordrazine + Quantity: 0.5 + name: reagent-name-tricordrazine + - generated: reagents: - ReagentId: Epinephrine - Quantity: 0 - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Epinephrine - Quantity: 0.5 - - type: Unremoveable - - type: ItemSelector - items: - - BorgHypoTricordrazine - - BorgHypoBicaridine - - BorgHypoDermaline - - BorgHypoDylovene - - BorgHypoHyronalin - - BorgHypoDexalin - - BorgHypoEpinephrine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg + Quantity: 0.5 + name: reagent-name-epinephrine + - generated: + reagents: + - ReagentId: Bicaridine + Quantity: 0.5 + name: reagent-name-bicaridine + - generated: + reagents: + - ReagentId: Dermaline + Quantity: 0.5 + name: reagent-name-dermaline + - generated: + reagents: + - ReagentId: Dylovene + Quantity: 0.5 + name: reagent-name-dylovene + - generated: + reagents: + - ReagentId: Hyronalin + Quantity: 0.5 + name: reagent-name-hyronalin + - generated: + reagents: + - ReagentId: Dexalin + Quantity: 0.5 + name: reagent-name-dexalin diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/serviceitem.yml b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/serviceitem.yml index 3028f1676a2..ffcd5c2aafb 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/serviceitem.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/serviceitem.yml @@ -109,24 +109,111 @@ path: /Audio/Machines/phasein.ogg - type: entity - parent: BorgDrinkSolutionWater - id: BorgDrinkSolutionWaterBase - suffix: Water, Base + parent: DrinkBase + id: BaseBorgDrinkSolution + name: water generation + abstract: true + description: The trusty mixing buddy of the bartender. components: - - type: ItemSelector - items: - - BorgDrinkSolutionWaterBase - - BorgDrinkSolutionBeerBase + - type: Sprite + sprite: /Textures/_Wega/Objects/Specific/Robotics/BorgItem/solition_generation.rsi + layers: + - state: icon + - type: Solution + solution: + maxVol: 60 + - type: FitsInDispenser + solution: drink + - type: SolutionRegeneration + generated: + reagents: + - ReagentId: Water + Quantity: 5 + - type: Unremoveable - type: entity - parent: BorgDrinkSolutionBeer - id: BorgDrinkSolutionBeerBase - suffix: Water, Base + parent: BaseBorgDrinkSolution + id: BorgDrinkSolutionBase + name: water generation + description: The trusty mixing buddy of the bartender. components: - - type: ItemSelector - items: - - BorgDrinkSolutionWaterBase - - BorgDrinkSolutionBeerBase + - type: Solution + solution: + maxVol: 30 + - type: SolutionRegeneration + generated: + reagents: + - ReagentId: Water + Quantity: 0 + - type: ChangeableReagent + reagents: + - generated: + reagents: + - ReagentId: Beer + Quantity: 0 + name: bwoink-title-none-selected + - generated: + reagents: + - ReagentId: Water + Quantity: 5 + name: reagent-name-water + - generated: + reagents: + - ReagentId: Beer + Quantity: 5 + name: reagent-name-beer + +- type: entity + parent: BaseBorgDrinkSolution + id: BorgDrinkSolutionPro + name: water generation + description: The trusty mixing buddy of the bartender. + components: + - type: Solution + solution: + maxVol: 60 + - type: SolutionRegeneration + generated: + reagents: + - ReagentId: Water + Quantity: 0 + - type: ChangeableReagent + reagents: + - generated: + reagents: + - ReagentId: Beer + Quantity: 0 + name: bwoink-title-none-selected + - generated: + reagents: + - ReagentId: Water + Quantity: 5 + name: reagent-name-water + - generated: + reagents: + - ReagentId: Beer + Quantity: 5 + name: reagent-name-beer + - generated: + reagents: + - ReagentId: Wine + Quantity: 5 + name: reagent-name-wine + - generated: + reagents: + - ReagentId: Coffee + Quantity: 5 + name: reagent-name-coffee + - generated: + reagents: + - ReagentId: Cola + Quantity: 5 + name: reagent-name-cola + - generated: + reagents: + - ReagentId: Milk + Quantity: 5 + name: reagent-name-milk #Garding - type: entity @@ -263,301 +350,6 @@ - Itemborg ## Service Rare - -- type: entity - parent: DrinkBase - id: BorgDrinkSolutionWater - name: water generation - suffix: Water - description: The trusty mixing buddy of the bartender. - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Robotics/BorgItem/solition_generation.rsi - layers: - - state: icon - - state: water - - type: Label - currentLabel: reagent-name-water - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - reagents: - - ReagentId: Water - Quantity: 0 - - type: FitsInDispenser - solution: drink - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Water - Quantity: 1 - - type: Unremoveable - - type: ItemSelector - items: - - BorgDrinkSolutionWater - - BorgDrinkSolutionCoffe - - BorgDrinkSolutionCola - - BorgDrinkSolutionMilk - - BorgDrinkSolutionBeer - - BorgDrinkSolutionWine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: DrinkBase - id: BorgDrinkSolutionBeer - name: beer generation - suffix: Beer - description: The trusty mixing buddy of the bartender. - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Robotics/BorgItem/solition_generation.rsi - layers: - - state: icon - - state: beer - - type: Label - currentLabel: reagent-name-beer - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - reagents: - - ReagentId: Beer - Quantity: 0 - - type: FitsInDispenser - solution: drink - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Beer - Quantity: 1 - - type: Unremoveable - - type: ItemSelector - items: - - BorgDrinkSolutionWater - - BorgDrinkSolutionCoffe - - BorgDrinkSolutionCola - - BorgDrinkSolutionMilk - - BorgDrinkSolutionBeer - - BorgDrinkSolutionWine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: DrinkBase - id: BorgDrinkSolutionWine - name: wine generation - suffix: Wine - description: The trusty mixing buddy of the bartender. - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Robotics/BorgItem/solition_generation.rsi - layers: - - state: icon - - state: wine - - type: Label - currentLabel: reagent-name-wine - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - reagents: - - ReagentId: Wine - Quantity: 0 - - type: FitsInDispenser - solution: drink - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Wine - Quantity: 1 - - type: Unremoveable - - type: ItemSelector - items: - - BorgDrinkSolutionWater - - BorgDrinkSolutionCoffe - - BorgDrinkSolutionCola - - BorgDrinkSolutionMilk - - BorgDrinkSolutionBeer - - BorgDrinkSolutionWine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: DrinkBase - id: BorgDrinkSolutionCoffe - name: coffee generation - suffix: Coffee - description: The trusty mixing buddy of the bartender. - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Robotics/BorgItem/solition_generation.rsi - layers: - - state: icon - - state: coffe - - type: Label - currentLabel: reagent-name-coffee - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - reagents: - - ReagentId: Coffee - Quantity: 0 - - type: FitsInDispenser - solution: drink - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Coffee - Quantity: 1 - - type: Unremoveable - - type: ItemSelector - items: - - BorgDrinkSolutionWater - - BorgDrinkSolutionCoffe - - BorgDrinkSolutionCola - - BorgDrinkSolutionMilk - - BorgDrinkSolutionBeer - - BorgDrinkSolutionWine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: DrinkBase - id: BorgDrinkSolutionCola - name: cola generation - suffix: Cola - description: The trusty mixing buddy of the bartender. - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Robotics/BorgItem/solition_generation.rsi - layers: - - state: icon - - state: cola - - type: Label - currentLabel: reagent-name-cola - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - reagents: - - ReagentId: Cola - Quantity: 0 - - type: FitsInDispenser - solution: drink - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Cola - Quantity: 1 - - type: Unremoveable - - type: ItemSelector - items: - - BorgDrinkSolutionWater - - BorgDrinkSolutionCoffe - - BorgDrinkSolutionCola - - BorgDrinkSolutionMilk - - BorgDrinkSolutionBeer - - BorgDrinkSolutionWine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - -- type: entity - parent: DrinkBase - id: BorgDrinkSolutionMilk - name: milk generation - suffix: Milk - description: The trusty mixing buddy of the bartender. - components: - - type: Sprite - sprite: /Textures/_Wega/Objects/Specific/Robotics/BorgItem/solition_generation.rsi - layers: - - state: icon - - state: milk - - type: Label - currentLabel: reagent-name-milk - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - reagents: - - ReagentId: Milk - Quantity: 0 - - type: FitsInDispenser - solution: drink - - type: SolutionRegeneration - generated: - reagents: - - ReagentId: Milk - Quantity: 1 - - type: Unremoveable - - type: ItemSelector - items: - - BorgDrinkSolutionWater - - BorgDrinkSolutionCoffe - - BorgDrinkSolutionCola - - BorgDrinkSolutionMilk - - BorgDrinkSolutionBeer - - BorgDrinkSolutionWine - - type: ActivatableUI - key: enum.ItemSelectorUiKey.Key - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - enum.ItemSelectorUiKey.Key: - type: ItemSelectorBoundUserInterface - - type: Tag - tags: - - Itemborg - - type: entity id: MicrowaveForBorg parent: [ BaseMachinePowered, SmallConstructibleMachine ] diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/syndicateitem.yml b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/syndicateitem.yml index 44bfe59986e..4410e3f6bfa 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/syndicateitem.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/BorgItem/syndicateitem.yml @@ -300,3 +300,81 @@ activeBlockFraction: 0.99 passiveBlockFraction: 0.8 +- type: entity + name: handheld crew monitor + parent: DefibrillatorSyndicate + id: DefibrillatorSyndicateCyborg + components: + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMicroreactor + disableEject: true + swap: false + +- type: entity + parent: BorgHypo + id: BaseBorgHypoSyndie + name: borghypo + description: A sterile injector for rapid administration of drugs to patients. This integrated model is specialized for use by medical borgs. + components: + - type: Sprite + sprite: Objects/Specific/Medical/hypospray.rsi + layers: + - state: borghypo_s + map: [ "enum.SolutionContainerLayers.Base" ] + - state: borghypo_fill1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + +- type: entity + parent: BaseBorgHypoGenerated + id: BaseBorgHypoGeneratedSyndie + name: borghypo + abstract: true + description: A sterile injector for rapid administration of drugs to patients. This integrated model is specialized for use by medical borgs. + components: + - type: Sprite + sprite: _Wega/Objects/Specific/Medical/hyno.rsi + layers: + - state: borghypo_s + map: [ "enum.SolutionContainerLayers.Base" ] + - state: borghypo_fill1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + +- type: entity + parent: BaseBorgHypoGeneratedSyndie + id: BorgHypoGeneratedSyndieGeneral + components: + - type: Solution + solution: + maxVol: 15 + - type: SolutionRegeneration + generated: + reagents: + - ReagentId: Omnizine + Quantity: 0.5 + - type: ChangeableReagent + reagents: + - generated: + reagents: + - ReagentId: Omnizine + Quantity: 0.5 + name: reagent-name-omnizine + - generated: + reagents: + - ReagentId: Stimulants + Quantity: 0.5 + name: reagent-name-stimulants + - generated: + reagents: + - ReagentId: DexalinPlus + Quantity: 0.5 + name: reagent-name-dexalin-plus + - generated: + reagents: + - ReagentId: Mutadon + Quantity: 0.5 + name: reagent-name-mutadon diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/borg_modules.yml index b61fa329a3c..23891d5d2d9 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -28,6 +28,35 @@ - state: base-part-inhand-right - state: base-stripes-inhand-right +- type: entity + id: BaseBorgModuleSyndicateMedical + parent: BaseBorgModule + abstract: true + components: + - type: BorgModule + borgFitTypes: + - borg-type-syndicate-medical + - type: Tag + tags: + - BorgModuleSyndicateMedical + - type: Item + inhandVisuals: + left: + - state: base-icon-inhand-left + color: "#FF0000" + - state: base-module-inhand-left + color: "#891417" + - state: base-part-inhand-left + - state: base-stripes-inhand-left + color: "#7B0F12" + right: + - state: base-icon-inhand-right + color: "#FF0000" + - state: base-module-inhand-right + color: "#891417" + - state: base-part-inhand-right + - state: base-stripes-inhand-right + color: "#7B0F12" ## Med Module - type: entity id: BorgModuleSurgery @@ -138,10 +167,21 @@ emptyRepresentative: ConstrukAndCabel emptyLabel: borg-slot-construction-empty whitelist: + components: + - PowerCell tags: - ConstructionMaterial - PowerCell - CableCoil + - hand: + emptyRepresentative: DoorElectronics + emptyLabel: borg-slot-circuitboards-empty + whitelist: + components: + - Circuitboard + blacklist: + components: + - SiliconLawProvider - hand: emptyRepresentative: ScientistIcon # Corvax-Wega-Robot emptyLabel: borg-slot-diski-empty @@ -149,6 +189,7 @@ components: - ResearchDisk - TechnologyDisk + - item: TechDiskBag - type: BorgModuleIcon icon: { sprite: _Wega/Interface/Actions/actions_borg.rsi, state: adv-anomaly-module } @@ -305,19 +346,7 @@ whitelist: components: - Healing - - item: BorgHypoTricordrazineBase - hand: - emptyLabel: borg-slot-hypo-empty - emptyRepresentative: BorgHypoTricordrazineBase - whitelist: - tags: - - Itemborg - - hand: - emptyLabel: borg-slot-hypo-empty - emptyRepresentative: BorgHypoEpinephrineBase - whitelist: - tags: - - Itemborg + - item: BorgHypoGeneratedGeneral - type: BorgModuleIcon icon: { sprite: _Wega/Interface/Actions/actions_borg.rsi, state: medical-common-module } @@ -460,6 +489,8 @@ emptyRepresentative: BorgModuleConstructionMaterialPlaceholder emptyLabel: borg-slot-construction-empty whitelist: + components: + - PowerCell tags: - ConstructionMaterial - PowerCell @@ -558,7 +589,7 @@ whitelist: tags: - Lollipops - - item: BorgDrinkSolutionWaterCommon + - item: BorgDrinkSolutionBase - item: BorgGeneratorCup - hand: emptyLabel: borg-slot-chemical-containers-empty @@ -1157,20 +1188,8 @@ blacklist: components: - Clothing - - item: BorgDrinkSolutionWater - hand: - emptyLabel: borg-slot-drinks-empty - emptyRepresentative: BorgDrinkSolutionWater - whitelist: - tags: - - Itemborg - - hand: - emptyLabel: borg-slot-drinks-empty - emptyRepresentative: BorgDrinkSolutionCoffe - whitelist: - tags: - - Itemborg - - item: BorgGeneratorDrinkGlass + - SolutionContainerVisuals + - item: BorgDrinkSolutionPro - hand: emptyLabel: borg-slot-chemical-containers-empty emptyRepresentative: DrinkGlass @@ -1179,6 +1198,7 @@ - FitsInDispenser tags: - ChemDispensable + - item: BorgGeneratorDrinkGlass - item: BoxFreezer - type: BorgModuleIcon icon: { sprite: _Wega/Interface/Actions/actions_borg.rsi, state: cook-rare } @@ -1214,19 +1234,28 @@ - state: icon-doc-rare - type: ItemBorgModule hands: - - item: BorgHypoTricordrazine + - item: HandheldHealthAnalyzer + - item: BorgHypoGeneratedAdvensed + - item: BorgDropper + - item: SyringeBluespace + - item: Jug hand: - emptyLabel: borg-slot-hypo-empty - emptyRepresentative: BorgHypoTricordrazine + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Beaker whitelist: + components: + - FitsInDispenser tags: - - Itemborg - - hand: - emptyLabel: borg-slot-hypo-empty - emptyRepresentative: BorgHypoBicaridine + - ChemDispensable + - item: Jug + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Beaker whitelist: + components: + - FitsInDispenser tags: - - Itemborg + - ChemDispensable - type: BorgModuleIcon icon: { sprite: _Wega/Interface/Actions/actions_borg.rsi, state: med-rare } @@ -1377,6 +1406,97 @@ Slash: -1 Piercing: -1 Heat: -1 + +- type: entity + id: BorgModuleSurgerySyndicate + parent: [ BaseBorgModuleSyndicateMedical, BaseProviderBorgModule ] + name: surgery module + description: Surgical module, built-in all necessary surgical instruments and sterilization device. Now cutting out the brain of a crew member has become easier! + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-syndicate + - type: ItemBorgModule + hands: + - item: ScalpelAS + hand: + emptyLabel: borg-slot-surgery-empty + emptyRepresentative: ScalpelAS + whitelist: + tags: + - Itemborg + - hand: + emptyLabel: borg-slot-surgery-empty + emptyRepresentative: CauteryAS + whitelist: + tags: + - Itemborg + - item: SprayBottleEthanol + hand: + emptyRepresentative: SprayBottle + emptyLabel: borg-slot-spray-empty + whitelist: + tags: + - Spray + - hand: + emptyRepresentative: OrganHumanHeart + emptyLabel: borg-slot-biomaterials-empty + whitelist: + components: + - Organ + tags: + - BaseBodyPart + - hand: + emptyRepresentative: EmptySubdermalImplant + emptyLabel: borg-slot-implants-empty + whitelist: + components: + - SubdermalImplant + - Implanter + tags: + - SubdermalHeadImplant + - Pill + - type: BorgModuleIcon + icon: { sprite: _Wega/Interface/Actions/actions_borg.rsi, state: surgery-s-module } + +- type: entity + id: BorgModuleChemSyndicate + parent: [ BaseBorgModuleSyndicateMedical, BaseProviderBorgModule ] + name: chem module + description: Surgical module, built-in all necessary surgical instruments and sterilization device. Now cutting out the brain of a crew member has become easier! + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-syndicate + - type: ItemBorgModule + hands: + - item: HandheldHealthAnalyzer + - item: BorgHypoGeneratedSyndieGeneral + - item: BaseBorgHypoSyndie + - item: DefibrillatorSyndicateCyborg + - item: Jug + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Beaker + whitelist: + components: + - FitsInDispenser + tags: + - ChemDispensable + - item: Jug + hand: + emptyLabel: borg-slot-chemical-containers-empty + emptyRepresentative: Beaker + whitelist: + components: + - FitsInDispenser + tags: + - ChemDispensable + - type: BorgModuleIcon + icon: { sprite: _Wega/Interface/Actions/actions_borg.rsi, state: chem-s-module } + ## Xenoborg - type: entity id: BorgModuleXenoConstruction @@ -1393,6 +1513,8 @@ emptyRepresentative: ConstrukAndCabel emptyLabel: borg-slot-construction-empty whitelist: + components: + - PowerCell tags: - ConstructionMaterial - PowerCell @@ -1401,6 +1523,8 @@ emptyRepresentative: ConstrukAndCabel emptyLabel: borg-slot-construction-empty whitelist: + components: + - PowerCell tags: - ConstructionMaterial - PowerCell diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/_Wega/Entities/Objects/Tools/tools.yml index 2d101a37456..a7acbc0bc05 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Tools/tools.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Tools/tools.yml @@ -115,9 +115,7 @@ description: A modified access configurator used by the cargo. components: - type: Item - size: Normal - shape: - - 0,0,0,1 + size: Small - type: Sprite sprite: _Wega/Objects/Tools/cargo_access_configurator.rsi - type: Clothing @@ -127,6 +125,7 @@ accessLevels: - Cargo - Salvage + - LavalandAvanpost - Quartermaster privilegedIdSlot: name: id-card-console-privileged-id @@ -150,9 +149,7 @@ description: A modified access configurator used by the cargo. components: - type: Item - size: Normal - shape: - - 0,0,0,1 + size: Small - type: Sprite sprite: _Wega/Objects/Tools/sci_access_configurator.rsi - type: Clothing @@ -161,9 +158,10 @@ showPrivilegedId: false accessLevels: - Research + - ResearchDirector privilegedIdSlot: name: id-card-console-privileged-id - startingItem: ResearchIDCard + startingItem: RDIDCard ejectSound: /Audio/Machines/id_swipe.ogg insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg ejectOnBreak: true @@ -175,7 +173,7 @@ denialSound: path: /Audio/Machines/custom_deny.ogg doAfter: 0.5 - + - type: entity parent: AccessConfigurator id: AccessConfiguratorAllAccses @@ -183,9 +181,7 @@ description: A modified access configurator used by the cargo. components: - type: Item - size: Normal - shape: - - 0,0,0,1 + size: Small - type: AccessOverrider showPrivilegedId: false privilegedIdSlot: diff --git a/Resources/Prototypes/_Wega/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/_Wega/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 7de7f929f31..e2af5cd3228 100644 --- a/Resources/Prototypes/_Wega/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/_Wega/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -296,7 +296,7 @@ steps: 3 - type: Appearance - type: Gun - fireRate: 0.5 + fireRate: 1 soundGunshot: path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg - type: Item @@ -307,10 +307,10 @@ maxCharge: 1000 startingCharge: 1000 - type: BatterySelfRecharger - autoRechargeRate: 20 + autoRechargeRate: 50 - type: BatteryAmmoProvider proto: IonScan - fireCost: 500 + fireCost: 250 - type: entity name: energy carabine "Pulsar" diff --git a/Resources/Prototypes/_Wega/Mind/mindChannels.yml b/Resources/Prototypes/_Wega/Mind/mindChannels.yml index 0f1fff8bfbc..dd23b7f74a7 100644 --- a/Resources/Prototypes/_Wega/Mind/mindChannels.yml +++ b/Resources/Prototypes/_Wega/Mind/mindChannels.yml @@ -21,3 +21,15 @@ name: diona-mind-channel keycode: 'д' color: "#4db542" + +- type: mindChannel + id: MindZombie + name: zomnie-mind-channel + keycode: 'з' + color: "#7e916e" + +- type: mindChannel + id: MindCarp + name: carp-mind-channel + keycode: 'а' + color: "#ec1e00" \ No newline at end of file diff --git a/Resources/Prototypes/_Wega/Recipes/Lathes/robotics.yml b/Resources/Prototypes/_Wega/Recipes/Lathes/robotics.yml index 292eaae4a5e..f24d778041d 100644 --- a/Resources/Prototypes/_Wega/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/_Wega/Recipes/Lathes/robotics.yml @@ -33,6 +33,11 @@ id: BorgModuleCommonMedical result: BorgModuleCommonMedical +- type: latheRecipe + parent: BaseBorgModuleRecipe + id: BorgModuleFulton + result: BorgModuleFulton + - type: latheRecipe parent: BaseBorgModuleRecipe id: BorgModuleRobotics diff --git a/Resources/Prototypes/_Wega/Recipes/Lathes/xenoborg.yml b/Resources/Prototypes/_Wega/Recipes/Lathes/xenoborg.yml index 4cd41084c6d..e319f5d0318 100644 --- a/Resources/Prototypes/_Wega/Recipes/Lathes/xenoborg.yml +++ b/Resources/Prototypes/_Wega/Recipes/Lathes/xenoborg.yml @@ -73,4 +73,4 @@ id: ClothingHeadHatChameleonXenoborg result: ClothingHeadHatChameleonXenoborg materials: - Steel: 100 \ No newline at end of file + Steel: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_Wega/tags.yml b/Resources/Prototypes/_Wega/tags.yml index 207b781cd47..37fe80aebc6 100644 --- a/Resources/Prototypes/_Wega/tags.yml +++ b/Resources/Prototypes/_Wega/tags.yml @@ -544,4 +544,7 @@ id: Bola - type: Tag - id: Morgue \ No newline at end of file + id: Morgue + +- type: Tag + id: BorgModuleSyndicateMedical diff --git a/Resources/ServerInfo/_Wega/Guidebook/Newplayer/MindChat.xml b/Resources/ServerInfo/_Wega/Guidebook/Newplayer/MindChat.xml index 13cd7532e9f..c4d70af37b1 100644 --- a/Resources/ServerInfo/_Wega/Guidebook/Newplayer/MindChat.xml +++ b/Resources/ServerInfo/_Wega/Guidebook/Newplayer/MindChat.xml @@ -1,8 +1,16 @@ ## Сеть разума У некоторых антоганистов и членов экипажа может быть связь, которая не требует каких-либо гарнитур или других инструментов связи, позволяя напрямую общаться с другими обладателями доступа к сети. Для использования связи, Вам нужно в чат написать [color=#CD853F]плюс и ключ связи (+ключ связи)[/color]. -В данный момент игры существуют только два типа ключа: +В данный момент игры существуют следующие ключи для чата: -[color=#880000]Культ крови[/color] , доступен всем культистам и их конструктам, для использования напишите [color=#880000]+к[/color]. +[color=#880000]Культ крови[/color] , доступен всем культистам крови и их конструктам, для использования напишите [color=#880000]+к[/color]. -[color=#2288ff]Ксеноборги[/color] , доступен ксеноборгам и ядру материнского коробля, для использования напишите [color=#2288ff]+д[/color]. \ No newline at end of file +[color=#b5a642]Праведники Ратвара[/color] , доступен всем культистам Ратвара и их конструктам, для использования напишите [color=#b5a642]+р[/color]. + +[color=#4db542]Дион[/color] , доступен всех представителей расы Дион, для использования напишите [color=#4db542]+д[/color]. + +[color=#2288ff]Ксеноборги[/color] , доступен ксеноборгам и ядру материнского коробля, для использования напишите [color=#2288ff]+б[/color]. + +[color=#7e916e]Зомби[/color] , доступен всем нулевым пациентам, слушать же могут все зомби, для использования напишите [color=#7e916e]+з[/color]. + +[color=#ec1e00]Карпов[/color] , доступен дракону, позволяя отправлять сообщения всем карпам, для использования напишите [color=#ec1e00]+а[/color]. \ No newline at end of file diff --git a/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/chem-s-module.png b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/chem-s-module.png new file mode 100644 index 00000000000..50650d98a71 Binary files /dev/null and b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/chem-s-module.png differ diff --git a/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/med-rare.png b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/med-rare.png index 7334fc706a5..88a2268f3f9 100644 Binary files a/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/med-rare.png and b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/med-rare.png differ diff --git a/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/meta.json index 237c70270ee..5c245a8b6e1 100644 --- a/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/meta.json +++ b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/meta.json @@ -133,6 +133,12 @@ { "name": "sniper-module" }, + { + "name": "surgery-s-module" + }, + { + "name": "chem-s-module" + }, { "name": "speed_xenoborg" }, diff --git a/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/surgery-s-module.png b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/surgery-s-module.png new file mode 100644 index 00000000000..1e58357b108 Binary files /dev/null and b/Resources/Textures/_Wega/Interface/Actions/actions_borg.rsi/surgery-s-module.png differ diff --git a/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/borghypo_fill1.png b/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/borghypo_fill1.png new file mode 100644 index 00000000000..bd7c73be84a Binary files /dev/null and b/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/borghypo_fill1.png differ diff --git a/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/borghypo_s.png b/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/borghypo_s.png new file mode 100644 index 00000000000..3d53f56f711 Binary files /dev/null and b/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/borghypo_s.png differ diff --git a/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/meta.json b/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/meta.json index eee04becba7..9b6254b1ebd 100644 --- a/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/meta.json +++ b/Resources/Textures/_Wega/Objects/Specific/Medical/hyno.rsi/meta.json @@ -14,6 +14,12 @@ { "name": "borghypo" }, + { + "name": "borghypo_s" + }, + { + "name": "borghypo_fill1" + }, { "name": "borghypo_bicka" },