Вернуть дронов
This reverts commit 8c6a8c3c5c.
# Conflicts:
# Resources/Prototypes/Entities/Mobs/Player/silicon.yml
# Resources/Prototypes/Entities/Objects/Devices/Electronics/base_electronics.yml
# Resources/Prototypes/Entities/Objects/Devices/flatpack.yml
# Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
# Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
# Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
# Resources/Prototypes/Entities/Objects/Materials/parts.yml
# Resources/Prototypes/Entities/Objects/Misc/tiles.yml
# Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml
# Resources/Prototypes/Entities/Objects/Power/solar_parts.yml
# Resources/Prototypes/tags.yml
# Resources/migration.yml
This commit is contained in:
8
Content.Server/Drone/Components/DroneComponent.cs
Normal file
8
Content.Server/Drone/Components/DroneComponent.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Content.Server.Drone.Components
|
||||
{
|
||||
[RegisterComponent]
|
||||
public sealed partial class DroneComponent : Component
|
||||
{
|
||||
public float InteractionBlockRange = 2.15f;
|
||||
}
|
||||
}
|
||||
146
Content.Server/Drone/DroneSystem.cs
Normal file
146
Content.Server/Drone/DroneSystem.cs
Normal file
@@ -0,0 +1,146 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ using Content.Server.Body.Systems;
|
||||
using Content.Server.Chat;
|
||||
using Content.Server.Chat.Systems;
|
||||
using Content.Server.Cloning;
|
||||
using Content.Server.Drone.Components;
|
||||
using Content.Server.Emoting.Systems;
|
||||
using Content.Server.Inventory;
|
||||
using Content.Server.Speech.EntitySystems;
|
||||
@@ -219,7 +220,7 @@ namespace Content.Server.Zombies
|
||||
if (args.User == entity)
|
||||
continue;
|
||||
|
||||
if (!TryComp<MobStateComponent>(entity, out var mobState))
|
||||
if (!TryComp<MobStateComponent>(entity, out var mobState) || HasComp<DroneComponent>(entity))
|
||||
continue;
|
||||
|
||||
if (HasComp<ZombieComponent>(entity))
|
||||
|
||||
20
Content.Shared/Drone/SharedDroneSystem.cs
Normal file
20
Content.Shared/Drone/SharedDroneSystem.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
4
Resources/Locale/en-US/drone/drone-system.ftl
Normal file
4
Resources/Locale/en-US/drone/drone-system.ftl
Normal file
@@ -0,0 +1,4 @@
|
||||
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)}.
|
||||
27
Resources/Prototypes/Body/Prototypes/drone.yml
Normal file
27
Resources/Prototypes/Body/Prototypes/drone.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
- 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
|
||||
@@ -275,6 +275,15 @@
|
||||
contents:
|
||||
- id: BoxSurvival
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: ClothingBackpackSatchel
|
||||
id: ClothingBackpackSatchelDrone
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- InnateDontDelete
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: ClothingBackpackSatchelMime
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
components:
|
||||
- type: Item
|
||||
size: Large
|
||||
shape:
|
||||
shape:
|
||||
- 0,0,2,2
|
||||
- type: Storage
|
||||
maxItemSize: Small
|
||||
@@ -67,6 +67,9 @@
|
||||
whitelist:
|
||||
components:
|
||||
- LightBulb
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
name: lighttube box
|
||||
@@ -88,6 +91,9 @@
|
||||
whitelist:
|
||||
components:
|
||||
- LightBulb
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
name: mixed lights box
|
||||
@@ -111,6 +117,9 @@
|
||||
whitelist:
|
||||
components:
|
||||
- LightBulb
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
name: PDA box
|
||||
@@ -215,6 +224,9 @@
|
||||
layers:
|
||||
- state: box
|
||||
- state: inflatable
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
|
||||
- type: entity
|
||||
@@ -266,6 +278,9 @@
|
||||
layers:
|
||||
- state: box
|
||||
- state: trashbag
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
name: passenger encryption key box
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- ClothMade
|
||||
- DroneUsable
|
||||
- WhitelistChameleon
|
||||
- type: StaticPrice
|
||||
price: 25
|
||||
|
||||
@@ -878,6 +878,7 @@
|
||||
sprite: Clothing/Head/Hats/party_red.rsi
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- WhitelistChameleon
|
||||
- HamsterWearable
|
||||
|
||||
|
||||
@@ -175,7 +175,8 @@
|
||||
suffix: DO NOT MAP
|
||||
components:
|
||||
- type: Tag
|
||||
tags: [] # ignore "WhitelistChameleon" tag
|
||||
tags: # ignore "WhitelistChameleon" tag
|
||||
- DroneUsable
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hats/catears.rsi
|
||||
- type: Clothing
|
||||
@@ -190,6 +191,9 @@
|
||||
description: Only for good boys.
|
||||
suffix: DO NOT MAP
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: Sprite
|
||||
sprite: Clothing/Head/Hats/dogears.rsi
|
||||
- type: Clothing
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
price: 50
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- WhitelistChameleon
|
||||
|
||||
- type: entity
|
||||
@@ -32,6 +33,7 @@
|
||||
sprite: Clothing/Head/Welding/welding.rsi
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- HamsterWearable
|
||||
- WhitelistChameleon
|
||||
|
||||
|
||||
@@ -74,6 +74,20 @@
|
||||
prototypes:
|
||||
- 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
|
||||
name: Fox Renault Spawner
|
||||
id: SpawnMobFoxRenault
|
||||
|
||||
@@ -249,9 +249,9 @@
|
||||
- type: ContainerFill
|
||||
containers:
|
||||
borg_brain:
|
||||
- PositronicBrain
|
||||
- PositronicBrain
|
||||
borg_module:
|
||||
- BorgModuleTool
|
||||
- BorgModuleTool
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
cell_slot:
|
||||
@@ -268,7 +268,7 @@
|
||||
- type: ContainerFill
|
||||
containers:
|
||||
borg_brain:
|
||||
- MMIFilled
|
||||
- MMIFilled
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
cell_slot:
|
||||
@@ -280,17 +280,17 @@
|
||||
parent: BorgChassisSyndicateAssault
|
||||
suffix: Battery, Module, Operative
|
||||
components:
|
||||
- type: NukeOperative
|
||||
- type: ContainerFill
|
||||
containers:
|
||||
borg_brain:
|
||||
- PositronicBrain
|
||||
borg_module:
|
||||
- BorgModuleOperative
|
||||
- BorgModuleL6C
|
||||
- BorgModuleEsword
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
cell_slot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
startingItem: PowerCellHyper
|
||||
- type: NukeOperative
|
||||
- type: ContainerFill
|
||||
containers:
|
||||
borg_brain:
|
||||
- PositronicBrain
|
||||
borg_module:
|
||||
- BorgModuleOperative
|
||||
- BorgModuleL6C
|
||||
- BorgModuleEsword
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
cell_slot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
startingItem: PowerCellHyper
|
||||
|
||||
@@ -352,6 +352,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Trash
|
||||
- DroneUsable
|
||||
- WhitelistChameleon
|
||||
- type: TrashOnSolutionEmpty
|
||||
solution: drink
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
state: generic
|
||||
- type: Item
|
||||
storedRotation: -90
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 100
|
||||
- type: PhysicalComposition
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
state: cpuboard
|
||||
- type: Item
|
||||
storedRotation: -90
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 100
|
||||
- type: PhysicalComposition
|
||||
@@ -83,6 +86,9 @@
|
||||
prototype: ComputerCargoOrders
|
||||
- type: StaticPrice
|
||||
price: 750
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
id: CargoBountyComputerCircuitboard
|
||||
@@ -95,6 +101,9 @@
|
||||
- type: ComputerBoard
|
||||
prototype: ComputerCargoBounty
|
||||
- type: StaticPrice
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
parent: BaseComputerCircuitboard
|
||||
@@ -152,6 +161,7 @@
|
||||
prototype: ComputerSurveillanceCameraMonitor
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- SurveillanceCameraMonitorCircuitboard
|
||||
|
||||
- type: entity
|
||||
@@ -173,6 +183,7 @@
|
||||
prototype: ComputerTelevision
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- ComputerTelevisionCircuitboard
|
||||
|
||||
- type: entity
|
||||
@@ -231,6 +242,7 @@
|
||||
price: 750
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- HighRiskItem
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
state: airalarm_electronics
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- StationMapElectronics
|
||||
- type: StaticPrice
|
||||
price: 15
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
state: airalarm_electronics
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- AirAlarmElectronics
|
||||
- type: StaticPrice
|
||||
price: 61
|
||||
@@ -26,6 +27,7 @@
|
||||
state: airalarm_electronics
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- FireAlarmElectronics
|
||||
- type: StaticPrice
|
||||
price: 61
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Misc/module.rsi
|
||||
state: generic
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 100
|
||||
- type: PhysicalComposition
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
state: net_wired
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- MailingUnitElectronics
|
||||
- type: StaticPrice
|
||||
price: 55
|
||||
|
||||
@@ -11,5 +11,6 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- DoorElectronics
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 55
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
state: mainboard
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- FirelockElectronics
|
||||
- type: StaticPrice
|
||||
price: 61
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
state: id_mod
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- IntercomElectronics
|
||||
- type: StaticPrice
|
||||
price: 55
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
price: 40
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- WallmountSubstationElectronics
|
||||
|
||||
# Wallmount Generator
|
||||
@@ -50,6 +51,7 @@
|
||||
Glass: 90
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- WallmountGeneratorElectronics
|
||||
|
||||
# APU
|
||||
@@ -66,6 +68,7 @@
|
||||
price: 40
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- WallmountGeneratorAPUElectronics
|
||||
|
||||
# Solar Tracker Electronics
|
||||
@@ -82,4 +85,5 @@
|
||||
price: 85
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- SolarTrackerElectronics
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
cpu_supply: "#A46106"
|
||||
- type: StaticPrice
|
||||
price: 250
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
parent: BaseFlatpack
|
||||
|
||||
@@ -54,6 +54,9 @@
|
||||
mask:
|
||||
- ItemMask
|
||||
- type: Rotatable
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
name: mousetrap
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
tags:
|
||||
- Sheet
|
||||
- NoPaint
|
||||
- DroneUsable
|
||||
- type: Material
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
- Sheet
|
||||
- Metal
|
||||
- NoPaint
|
||||
- DroneUsable
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
tags:
|
||||
- Sheet
|
||||
- NoPaint
|
||||
- DroneUsable
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
@@ -135,6 +136,7 @@
|
||||
- Plastic
|
||||
- Sheet
|
||||
- NoPaint
|
||||
- DroneUsable
|
||||
- type: Material
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
@@ -251,6 +253,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Sheet
|
||||
- DroneUsable
|
||||
- type: Material
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
size: Normal
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- RawMaterial
|
||||
- NoPaint
|
||||
- type: Damageable
|
||||
@@ -128,6 +129,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- ClothMade
|
||||
- DroneUsable
|
||||
- Gauze
|
||||
- RawMaterial
|
||||
- type: Construction
|
||||
@@ -195,6 +197,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- ClothMade
|
||||
- DroneUsable
|
||||
- RawMaterial
|
||||
|
||||
- type: entity
|
||||
@@ -242,6 +245,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Wooden
|
||||
- DroneUsable
|
||||
- RawMaterial
|
||||
- type: Extractable
|
||||
grindableSolutionName: wood
|
||||
@@ -411,6 +415,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- ClothMade
|
||||
- DroneUsable
|
||||
- RawMaterial
|
||||
|
||||
- type: entity
|
||||
@@ -521,6 +526,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- ClothMade
|
||||
- DroneUsable
|
||||
- RawMaterial
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
state: rods
|
||||
- type: Item
|
||||
sprite: Objects/Materials/parts.rsi
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: FlimsyMetallic
|
||||
@@ -82,6 +85,7 @@
|
||||
tags:
|
||||
- RodMetal1
|
||||
- CrossbowBolt
|
||||
- DroneUsable
|
||||
- type: Sprite
|
||||
state: rods
|
||||
- type: Stack
|
||||
@@ -96,6 +100,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- RodMetal1
|
||||
- DroneUsable
|
||||
- CrossbowBolt
|
||||
- type: Ammo
|
||||
muzzleFlash: null
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- NoPaint
|
||||
- DroneUsable
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
Quantity: 5
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- PowerCell
|
||||
- type: Appearance
|
||||
- type: PowerCellVisuals
|
||||
@@ -51,6 +52,7 @@
|
||||
startingCharge: 70
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- PotatoBattery
|
||||
- type: Construction
|
||||
graph: PowerCellPotato
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
delay: 1
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable #No bucket because it holds chems, they can drag the cart or use a drain
|
||||
- Mop
|
||||
- MopBasic
|
||||
- type: GuideHelp
|
||||
@@ -80,6 +81,7 @@
|
||||
maxVol: 100
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable #No bucket because it holds chems, they can drag the cart or use a drain
|
||||
- Mop
|
||||
- MopAdv
|
||||
|
||||
@@ -647,6 +649,7 @@
|
||||
delay: 1.5
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- Mop
|
||||
- type: CleansForensics
|
||||
- type: Fiber
|
||||
|
||||
@@ -91,6 +91,8 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Spray
|
||||
- DroneUsable #They don't have any other chem stuff on their whitelist so they can't refill it
|
||||
|
||||
# Vapor
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- TrashBag
|
||||
- DroneUsable
|
||||
- type: Appearance
|
||||
- type: StorageFillVisualizer
|
||||
maxFillLevels: 4
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
enabled:
|
||||
True: { state: working }
|
||||
False: { state: icon }
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 80
|
||||
- type: PhysicalComposition
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- CableCoil
|
||||
- DroneUsable
|
||||
- type: Stack
|
||||
stackType: Cable
|
||||
- type: Sprite
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Flashlight
|
||||
- DroneUsable
|
||||
- type: HandheldLight
|
||||
addPrefix: false
|
||||
blinkingBehaviourId: blinking
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
doAfter: 1
|
||||
removeOnInteract: true
|
||||
- type: Clickable
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
# TODO: Add stack sprites + visuals.
|
||||
|
||||
- type: entity
|
||||
@@ -42,6 +45,9 @@
|
||||
doAfter: 1
|
||||
removeOnInteract: true
|
||||
- type: Clickable
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
# TODO: Add stack sprites + visuals.
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
amount: 8
|
||||
- id: LightBulb
|
||||
amount: 5
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 100
|
||||
- type: ContainerContainer
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
base:
|
||||
On: { state: tray-on }
|
||||
Off: { state: tray-off }
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 60
|
||||
# WD edit sounds start
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
path: "/Audio/Weapons/smash.ogg"
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- Toolbox
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
|
||||
@@ -265,6 +265,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- Multitool
|
||||
- DroneUsable
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
Steel: 100
|
||||
@@ -322,6 +323,9 @@
|
||||
type: NetworkConfiguratorBoundUserInterface
|
||||
- key: enum.NetworkConfiguratorUiKey.Link
|
||||
type: NetworkConfiguratorBoundUserInterface
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: StaticPrice
|
||||
price: 56
|
||||
- type: GuideHelp
|
||||
|
||||
@@ -658,6 +658,9 @@
|
||||
radius: 1.5
|
||||
energy: 1.6
|
||||
color: "#e6e227"
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
parent: BaseComputer
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
- Implanter
|
||||
- PillCanister
|
||||
- ChemistryEmptyBottle01
|
||||
- Drone
|
||||
- AdvMopItem
|
||||
- WeaponSprayNozzle
|
||||
- ClothingBackpackWaterTank
|
||||
|
||||
@@ -299,6 +299,9 @@
|
||||
- type: Advertise
|
||||
pack: ClothesMateAds
|
||||
- type: Speech
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/clothing.rsi
|
||||
layers:
|
||||
@@ -330,6 +333,9 @@
|
||||
- type: Advertise
|
||||
pack: ClothesMateAds
|
||||
- type: Speech
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/VendingMachines/winterdrobe.rsi
|
||||
layers:
|
||||
@@ -1121,6 +1127,9 @@
|
||||
radius: 1.5
|
||||
energy: 1.6
|
||||
color: "#c73434"
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
parent: VendingMachine
|
||||
@@ -1216,6 +1225,9 @@
|
||||
radius: 1.5
|
||||
energy: 1.6
|
||||
color: "#d4ab33"
|
||||
- type: Tag
|
||||
tags:
|
||||
- DroneUsable
|
||||
|
||||
- type: entity
|
||||
parent: VendingMachine
|
||||
|
||||
@@ -93,6 +93,15 @@
|
||||
materials:
|
||||
Wood: 100
|
||||
|
||||
- type: latheRecipe
|
||||
id: Drone
|
||||
result: Drone
|
||||
completetime: 6
|
||||
materials:
|
||||
Steel: 500
|
||||
Glass: 500
|
||||
Plastic: 500
|
||||
|
||||
- type: latheRecipe
|
||||
id: SynthesizerInstrument
|
||||
result: SynthesizerInstrument
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
cost: 5000
|
||||
recipeUnlocks:
|
||||
- ProximitySensor
|
||||
- Drone
|
||||
- ExosuitFabricatorMachineCircuitboard
|
||||
|
||||
- type: technology
|
||||
|
||||
@@ -11,6 +11,13 @@
|
||||
id: Holoparasite
|
||||
prefix: HOLO
|
||||
|
||||
- type: nameIdentifierGroup
|
||||
id: Drone
|
||||
prefix: DR
|
||||
fullName: true
|
||||
minValue: 10000
|
||||
maxValue: 99999
|
||||
|
||||
- type: nameIdentifierGroup
|
||||
id: MMI
|
||||
prefix: MMI
|
||||
|
||||
@@ -529,6 +529,9 @@
|
||||
- type: Tag
|
||||
id: DrinkSpaceGlue
|
||||
|
||||
- type: Tag
|
||||
id: DroneUsable
|
||||
|
||||
- type: Tag
|
||||
id: Duck
|
||||
|
||||
|
||||
@@ -196,11 +196,6 @@ VehicleJanicartDestroyed: null
|
||||
YellowOxygenTank: OxygenTank
|
||||
YellowOxygenTankFilled: OxygenTankFilled
|
||||
|
||||
# 2024-02-19
|
||||
Drone: null
|
||||
SpawnMobDrone: null
|
||||
Onestar: null # I dont think this is even mapped, but just in case
|
||||
|
||||
# 2024-02-22
|
||||
SolarAssemblyPart: SolarAssemblyFlatpack
|
||||
AmePart: AmePartFlatpack
|
||||
|
||||
Reference in New Issue
Block a user