Merge pull request #6132 from DeltaV-Station/nanite-applicator
Examine Damage on Structure/Machine, Nanite Applicators
|
|
@ -29,11 +29,22 @@ public sealed class WelderStatusControl : PollingItemStatusControl<WelderStatusC
|
|||
protected override Data PollData()
|
||||
{
|
||||
var (fuel, capacity) = _toolSystem.GetWelderFuelAndCapacity(_parent, _parent.Comp);
|
||||
return new Data(fuel, capacity, _parent.Comp.Enabled);
|
||||
return new Data(fuel, capacity, _parent.Comp.Enabled, _parent.Comp.OnlyDisplayFuel); // Monolith - Nanite Applicators
|
||||
}
|
||||
|
||||
protected override void Update(in Data data)
|
||||
{
|
||||
// BEGIN Monolith - Nanite applicator
|
||||
if (data.OnlyDisplayFuel)
|
||||
{
|
||||
_label.SetMarkup(Loc.GetString("welder-component-on-examine-less-detailed-message",
|
||||
("colorName", data.Fuel < data.FuelCapacity / 4f ? "darkorange" : "orange"),
|
||||
("fuelLeft", data.Fuel),
|
||||
("fuelCapacity", data.FuelCapacity)));
|
||||
return;
|
||||
}
|
||||
// END Monolith
|
||||
|
||||
_label.SetMarkup(Loc.GetString("welder-component-on-examine-detailed-message",
|
||||
("colorName", data.Fuel < data.FuelCapacity / 4f ? "darkorange" : "orange"),
|
||||
("fuelLeft", data.Fuel),
|
||||
|
|
@ -41,5 +52,5 @@ public sealed class WelderStatusControl : PollingItemStatusControl<WelderStatusC
|
|||
("status", Loc.GetString(data.Lit ? "welder-component-on-examine-welder-lit-message" : "welder-component-on-examine-welder-not-lit-message"))));
|
||||
}
|
||||
|
||||
public record struct Data(FixedPoint2 Fuel, FixedPoint2 FuelCapacity, bool Lit);
|
||||
public record struct Data(FixedPoint2 Fuel, FixedPoint2 FuelCapacity, bool Lit, bool OnlyDisplayFuel = false); // Monolith - Nanite Applicators
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public abstract partial class InteractionTest
|
|||
protected const string Wrench = "Wrench";
|
||||
protected const string Screw = "Screwdriver";
|
||||
protected const string Weld = "WelderExperimental";
|
||||
protected const string Applicator = "NaniteApplicatorSyndicate"; // DeltaV
|
||||
protected const string Pry = "Crowbar";
|
||||
protected const string Cut = "Wirecutter";
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ public sealed class VendingInteractionTest : InteractionTest
|
|||
Assert.That(IsUiOpen(VendingMachineUiKey.Key), Is.False, "Opened BUI of broken vending machine.");
|
||||
|
||||
// Repair the vending machine
|
||||
await InteractUsing(Weld);
|
||||
await InteractUsing(Applicator); // DeltaV
|
||||
|
||||
// Make sure the BUI can open now that the machine has been repaired
|
||||
await Activate();
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public sealed partial class RepairableComponent : Component
|
|||
/// Tool quality necessary to repair this device.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
public ProtoId<ToolQualityPrototype> QualityNeeded = "Welding";
|
||||
public ProtoId<ToolQualityPrototype> QualityNeeded = "Applicating"; // Monolith - Nanite Applicator
|
||||
|
||||
/// <summary>
|
||||
/// The base tool use delay (seconds). This will be modified by the tool's quality
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ using Content.Shared.Database;
|
|||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Popups;
|
||||
using Content.Shared.Tools.Components; // Monolith - Nanite Applicators
|
||||
using Content.Shared.Tools.Systems;
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
|
|
@ -115,8 +116,26 @@ public sealed partial class RepairableSystem : EntitySystem
|
|||
delay *= ent.Comp.SelfRepairPenalty;
|
||||
}
|
||||
|
||||
// BEGIN DeltaV - Scale Repair Time with Damage
|
||||
// If its a self-repair, ignore it since they've already been penalized.
|
||||
if (args.User != args.Target && TryComp<DamageableComponent>(args.Target, out var damageComp))
|
||||
{
|
||||
// TODO: Scale with the destructible threshold if DestructibleSystem ever gets more prediction added.
|
||||
// For now, just scale up the delay per 100 damage, or reduce the delay if its less.
|
||||
var totalDamage = _damageableSystem.GetPositiveDamage((args.Target, damageComp)).GetTotal();
|
||||
delay *= Math.Clamp((float)totalDamage / 100.0f, 0.5f, 3.0f);
|
||||
}
|
||||
// END DeltaV
|
||||
|
||||
// BEGIN Monolith - Nanite Applicators
|
||||
if (!TryComp<ToolComponent>(args.Used, out var tool))
|
||||
return;
|
||||
// END Monolith
|
||||
|
||||
// Run the repairing doafter
|
||||
args.Handled = _toolSystem.UseTool(args.Used, args.User, ent.Owner, delay, ent.Comp.QualityNeeded, new RepairDoAfterEvent(), ent.Comp.FuelCost);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -73,4 +73,10 @@ public sealed partial class WelderComponent : Component
|
|||
/// </summary>
|
||||
[DataField]
|
||||
public bool TankSafe;
|
||||
|
||||
/// <summary>
|
||||
/// Monolith - This variable gets rid of the status display.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool OnlyDisplayFuel = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,19 +84,33 @@ public abstract partial class SharedToolSystem
|
|||
{
|
||||
using (args.PushGroup(nameof(WelderComponent)))
|
||||
{
|
||||
// BEGIN Monolith - Nanite Applicators
|
||||
if (!entity.Comp.OnlyDisplayFuel)
|
||||
{
|
||||
var lit = Loc.GetString("welder-component-on-examine-welder-not-lit-message");
|
||||
|
||||
if (ItemToggle.IsActivated(entity.Owner))
|
||||
{
|
||||
args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-lit-message"));
|
||||
}
|
||||
else
|
||||
{
|
||||
args.PushMarkup(Loc.GetString("welder-component-on-examine-welder-not-lit-message"));
|
||||
lit = Loc.GetString("welder-component-on-examine-welder-lit-message");
|
||||
|
||||
args.PushMarkup(lit);
|
||||
}
|
||||
// END Monolith
|
||||
|
||||
if (args.IsInDetailsRange)
|
||||
{
|
||||
var (fuel, capacity) = GetWelderFuelAndCapacity(entity.Owner, entity.Comp);
|
||||
|
||||
// BEGIN Monolith - Nanite Applicator
|
||||
if (entity.Comp.OnlyDisplayFuel)
|
||||
{
|
||||
args.PushMarkup(Loc.GetString("welder-component-on-examine-less-detailed-message",
|
||||
("colorName", fuel < capacity / FixedPoint2.New(4f) ? "darkorange" : "orange"),
|
||||
("fuelLeft", fuel),
|
||||
("fuelCapacity", capacity)));
|
||||
return;
|
||||
}
|
||||
// END Monolith
|
||||
|
||||
args.PushMarkup(Loc.GetString("welder-component-on-examine-detailed-message",
|
||||
("colorName", fuel < capacity / FixedPoint2.New(4f) ? "darkorange" : "orange"),
|
||||
("fuelLeft", fuel),
|
||||
|
|
@ -120,6 +134,19 @@ public abstract partial class SharedToolSystem
|
|||
&& _whitelist.IsWhitelistPass(tank.FuelWhitelist, entity.Owner) //imp
|
||||
&& SolutionContainerSystem.TryGetSolution(entity.Owner, entity.Comp.FuelSolutionName, out var solutionComp, out var welderSolution))
|
||||
{
|
||||
// BEGIN Monolith - Nanite Applicators
|
||||
foreach (var reagent in targetSolution.Contents)
|
||||
{
|
||||
if (reagent.Reagent.Prototype != entity.Comp.FuelReagent.Id)
|
||||
{
|
||||
_popup.PopupClient(
|
||||
Loc.GetString("welder-component-incompatible-fuel", ("owner", args.Target)), entity, args.User);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
// END Monolith
|
||||
|
||||
var trans = FixedPoint2.Min(welderSolution.AvailableVolume, targetSolution.Volume);
|
||||
if (trans > 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
# Base structure damage examine values
|
||||
comp-structure-damaged-1 = It looks fully intact.
|
||||
comp-structure-damaged-2 = It has a few scratches.
|
||||
comp-structure-damaged-3 = It has a few large dents.
|
||||
comp-structure-damaged-4 = [color=yellow]It has several big cracks running along its surface.[/color]
|
||||
comp-structure-damaged-5 = [color=orange]It has deep cracks across multiple layers.[/color]
|
||||
comp-structure-damaged-6 = [color=red]It's extremely damaged and on the verge of falling apart.[/color]
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
reagent-name-nanite-fuel = Nanites
|
||||
reagent-desc-nanite-fuel = Nanobots used for repairing.
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# MARK: Utility
|
||||
|
||||
uplink-syndicate-applicator-name = Advanced Nanite Applicator
|
||||
uplink-syndicate-applicator-desc = Advanced nanite applicator with a heavily upgraded nanite capacity capable of self-nanite generation.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
welder-component-on-examine-less-detailed-message = Fuel: [color={$colorName}]{$fuelLeft}/{$fuelCapacity}[/color]
|
||||
welder-component-incompatible-fuel = { $owner } contains incorrect or contaminated fuel!
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
tool-quality-nanite-applicator-name = Nanite Applicator
|
||||
tool-quality-applicating-name = Nanite Applicating
|
||||
|
|
@ -46,6 +46,7 @@
|
|||
- id: HolofanProjector
|
||||
- id: GasAnalyzer
|
||||
- id: trayScanner
|
||||
- id: NaniteApplicatorExperimental # DeltaV - Nanite Applicators
|
||||
|
||||
- type: entityTable
|
||||
id: BeltSecurityEntityTable
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
CrowbarYellow: 8
|
||||
Multitool: 4
|
||||
NetworkConfigurator: 5
|
||||
NaniteApplicator: 4 # Monolith - Nanite Applicator
|
||||
JerryCanWeldingFuel: 2 # New Frontier - Jerry Cans
|
||||
JerryCanNaniteFuel: 2 # Monolith - Nanite Applicator
|
||||
PowerCellMedium: 5
|
||||
ClothingHandsGlovesColorYellow: 6
|
||||
MetalFoamGrenade: 3 # DeltaV - added
|
||||
|
|
|
|||
|
|
@ -118,6 +118,7 @@
|
|||
damageValue: -10 # 10 seconds to repair from crit
|
||||
doAfterDelay: 1
|
||||
fuelCost: 0.5
|
||||
qualityNeeded: Welding # DeltaV - for now
|
||||
allowSelfRepair: true # DeltaV - was false
|
||||
- type: BorgChassis
|
||||
- type: LockingWhitelist
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
damageValue: -15 # 8 seconds to repair from dead
|
||||
doAfterDelay: 1
|
||||
fuelCost: 0.5
|
||||
qualityNeeded: Welding # DeltaV - for now
|
||||
- type: Pullable
|
||||
- type: Tag
|
||||
tags:
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@
|
|||
temperature: 373.15
|
||||
- type: Repairable
|
||||
doAfterDelay: 30 # you can heal the mothership core, but it takes a while
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: DamagedSiliconAccent
|
||||
enableChargeCorruption: false
|
||||
# TODO: make it explosive again once until issue https://github.com/space-wizards/space-station-14/issues/40606 is fixed
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
fuelCost: 10 # 1/2 of a Welder for a full repair
|
||||
doAfterDelay: 5
|
||||
allowSelfRepair: false
|
||||
|
||||
qualityNeeded: Welding # DeltaV
|
||||
#Security Shields
|
||||
|
||||
- type: entity
|
||||
|
|
|
|||
|
|
@ -583,6 +583,7 @@
|
|||
- item: Screwdriver
|
||||
- item: Wirecutter
|
||||
- item: WelderIndustrial
|
||||
- item: NaniteApplicator # Monolith
|
||||
- item: Multitool
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: tool-module }
|
||||
|
|
@ -711,6 +712,7 @@
|
|||
- item: PowerDrill
|
||||
- item: WelderExperimental
|
||||
- item: Multitool
|
||||
- item: NaniteApplicatorExperimental # Monolith
|
||||
- item: RemoteSignallerAdvanced
|
||||
- item: NFWeaponHoloflareGun # DeltaV
|
||||
- type: BorgModuleIcon
|
||||
|
|
|
|||
|
|
@ -162,8 +162,8 @@
|
|||
Welder:
|
||||
reagents:
|
||||
- ReagentId: WeldingFuel
|
||||
Quantity: 1000
|
||||
maxVol: 1000
|
||||
Quantity: 200 # DeltaV - Experimental Welder Nerf
|
||||
maxVol: 200 # DeltaV - Experimental Welder Nerf
|
||||
- type: PointLight
|
||||
enabled: false
|
||||
radius: 1.5
|
||||
|
|
@ -174,6 +174,7 @@
|
|||
reagents:
|
||||
- ReagentId: WeldingFuel
|
||||
Quantity: 1
|
||||
duration: 2 # DeltaV - Experimental Welder Nerf - Loses fuel while active
|
||||
- type: RequiresEyeProtection
|
||||
statusEffectTime: 5 # less harmful; sunglasses can block it
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
graph: WeaponTurretSyndicateDisposable
|
||||
node: disposableTurret
|
||||
- type: Repairable
|
||||
qualityNeeded: "Anchoring"
|
||||
qualityNeeded: Anchoring
|
||||
doAfterDelay: 3
|
||||
- type: TriggerOnEmptyGunshot
|
||||
- type: ExplodeOnTrigger
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@
|
|||
- type: ExaminableDamage
|
||||
messages: WindowMessages
|
||||
- type: Repairable
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: DamageVisuals
|
||||
thresholds: [8, 16, 25]
|
||||
damageDivisor: 3.333
|
||||
|
|
@ -177,6 +178,7 @@
|
|||
- type: ExaminableDamage
|
||||
messages: WindowMessages
|
||||
- type: Repairable
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
- type: DamageVisuals
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
- type: Repairable
|
||||
fuelCost: 15
|
||||
doAfterDelay: 5
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: Lock
|
||||
- type: LockVisuals
|
||||
- type: DamageVisuals
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
- type: Repairable
|
||||
fuelCost: 10
|
||||
doAfterDelay: 2
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: RGlass
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
- type: Repairable
|
||||
fuelCost: 15
|
||||
doAfterDelay: 3
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: RGlass
|
||||
|
|
|
|||
|
|
@ -120,6 +120,7 @@
|
|||
- type: Repairable
|
||||
fuelCost: 15
|
||||
doAfterDelay: 3
|
||||
qualityNeeded: Welding
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: RGlass
|
||||
|
|
@ -215,6 +216,7 @@
|
|||
- type: Repairable
|
||||
fuelCost: 15
|
||||
doAfterDelay: 3
|
||||
qualityNeeded: Welding
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: RGlass
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
- type: Repairable
|
||||
fuelCost: 10
|
||||
doAfterDelay: 2
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: RGlass
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
- type: Repairable
|
||||
fuelCost: 15
|
||||
doAfterDelay: 3
|
||||
qualityNeeded: Welding # DeltaV
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: RGlass
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@
|
|||
- type: ExaminableDamage
|
||||
messages: WindowMessages
|
||||
- type: Repairable
|
||||
doAfterDelay: 2 # DeltaV
|
||||
qualityNeeded: Welding
|
||||
- type: RCDDeconstructable
|
||||
cost: 6
|
||||
delay: 4
|
||||
|
|
@ -171,6 +173,8 @@
|
|||
layer:
|
||||
- GlassLayer
|
||||
- type: Repairable
|
||||
doAfterDelay: 2 # DeltaV
|
||||
qualityNeeded: Welding
|
||||
- type: Damageable
|
||||
damageContainer: StructuralInorganic
|
||||
damageModifierSet: Glass
|
||||
|
|
|
|||
|
|
@ -26,6 +26,11 @@
|
|||
- type: Tag
|
||||
tags:
|
||||
- Structure
|
||||
- type: ExaminableDamage # DeltaV
|
||||
messages: BaseStructureMessages
|
||||
- type: Repairable # Monolith - Nanite Applicator
|
||||
doAfterDelay: 3
|
||||
qualityNeeded: Applicating
|
||||
|
||||
- type: entity
|
||||
# This means that it's not anchored on spawn.
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
- WelderExperimental
|
||||
- JawsOfLife
|
||||
- TrayGoggles # DeltaV
|
||||
- ExperimentalNaniteApplicator # Monolith
|
||||
#- Fulton # DeltaV - moved to MiningDeltaV
|
||||
#- FultonBeacon # DeltaV - moved to MiningDeltaV
|
||||
|
||||
|
|
|
|||
|
|
@ -184,6 +184,7 @@
|
|||
- JawsOfLife
|
||||
- BorgModuleAdvancedTool
|
||||
- TrayGoggles # DeltaV
|
||||
- ExperimentalNaniteApplicator # Monolith
|
||||
#- Fulton # DeltaV - seperate tech Aerial Extraction
|
||||
#- FultonBeacon # DeltaV - seperate tech Aerial Extraction
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
- type: localizedDataset
|
||||
id: BaseStructureMessages
|
||||
values:
|
||||
prefix: comp-structure-damaged-
|
||||
count: 6
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
- BorgModulesStatic
|
||||
- BorgLimbsStatic
|
||||
- BorgModulesResearched
|
||||
- RoboticsEmagStatic
|
||||
- type: Machine
|
||||
board: SyndieExosuitFabricatorMachineCircuitboard
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
recipes:
|
||||
- HolotapeProjector
|
||||
- SheetPlasteel1Engineering
|
||||
- NaniteApplicator
|
||||
|
||||
## Dynamic
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,5 @@
|
|||
## Static
|
||||
|
||||
- type: latheRecipePack
|
||||
id: RoboticsEmagStatic
|
||||
recipes:
|
||||
- IdChipSyndie
|
||||
|
||||
- type: latheRecipePack
|
||||
id: BorgModulesSyndicateStatic
|
||||
recipes:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
- type: latheRecipePack
|
||||
id: RoboticsEmagStatic
|
||||
recipes:
|
||||
- IdChipSyndie
|
||||
- NaniteApplicatorSyndicate
|
||||
|
|
@ -130,7 +130,6 @@
|
|||
- CableApcStack
|
||||
- SheetPlasteel
|
||||
- SheetSteel
|
||||
belt:
|
||||
- RCDRecharging
|
||||
|
||||
- type: startingGear
|
||||
|
|
@ -164,7 +163,6 @@
|
|||
- SheetPlasteel
|
||||
- SheetSteel
|
||||
- WeaponAdvancedLaser
|
||||
belt:
|
||||
- RCDCombat
|
||||
|
||||
# Security
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
- type: listing
|
||||
id: UplinkSyndicateApplicator
|
||||
name: uplink-syndicate-applicator-name
|
||||
description: uplink-syndicate-applicator-desc
|
||||
productEntity: NaniteApplicatorSyndicate
|
||||
cost:
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkDisruption
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
- type: entity
|
||||
parent: JerryCan
|
||||
suffix: nanite fuel
|
||||
id: JerryCanNaniteFuel
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: reagent-name-nanite-fuel
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
tank:
|
||||
reagents:
|
||||
- ReagentId: NaniteFuel
|
||||
Quantity: 200
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
- type: entity
|
||||
name: nanite applicator
|
||||
parent: BaseItem
|
||||
id: NaniteApplicator
|
||||
description: "Advanced tool that uses nanotechnology to repair structures."
|
||||
components:
|
||||
- type: EmitSoundOnLand
|
||||
sound:
|
||||
path: /Audio/Items/welder_drop.ogg
|
||||
- type: Sprite
|
||||
sprite: _Mono/Objects/Tools/nanite_applicator.rsi
|
||||
layers:
|
||||
- state: icon
|
||||
- type: MeleeWeapon
|
||||
wideAnimationRotation: 135
|
||||
attackRate: 1.5
|
||||
damage:
|
||||
types:
|
||||
Blunt: 5
|
||||
soundHit:
|
||||
collection: MetalThud
|
||||
- type: Tool
|
||||
qualities:
|
||||
- Applicating
|
||||
useSound:
|
||||
collection: Welder
|
||||
- type: Welder
|
||||
fuelReagent: NaniteFuel
|
||||
onlyDisplayFuel: true
|
||||
- type: RefillableSolution
|
||||
solution: Welder
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
Welder:
|
||||
reagents:
|
||||
- ReagentId: NaniteFuel
|
||||
Quantity: 50
|
||||
maxVol: 50
|
||||
- type: PhysicalComposition
|
||||
materialComposition:
|
||||
Steel: 100
|
||||
- type: StaticPrice
|
||||
price: 100
|
||||
- type: GuideHelp
|
||||
guides:
|
||||
- Construction
|
||||
|
||||
- type: entity
|
||||
name: experimental nanite applicator
|
||||
parent: NaniteApplicator
|
||||
id: NaniteApplicatorExperimental
|
||||
description: "An experimental nanite applicator with a heavily upgraded nanite capacity capable of self-nanite generation."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Mono/Objects/Tools/nanite_applicator_experimental.rsi
|
||||
layers:
|
||||
- state: icon
|
||||
- type: SolutionRegeneration
|
||||
solution: Welder
|
||||
generated:
|
||||
reagents:
|
||||
- ReagentId: NaniteFuel
|
||||
Quantity: 1
|
||||
- type: StaticPrice
|
||||
price: 200
|
||||
|
||||
- type: entity
|
||||
name: advanced nanite applicator
|
||||
parent: NaniteApplicatorExperimental
|
||||
id: NaniteApplicatorSyndicate
|
||||
description: "Advanced nanite applicator with a heavily upgraded nanite capacity capable of self-nanite generation."
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Mono/Objects/Tools/nanite_applicator_syndicate.rsi
|
||||
layers:
|
||||
- state: icon
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
Welder:
|
||||
reagents:
|
||||
- ReagentId: NaniteFuel
|
||||
Quantity: 200
|
||||
maxVol: 200
|
||||
- type: SolutionRegeneration
|
||||
solution: Welder
|
||||
generated:
|
||||
reagents:
|
||||
- ReagentId: NaniteFuel
|
||||
Quantity: 3
|
||||
- type: StaticPrice
|
||||
price: 400
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
- type: reagent
|
||||
id: NaniteFuel
|
||||
name: reagent-name-nanite-fuel
|
||||
desc: reagent-desc-nanite-fuel
|
||||
physicalDesc: reagent-physical-desc-oily
|
||||
slipData:
|
||||
requiredSlipSpeed: 3.5
|
||||
flavor: bitter
|
||||
flavorMinimum: 0.01
|
||||
color: "#5775f4"
|
||||
recognizable: true
|
||||
boilingPoint: 8000.6
|
||||
meltingPoint: 659.7
|
||||
friction: 0.4
|
||||
metabolisms:
|
||||
Bloodstream:
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
damage:
|
||||
types:
|
||||
Poison: 0.4
|
||||
Slash: 0.3
|
||||
Piercing: 0.3
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
- type: latheRecipe
|
||||
parent: BaseToolRecipe
|
||||
id: NaniteApplicator
|
||||
result: NaniteApplicator
|
||||
materials:
|
||||
Steel: 400
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseToolRecipe
|
||||
id: ExperimentalNaniteApplicator
|
||||
result: NaniteApplicatorExperimental
|
||||
materials:
|
||||
Steel: 800
|
||||
Plasma: 200
|
||||
|
||||
- type: latheRecipe
|
||||
parent: BaseToolRecipe
|
||||
id: NaniteApplicatorSyndicate
|
||||
result: NaniteApplicatorSyndicate
|
||||
materials:
|
||||
Steel: 800
|
||||
Plasma: 200
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
- type: tool
|
||||
id: Applicating
|
||||
name: tool-quality-applicating-name
|
||||
toolName: tool-quality-nanite-applicator-name
|
||||
spawn: NaniteApplicator
|
||||
icon: { sprite: _Mono/Objects/Tools/nanite_applicator.rsi, state: icon }
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
- type: entity
|
||||
name: jerry can
|
||||
parent: BaseItem
|
||||
id: JerryCan
|
||||
suffix: empty
|
||||
description: A plastic jerry can with a spill-proof nozzle.
|
||||
components:
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
tank:
|
||||
maxVol: 200
|
||||
- type: Sprite
|
||||
sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi
|
||||
layers:
|
||||
- state: jerrycan
|
||||
- state: jerrycan1
|
||||
map: [ "enum.SolutionContainerLayers.Fill" ]
|
||||
visible: false
|
||||
- type: Item
|
||||
size: Normal
|
||||
sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi
|
||||
- type: MixableSolution
|
||||
solution: tank
|
||||
- type: RefillableSolution
|
||||
solution: tank
|
||||
- type: DrainableSolution
|
||||
solution: tank
|
||||
- type: ExaminableSolution
|
||||
solution: tank
|
||||
- type: DrawableSolution
|
||||
solution: tank
|
||||
- type: InjectableSolution
|
||||
solution: tank
|
||||
- type: SolutionTransfer
|
||||
canChangeTransferAmount: true
|
||||
- type: SolutionItemStatus
|
||||
solution: tank
|
||||
- type: ReagentTank
|
||||
tankType: Fuel
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
enum.TransferAmountUiKey.Key:
|
||||
type: TransferAmountBoundUserInterface
|
||||
- type: Edible
|
||||
solution: tank
|
||||
delay: 1.5
|
||||
destroyOnEmpty: false
|
||||
forceFeedDelay: 5
|
||||
- type: Appearance
|
||||
- type: SolutionContainerVisuals
|
||||
maxFillLevels: 5
|
||||
fillBaseName: jerrycan
|
||||
inHandsMaxFillLevels: 5
|
||||
inHandsFillBaseName: -fill-
|
||||
- type: StaticPrice
|
||||
price: 10
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
- type: Destructible
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 200
|
||||
behaviors:
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 20
|
||||
behaviors:
|
||||
- !type:PlaySoundBehavior
|
||||
sound:
|
||||
collection: MetalBreak
|
||||
params:
|
||||
volume: -4
|
||||
- !type:SpillBehavior
|
||||
solution: tank
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
SheetPlastic1:
|
||||
min: 0
|
||||
max: 1
|
||||
transferForensics: true
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- type: Label
|
||||
- type: TrashOnSolutionEmpty
|
||||
solution: tank
|
||||
|
||||
- type: entity
|
||||
parent: JerryCan
|
||||
suffix: welding fuel
|
||||
id: JerryCanWeldingFuel
|
||||
# categories: [ HideSpawnMenu ] # Frontier
|
||||
components:
|
||||
- type: Label
|
||||
currentLabel: reagent-name-welding-fuel
|
||||
- type: SolutionContainerManager
|
||||
solutions:
|
||||
tank:
|
||||
reagents:
|
||||
- ReagentId: WeldingFuel
|
||||
Quantity: 200
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 899 B |
|
After Width: | Height: | Size: 468 B |
|
After Width: | Height: | Size: 466 B |
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "made by avalon2855 on discord. Slight color modification by javadocs(Discord) so it didn't look like the experimental one.",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "base"
|
||||
},
|
||||
{
|
||||
"name": "icon",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 570 B |
|
After Width: | Height: | Size: 891 B |
|
After Width: | Height: | Size: 460 B |
|
After Width: | Height: | Size: 467 B |
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "made by avalon2855 on discord",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "base"
|
||||
},
|
||||
{
|
||||
"name": "icon",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 551 B |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 477 B |
|
After Width: | Height: | Size: 466 B |
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "made by avalon2855 on discord",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "base"
|
||||
},
|
||||
{
|
||||
"name": "icon",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 127 B |
|
After Width: | Height: | Size: 176 B |
|
After Width: | Height: | Size: 184 B |
|
After Width: | Height: | Size: 190 B |
|
After Width: | Height: | Size: 223 B |
|
After Width: | Height: | Size: 412 B |
|
After Width: | Height: | Size: 134 B |
|
After Width: | Height: | Size: 177 B |
|
After Width: | Height: | Size: 181 B |
|
After Width: | Height: | Size: 195 B |
|
After Width: | Height: | Size: 223 B |
|
After Width: | Height: | Size: 417 B |
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 118 B |
|
After Width: | Height: | Size: 145 B |
|
After Width: | Height: | Size: 150 B |
|
After Width: | Height: | Size: 166 B |
|
After Width: | Height: | Size: 183 B |
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Created by HoofedEar, modified by Whatstone (Discord)",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "jerrycan"
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left-fill-5",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-1",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-2",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-3",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-4",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right-fill-5",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "jerrycan1"
|
||||
},
|
||||
{
|
||||
"name": "jerrycan2"
|
||||
},
|
||||
{
|
||||
"name": "jerrycan3"
|
||||
},
|
||||
{
|
||||
"name": "jerrycan4"
|
||||
},
|
||||
{
|
||||
"name": "jerrycan5"
|
||||
}
|
||||
]
|
||||
}
|
||||