Remove drones, fix InnateToolSystem (#25372)
* Fix drones * They dont need a full bloodstream * Incorrect indentation * Nuke drones * Fix ClothingHeadHatCatEars * Remove last mention of drones * Implement requested changes
This commit is contained in:
@@ -1,8 +0,0 @@
|
|||||||
namespace Content.Server.Drone.Components
|
|
||||||
{
|
|
||||||
[RegisterComponent]
|
|
||||||
public sealed partial class DroneComponent : Component
|
|
||||||
{
|
|
||||||
public float InteractionBlockRange = 2.15f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,146 +0,0 @@
|
|||||||
using Content.Server.Body.Systems;
|
|
||||||
using Content.Server.Drone.Components;
|
|
||||||
using Content.Server.Ghost.Roles.Components;
|
|
||||||
using Content.Server.Popups;
|
|
||||||
using Content.Server.Tools.Innate;
|
|
||||||
using Content.Shared.UserInterface;
|
|
||||||
using Content.Shared.Body.Components;
|
|
||||||
using Content.Shared.Drone;
|
|
||||||
using Content.Shared.Emoting;
|
|
||||||
using Content.Shared.Examine;
|
|
||||||
using Content.Shared.Ghost;
|
|
||||||
using Content.Shared.IdentityManagement;
|
|
||||||
using Content.Shared.Interaction.Components;
|
|
||||||
using Content.Shared.Interaction.Events;
|
|
||||||
using Content.Shared.Item;
|
|
||||||
using Content.Shared.Mind.Components;
|
|
||||||
using Content.Shared.Mobs;
|
|
||||||
using Content.Shared.Mobs.Components;
|
|
||||||
using Content.Shared.Mobs.Systems;
|
|
||||||
using Content.Shared.Popups;
|
|
||||||
using Content.Shared.Tag;
|
|
||||||
using Content.Shared.Throwing;
|
|
||||||
using Robust.Shared.Timing;
|
|
||||||
|
|
||||||
namespace Content.Server.Drone
|
|
||||||
{
|
|
||||||
public sealed class DroneSystem : SharedDroneSystem
|
|
||||||
{
|
|
||||||
[Dependency] private readonly BodySystem _bodySystem = default!;
|
|
||||||
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
|
||||||
[Dependency] private readonly TagSystem _tagSystem = default!;
|
|
||||||
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
|
||||||
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
|
||||||
[Dependency] private readonly InnateToolSystem _innateToolSystem = default!;
|
|
||||||
[Dependency] private readonly MobStateSystem _mobStateSystem = default!;
|
|
||||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
|
||||||
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
base.Initialize();
|
|
||||||
SubscribeLocalEvent<DroneComponent, InteractionAttemptEvent>(OnInteractionAttempt);
|
|
||||||
SubscribeLocalEvent<DroneComponent, UserOpenActivatableUIAttemptEvent>(OnActivateUIAttempt);
|
|
||||||
SubscribeLocalEvent<DroneComponent, MobStateChangedEvent>(OnMobStateChanged);
|
|
||||||
SubscribeLocalEvent<DroneComponent, ExaminedEvent>(OnExamined);
|
|
||||||
SubscribeLocalEvent<DroneComponent, MindAddedMessage>(OnMindAdded);
|
|
||||||
SubscribeLocalEvent<DroneComponent, MindRemovedMessage>(OnMindRemoved);
|
|
||||||
SubscribeLocalEvent<DroneComponent, EmoteAttemptEvent>(OnEmoteAttempt);
|
|
||||||
SubscribeLocalEvent<DroneComponent, ThrowAttemptEvent>(OnThrowAttempt);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnInteractionAttempt(EntityUid uid, DroneComponent component, InteractionAttemptEvent args)
|
|
||||||
{
|
|
||||||
if (args.Target != null && !HasComp<UnremoveableComponent>(args.Target) && NonDronesInRange(uid, component))
|
|
||||||
args.Cancel();
|
|
||||||
|
|
||||||
if (HasComp<ItemComponent>(args.Target) && !HasComp<UnremoveableComponent>(args.Target))
|
|
||||||
{
|
|
||||||
if (!_tagSystem.HasAnyTag(args.Target.Value, "DroneUsable", "Trash"))
|
|
||||||
args.Cancel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnActivateUIAttempt(EntityUid uid, DroneComponent component, UserOpenActivatableUIAttemptEvent args)
|
|
||||||
{
|
|
||||||
if (!_tagSystem.HasTag(args.Target, "DroneUsable"))
|
|
||||||
{
|
|
||||||
args.Cancel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnExamined(EntityUid uid, DroneComponent component, ExaminedEvent args)
|
|
||||||
{
|
|
||||||
if (TryComp<MindContainerComponent>(uid, out var mind) && mind.HasMind)
|
|
||||||
{
|
|
||||||
args.PushMarkup(Loc.GetString("drone-active"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
args.PushMarkup(Loc.GetString("drone-dormant"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnMobStateChanged(EntityUid uid, DroneComponent drone, MobStateChangedEvent args)
|
|
||||||
{
|
|
||||||
if (args.NewMobState == MobState.Dead)
|
|
||||||
{
|
|
||||||
if (TryComp<InnateToolComponent>(uid, out var innate))
|
|
||||||
_innateToolSystem.Cleanup(uid, innate);
|
|
||||||
|
|
||||||
if (TryComp<BodyComponent>(uid, out var body))
|
|
||||||
_bodySystem.GibBody(uid, body: body);
|
|
||||||
QueueDel(uid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnMindAdded(EntityUid uid, DroneComponent drone, MindAddedMessage args)
|
|
||||||
{
|
|
||||||
UpdateDroneAppearance(uid, DroneStatus.On);
|
|
||||||
_popupSystem.PopupEntity(Loc.GetString("drone-activated"), uid, PopupType.Large);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnMindRemoved(EntityUid uid, DroneComponent drone, MindRemovedMessage args)
|
|
||||||
{
|
|
||||||
UpdateDroneAppearance(uid, DroneStatus.Off);
|
|
||||||
EnsureComp<GhostTakeoverAvailableComponent>(uid);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnEmoteAttempt(EntityUid uid, DroneComponent component, EmoteAttemptEvent args)
|
|
||||||
{
|
|
||||||
// No.
|
|
||||||
args.Cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnThrowAttempt(EntityUid uid, DroneComponent drone, ThrowAttemptEvent args)
|
|
||||||
{
|
|
||||||
args.Cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateDroneAppearance(EntityUid uid, DroneStatus status)
|
|
||||||
{
|
|
||||||
if (TryComp<AppearanceComponent>(uid, out var appearance))
|
|
||||||
{
|
|
||||||
_appearance.SetData(uid, DroneVisuals.Status, status, appearance);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool NonDronesInRange(EntityUid uid, DroneComponent component)
|
|
||||||
{
|
|
||||||
var xform = Comp<TransformComponent>(uid);
|
|
||||||
foreach (var entity in _lookup.GetEntitiesInRange(xform.MapPosition, component.InteractionBlockRange))
|
|
||||||
{
|
|
||||||
// Return true if the entity is/was controlled by a player and is not a drone or ghost.
|
|
||||||
if (HasComp<MindContainerComponent>(entity) && !HasComp<DroneComponent>(entity) && !HasComp<GhostComponent>(entity))
|
|
||||||
{
|
|
||||||
// Filter out dead ghost roles. Dead normal players are intended to block.
|
|
||||||
if ((TryComp<MobStateComponent>(entity, out var entityMobState) && HasComp<GhostTakeoverAvailableComponent>(entity) && _mobStateSystem.IsDead(entity, entityMobState)))
|
|
||||||
continue;
|
|
||||||
if (_gameTiming.IsFirstTimePredicted)
|
|
||||||
_popupSystem.PopupEntity(Loc.GetString("drone-too-close", ("being", Identity.Entity(entity, EntityManager))), uid, uid);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,5 +7,6 @@ namespace Content.Server.Tools.Innate
|
|||||||
{
|
{
|
||||||
[DataField("tools")] public List<EntitySpawnEntry> Tools = new();
|
[DataField("tools")] public List<EntitySpawnEntry> Tools = new();
|
||||||
public List<EntityUid> ToolUids = new();
|
public List<EntityUid> ToolUids = new();
|
||||||
|
public List<string> ToSpawn = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using Content.Shared.Body.Part;
|
||||||
using Content.Shared.Destructible;
|
using Content.Shared.Destructible;
|
||||||
|
using Content.Shared.Hands;
|
||||||
using Content.Shared.Hands.Components;
|
using Content.Shared.Hands.Components;
|
||||||
using Content.Shared.Hands.EntitySystems;
|
using Content.Shared.Hands.EntitySystems;
|
||||||
using Content.Shared.Interaction.Components;
|
using Content.Shared.Interaction.Components;
|
||||||
using Content.Shared.Storage;
|
using Content.Shared.Storage;
|
||||||
using Content.Shared.Tag;
|
using Content.Shared.Tag;
|
||||||
|
using Robust.Shared.Network;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
|
|
||||||
namespace Content.Server.Tools.Innate
|
namespace Content.Server.Tools.Innate;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Spawns a list unremovable tools in hands if possible. Used for drones,
|
/// Spawns a list unremovable tools in hands if possible. Used for drones,
|
||||||
/// borgs, or maybe even stuff like changeling armblades!
|
/// borgs, or maybe even stuff like changeling armblades!
|
||||||
@@ -17,37 +21,43 @@ namespace Content.Server.Tools.Innate
|
|||||||
[Dependency] private readonly IRobustRandom _robustRandom = default!;
|
[Dependency] private readonly IRobustRandom _robustRandom = default!;
|
||||||
[Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!;
|
[Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!;
|
||||||
[Dependency] private readonly TagSystem _tagSystem = default!;
|
[Dependency] private readonly TagSystem _tagSystem = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
SubscribeLocalEvent<InnateToolComponent, ComponentStartup>(OnStartup);
|
SubscribeLocalEvent<InnateToolComponent, MapInitEvent>(OnMapInit);
|
||||||
|
SubscribeLocalEvent<InnateToolComponent, HandCountChangedEvent>(OnHandCountChanged);
|
||||||
SubscribeLocalEvent<InnateToolComponent, ComponentShutdown>(OnShutdown);
|
SubscribeLocalEvent<InnateToolComponent, ComponentShutdown>(OnShutdown);
|
||||||
SubscribeLocalEvent<InnateToolComponent, DestructionEventArgs>(OnDestroyed);
|
SubscribeLocalEvent<InnateToolComponent, DestructionEventArgs>(OnDestroyed);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnStartup(EntityUid uid, InnateToolComponent component, ComponentStartup args)
|
private void OnMapInit(EntityUid uid, InnateToolComponent component, MapInitEvent args)
|
||||||
{
|
{
|
||||||
if (component.Tools.Count == 0)
|
if (component.Tools.Count == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
component.ToSpawn = EntitySpawnCollection.GetSpawns(component.Tools, _robustRandom);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnHandCountChanged(EntityUid uid, InnateToolComponent component, HandCountChangedEvent args)
|
||||||
|
{
|
||||||
|
if (component.ToSpawn.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
var spawnCoord = Transform(uid).Coordinates;
|
var spawnCoord = Transform(uid).Coordinates;
|
||||||
|
|
||||||
if (TryComp<HandsComponent>(uid, out var hands) && hands.Count >= component.Tools.Count)
|
var toSpawn = component.ToSpawn.First();
|
||||||
{
|
|
||||||
var items = EntitySpawnCollection.GetSpawns(component.Tools, _robustRandom);
|
var item = Spawn(toSpawn, spawnCoord);
|
||||||
foreach (var entry in items)
|
|
||||||
{
|
|
||||||
var item = Spawn(entry, spawnCoord);
|
|
||||||
AddComp<UnremoveableComponent>(item);
|
AddComp<UnremoveableComponent>(item);
|
||||||
if (!_sharedHandsSystem.TryPickupAnyHand(uid, item, checkActionBlocker: false))
|
if (!_sharedHandsSystem.TryPickupAnyHand(uid, item, checkActionBlocker: false))
|
||||||
{
|
{
|
||||||
QueueDel(item);
|
QueueDel(item);
|
||||||
continue;
|
component.ToSpawn.Clear();
|
||||||
}
|
}
|
||||||
|
component.ToSpawn.Remove(toSpawn);
|
||||||
component.ToolUids.Add(item);
|
component.ToolUids.Add(item);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnShutdown(EntityUid uid, InnateToolComponent component, ComponentShutdown args)
|
private void OnShutdown(EntityUid uid, InnateToolComponent component, ComponentShutdown args)
|
||||||
{
|
{
|
||||||
@@ -87,4 +97,3 @@ namespace Content.Server.Tools.Innate
|
|||||||
component.ToolUids.Clear();
|
component.ToolUids.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ using Content.Server.Body.Systems;
|
|||||||
using Content.Server.Chat;
|
using Content.Server.Chat;
|
||||||
using Content.Server.Chat.Systems;
|
using Content.Server.Chat.Systems;
|
||||||
using Content.Server.Cloning;
|
using Content.Server.Cloning;
|
||||||
using Content.Server.Drone.Components;
|
|
||||||
using Content.Server.Emoting.Systems;
|
using Content.Server.Emoting.Systems;
|
||||||
using Content.Server.Inventory;
|
using Content.Server.Inventory;
|
||||||
using Content.Server.Speech.EntitySystems;
|
using Content.Server.Speech.EntitySystems;
|
||||||
@@ -214,7 +213,7 @@ namespace Content.Server.Zombies
|
|||||||
if (args.User == entity)
|
if (args.User == entity)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!TryComp<MobStateComponent>(entity, out var mobState) || HasComp<DroneComponent>(entity))
|
if (!TryComp<MobStateComponent>(entity, out var mobState))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (HasComp<ZombieComponent>(entity))
|
if (HasComp<ZombieComponent>(entity))
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
using Robust.Shared.Serialization;
|
|
||||||
|
|
||||||
namespace Content.Shared.Drone
|
|
||||||
{
|
|
||||||
public abstract class SharedDroneSystem : EntitySystem
|
|
||||||
{
|
|
||||||
[Serializable, NetSerializable]
|
|
||||||
public enum DroneVisuals : byte
|
|
||||||
{
|
|
||||||
Status
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable, NetSerializable]
|
|
||||||
public enum DroneStatus : byte
|
|
||||||
{
|
|
||||||
Off,
|
|
||||||
On
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
drone-active = A maintenance drone. It seems totally unconcerned with you.
|
|
||||||
drone-dormant = A dormant maintenance drone. Who knows when it will wake up?
|
|
||||||
drone-activated = The drone whirrs to life!
|
|
||||||
drone-too-close = Your laws prevent this action near {THE($being)}.
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
- type: body
|
|
||||||
id: Drone
|
|
||||||
name: "drone"
|
|
||||||
root: hand 1
|
|
||||||
slots:
|
|
||||||
hand 1:
|
|
||||||
part: LeftArmBorg
|
|
||||||
connections:
|
|
||||||
- hand 2
|
|
||||||
hand 2:
|
|
||||||
part: LeftArmBorg
|
|
||||||
connections:
|
|
||||||
- hand 3
|
|
||||||
hand 3:
|
|
||||||
part: LeftArmBorg
|
|
||||||
connections:
|
|
||||||
- hand 4
|
|
||||||
hand 4:
|
|
||||||
part: LeftArmBorg
|
|
||||||
connections:
|
|
||||||
- hand 5
|
|
||||||
hand 5:
|
|
||||||
part: RightArmBorg
|
|
||||||
connections:
|
|
||||||
- hand 6
|
|
||||||
hand 6:
|
|
||||||
part: RightArmBorg
|
|
||||||
@@ -266,15 +266,6 @@
|
|||||||
contents:
|
contents:
|
||||||
- id: BoxSurvival
|
- id: BoxSurvival
|
||||||
|
|
||||||
- type: entity
|
|
||||||
noSpawn: true
|
|
||||||
parent: ClothingBackpackSatchel
|
|
||||||
id: ClothingBackpackSatchelDrone
|
|
||||||
components:
|
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- InnateDontDelete
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
parent: ClothingBackpackSatchelMime
|
parent: ClothingBackpackSatchelMime
|
||||||
|
|||||||
@@ -50,9 +50,6 @@
|
|||||||
whitelist:
|
whitelist:
|
||||||
components:
|
components:
|
||||||
- LightBulb
|
- LightBulb
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: lighttube box
|
name: lighttube box
|
||||||
@@ -74,9 +71,6 @@
|
|||||||
whitelist:
|
whitelist:
|
||||||
components:
|
components:
|
||||||
- LightBulb
|
- LightBulb
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: mixed lights box
|
name: mixed lights box
|
||||||
@@ -100,9 +94,6 @@
|
|||||||
whitelist:
|
whitelist:
|
||||||
components:
|
components:
|
||||||
- LightBulb
|
- LightBulb
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: PDA box
|
name: PDA box
|
||||||
@@ -217,9 +208,6 @@
|
|||||||
layers:
|
layers:
|
||||||
- state: box
|
- state: box
|
||||||
- state: inflatable
|
- state: inflatable
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -271,9 +259,6 @@
|
|||||||
layers:
|
layers:
|
||||||
- state: box
|
- state: box
|
||||||
- state: trashbag
|
- state: trashbag
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: passenger encryption key box
|
name: passenger encryption key box
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- ClothMade
|
- ClothMade
|
||||||
- DroneUsable
|
|
||||||
- WhitelistChameleon
|
- WhitelistChameleon
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -877,7 +877,6 @@
|
|||||||
sprite: Clothing/Head/Hats/party_red.rsi
|
sprite: Clothing/Head/Hats/party_red.rsi
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- WhitelistChameleon
|
- WhitelistChameleon
|
||||||
- HamsterWearable
|
- HamsterWearable
|
||||||
|
|
||||||
|
|||||||
@@ -175,8 +175,7 @@
|
|||||||
suffix: DO NOT MAP
|
suffix: DO NOT MAP
|
||||||
components:
|
components:
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags: # ignore "WhitelistChameleon" tag
|
tags: [] # ignore "WhitelistChameleon" tag
|
||||||
- DroneUsable
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Head/Hats/catears.rsi
|
sprite: Clothing/Head/Hats/catears.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
@@ -191,9 +190,6 @@
|
|||||||
description: Only for good boys.
|
description: Only for good boys.
|
||||||
suffix: DO NOT MAP
|
suffix: DO NOT MAP
|
||||||
components:
|
components:
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Clothing/Head/Hats/dogears.rsi
|
sprite: Clothing/Head/Hats/dogears.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
price: 50
|
price: 50
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- WhitelistChameleon
|
- WhitelistChameleon
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -31,7 +30,6 @@
|
|||||||
sprite: Clothing/Head/Welding/welding.rsi
|
sprite: Clothing/Head/Welding/welding.rsi
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- HamsterWearable
|
- HamsterWearable
|
||||||
- WhitelistChameleon
|
- WhitelistChameleon
|
||||||
|
|
||||||
|
|||||||
@@ -74,20 +74,6 @@
|
|||||||
prototypes:
|
prototypes:
|
||||||
- MobRaccoonMorticia
|
- MobRaccoonMorticia
|
||||||
|
|
||||||
- type: entity
|
|
||||||
name: Drone Spawner
|
|
||||||
id: SpawnMobDrone
|
|
||||||
parent: MarkerBase
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
layers:
|
|
||||||
- state: green
|
|
||||||
- sprite: Mobs/Silicon/drone.rsi
|
|
||||||
state: shell
|
|
||||||
- type: ConditionalSpawner
|
|
||||||
prototypes:
|
|
||||||
- Drone
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: Fox Renault Spawner
|
name: Fox Renault Spawner
|
||||||
id: SpawnMobFoxRenault
|
id: SpawnMobFoxRenault
|
||||||
|
|||||||
@@ -1,245 +1,3 @@
|
|||||||
- type: entity
|
|
||||||
save: false
|
|
||||||
abstract: true
|
|
||||||
id: PlayerSiliconBase #for player controlled silicons
|
|
||||||
components:
|
|
||||||
- type: Reactive
|
|
||||||
groups:
|
|
||||||
Acidic: [Touch]
|
|
||||||
- type: Input
|
|
||||||
context: "human"
|
|
||||||
- type: DamageOnHighSpeedImpact
|
|
||||||
damage:
|
|
||||||
types:
|
|
||||||
Blunt: 5
|
|
||||||
soundHit:
|
|
||||||
collection: MetalThud
|
|
||||||
- type: Clickable
|
|
||||||
- type: Damageable
|
|
||||||
damageContainer: Inorganic
|
|
||||||
- type: Bloodstream
|
|
||||||
bloodReagent: Oil
|
|
||||||
bloodlossDamage:
|
|
||||||
types:
|
|
||||||
Bloodloss:
|
|
||||||
1
|
|
||||||
bloodlossHealDamage:
|
|
||||||
types:
|
|
||||||
Bloodloss:
|
|
||||||
-1
|
|
||||||
- type: InteractionOutline
|
|
||||||
- type: Fixtures
|
|
||||||
fixtures:
|
|
||||||
fix1:
|
|
||||||
shape:
|
|
||||||
# Circles, cuz rotation of rectangles looks very bad
|
|
||||||
!type:PhysShapeCircle
|
|
||||||
radius: 0.35
|
|
||||||
density: 50
|
|
||||||
mask:
|
|
||||||
- MobMask
|
|
||||||
layer:
|
|
||||||
- MobLayer
|
|
||||||
- type: MovementSpeedModifier
|
|
||||||
baseWalkSpeed : 4
|
|
||||||
baseSprintSpeed : 3
|
|
||||||
- type: Sprite
|
|
||||||
noRot: true
|
|
||||||
drawdepth: Mobs
|
|
||||||
- type: Physics
|
|
||||||
bodyType: KinematicController
|
|
||||||
- type: Hands
|
|
||||||
showInHands: false
|
|
||||||
- type: Body
|
|
||||||
prototype: Drone
|
|
||||||
- type: IntrinsicRadioReceiver
|
|
||||||
- type: IntrinsicRadioTransmitter
|
|
||||||
channels:
|
|
||||||
- Binary
|
|
||||||
- type: ActiveRadio
|
|
||||||
channels:
|
|
||||||
- Binary
|
|
||||||
- Common
|
|
||||||
- type: DoAfter
|
|
||||||
- type: Pullable
|
|
||||||
- type: Examiner
|
|
||||||
- type: Puller
|
|
||||||
- type: StandingState
|
|
||||||
- type: Alerts
|
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- ShoesRequiredStepTriggerImmune
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
name: drone
|
|
||||||
id: Drone
|
|
||||||
parent: PlayerSiliconBase
|
|
||||||
components:
|
|
||||||
- type: Drone
|
|
||||||
- type: InnateTool
|
|
||||||
tools:
|
|
||||||
- id: ClothingBackpackSatchelDrone
|
|
||||||
- id: trayScanner
|
|
||||||
- id: Omnitool
|
|
||||||
- id: WelderExperimental
|
|
||||||
- type: NameIdentifier
|
|
||||||
group: Drone
|
|
||||||
- type: Inventory
|
|
||||||
templateId: drone
|
|
||||||
- type: InventorySlots
|
|
||||||
- type: Strippable
|
|
||||||
- type: UserInterface
|
|
||||||
interfaces:
|
|
||||||
- key: enum.StrippingUiKey.Key
|
|
||||||
type: StrippableBoundUserInterface
|
|
||||||
- key: enum.SiliconLawsUiKey.Key
|
|
||||||
type: SiliconLawBoundUserInterface
|
|
||||||
#- type: GhostRole
|
|
||||||
# makeSentient: true
|
|
||||||
# name: Maintenance Drone
|
|
||||||
# description: Maintain the station. Ignore other beings except drones.
|
|
||||||
# rules: |
|
|
||||||
# You are bound by these laws both in-game and out-of-character:
|
|
||||||
# 1. You may not involve yourself in the matters of another being, even if such matters conflict with Law Two or Law Three, unless the other being is another Drone.
|
|
||||||
# 2. You may not harm any being, regardless of intent or circumstance.
|
|
||||||
# 3. Your goals are to build, maintain, repair, improve, and power to the best of your abilities, You must never actively work against these goals.
|
|
||||||
#- type: GhostTakeoverAvailable
|
|
||||||
- type: SiliconLawBound
|
|
||||||
- type: SiliconLawProvider
|
|
||||||
laws: Drone
|
|
||||||
- type: MovementSpeedModifier
|
|
||||||
baseWalkSpeed : 5
|
|
||||||
baseSprintSpeed : 5
|
|
||||||
- type: MobState
|
|
||||||
allowedStates:
|
|
||||||
- Alive
|
|
||||||
- Dead
|
|
||||||
- type: MobThresholds
|
|
||||||
thresholds:
|
|
||||||
0: Alive
|
|
||||||
60: Dead
|
|
||||||
- type: Flashable
|
|
||||||
- type: NoSlip
|
|
||||||
- type: StatusEffects
|
|
||||||
allowed:
|
|
||||||
- Stun
|
|
||||||
- KnockedDown
|
|
||||||
- SlowedDown
|
|
||||||
- type: SlowOnDamage
|
|
||||||
speedModifierThresholds:
|
|
||||||
30: 0.7
|
|
||||||
50: 0.5
|
|
||||||
- type: Temperature
|
|
||||||
heatDamageThreshold: 5000
|
|
||||||
currentTemperature: 310.15
|
|
||||||
specificHeat: 42
|
|
||||||
heatDamage:
|
|
||||||
types:
|
|
||||||
Heat : 1 #per second, scales with temperature & other constants
|
|
||||||
- type: Sprite
|
|
||||||
drawdepth: SmallMobs
|
|
||||||
layers:
|
|
||||||
- state: shell
|
|
||||||
sprite: Mobs/Silicon/drone.rsi
|
|
||||||
map: ["base"]
|
|
||||||
- type: MovementIgnoreGravity
|
|
||||||
- type: Fixtures
|
|
||||||
fixtures:
|
|
||||||
fix1:
|
|
||||||
shape:
|
|
||||||
!type:PhysShapeCircle
|
|
||||||
radius: 0.35
|
|
||||||
density: 50
|
|
||||||
mask:
|
|
||||||
- SmallMobMask
|
|
||||||
layer:
|
|
||||||
- SmallMobLayer
|
|
||||||
- type: Appearance
|
|
||||||
- type: GenericVisualizer
|
|
||||||
visuals:
|
|
||||||
enum.DroneVisuals.Status:
|
|
||||||
base:
|
|
||||||
Off: { state: shell }
|
|
||||||
On: { state: drone }
|
|
||||||
- type: ReplacementAccent
|
|
||||||
accent: silicon
|
|
||||||
- type: Repairable
|
|
||||||
fuelcost: 15
|
|
||||||
doAfterDelay: 8
|
|
||||||
- type: Actions
|
|
||||||
- type: UnpoweredFlashlight
|
|
||||||
- type: PointLight
|
|
||||||
enabled: false
|
|
||||||
radius: 3.5
|
|
||||||
softness: 1
|
|
||||||
mask: /Textures/Effects/LightMasks/cone.png
|
|
||||||
autoRot: true
|
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- ShoesRequiredStepTriggerImmune
|
|
||||||
- CannotSuicide
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
name: onestar mecha
|
|
||||||
id: Onestar
|
|
||||||
parent: PlayerSiliconBase
|
|
||||||
components:
|
|
||||||
- type: InnateTool
|
|
||||||
tools:
|
|
||||||
- id: WeaponMinigun
|
|
||||||
- id: EnergySword
|
|
||||||
- id: WeaponLauncherMultipleRocket
|
|
||||||
- id: WeaponXrayCannon
|
|
||||||
- type: UserInterface
|
|
||||||
interfaces:
|
|
||||||
- key: enum.StrippingUiKey.Key
|
|
||||||
type: StrippableBoundUserInterface
|
|
||||||
- type: GhostRole
|
|
||||||
makeSentient: true
|
|
||||||
name: ghost-role-information-onestar-mecha-name
|
|
||||||
description: ghost-role-information-onestar-mecha-description
|
|
||||||
rules: ghost-role-information-onestar-mecha-rules
|
|
||||||
- type: GhostTakeoverAvailable
|
|
||||||
- type: MovementSpeedModifier
|
|
||||||
baseWalkSpeed : 3
|
|
||||||
baseSprintSpeed : 2
|
|
||||||
- type: MobState
|
|
||||||
allowedStates:
|
|
||||||
- Alive
|
|
||||||
- Dead
|
|
||||||
- type: MobThresholds
|
|
||||||
thresholds:
|
|
||||||
0: Alive
|
|
||||||
1000: Dead
|
|
||||||
- type: Sprite
|
|
||||||
drawdepth: Mobs
|
|
||||||
layers:
|
|
||||||
- state: onestar_boss
|
|
||||||
sprite: Mobs/Silicon/onestar.rsi
|
|
||||||
- state: onestar_boss_screen
|
|
||||||
sprite: Mobs/Silicon/onestar.rsi
|
|
||||||
shader: unshaded
|
|
||||||
- type: FootstepModifier
|
|
||||||
footstepSoundCollection:
|
|
||||||
path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
|
|
||||||
- type: MovementIgnoreGravity
|
|
||||||
- type: Fixtures
|
|
||||||
fixtures:
|
|
||||||
fix1:
|
|
||||||
shape:
|
|
||||||
!type:PhysShapeCircle
|
|
||||||
radius: 1
|
|
||||||
density: 160
|
|
||||||
mask:
|
|
||||||
- LargeMobMask
|
|
||||||
layer:
|
|
||||||
- MobLayer
|
|
||||||
- type: Appearance
|
|
||||||
- type: CombatMode
|
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- FootstepSound
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: PlayerBorgGeneric
|
id: PlayerBorgGeneric
|
||||||
parent: BorgChassisGeneric
|
parent: BorgChassisGeneric
|
||||||
|
|||||||
@@ -350,7 +350,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Trash
|
- Trash
|
||||||
- DroneUsable
|
|
||||||
- WhitelistChameleon
|
- WhitelistChameleon
|
||||||
- type: TrashOnSolutionEmpty
|
- type: TrashOnSolutionEmpty
|
||||||
solution: drink
|
solution: drink
|
||||||
|
|||||||
@@ -11,9 +11,6 @@
|
|||||||
state: generic
|
state: generic
|
||||||
- type: Item
|
- type: Item
|
||||||
storedRotation: -90
|
storedRotation: -90
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 100
|
price: 100
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
|
|||||||
@@ -10,9 +10,6 @@
|
|||||||
state: cpuboard
|
state: cpuboard
|
||||||
- type: Item
|
- type: Item
|
||||||
storedRotation: -90
|
storedRotation: -90
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 100
|
price: 100
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
@@ -86,9 +83,6 @@
|
|||||||
prototype: ComputerCargoOrders
|
prototype: ComputerCargoOrders
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 750
|
price: 750
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: CargoBountyComputerCircuitboard
|
id: CargoBountyComputerCircuitboard
|
||||||
@@ -101,9 +95,6 @@
|
|||||||
- type: ComputerBoard
|
- type: ComputerBoard
|
||||||
prototype: ComputerCargoBounty
|
prototype: ComputerCargoBounty
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseComputerCircuitboard
|
parent: BaseComputerCircuitboard
|
||||||
@@ -161,7 +152,6 @@
|
|||||||
prototype: ComputerSurveillanceCameraMonitor
|
prototype: ComputerSurveillanceCameraMonitor
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- SurveillanceCameraMonitorCircuitboard
|
- SurveillanceCameraMonitorCircuitboard
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -183,7 +173,6 @@
|
|||||||
prototype: ComputerTelevision
|
prototype: ComputerTelevision
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- ComputerTelevisionCircuitboard
|
- ComputerTelevisionCircuitboard
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -242,7 +231,6 @@
|
|||||||
price: 750
|
price: 750
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- HighRiskItem
|
- HighRiskItem
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
state: airalarm_electronics
|
state: airalarm_electronics
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- StationMapElectronics
|
- StationMapElectronics
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 15
|
price: 15
|
||||||
@@ -9,7 +9,6 @@
|
|||||||
state: airalarm_electronics
|
state: airalarm_electronics
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- AirAlarmElectronics
|
- AirAlarmElectronics
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 61
|
price: 61
|
||||||
@@ -25,7 +24,6 @@
|
|||||||
state: airalarm_electronics
|
state: airalarm_electronics
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- FireAlarmElectronics
|
- FireAlarmElectronics
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 61
|
price: 61
|
||||||
|
|||||||
@@ -8,9 +8,6 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Misc/module.rsi
|
sprite: Objects/Misc/module.rsi
|
||||||
state: generic
|
state: generic
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 100
|
price: 100
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
state: net_wired
|
state: net_wired
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- MailingUnitElectronics
|
- MailingUnitElectronics
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 55
|
price: 55
|
||||||
|
|||||||
@@ -11,6 +11,5 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DoorElectronics
|
- DoorElectronics
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 55
|
price: 55
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
state: mainboard
|
state: mainboard
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- FirelockElectronics
|
- FirelockElectronics
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 61
|
price: 61
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
state: id_mod
|
state: id_mod
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- IntercomElectronics
|
- IntercomElectronics
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 55
|
price: 55
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
price: 40
|
price: 40
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- WallmountSubstationElectronics
|
- WallmountSubstationElectronics
|
||||||
|
|
||||||
# Wallmount Generator
|
# Wallmount Generator
|
||||||
@@ -51,7 +50,6 @@
|
|||||||
Glass: 90
|
Glass: 90
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- WallmountGeneratorElectronics
|
- WallmountGeneratorElectronics
|
||||||
|
|
||||||
# APU
|
# APU
|
||||||
@@ -68,7 +66,6 @@
|
|||||||
price: 40
|
price: 40
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- WallmountGeneratorAPUElectronics
|
- WallmountGeneratorAPUElectronics
|
||||||
|
|
||||||
# Solar Tracker Electronics
|
# Solar Tracker Electronics
|
||||||
@@ -85,5 +82,4 @@
|
|||||||
price: 85
|
price: 85
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- SolarTrackerElectronics
|
- SolarTrackerElectronics
|
||||||
|
|||||||
@@ -35,6 +35,3 @@
|
|||||||
cpu_supply: "#A46106"
|
cpu_supply: "#A46106"
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 250
|
price: 250
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|||||||
@@ -54,9 +54,6 @@
|
|||||||
mask:
|
mask:
|
||||||
- ItemMask
|
- ItemMask
|
||||||
- type: Rotatable
|
- type: Rotatable
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: mousetrap
|
name: mousetrap
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Sheet
|
- Sheet
|
||||||
- DroneUsable
|
|
||||||
- type: Material
|
- type: Material
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- Sheet
|
- Sheet
|
||||||
- Metal
|
- Metal
|
||||||
- DroneUsable
|
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
damageModifierSet: Metallic
|
damageModifierSet: Metallic
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Sheet
|
- Sheet
|
||||||
- DroneUsable
|
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
@@ -133,7 +132,6 @@
|
|||||||
tags:
|
tags:
|
||||||
- Plastic
|
- Plastic
|
||||||
- Sheet
|
- Sheet
|
||||||
- DroneUsable
|
|
||||||
- type: Material
|
- type: Material
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
materialComposition:
|
materialComposition:
|
||||||
@@ -250,7 +248,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Sheet
|
- Sheet
|
||||||
- DroneUsable
|
|
||||||
- type: Material
|
- type: Material
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
materialComposition:
|
materialComposition:
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
size: Normal
|
size: Normal
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- RawMaterial
|
- RawMaterial
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
@@ -128,7 +127,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- ClothMade
|
- ClothMade
|
||||||
- DroneUsable
|
|
||||||
- Gauze
|
- Gauze
|
||||||
- RawMaterial
|
- RawMaterial
|
||||||
- type: Construction
|
- type: Construction
|
||||||
@@ -193,7 +191,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- ClothMade
|
- ClothMade
|
||||||
- DroneUsable
|
|
||||||
- RawMaterial
|
- RawMaterial
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -241,7 +238,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Wooden
|
- Wooden
|
||||||
- DroneUsable
|
|
||||||
- RawMaterial
|
- RawMaterial
|
||||||
- type: Extractable
|
- type: Extractable
|
||||||
grindableSolutionName: wood
|
grindableSolutionName: wood
|
||||||
@@ -411,10 +407,8 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- ClothMade
|
- ClothMade
|
||||||
- DroneUsable
|
|
||||||
- RawMaterial
|
- RawMaterial
|
||||||
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: MaterialCotton
|
parent: MaterialCotton
|
||||||
id: MaterialCotton1
|
id: MaterialCotton1
|
||||||
@@ -523,7 +517,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- ClothMade
|
- ClothMade
|
||||||
- DroneUsable
|
|
||||||
- RawMaterial
|
- RawMaterial
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -8,9 +8,6 @@
|
|||||||
state: rods
|
state: rods
|
||||||
- type: Item
|
- type: Item
|
||||||
sprite: Objects/Materials/parts.rsi
|
sprite: Objects/Materials/parts.rsi
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
damageModifierSet: FlimsyMetallic
|
damageModifierSet: FlimsyMetallic
|
||||||
@@ -81,7 +78,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- RodMetal1
|
- RodMetal1
|
||||||
- DroneUsable
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: rods
|
state: rods
|
||||||
- type: Stack
|
- type: Stack
|
||||||
@@ -96,7 +92,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- RodMetal1
|
- RodMetal1
|
||||||
- DroneUsable
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
state: rods
|
state: rods
|
||||||
- type: Stack
|
- type: Stack
|
||||||
|
|||||||
@@ -15,9 +15,6 @@
|
|||||||
Blunt: 5
|
Blunt: 5
|
||||||
- type: Stack
|
- type: Stack
|
||||||
count: 1
|
count: 1
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: Damageable
|
- type: Damageable
|
||||||
damageContainer: Inorganic
|
damageContainer: Inorganic
|
||||||
- type: Destructible
|
- type: Destructible
|
||||||
|
|||||||
@@ -16,8 +16,5 @@
|
|||||||
price: 500
|
price: 500
|
||||||
- type: GuideHelp
|
- type: GuideHelp
|
||||||
guides: [ AME, Power ]
|
guides: [ AME, Power ]
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StealTarget
|
- type: StealTarget
|
||||||
stealGroup: AmePart
|
stealGroup: AmePart
|
||||||
|
|||||||
@@ -27,7 +27,6 @@
|
|||||||
Quantity: 5
|
Quantity: 5
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- PowerCell
|
- PowerCell
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: PowerCellVisuals
|
- type: PowerCellVisuals
|
||||||
@@ -50,7 +49,6 @@
|
|||||||
startingCharge: 70
|
startingCharge: 70
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- PotatoBattery
|
- PotatoBattery
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: PowerCellPotato
|
graph: PowerCellPotato
|
||||||
|
|||||||
@@ -11,6 +11,3 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Power/solar_parts.rsi
|
sprite: Objects/Power/solar_parts.rsi
|
||||||
state: solar_assembly_parts
|
state: solar_assembly_parts
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|||||||
@@ -30,7 +30,6 @@
|
|||||||
delay: 1
|
delay: 1
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable #No bucket because it holds chems, they can drag the cart or use a drain
|
|
||||||
- Mop
|
- Mop
|
||||||
- MopBasic
|
- MopBasic
|
||||||
- type: GuideHelp
|
- type: GuideHelp
|
||||||
@@ -81,7 +80,6 @@
|
|||||||
maxVol: 100
|
maxVol: 100
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable #No bucket because it holds chems, they can drag the cart or use a drain
|
|
||||||
- Mop
|
- Mop
|
||||||
- MopAdv
|
- MopAdv
|
||||||
|
|
||||||
@@ -649,7 +647,6 @@
|
|||||||
delay: 1.5
|
delay: 1.5
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- Mop
|
- Mop
|
||||||
- type: CleansForensics
|
- type: CleansForensics
|
||||||
- type: Fiber
|
- type: Fiber
|
||||||
|
|||||||
@@ -91,8 +91,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Spray
|
- Spray
|
||||||
- DroneUsable #They don't have any other chem stuff on their whitelist so they can't refill it
|
|
||||||
|
|
||||||
# Vapor
|
# Vapor
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -25,7 +25,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- TrashBag
|
- TrashBag
|
||||||
- DroneUsable
|
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: StorageFillVisualizer
|
- type: StorageFillVisualizer
|
||||||
maxFillLevels: 4
|
maxFillLevels: 4
|
||||||
|
|||||||
@@ -26,9 +26,6 @@
|
|||||||
enabled:
|
enabled:
|
||||||
True: { state: working }
|
True: { state: working }
|
||||||
False: { state: icon }
|
False: { state: icon }
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 80
|
price: 80
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- CableCoil
|
- CableCoil
|
||||||
- DroneUsable
|
|
||||||
- type: Stack
|
- type: Stack
|
||||||
stackType: Cable
|
stackType: Cable
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Flashlight
|
- Flashlight
|
||||||
- DroneUsable
|
|
||||||
- type: HandheldLight
|
- type: HandheldLight
|
||||||
addPrefix: false
|
addPrefix: false
|
||||||
blinkingBehaviourId: blinking
|
blinkingBehaviourId: blinking
|
||||||
|
|||||||
@@ -19,9 +19,6 @@
|
|||||||
doAfter: 1
|
doAfter: 1
|
||||||
removeOnInteract: true
|
removeOnInteract: true
|
||||||
- type: Clickable
|
- type: Clickable
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
# TODO: Add stack sprites + visuals.
|
# TODO: Add stack sprites + visuals.
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -45,9 +42,6 @@
|
|||||||
doAfter: 1
|
doAfter: 1
|
||||||
removeOnInteract: true
|
removeOnInteract: true
|
||||||
- type: Clickable
|
- type: Clickable
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
# TODO: Add stack sprites + visuals.
|
# TODO: Add stack sprites + visuals.
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -15,9 +15,6 @@
|
|||||||
amount: 8
|
amount: 8
|
||||||
- id: LightBulb
|
- id: LightBulb
|
||||||
amount: 5
|
amount: 5
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 100
|
price: 100
|
||||||
- type: ContainerContainer
|
- type: ContainerContainer
|
||||||
|
|||||||
@@ -19,8 +19,5 @@
|
|||||||
base:
|
base:
|
||||||
On: { state: tray-on }
|
On: { state: tray-on }
|
||||||
Off: { state: tray-off }
|
Off: { state: tray-off }
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 60
|
price: 60
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
path: "/Audio/Weapons/smash.ogg"
|
path: "/Audio/Weapons/smash.ogg"
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- DroneUsable
|
|
||||||
- Toolbox
|
- Toolbox
|
||||||
- type: GenericVisualizer
|
- type: GenericVisualizer
|
||||||
visuals:
|
visuals:
|
||||||
|
|||||||
@@ -221,7 +221,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- Multitool
|
- Multitool
|
||||||
- DroneUsable
|
|
||||||
- type: PhysicalComposition
|
- type: PhysicalComposition
|
||||||
materialComposition:
|
materialComposition:
|
||||||
Steel: 100
|
Steel: 100
|
||||||
@@ -271,9 +270,6 @@
|
|||||||
type: NetworkConfiguratorBoundUserInterface
|
type: NetworkConfiguratorBoundUserInterface
|
||||||
- key: enum.NetworkConfiguratorUiKey.Link
|
- key: enum.NetworkConfiguratorUiKey.Link
|
||||||
type: NetworkConfiguratorBoundUserInterface
|
type: NetworkConfiguratorBoundUserInterface
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 56
|
price: 56
|
||||||
- type: GuideHelp
|
- type: GuideHelp
|
||||||
|
|||||||
@@ -638,9 +638,6 @@
|
|||||||
radius: 1.5
|
radius: 1.5
|
||||||
energy: 1.6
|
energy: 1.6
|
||||||
color: "#e6e227"
|
color: "#e6e227"
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseComputer
|
parent: BaseComputer
|
||||||
|
|||||||
@@ -279,7 +279,6 @@
|
|||||||
- Implanter
|
- Implanter
|
||||||
- PillCanister
|
- PillCanister
|
||||||
- ChemistryEmptyBottle01
|
- ChemistryEmptyBottle01
|
||||||
- Drone
|
|
||||||
- AdvMopItem
|
- AdvMopItem
|
||||||
- WeaponSprayNozzle
|
- WeaponSprayNozzle
|
||||||
- ClothingBackpackWaterTank
|
- ClothingBackpackWaterTank
|
||||||
|
|||||||
@@ -296,9 +296,6 @@
|
|||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ClothesMateAds
|
pack: ClothesMateAds
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/clothing.rsi
|
sprite: Structures/Machines/VendingMachines/clothing.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -329,9 +326,6 @@
|
|||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ClothesMateAds
|
pack: ClothesMateAds
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/winterdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/winterdrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1103,9 +1097,6 @@
|
|||||||
radius: 1.5
|
radius: 1.5
|
||||||
energy: 1.6
|
energy: 1.6
|
||||||
color: "#c73434"
|
color: "#c73434"
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: VendingMachine
|
parent: VendingMachine
|
||||||
@@ -1201,9 +1192,6 @@
|
|||||||
radius: 1.5
|
radius: 1.5
|
||||||
energy: 1.6
|
energy: 1.6
|
||||||
color: "#d4ab33"
|
color: "#d4ab33"
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- DroneUsable
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: VendingMachine
|
parent: VendingMachine
|
||||||
|
|||||||
@@ -75,15 +75,6 @@
|
|||||||
materials:
|
materials:
|
||||||
Wood: 100
|
Wood: 100
|
||||||
|
|
||||||
- type: latheRecipe
|
|
||||||
id: Drone
|
|
||||||
result: Drone
|
|
||||||
completetime: 6
|
|
||||||
materials:
|
|
||||||
Steel: 500
|
|
||||||
Glass: 500
|
|
||||||
Plastic: 500
|
|
||||||
|
|
||||||
- type: latheRecipe
|
- type: latheRecipe
|
||||||
id: SynthesizerInstrument
|
id: SynthesizerInstrument
|
||||||
result: SynthesizerInstrument
|
result: SynthesizerInstrument
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
cost: 5000
|
cost: 5000
|
||||||
recipeUnlocks:
|
recipeUnlocks:
|
||||||
- ProximitySensor
|
- ProximitySensor
|
||||||
- Drone
|
|
||||||
- ExosuitFabricatorMachineCircuitboard
|
- ExosuitFabricatorMachineCircuitboard
|
||||||
|
|
||||||
- type: technology
|
- type: technology
|
||||||
|
|||||||
@@ -11,13 +11,6 @@
|
|||||||
id: Holoparasite
|
id: Holoparasite
|
||||||
prefix: HOLO
|
prefix: HOLO
|
||||||
|
|
||||||
- type: nameIdentifierGroup
|
|
||||||
id: Drone
|
|
||||||
prefix: DR
|
|
||||||
fullName: true
|
|
||||||
minValue: 10000
|
|
||||||
maxValue: 99999
|
|
||||||
|
|
||||||
- type: nameIdentifierGroup
|
- type: nameIdentifierGroup
|
||||||
id: MMI
|
id: MMI
|
||||||
prefix: MMI
|
prefix: MMI
|
||||||
|
|||||||
@@ -467,9 +467,6 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: DrinkBottle
|
id: DrinkBottle
|
||||||
|
|
||||||
- type: Tag
|
|
||||||
id: DroneUsable
|
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Duck
|
id: Duck
|
||||||
|
|
||||||
|
|||||||
@@ -214,3 +214,8 @@ VehicleJanicartDestroyed: null
|
|||||||
# 2024-02-01
|
# 2024-02-01
|
||||||
YellowOxygenTank: OxygenTank
|
YellowOxygenTank: OxygenTank
|
||||||
YellowOxygenTankFilled: OxygenTankFilled
|
YellowOxygenTankFilled: OxygenTankFilled
|
||||||
|
|
||||||
|
# 2024-02-19
|
||||||
|
Drone: null
|
||||||
|
SpawnMobDrone: null
|
||||||
|
Onestar: null # I dont think this is even mapped, but just in case
|
||||||
|
|||||||
Reference in New Issue
Block a user