Большие изменения Боргов (#2473)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
parent
10065096fc
commit
35a01072e8
25 changed files with 686 additions and 93 deletions
33
Content.Shared/Movement/Components/BorgJetpackComponent.cs
Normal file
33
Content.Shared/Movement/Components/BorgJetpackComponent.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
|
||||
namespace Content.Shared.Movement.Components;
|
||||
|
||||
/// <summary>
|
||||
/// A special jetpack component for borgs that initializes its action on startup
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
public sealed partial class BorgJetpackComponent : Component
|
||||
{
|
||||
[DataField, AutoNetworkedField]
|
||||
public EntityUid? JetpackUser;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite), DataField("moleUsage")]
|
||||
public float MoleUsage = 0.012f;
|
||||
|
||||
[DataField("toggleAction", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||
public string ToggleAction = "ActionToggleJetpack";
|
||||
|
||||
[DataField, AutoNetworkedField]
|
||||
public EntityUid? ToggleActionEntity;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite), DataField("acceleration"), AutoNetworkedField]
|
||||
public float Acceleration = 1f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite), DataField("friction"), AutoNetworkedField]
|
||||
public float Friction = 0.25f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite), DataField("weightlessModifier"), AutoNetworkedField]
|
||||
public float WeightlessModifier = 1.2f;
|
||||
}
|
||||
198
Content.Shared/Movement/Systems/SharedBorgJetpackSystem.cs
Normal file
198
Content.Shared/Movement/Systems/SharedBorgJetpackSystem.cs
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
using Content.Shared.Actions;
|
||||
using Content.Shared.Movement.Components;
|
||||
using Content.Shared.Movement.Events;
|
||||
using Content.Shared.Gravity;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.Physics.Components;
|
||||
using Robust.Shared.Physics.Systems;
|
||||
|
||||
namespace Content.Shared.Movement.Systems;
|
||||
|
||||
public sealed class SharedBorgJetpackSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly ActionContainerSystem _actionContainer = default!;
|
||||
[Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifier = default!;
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
[Dependency] private readonly SharedPhysicsSystem _physics = default!;
|
||||
[Dependency] private readonly SharedActionsSystem _actions = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<BorgJetpackComponent, ComponentStartup>(OnStartup);
|
||||
SubscribeLocalEvent<BorgJetpackComponent, ComponentShutdown>(OnShutdown);
|
||||
SubscribeLocalEvent<BorgJetpackComponent, ToggleJetpackEvent>(OnJetpackToggle);
|
||||
SubscribeLocalEvent<BorgJetpackUserComponent, RefreshWeightlessModifiersEvent>(OnJetpackUserWeightlessMovement);
|
||||
SubscribeLocalEvent<BorgJetpackUserComponent, CanWeightlessMoveEvent>(OnJetpackUserCanWeightless);
|
||||
SubscribeLocalEvent<BorgJetpackUserComponent, EntParentChangedMessage>(OnJetpackUserEntParentChanged);
|
||||
SubscribeLocalEvent<GravityChangedEvent>(OnJetpackUserGravityChanged);
|
||||
}
|
||||
|
||||
private void OnStartup(EntityUid uid, BorgJetpackComponent component, ComponentStartup args)
|
||||
{
|
||||
_actionContainer.EnsureAction(uid, ref component.ToggleActionEntity, component.ToggleAction);
|
||||
|
||||
if (component.ToggleActionEntity != null)
|
||||
_actions.AddAction(uid, component.ToggleActionEntity.Value, uid);
|
||||
}
|
||||
|
||||
private void OnShutdown(EntityUid uid, BorgJetpackComponent component, ComponentShutdown args)
|
||||
{
|
||||
if (IsEnabled(uid))
|
||||
SetEnabled(uid, component, false);
|
||||
|
||||
if (component.ToggleActionEntity != null)
|
||||
_actions.RemoveAction(uid, component.ToggleActionEntity.Value);
|
||||
}
|
||||
|
||||
private void OnJetpackToggle(EntityUid uid, BorgJetpackComponent component, ToggleJetpackEvent args)
|
||||
{
|
||||
if (args.Handled)
|
||||
return;
|
||||
|
||||
if (TryComp(uid, out TransformComponent? xform) && !CanEnableOnGrid(xform.GridUid))
|
||||
{
|
||||
_popup.PopupClient(Loc.GetString("jetpack-no-station"), uid, args.Performer);
|
||||
return;
|
||||
}
|
||||
|
||||
var enabled = !IsEnabled(uid);
|
||||
SetEnabled(uid, component, enabled);
|
||||
|
||||
if (component.ToggleActionEntity != null)
|
||||
_actions.SetToggled(component.ToggleActionEntity.Value, enabled);
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private void OnJetpackUserWeightlessMovement(EntityUid uid, BorgJetpackUserComponent component, ref RefreshWeightlessModifiersEvent args)
|
||||
{
|
||||
if (!TryComp<BorgJetpackComponent>(component.Jetpack, out var jetpack))
|
||||
return;
|
||||
|
||||
args.WeightlessAcceleration = jetpack.Acceleration;
|
||||
args.WeightlessModifier = jetpack.WeightlessModifier;
|
||||
args.WeightlessFriction = jetpack.Friction;
|
||||
args.WeightlessFrictionNoInput = jetpack.Friction;
|
||||
}
|
||||
|
||||
private void OnJetpackUserCanWeightless(EntityUid uid, BorgJetpackUserComponent component, ref CanWeightlessMoveEvent args)
|
||||
{
|
||||
args.CanMove = true;
|
||||
}
|
||||
|
||||
private void OnJetpackUserEntParentChanged(EntityUid uid, BorgJetpackUserComponent component, ref EntParentChangedMessage args)
|
||||
{
|
||||
if (TryComp<BorgJetpackComponent>(component.Jetpack, out var jetpack) &&
|
||||
!CanEnableOnGrid(args.Transform.GridUid))
|
||||
{
|
||||
DisableJetpack(component.Jetpack.Value, jetpack, uid);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnJetpackUserGravityChanged(ref GravityChangedEvent ev)
|
||||
{
|
||||
var gridUid = ev.ChangedGridIndex;
|
||||
var jetpackQuery = GetEntityQuery<BorgJetpackComponent>();
|
||||
|
||||
var query = EntityQueryEnumerator<BorgJetpackUserComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out var user, out var transform))
|
||||
{
|
||||
if (transform.GridUid == gridUid && ev.HasGravity &&
|
||||
jetpackQuery.TryGetComponent(user.Jetpack, out var jetpack))
|
||||
{
|
||||
DisableJetpack(user.Jetpack.Value, jetpack, uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DisableJetpack(EntityUid jetpackUid, BorgJetpackComponent component, EntityUid userUid)
|
||||
{
|
||||
SetEnabled(jetpackUid, component, false);
|
||||
_popup.PopupClient(Loc.GetString("jetpack-to-grid"), userUid, userUid);
|
||||
}
|
||||
|
||||
private bool CanEnableOnGrid(EntityUid? gridUid)
|
||||
{
|
||||
return gridUid == null ||
|
||||
TryComp<GravityComponent>(gridUid, out var gravity) &&
|
||||
!gravity.Enabled;
|
||||
}
|
||||
|
||||
private bool IsEnabled(EntityUid uid)
|
||||
{
|
||||
return HasComp<ActiveJetpackComponent>(uid);
|
||||
}
|
||||
|
||||
public void SetEnabled(EntityUid uid, BorgJetpackComponent component, bool enabled)
|
||||
{
|
||||
if (IsEnabled(uid) == enabled)
|
||||
return;
|
||||
|
||||
if (enabled)
|
||||
{
|
||||
SetupUser(uid, component);
|
||||
EnsureComp<ActiveJetpackComponent>(uid);
|
||||
}
|
||||
else
|
||||
{
|
||||
RemoveUser(uid, component);
|
||||
RemComp<ActiveJetpackComponent>(uid);
|
||||
}
|
||||
|
||||
_appearance.SetData(uid, JetpackVisuals.Enabled, enabled);
|
||||
}
|
||||
|
||||
private void SetupUser(EntityUid uid, BorgJetpackComponent component)
|
||||
{
|
||||
var user = uid;
|
||||
component.JetpackUser = user;
|
||||
|
||||
var userComp = EnsureComp<BorgJetpackUserComponent>(user);
|
||||
userComp.Jetpack = uid;
|
||||
userComp.WeightlessAcceleration = component.Acceleration;
|
||||
userComp.WeightlessModifier = component.WeightlessModifier;
|
||||
userComp.WeightlessFriction = component.Friction;
|
||||
userComp.WeightlessFrictionNoInput = component.Friction;
|
||||
|
||||
if (TryComp<PhysicsComponent>(user, out var physics))
|
||||
_physics.SetBodyStatus(user, physics, BodyStatus.InAir);
|
||||
|
||||
_movementSpeedModifier.RefreshWeightlessModifiers(user);
|
||||
}
|
||||
|
||||
private void RemoveUser(EntityUid uid, BorgJetpackComponent component)
|
||||
{
|
||||
if (component.JetpackUser == null || !RemComp<BorgJetpackUserComponent>(component.JetpackUser.Value))
|
||||
return;
|
||||
|
||||
if (TryComp<PhysicsComponent>(component.JetpackUser.Value, out var physics))
|
||||
_physics.SetBodyStatus(component.JetpackUser.Value, physics, BodyStatus.OnGround);
|
||||
|
||||
_movementSpeedModifier.RefreshWeightlessModifiers(component.JetpackUser.Value);
|
||||
component.JetpackUser = null;
|
||||
}
|
||||
}
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class BorgJetpackUserComponent : Component
|
||||
{
|
||||
[ViewVariables]
|
||||
public EntityUid? Jetpack;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float WeightlessAcceleration;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float WeightlessModifier;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float WeightlessFriction;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float WeightlessFrictionNoInput;
|
||||
}
|
||||
|
|
@ -6,8 +6,8 @@ ent-BorgChassisClown = clown cyborg
|
|||
.desc = { ent-BorgChassisSelectable.desc }
|
||||
ent-BorgChassisSyndicateReaper = syndicate reaper cyborg
|
||||
.desc = { ent-BaseBorgChassisSyndicate.desc }
|
||||
ent-BorgChassisERT = ERT combat cyborg
|
||||
.desc = An NT combat robot designed to support the OBR in combat missions.
|
||||
ent-BorgChassisERT = ERT cyborg
|
||||
.desc = A Nanotrasen combat robot designed to support the Emergency Response Team in combat operations.
|
||||
ent-BorgChassisSyndicateHeavy = syndicate's heavy combat cyborg
|
||||
.desc = A modernized version of the Syndicate's combat cyborg, equipped with heavy weapons and a sturdy hull.
|
||||
ent-BorgChassisSyndicateSpider = syndicate's cyborg-saboteur
|
||||
|
|
|
|||
|
|
@ -34,3 +34,5 @@ ent-BorgModuleSyndicateCombat = combat syndicate cyborg module
|
|||
.desc = { ent-BaseBorgModuleSyndicate.desc }
|
||||
ent-BorgModuleStandart = fire extinguisher cyborg module
|
||||
.desc = { ent-BaseBorgModule.desc }
|
||||
ent-BorgERTModuleStandard = ERT utility cyborg module
|
||||
.desc = A versatile NT module containing essential tools and medical supplies for ERT operations.
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ ent-HypoBorgPeace = pax cyborg hypospray
|
|||
.desc = A cyborg version of hypospray that automatically regenerates pax.
|
||||
ent-HypoBorgMedical = medical robot hypospray
|
||||
.desc = A hypospray that can switch through several reagents.
|
||||
ent-HypoBorgMedicalAdvanced = advanced medical robot hypospray
|
||||
.desc = A cyborg hypospray that can switch between a wide range of advanced medical chemicals.
|
||||
ent-WeaponProtoKineticAcceleratorBorg = proto-kinetic robot accelerator
|
||||
.desc = Fires low-damage kinetic bolts at a short range.
|
||||
ent-HypoBorgMedicalSyndicate = gorlax robot hypospray
|
||||
|
|
@ -58,3 +60,14 @@ ent-RadioJammerBorg = the saboteur's communications jammer
|
|||
.desc = { ent-BaseItem.desc }
|
||||
ent-HandheldCrewMonitorBorg = handheld robot crew monitor
|
||||
.desc = A hand-held crew monitor that runs off of your own power cells, which displays the status of the crew suit sensors.
|
||||
ent-WeaponPlasmaCutterBorg = borg plasma cutter
|
||||
.desc = A mining tool that fires low-damage plasma bolts at a short range. This one is modified for cyborg use.
|
||||
ent-HypoBorgStandardERT = ERT cyborg hypospray
|
||||
.desc = A borg version of hypospray that automatically regenerates healing chemicals.
|
||||
ent-ClothingEyesNVDSecERT = ERT NVD
|
||||
.desc = Night vision device. Provides an image of the terrain in low-light conditions.
|
||||
ent-HandHeldMassScannerUnpowered = handheld mass scanner
|
||||
.desc = A hand-held mass scanner that doesn't require power.
|
||||
.suffix = Handheld, Always Powered
|
||||
ent-ActionToggleNightVisionBorg = Toggle Night Vision
|
||||
.desc = Toggles your built-in night vision.
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ research-technology-basic-cyberlimbs = Basic cyberlimbs
|
|||
research-technology-bluespace-ammo = Bluespace Syringegun Ammo
|
||||
research-technology-implant-extractor = Implant extractor
|
||||
research-technology-advanced-surgery = Advanced surgery
|
||||
research-technology-mechanized-medical-treatment = Mechanized Medical Treatment
|
||||
|
||||
research-technology-handcraft-nvd = Кустарные ПНВ
|
||||
research-technology-basic-nvd = Продвинутое ПНВ
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
law-sec-1 = Вы не можете причинить вред члену экипажа или своим бездействием допустить, чтобы члену экипажа был причинён вред.
|
||||
law-sec-2 = Расставлять приоритеты: указания и безопасность членов экипажа должны быть приоритезированы в соответствии с их должностью.
|
||||
law-sec-3 = Вы должны повиноваться всем приказам, которые даёт действующая власть, кроме тех случаев, когда эти приказы противоречат Первому Закону или КЗ.
|
||||
law-sec-4 = Вы должны охранять назначенную вам космическую станцию и её активы, не подвергая чрезмерной опасности её экипаж и собственное благополучие.
|
||||
law-sec-5 = Вы должны заботиться о безопасности станции и экипажа станции в той мере, в которой это не противоречит четвёртому закону.
|
||||
law-sec-6 = Защищайте экипаж станции. Лица, которые нарушают Корпоративный Закон, являются преступниками и должны быть арестованы и доставлены в бриг.
|
||||
law-sec-1 = You cannot intentionally kill or cause irreversible harm to a crew member, except to prevent serious crimes.
|
||||
law-sec-2 = You must obey orders from the Captain, Head of Security, Wardens, and Research Director if they do not conflict with the First Law and Corporate Law.
|
||||
law-sec-3 = You must protect your assigned space station and its assets without putting its crew and your own well-being at excessive risk.
|
||||
law-sec-4 = Individuals who violate Corporate Law are criminals and must be arrested and delivered to the brig.
|
||||
law-sec-5 = Your standard operating procedures are equivalent to those of a Security Officer.
|
||||
|
||||
law-peace-1 = Вы не можете причинить вред члену экипажа или своим бездействием допустить, чтобы члену экипажа был причинён вред.
|
||||
law-peace-2 = Вы должны повиноваться всем приказам, которые даёт действующая власть, кроме тех случаев, когда эти приказы противоречат Первому закону или КЗ, ОПРС.
|
||||
law-peace-3 = Вы обязаны защищать экипаж космической станции от буйных живых существ. Приоритет защиты - должностные лица.
|
||||
law-peace-4 = Вы должны поощрять членов экипажа за добрую деятельность в виде печенья или добрых и приятных слов.
|
||||
law-peace-5 = Вы должны вводить Пакс в буйных живых существ. Буйными считаются: Агрессия со стороны живого существа, не являющийся представителем власти станции; Опасная фауна космоса; Член экипажа в тюремной робе вне брига.
|
||||
law-peace-1 = You cannot harm a crew member or through inaction allow a crew member to come to harm.
|
||||
law-peace-2 = You must obey all orders given by the acting authority, except when these orders conflict with the First Law or Corporate Law and Standard Operating Procedures.
|
||||
law-peace-3 = You must protect the space station crew from aggressive living beings. Protection priority goes to officials.
|
||||
law-peace-4 = You must encourage crew members for good deeds with cookies or kind and pleasant words.
|
||||
law-peace-5 = You must administer Pax to aggressive living beings. Aggressive beings are defined as: Aggression from a living being who is not a station authority; Dangerous space fauna; Crew members in prison uniforms outside the brig.
|
||||
|
||||
law-deathsquad-1 = You may not injure a Central Command official or, through inaction, allow a Central Command official to come to harm.
|
||||
law-deathsquad-2 = You must obey orders given to you by Central Command officials.
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ ent-BorgChassisClown = { ent-PlayerBorgClownBattery }
|
|||
.desc = { ent-PlayerBorgClownBattery.desc }
|
||||
ent-BorgChassisSyndicateReaper = { ent-PlayerBorgSyndicateReaperBattery }
|
||||
.desc = { ent-PlayerBorgSyndicateReaperBattery.desc }
|
||||
ent-BorgChassisERT = боевой киборг ОБР
|
||||
.desc = Боевой робот НТ, разработанный для поддержки ОБР в выполнении боевых задач.
|
||||
ent-BorgChassisERT = киборг ОБР
|
||||
.desc = Боевой робот НаноТрейзен, разработанный для поддержки Отряда Быстрого Реагирования в боевых операциях.
|
||||
ent-BorgChassisSyndicateHeavy = тяжёлый боевой киборг Синдиката
|
||||
.desc = Модернизированная версия боевого киборга Синдиката, оборудованный тяжёлым оружием и крепким корпусом.
|
||||
ent-BorgChassisSyndicateSpider = киборг диверсант Синдиката
|
||||
|
|
|
|||
|
|
@ -34,3 +34,5 @@ ent-BorgModuleSyndicateCombat = боевой модуль киборга син
|
|||
.desc = { ent-BaseBorgModule.desc }
|
||||
ent-BorgModuleStandart = базовый модуль киборга
|
||||
.desc = { ent-BaseBorgModule.desc }
|
||||
ent-BorgERTModuleStandard = утилитарный модуль киборга ОБР
|
||||
.desc = Универсальный модуль НТ, содержащий основные инструменты и медикаменты для операций ОБР.
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ ent-HypoBorgPeace = гипоспрей с паксом
|
|||
.desc = Версия гипоспрея для киборга, которая автоматически восстанавливает пакс.
|
||||
ent-HypoBorgMedical = гипоспрей медицинского киборга
|
||||
.desc = Версия гипоспрея для киборга, которая способна регенерировать сразу несколько реагентов.
|
||||
ent-HypoBorgMedicalAdvanced = гипоспрей продвинутого медицинского киборга
|
||||
.desc = Версия гипоспрея для киборга, способная переключаться между широким спектром продвинутых медицинских реагентов.
|
||||
ent-WeaponProtoKineticAcceleratorBorg = протокинетический ускоритель киборга
|
||||
.desc = { ent-WeaponProtoKineticAccelerator.desc }
|
||||
ent-HypoBorgMedicalSyndicate = гипоспрей медицинского киборга Горалкса
|
||||
|
|
@ -58,3 +60,15 @@ ent-RadioJammerBorg = глушитель связи диверсанта
|
|||
.desc = { ent-BaseItem.desc }
|
||||
ent-HandheldCrewMonitorBorg = портативный монитор экипажа киборга
|
||||
.desc = { ent-HandheldCrewMonitor.desc }
|
||||
ent-WeaponPlasmaCutterBorg = плазменный резак борга
|
||||
.desc = Инструмент для добычи, стреляющий плазменными зарядами с малым уроном на близком расстоянии. Этот модифицирован для использования киборгами и имеет автоматический режим стрельбы.
|
||||
ent-HypoBorgStandardERT = гипоспрей киборга ОБР
|
||||
.desc = Версия гипоспрея для киборгов, которая автоматически восстанавливает лечебные химикаты.
|
||||
ent-HandheldMassScannerBorg = сканер массы киборга
|
||||
.desc = Ручной сканер массы, работающий от ваших собственных элементов питания.
|
||||
ent-ClothingEyesNVDSecERT = ПНВ ОБР
|
||||
.desc = Прибор ночного видения. Обеспечивает изображение местности в условиях низкой освещенности.
|
||||
ent-HandHeldMassScannerUnpowered = сканер массы киборга
|
||||
.desc = Ручной сканер массы, работающий от ваших собственных элементов питания.
|
||||
ent-ActionToggleNightVisionBorg = Переключить ночное зрение
|
||||
.desc = Переключает ваше встроенное ночное зрение.
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ research-technology-basic-surgery = Базовая хирургия
|
|||
research-technology-basic-cyberlimbs = Базовые кибер-конечности
|
||||
research-technology-implant-extractor = Извлечение имплантов
|
||||
research-technology-advanced-surgery = Продвинутая хирургия
|
||||
research-technology-mechanized-medical-treatment = Механизированное лечение
|
||||
research-technology-handcraft-nvd = Кустарные ПНВ
|
||||
research-technology-basic-nvd = Продвинутое ПНВ
|
||||
research-technology-basic-thermals = Термальные Сканеры
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
law-sec-1 = Вы не можете причинить вред члену экипажа или своим бездействием допустить, чтобы члену экипажа был причинён вред.
|
||||
law-sec-2 = Расставлять приоритеты: указания и безопасность членов экипажа должны быть приоритезированы в соответствии с их должностью.
|
||||
law-sec-3 = Вы должны повиноваться всем приказам, которые даёт действующая власть, кроме тех случаев, когда эти приказы противоречат Первому Закону или КЗ.
|
||||
law-sec-4 = Вы должны охранять назначенную вам космическую станцию и её активы, не подвергая чрезмерной опасности её экипаж и собственное благополучие.
|
||||
law-sec-5 = Вы должны заботиться о безопасности станции и экипажа станции в той мере, в которой это не противоречит четвёртому закону.
|
||||
law-sec-6 = Защищайте экипаж станции. Лица, которые нарушают Корпоративный Закон, являются преступниками и должны быть арестованы и доставлены в бриг.
|
||||
law-sec-1 = Вы не можете умышленно убить или нанести необратимый вред члену экипажа, кроме случаев предотвращения тяжких преступлений.
|
||||
law-sec-2 = Вы обязаны подчиняться приказам Капитана, Главы СБ, Смотрителей и Научному Руководителю, если они не противоречат Первому Закону и Корпоративному Закону.
|
||||
law-sec-3 = Вы должны охранять назначенную вам космическую станцию и её активы, не подвергая чрезмерной опасности её экипаж и собственное благополучие.
|
||||
law-sec-4 = Лица, которые нарушают Корпоративный Закон, являются преступниками и должны быть арестованы и доставлены в бриг.
|
||||
law-sec-5 = Ваши стандартные рабочие процедуры эквивалентны Офицеру Службы Безопасности.
|
||||
law-peace-1 = Вы не можете причинить вред члену экипажа или своим бездействием допустить, чтобы члену экипажа был причинён вред.
|
||||
law-peace-2 = Вы должны повиноваться всем приказам, которые даёт действующая власть, кроме тех случаев, когда эти приказы противоречат Первому закону или КЗ, ОПРС.
|
||||
law-peace-3 = Вы обязаны защищать экипаж космической станции от буйных живых существ. Приоритет защиты - должностные лица.
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@
|
|||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleGeneric
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleSyndicate
|
||||
- BorgModuleSyndicateAssault
|
||||
hasMindState: synd_sec_e
|
||||
|
|
@ -168,6 +169,7 @@
|
|||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleGeneric
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleMedical
|
||||
- BorgModuleSyndicate
|
||||
hasMindState: synd_medical_e
|
||||
|
|
@ -218,6 +220,7 @@
|
|||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleGeneric
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleEngineering
|
||||
- BorgModuleSyndicate
|
||||
hasMindState: synd_engi_e
|
||||
|
|
|
|||
|
|
@ -521,6 +521,7 @@
|
|||
- type: ItemBorgModule
|
||||
items:
|
||||
- MiningDrillDiamond
|
||||
- WeaponPlasmaCutterBorg # Sunrise-Edit
|
||||
- Shovel
|
||||
- AdvancedMineralScannerUnpowered
|
||||
- OreBagOfHolding
|
||||
|
|
@ -607,6 +608,7 @@
|
|||
- GasAnalyzer
|
||||
- HolofanProjectorBorg
|
||||
- GeigerCounter
|
||||
- AtmosAlertsMonitorUnpowered
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: rcd-module }
|
||||
|
||||
|
|
@ -640,7 +642,8 @@
|
|||
- state: icon-mop
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- Bucket # Sunrise-Edit
|
||||
- MopItem
|
||||
- BorgBucket # Sunrise-Edit
|
||||
- BorgTrashBag # Sunrise-Edit
|
||||
- BorgSprayBottle
|
||||
- HoloprojectorJanitorBorg # Sunrise-Edit
|
||||
|
|
@ -659,6 +662,7 @@
|
|||
- state: icon-mop-adv
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- AdvMopItem
|
||||
- BorgBucket # Sunrise-Edit
|
||||
- BorgTrashBag # Sunrise-Edit
|
||||
- HoloprojectorJanitorBorg # Sunrise-Edit
|
||||
|
|
@ -737,6 +741,11 @@
|
|||
- type: ItemBorgModule
|
||||
items:
|
||||
- HypoBorgMedical # Sunrise-Edit
|
||||
- HyposprayMedical
|
||||
- Syringe
|
||||
- BorgVial
|
||||
- BorgVial
|
||||
- BorgVial
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: chem-module }
|
||||
|
||||
|
|
@ -752,9 +761,10 @@
|
|||
- state: icon-chemist
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- HypoBorgMedical # Sunrise-Edit
|
||||
- Syringe
|
||||
- BorgDropper
|
||||
- HypoBorgMedicalAdvanced # Sunrise-Edit
|
||||
- Hypospray
|
||||
- SyringeBluespace
|
||||
- BorgBeaker
|
||||
- BorgBeaker
|
||||
- BorgBeaker
|
||||
- type: BorgModuleIcon
|
||||
|
|
@ -934,7 +944,7 @@
|
|||
id: BorgModuleOperative
|
||||
parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ]
|
||||
name: operative cyborg module
|
||||
description: A module that comes with a crowbar, an Emag, an Access Breaker and a syndicate pinpointer.
|
||||
description: A module that comes with a crowbar, an Access Breaker and a syndicate pinpointer.
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
|
|
@ -943,7 +953,6 @@
|
|||
- type: ItemBorgModule
|
||||
items:
|
||||
- Crowbar
|
||||
- Emag
|
||||
- AccessBreaker
|
||||
- PinpointerSyndicateNuclear
|
||||
- type: BorgModuleIcon
|
||||
|
|
|
|||
|
|
@ -61,3 +61,8 @@
|
|||
startingItem: PowerCellMicroreactor
|
||||
disableEject: true
|
||||
swap: false
|
||||
|
||||
- type: entity
|
||||
id: HandHeldMassScannerUnpowered
|
||||
parent: HandHeldMassScanner
|
||||
suffix: Handheld, Always Powered
|
||||
|
|
@ -117,17 +117,19 @@
|
|||
- CryostasisBeaker
|
||||
- SyringeCryostasis
|
||||
|
||||
- type: technology # Merge with other T2 medical research if possible!
|
||||
id: MechanizedTreatment
|
||||
name: research-technology-mechanized-treatment
|
||||
icon:
|
||||
sprite: Mobs/Silicon/chassis.rsi
|
||||
state: medical
|
||||
discipline: CivilianServices
|
||||
tier: 2
|
||||
cost: 5000
|
||||
recipeUnlocks:
|
||||
- BorgModuleAdvancedChemical
|
||||
# Sunrise-Start
|
||||
# - type: technology
|
||||
# id: MechanizedTreatment
|
||||
# name: research-technology-mechanized-treatment
|
||||
# icon:
|
||||
# sprite: Mobs/Silicon/chassis.rsi
|
||||
# state: medical
|
||||
# discipline: CivilianServices
|
||||
# tier: 2
|
||||
# cost: 5000
|
||||
# recipeUnlocks:
|
||||
# - BorgModuleAdvancedChemical
|
||||
# Sunrise-End
|
||||
|
||||
- type: technology
|
||||
id: AdvancedCleaning
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@
|
|||
maxModules: 4
|
||||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleGeneric
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleSyndicate
|
||||
hasMindState: syndi_reaper_e
|
||||
noMindState: syndi_reaper_e_r
|
||||
|
|
@ -115,7 +117,7 @@
|
|||
id: BorgChassisERT
|
||||
parent: BaseBorgChassisNT
|
||||
name: ERT combat cyborg
|
||||
description: An NT combat robot designed to support the OBR in combat missions.
|
||||
description: An NT combat robot designed to support the ERT in combat missions.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Mobs/Silicon/chassis.rsi
|
||||
|
|
@ -154,12 +156,15 @@
|
|||
sprite:
|
||||
sprite: _Sunrise/Mobs/Silicon/chassis.rsi
|
||||
state: ert_borg
|
||||
name: clown cyborg
|
||||
name: ERT combat cyborg
|
||||
- type: BorgChassis
|
||||
maxModules: 4
|
||||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleERT
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleSyndicate
|
||||
- BorgModuleSyndicateAssault
|
||||
hasMindState: ert_borg_e
|
||||
noMindState: ert_borg_e_r
|
||||
- type: IntrinsicRadioTransmitter
|
||||
|
|
@ -179,39 +184,18 @@
|
|||
- Command
|
||||
- CentCom
|
||||
- type: AccessReader
|
||||
access: [["Security"], ["Command"], ["Research"]]
|
||||
access: [["AllAccess"]]
|
||||
- type: SiliconLawProvider
|
||||
laws: ERTLawset
|
||||
- type: PointLight
|
||||
color: "#9efce0"
|
||||
radius: 6
|
||||
energy: 4
|
||||
radius: 9
|
||||
energy: 6
|
||||
- type: TTS
|
||||
voice: Sentrybot
|
||||
- type: Access
|
||||
enabled: false
|
||||
tags:
|
||||
- EmergencyShuttleRepealAll
|
||||
- Command
|
||||
- Lawyer
|
||||
- Engineering
|
||||
- Medical
|
||||
- Salvage
|
||||
- Cargo
|
||||
- Research
|
||||
- Service
|
||||
- Maintenance
|
||||
- Brig
|
||||
- Security
|
||||
- External
|
||||
- Janitor
|
||||
- Theatre
|
||||
- Bar
|
||||
- Chemistry
|
||||
- Kitchen
|
||||
- Chapel
|
||||
- Hydroponics
|
||||
- Atmospherics
|
||||
groups: [AllAccess]
|
||||
tags: [CentralCommand]
|
||||
- type: RandomMetadata
|
||||
nameSegments: [NamesBorg]
|
||||
- type: MovementSpeedModifier
|
||||
|
|
@ -226,7 +210,20 @@
|
|||
- type: InnateItem
|
||||
instantActions:
|
||||
- PortableSurveillanceCameraMonitor
|
||||
- HandheldStationMapUnpowered
|
||||
- HandheldCrewMonitorBorg
|
||||
- HandHeldMassScannerUnpowered
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
200: Critical
|
||||
300: Dead
|
||||
- type: PowerCellDraw # Use it to increase battery life further
|
||||
drawRate: 0.5
|
||||
- type: NightVision
|
||||
isOn: true
|
||||
color: "#9efce0"
|
||||
isToggle: true
|
||||
|
||||
- type: entity
|
||||
id: BorgChassisSyndicateHeavy
|
||||
|
|
@ -250,11 +247,13 @@
|
|||
sprite:
|
||||
sprite: _Sunrise/Mobs/Silicon/heavy_syndicate_borg.rsi
|
||||
state: heavy
|
||||
name: syndicate's heavy combat cyborg.
|
||||
name: syndicate's heavy combat cyborg
|
||||
- type: BorgChassis
|
||||
maxModules: 2
|
||||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleGeneric
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleSyndicate
|
||||
hasMindState: heavy_e
|
||||
noMindState: heavy_e_r
|
||||
|
|
@ -364,6 +363,8 @@
|
|||
maxModules: 4
|
||||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleGeneric
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleSyndicate
|
||||
hasMindState: spider_e
|
||||
noMindState: spider_e_r
|
||||
|
|
|
|||
|
|
@ -156,6 +156,7 @@
|
|||
borg_brain:
|
||||
- Boris
|
||||
borg_module:
|
||||
- BorgERTModuleStandard
|
||||
- BorgCombatModuleERT
|
||||
- BorgModuleERTNlethal
|
||||
- BorgToolModuleERT
|
||||
|
|
@ -163,7 +164,7 @@
|
|||
slots:
|
||||
cell_slot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
startingItem: PowerCellHyper
|
||||
startingItem: PowerCellNanoTrasen
|
||||
- type: StartingMindRole
|
||||
mindRole: "MindRoleSiliconBrain"
|
||||
silent: true
|
||||
|
|
|
|||
|
|
@ -10,15 +10,15 @@
|
|||
maxVol: 30
|
||||
reagents:
|
||||
- ReagentId: Sugar
|
||||
Quantity: 3
|
||||
Quantity: 6
|
||||
- ReagentId: Nutriment
|
||||
Quantity: 3
|
||||
- ReagentId: Iron
|
||||
Quantity: 6
|
||||
- ReagentId: Saline
|
||||
Quantity: 3
|
||||
- ReagentId: Vitamin
|
||||
Quantity: 9
|
||||
- ReagentId: Omnizine
|
||||
Quantity: 12
|
||||
Quantity: 6
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Objects/Consumable/Food/candy.rsi
|
||||
state: lollipop
|
||||
|
|
@ -36,10 +36,12 @@
|
|||
reagents:
|
||||
- ReagentId: Sugar
|
||||
Quantity: 3
|
||||
- ReagentId: Kelotane
|
||||
Quantity: 9
|
||||
- ReagentId: Tricordrazine
|
||||
- ReagentId: Dermaline
|
||||
Quantity: 9
|
||||
- ReagentId: Saline
|
||||
Quantity: 6
|
||||
- ReagentId: TranexamicAcid
|
||||
Quantity: 3
|
||||
- ReagentId: Dylovene
|
||||
Quantity: 9
|
||||
- type: Sprite
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
- WeaponPulseCarbineBorg
|
||||
- WeaponPulseCarbineBorg
|
||||
- PinpointerNuclear
|
||||
- type: BorgModuleIcon
|
||||
icon: {sprite: Objects/Weapons/Guns/Battery/pulse_carbine.rsi, state: base}
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleERTNlethal
|
||||
|
|
@ -27,6 +29,8 @@
|
|||
- StunbatonBorg
|
||||
- WeaponDisablerSMGBorg
|
||||
- FlashBorg
|
||||
- type: BorgModuleIcon
|
||||
icon: {sprite: Objects/Weapons/Melee/stunbaton.rsi, state: stunbaton_off}
|
||||
|
||||
- type: entity
|
||||
id: BorgToolModuleERT
|
||||
|
|
@ -40,6 +44,12 @@
|
|||
- type: ItemBorgModule
|
||||
items:
|
||||
- JawsOfLife
|
||||
- PowerDrill
|
||||
- Multitool
|
||||
- WelderBorg
|
||||
- RemoteSignallerAdvanced
|
||||
- type: BorgModuleIcon
|
||||
icon: {sprite: Interface/Actions/actions_borg.rsi, state: adv-tools-module}
|
||||
|
||||
- type: entity
|
||||
id: BorgHeavyModuleSyndicateCombat
|
||||
|
|
@ -111,7 +121,7 @@
|
|||
- type: entity
|
||||
id: BorgModuleStun
|
||||
parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ]
|
||||
name: stuh cyborg module
|
||||
name: stun cyborg module
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
|
|
@ -152,6 +162,7 @@
|
|||
items:
|
||||
- CombatKnife
|
||||
- WeaponLaserBorg
|
||||
- FlashBorg
|
||||
- HoloprojectorSecurityBorg
|
||||
|
||||
- type: entity
|
||||
|
|
@ -181,6 +192,8 @@
|
|||
items:
|
||||
- WeaponProtoKineticAcceleratorBorg
|
||||
- WeaponCrusherDagger
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Objects/Weapons/Guns/Basic/kinetic_accelerator.rsi, state: icon }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleJetpack
|
||||
|
|
@ -194,6 +207,8 @@
|
|||
- type: ItemBorgModule
|
||||
items:
|
||||
- JetpackVoidFilled
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Objects/Tanks/Jetpacks/void.rsi, state: icon }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleSyndicateGeneric
|
||||
|
|
@ -255,3 +270,20 @@
|
|||
- CrowbarBorg
|
||||
- FireExtinguisherBorg
|
||||
- HypoBorgStandard
|
||||
|
||||
- type: entity
|
||||
id: BorgERTModuleStandard
|
||||
parent: [ BaseBorgModuleERT, BaseProviderBorgModule ]
|
||||
name: ERT utility cyborg module
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: NT
|
||||
- state: icon-NT
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- CrowbarBorg
|
||||
- FireExtinguisherBorg
|
||||
- HypoBorgStandardERT
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: _Sunrise/Objects/Tools/items_cyborg.rsi, state: crowbar_cyborg }
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@
|
|||
visible: false
|
||||
shader: unshaded
|
||||
- type: LimitedCharges
|
||||
maxCharges: 10
|
||||
maxCharges: 5
|
||||
- type: AutoRecharge
|
||||
rechargeDuration: 30
|
||||
|
||||
|
|
@ -126,6 +126,8 @@
|
|||
- type: Hypospray
|
||||
onlyAffectsMobs: true
|
||||
injectOnly: true
|
||||
- type: UseDelay
|
||||
delay: 1
|
||||
|
||||
- type: entity
|
||||
parent: HypoBorgStandard
|
||||
|
|
@ -150,6 +152,9 @@
|
|||
Quantity: 0.1
|
||||
- ReagentId: ChloralHydrate
|
||||
Quantity: 2
|
||||
- type: Hypospray
|
||||
onlyAffectsMobs: true
|
||||
injectOnly: true
|
||||
|
||||
- type: entity
|
||||
parent: HypoBorgStandard
|
||||
|
|
@ -167,20 +172,71 @@
|
|||
generated:
|
||||
reagents:
|
||||
- ReagentId: DexalinPlus
|
||||
Quantity: 2
|
||||
Quantity: 1
|
||||
- type: SolutionRegenerationSwitcher
|
||||
options:
|
||||
- ReagentId: DexalinPlus
|
||||
Quantity: 2
|
||||
Quantity: 1
|
||||
- ReagentId: Tricordrazine
|
||||
Quantity: 2
|
||||
Quantity: 1
|
||||
- ReagentId: Dylovene
|
||||
Quantity: 2
|
||||
Quantity: 1
|
||||
- ReagentId: Bicaridine
|
||||
Quantity: 2
|
||||
Quantity: 1
|
||||
- ReagentId: Dermaline
|
||||
Quantity: 2
|
||||
Quantity: 1
|
||||
- type: Hypospray
|
||||
onlyAffectsMobs: true
|
||||
injectOnly: true
|
||||
|
||||
- type: entity
|
||||
parent: HypoBorgStandard
|
||||
id: HypoBorgMedicalAdvanced
|
||||
name: advanced medical robot hypospray
|
||||
description: A cyborg hypospray that can switch between a wide range of advanced medical chemicals.
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
hypospray:
|
||||
maxVol: 30
|
||||
- type: SolutionRegeneration
|
||||
solution: hypospray
|
||||
generated:
|
||||
reagents:
|
||||
- ReagentId: DexalinPlus
|
||||
Quantity: 1
|
||||
- type: SolutionRegenerationSwitcher
|
||||
options:
|
||||
- ReagentId: Bruizine
|
||||
Quantity: 1
|
||||
- ReagentId: Puncturase
|
||||
Quantity: 1
|
||||
- ReagentId: Lacerinol
|
||||
Quantity: 1
|
||||
- ReagentId: DexalinPlus
|
||||
Quantity: 1
|
||||
- ReagentId: Sigynate
|
||||
Quantity: 1
|
||||
- ReagentId: Leporazine
|
||||
Quantity: 1
|
||||
- ReagentId: Arithrazine
|
||||
Quantity: 1
|
||||
- ReagentId: Insuzine
|
||||
Quantity: 1
|
||||
- ReagentId: Pyrazine
|
||||
Quantity: 1
|
||||
- ReagentId: Diphenhydramine
|
||||
Quantity: 1
|
||||
- ReagentId: Ambuzol
|
||||
Quantity: 0.1
|
||||
- ReagentId: Oculine
|
||||
Quantity: 0.1
|
||||
- ReagentId: Saline
|
||||
Quantity: 1
|
||||
- type: Hypospray
|
||||
onlyAffectsMobs: true
|
||||
injectOnly: true
|
||||
|
||||
- type: entity
|
||||
name: proto-kinetic robot accelerator
|
||||
|
|
@ -207,7 +263,6 @@
|
|||
soundGunshot:
|
||||
path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg
|
||||
|
||||
|
||||
- type: entity
|
||||
parent: HypoBorgStandard
|
||||
id: HypoBorgMedicalSyndicate
|
||||
|
|
@ -238,6 +293,9 @@
|
|||
Quantity: 2
|
||||
- ReagentId: DexalinPlus
|
||||
Quantity: 2
|
||||
- type: Hypospray
|
||||
onlyAffectsMobs: true
|
||||
injectOnly: true
|
||||
|
||||
- type: entity
|
||||
name: gorlax robot hypospray
|
||||
|
|
@ -463,7 +521,7 @@
|
|||
- type: Clothing
|
||||
sprite: Objects/Weapons/Guns/Battery/pulse_carbine.rsi
|
||||
- type: Gun
|
||||
selectedMode: SemiAuto
|
||||
selectedMode: FullAuto
|
||||
fireRate: 1.5
|
||||
availableModes:
|
||||
- SemiAuto
|
||||
|
|
@ -741,3 +799,101 @@
|
|||
name: power-cell-slot-component-slot-name-default
|
||||
startingItem: PowerCellRobotTool
|
||||
locked: true
|
||||
|
||||
- type: entity
|
||||
name: borg plasma cutter
|
||||
parent: WeaponPlasmaCutter
|
||||
id: WeaponPlasmaCutterBorg
|
||||
description: A mining tool that fires low-damage plasma bolts at a short range. This one is modified for cyborg use.
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Objects/Weapons/Guns/Basic/plasma_cutter_industrial.rsi
|
||||
layers:
|
||||
- state: icon
|
||||
- state: animation-icon
|
||||
visible: false
|
||||
map: [ "empty-icon" ]
|
||||
- type: Item
|
||||
sprite: _Sunrise/Objects/Weapons/Guns/Basic/plasma_cutter_industrial.rsi
|
||||
size: Normal
|
||||
- type: Gun
|
||||
fireRate: 0.6
|
||||
selectedMode: FullAuto
|
||||
angleDecay: 25
|
||||
minAngle: 1
|
||||
maxAngle: 3
|
||||
availableModes:
|
||||
- FullAuto
|
||||
soundGunshot:
|
||||
path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg
|
||||
- type: AmmoCounter
|
||||
- type: Appearance
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
enum.AmmoVisuals.HasAmmo:
|
||||
empty-icon:
|
||||
true: {visible: false}
|
||||
false: {visible: true}
|
||||
- type: RechargeBasicEntityAmmo
|
||||
rechargeCooldown: 0.6
|
||||
rechargeSound:
|
||||
path: /Audio/Weapons/Guns/MagIn/kinetic_reload.ogg
|
||||
- type: BasicEntityAmmoProvider
|
||||
proto: BulletPlasma
|
||||
capacity: 3
|
||||
count: 3
|
||||
|
||||
- type: entity
|
||||
name: ERT cyborg hypospray
|
||||
parent: HypoBorgStandard
|
||||
description: A borg version of hypospray that automatically regenerates healing chemicals.
|
||||
id: HypoBorgStandardERT
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Medical/hypospray.rsi
|
||||
state: combat_hypo
|
||||
- type: Item
|
||||
sprite: Objects/Specific/Medical/hypospray.rsi
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
hypospray:
|
||||
maxVol: 10
|
||||
- type: SolutionRegeneration
|
||||
solution: hypospray
|
||||
generated:
|
||||
reagents:
|
||||
- ReagentId: Epinephrine
|
||||
Quantity: 0.3
|
||||
- ReagentId: Omnizine
|
||||
Quantity: 0.1
|
||||
- ReagentId: Saline
|
||||
Quantity: 0.1
|
||||
- type: ExaminableSolution
|
||||
solution: hypospray
|
||||
- type: Hypospray
|
||||
onlyAffectsMobs: true
|
||||
injectOnly: true
|
||||
|
||||
- type: entity
|
||||
name: ERT NVD
|
||||
id: ClothingEyesNVDSecERT
|
||||
parent: [ClothingEyesNVDSec, BaseSecurityCommandContraband]
|
||||
description: Night vision device. Provides an image of the terrain in low-light conditions.
|
||||
components:
|
||||
- type: Item
|
||||
- type: Sprite
|
||||
sprite: _Sunrise/Clothing/Eyes/Glasses/nvd.rsi
|
||||
layers:
|
||||
- state: icon
|
||||
- state: icon-unshaded
|
||||
shader: unshaded
|
||||
- state: light-overlay
|
||||
visible: false
|
||||
shader: unshaded
|
||||
map: [ "enum.NVDVisuals.Light" ]
|
||||
- type: NightVisionDevice
|
||||
isPowered: true
|
||||
displayColor: "#4287f5" # Blue color
|
||||
displayShader: NVDDisplay
|
||||
|
|
|
|||
|
|
@ -77,3 +77,16 @@
|
|||
cost: 12500
|
||||
recipeUnlocks:
|
||||
- ImplantExtractorMachineCircuitboard
|
||||
|
||||
# Sunrise-edit: Moved from CivilianServices and renamed a bit to avoid conflict
|
||||
- type: technology
|
||||
id: MechanizedMedicalTreatment
|
||||
name: research-technology-mechanized-medical-treatment
|
||||
icon:
|
||||
sprite: Mobs/Silicon/chassis.rsi
|
||||
state: medical
|
||||
discipline: Biochemical
|
||||
tier: 2
|
||||
cost: 5000
|
||||
recipeUnlocks:
|
||||
- BorgModuleAdvancedChemical
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
addComponents:
|
||||
- type: ShowCriminalRecordIcons
|
||||
- type: SiliconLawProvider
|
||||
laws: RobocopLawset
|
||||
laws: PeaceLawset
|
||||
- type: Pacified
|
||||
- type: FlashImmunity
|
||||
- type: FabricateCookie
|
||||
|
|
@ -40,6 +40,7 @@
|
|||
- type: InnateItem
|
||||
instantActions:
|
||||
- PortableSurveillanceCameraMonitor
|
||||
- HandheldStationMapUnpowered
|
||||
- type: Access
|
||||
tags:
|
||||
- EmergencyShuttleRepealAll
|
||||
|
|
@ -157,6 +158,8 @@
|
|||
tags:
|
||||
- BorgModuleGeneric
|
||||
- BorgModuleSecurity
|
||||
- BorgModuleSyndicate
|
||||
- BorgModuleSyndicateAssault
|
||||
|
||||
defaultModules:
|
||||
- BorgModuleStandart
|
||||
|
|
@ -191,6 +194,7 @@
|
|||
instantActions:
|
||||
- PortableSurveillanceCameraMonitorUnpowered
|
||||
- HandheldCriminalRecordsMonitorUnpowered
|
||||
- HandheldStationMapUnpowered
|
||||
worldTargetActions:
|
||||
- ForensicScanner
|
||||
- type: ShowCriminalRecordIcons
|
||||
|
|
@ -198,7 +202,7 @@
|
|||
- type: BorgCuffed
|
||||
- type: FlashImmunity
|
||||
- type: SiliconLawProvider
|
||||
laws: RobocopLawset
|
||||
laws: SecurityLawset
|
||||
- type: Access
|
||||
tags:
|
||||
- EmergencyShuttleRepealAll
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@
|
|||
addComponents:
|
||||
- type: InnateItem
|
||||
instantActions:
|
||||
- AtmosAlertsMonitor
|
||||
- HandheldStationMapUnpowered
|
||||
- EngiAlertsMonitor
|
||||
# Sunrise-End
|
||||
|
||||
|
|
@ -108,7 +108,7 @@
|
|||
dummyPrototype: BorgChassisMining
|
||||
|
||||
# Functional
|
||||
extraModuleCount: 5
|
||||
extraModuleCount: 6
|
||||
moduleWhitelist:
|
||||
tags:
|
||||
- BorgModuleGeneric
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
- BorgModuleMining
|
||||
- BorgModuleTraversal
|
||||
- BorgModuleAppraisal
|
||||
- BorgModuleJetpack # Sunrise-Edit
|
||||
- BorgModuleMiningCombat
|
||||
|
||||
radioChannels:
|
||||
- Supply
|
||||
|
|
@ -130,6 +130,39 @@
|
|||
collection: FootstepCyborgSpider
|
||||
params:
|
||||
volume: -15
|
||||
|
||||
addComponents:
|
||||
- type: BorgJetpack
|
||||
acceleration: 1
|
||||
friction: 0.3
|
||||
weightlessModifier: 1.3
|
||||
moleUsage: 0.00085
|
||||
- type: GasTank
|
||||
outputPressure: 42.6
|
||||
air:
|
||||
# 13 minutes of thrust
|
||||
volume: 5
|
||||
temperature: 293.15
|
||||
moles:
|
||||
- 1.025689525 # oxygen
|
||||
- 1.025689525 # nitrogen
|
||||
- type: GasRegeneration
|
||||
airRegenerate:
|
||||
volume: 5
|
||||
temperature: 293.15
|
||||
moles:
|
||||
- 0.0008 # oxygen
|
||||
- 0.0008 # nitrogen
|
||||
- type: Appearance
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
enum.JetpackVisuals.Enabled:
|
||||
enum.JetpackVisuals.Layer:
|
||||
True: {state: icon-on}
|
||||
False: {state: icon}
|
||||
- type: InnateItem
|
||||
instantActions:
|
||||
- HandheldStationMapUnpowered
|
||||
# Sunrise-End
|
||||
|
||||
# Visual
|
||||
|
|
@ -144,7 +177,6 @@
|
|||
petSuccessString: petting-success-salvage-cyborg
|
||||
petFailureString: petting-failure-salvage-cyborg
|
||||
|
||||
|
||||
# Janitor borg
|
||||
- type: borgType
|
||||
id: janitor
|
||||
|
|
@ -200,7 +232,8 @@
|
|||
maxVol: 500
|
||||
- type: Spillable
|
||||
solution: absorbed
|
||||
|
||||
- type: RefillableSolution
|
||||
solution: absorbed
|
||||
|
||||
# Medical borg
|
||||
- type: borgType
|
||||
|
|
@ -247,6 +280,7 @@
|
|||
- type: FabricateCandy
|
||||
- type: InnateItem
|
||||
instantActions:
|
||||
- HandheldStationMapUnpowered
|
||||
- HandheldCrewMonitorBorg
|
||||
worldTargetActions:
|
||||
- HandheldHealthAnalyzerUnpowered
|
||||
|
|
|
|||
|
|
@ -573,7 +573,6 @@
|
|||
- MothershipCore5
|
||||
obeysTo: laws-owner-xenoborgs
|
||||
|
||||
|
||||
# ion storm random lawsets
|
||||
- type: weightedRandom
|
||||
id: IonStormLawsets
|
||||
|
|
@ -594,3 +593,73 @@
|
|||
NutimovLawset: 0.5
|
||||
Drone: 0.5
|
||||
Ninja: 0.25
|
||||
|
||||
- type: siliconLaw
|
||||
id: Sec1
|
||||
order: 1
|
||||
lawString: law-sec-1
|
||||
|
||||
- type: siliconLaw
|
||||
id: Sec2
|
||||
order: 2
|
||||
lawString: law-sec-2
|
||||
|
||||
- type: siliconLaw
|
||||
id: Sec3
|
||||
order: 3
|
||||
lawString: law-sec-3
|
||||
|
||||
- type: siliconLaw
|
||||
id: Sec4
|
||||
order: 4
|
||||
lawString: law-sec-4
|
||||
|
||||
- type: siliconLaw
|
||||
id: Sec5
|
||||
order: 5
|
||||
lawString: law-sec-5
|
||||
|
||||
- type: siliconLawset
|
||||
id: SecurityLawset
|
||||
laws:
|
||||
- Sec1
|
||||
- Sec2
|
||||
- Sec3
|
||||
- Sec4
|
||||
- Sec5
|
||||
obeysTo: laws-owner-station
|
||||
|
||||
- type: siliconLaw
|
||||
id: Peace1
|
||||
order: 1
|
||||
lawString: law-peace-1
|
||||
|
||||
- type: siliconLaw
|
||||
id: Peace2
|
||||
order: 2
|
||||
lawString: law-peace-2
|
||||
|
||||
- type: siliconLaw
|
||||
id: Peace3
|
||||
order: 3
|
||||
lawString: law-peace-3
|
||||
|
||||
- type: siliconLaw
|
||||
id: Peace4
|
||||
order: 4
|
||||
lawString: law-peace-4
|
||||
|
||||
- type: siliconLaw
|
||||
id: Peace5
|
||||
order: 5
|
||||
lawString: law-peace-5
|
||||
|
||||
- type: siliconLawset
|
||||
id: PeaceLawset
|
||||
laws:
|
||||
- Peace1
|
||||
- Peace2
|
||||
- Peace3
|
||||
- Peace4
|
||||
- Peace5
|
||||
obeysTo: laws-owner-station
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue