Port Starlight's expanded makeshift items (#4984)

* 1

* 2

* remove dismantle testing changes

* add ammount handling, and add random angle

* code-side things

* code-side things

* code-side things

* 3

* 4

* 5

* 6

* changed description for now

* whoops

* 7

* 8

* 9

* Texture fix

* Tada!

I diiid iiitttt

* Delete .icon.png-autosave.kra

* 10

* test

another

* 11

* Localization fixes 2

Also some minor rebalancing of armor/shield/helmet crafting

* ROOOUND 33333

* test

wawa

* wiz

* fixes

* MORE FIXES

* MORE MORE FIXES

* Smg mag fix

* Why does it have reflet

Removed reflect chance and made the damage the same as a plasteel arming sword

* belt fix

* phosphorus addition

* improvised round bulk crafting

* Update tags

* tags update 2

* Update tags.yml

* fix tags AGAIN

* TAG FIX AGAIN

* Fixed the sound path

* Fixed missing components hopefully

* fix it hopefully

* Update tidebreaker.yml

* fixed errors

* fixed?

* Update shields.yml

* Update tools.yml

* Fixes

* Update tools.yml

* Update tools.yml

* Update tools.yml

* Update tools.yml

* Update tools.yml

* screwdriver fix 200

* Update tools.yml

* Update tools.yml

* Apply suggestions from code review

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update SharedItemSwitchSystem.cs

* review changes

* Fix server and client files

* Namespace fixes.

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/crowbars.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update SharedWeaponDismantleOnShootSystem.cs

* Update Resources/Prototypes/Recipes/Crafting/Graphs/improvised/improvised_shotgun_shell.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Ammunition/Boxes/improvised.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

---------

Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>
Co-authored-by: KillerTheFlareon <tyler443344@outlook.com>
Co-authored-by: Matthew Herber <matthewherber@sbcglobal.net>
Co-authored-by: Athena-AI <AthenaTheAI@outlook.com>
Co-authored-by: stickycheZ101 <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>
Co-authored-by: stickycheZ101 <96800602+stickycheZ101@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: Vanessa <vanessalouwagie@gmail.com>
This commit is contained in:
Apachito 2025-12-31 14:08:48 -06:00 committed by GitHub
parent d7ebd18ad3
commit 58cc793e86
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
494 changed files with 7624 additions and 68 deletions

View File

@ -0,0 +1,35 @@
using Content.Shared._Starlight.ItemSwitch;
using Content.Shared._Starlight.ItemSwitch.Components;
using Robust.Client.GameObjects;
namespace Content.Client._Starlight.ItemSwitch;
public sealed class ItemSwitchSystem : SharedItemSwitchSystem
{
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ItemSwitchComponent, AfterAutoHandleStateEvent>(OnChanged);
}
private void OnChanged(Entity<ItemSwitchComponent> ent, ref AfterAutoHandleStateEvent args)
{
UpdateVisuals(ent, ent.Comp.State);
}
protected override void UpdateVisuals(Entity<ItemSwitchComponent> ent, string key)
{
base.UpdateVisuals(ent, key);
if (TryComp<SpriteComponent>(ent, out var sprite) && ent.Comp.States.TryGetValue(key, out var state))
{
if (state.Sprite != null)
{
_sprite.LayerSetSprite(ent.Owner, 0, state.Sprite);
}
}
}
}

View File

@ -0,0 +1,5 @@
using Content.Shared._Starlight.Weapon;
namespace Content.Client._Starlight.Weapon;
public sealed partial class WeaponDismantleOnShootSystem : SharedWeaponDismantleOnShootSystem;

View File

@ -170,6 +170,7 @@ public sealed partial class GunSystem : SharedGunSystem
RaiseLocalEvent(gunUid, new AmmoShotEvent()
{
FiredProjectiles = shotProjectiles,
Shooter = user, //starlight
});
void CreateAndFireProjectiles(EntityUid ammoEnt, AmmoComponent ammoComp)

View File

@ -0,0 +1,5 @@
using Content.Shared._Starlight.ItemSwitch;
namespace Content.Server._Starlight.ItemSwitch;
public sealed class ItemSwitchSystem : SharedItemSwitchSystem;

View File

@ -0,0 +1,5 @@
using Content.Shared._Starlight.Weapon;
namespace Content.Server._Starlight.Weapon;
public sealed class WeaponDismantleOnShootSystem : SharedWeaponDismantleOnShootSystem;

View File

@ -88,5 +88,8 @@ namespace Content.Shared.Verbs
public static readonly VerbCategory Adjust =
new("verb-categories-adjust", "/Textures/Interface/VerbIcons/screwdriver.png");
// Used by Starlight item switching verbs
public static readonly VerbCategory Switch = new("verb-categories-switch", null);
}
}

View File

@ -6,4 +6,5 @@ namespace Content.Shared.Weapons.Ranged.Events;
public sealed class AmmoShotEvent : EntityEventArgs
{
public List<EntityUid> FiredProjectiles = default!;
public EntityUid? Shooter = default!; //starlight
}

View File

@ -0,0 +1,7 @@
namespace Content.Shared._Starlight.Inventory;
/// <summary>
/// Raised when a lot slot is "used", this being unhandled will result in the default unequip action
/// </summary>
[ByRefEvent]
public record struct InventoryUseSlotEvent(EntityUid Actor, EntityUid Target, bool Handled = false);

View File

@ -0,0 +1,20 @@
using Robust.Shared.GameStates;
namespace Content.Shared._Starlight.Inventory;
public enum EquipMode
{
Remove,
Open
};
/// <summary>
/// Gives user-equipped storage a toggle so that the default action upon clicking the equipped bag can be switched from unequip to open
/// </summary>
[RegisterComponent, NetworkedComponent]
[AutoGenerateComponentState]
public sealed partial class SwitchableEquipModeComponent : Component
{
[AutoNetworkedField]
public EquipMode Mode = EquipMode.Remove;
}

View File

@ -0,0 +1,102 @@
using Content.Shared.Storage;
using Content.Shared.Storage.EntitySystems;
using Content.Shared.Inventory;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Clothing.EntitySystems;
using Content.Shared.Verbs;
using Robust.Shared.Utility;
using Robust.Shared.Audio.Systems;
using Content.Shared.Inventory.Events;
namespace Content.Shared._Starlight.Inventory;
public sealed class SwitchableEquipModeSystem : EntitySystem
{
[Dependency] private readonly SharedStorageSystem _storage = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly InventorySystem _inventory = default!;
[Dependency] private readonly SharedHandsSystem _hands = default!;
[Dependency] private readonly SharedUserInterfaceSystem _ui = default!;
private readonly Dictionary<EquipMode, string> _equipModeLocaleMapping = new() {
{ EquipMode.Remove, "equipmode-mode-remove" },
{ EquipMode.Open, "equipmode-mode-open" }
};
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<SwitchableEquipModeComponent, InventoryUseSlotEvent>(OnInventoryUseSlot);
SubscribeLocalEvent<SwitchableEquipModeComponent, GetVerbsEvent<ActivationVerb>>(OnGetVerbs);
SubscribeLocalEvent<SwitchableEquipModeComponent, GotUnequippedEvent>(OnUnequipped);
}
private void OnInventoryUseSlot(EntityUid uid, SwitchableEquipModeComponent switchModeComp, ref InventoryUseSlotEvent args)
{
if (!TryComp<StorageComponent>(uid, out var storageComp)) return;
switch (switchModeComp.Mode)
{
case EquipMode.Remove:
return; // pass to next
case EquipMode.Open:
args.Handled = true;
if (_ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key, args.Actor)) return; // stop sound spam
_storage.OpenStorageUI(args.Target, args.Actor);
_audio.PlayPredicted(storageComp.StorageOpenSound, uid, args.Actor);
break;
}
}
private void OnGetVerbs(EntityUid uid, SwitchableEquipModeComponent switchModeComp, ref GetVerbsEvent<ActivationVerb> args)
{
if (!args.CanInteract || !args.CanAccess) return;
if (!TryComp<StorageComponent>(uid, out var storageComp)) return;
if (!_inventory.TryGetContainingSlot(uid, out var slot)) return;
var modeCount = Enum.GetNames<EquipMode>().Length;
EquipMode nextMode = (EquipMode)(((int)switchModeComp.Mode + 1) % modeCount);
ActivationVerb switchVerb = new()
{
Text = Loc.GetString("equipmode-switch", ("type", Loc.GetString(new(_equipModeLocaleMapping[nextMode])))),
Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/outfit.svg.192dpi.png")),
Priority = -1,
Act = () => switchModeComp.Mode = nextMode
};
args.Verbs.Add(switchVerb);
// misc verbs
EntityUid user = args.User;
ActivationVerb unequipVerb = new()
{
Text = Loc.GetString("equipmode-remove"),
Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/eject.svg.192dpi.png")),
Priority = 0,
Act = () =>
{
_inventory.TryUnequip(user, slot.Name, false, true);
_hands.TryPickup(user, uid);
}
};
switch (switchModeComp.Mode)
{
// we want an unequip option if the default click option isn't to remove
case EquipMode.Open:
args.Verbs.Add(unequipVerb);
break;
default:
break;
};
}
private void OnUnequipped(Entity<SwitchableEquipModeComponent> ent, ref GotUnequippedEvent _) => ent.Comp.Mode = EquipMode.Remove; // revert to default behaviour
}

View File

@ -0,0 +1,92 @@
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
namespace Content.Shared._Starlight.ItemSwitch.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)]
public sealed partial class ItemSwitchComponent : Component
{
/// <summary>
/// The item's toggle state.
/// </summary>
[DataField, AutoNetworkedField]
public string State;
[DataField(readOnly: true)]
public Dictionary<string, ItemSwitchState> States = [];
/// <summary>
/// Can the entity be activated in the world.
/// </summary>
[DataField]
public bool OnActivate = true;
/// <summary>
/// If this is set to false then the item can't be toggled by pressing Z.
/// Use another system to do it then.
/// </summary>
[DataField]
public bool OnUse = true;
/// <summary>
/// Whether the item's toggle can be predicted by the client.
/// </summary>
/// /// <remarks>
/// If server-side systems affect the item's toggle, like charge/fuel systems, then the item is not predictable.
/// </remarks>
[ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField]
public bool Predictable = true;
}
[DataDefinition]
public sealed partial class ItemSwitchState : BoundUserInterfaceMessage
{
[DataField]
public string Verb;
[DataField]
public SoundSpecifier? SoundStateActivate;
[DataField]
public SoundSpecifier? SoundFailToActivate;
[DataField]
public ComponentRegistry? Components;
[DataField]
public bool RemoveComponents = true;
[DataField]
public bool Hidden = false;
[DataField]
public SpriteSpecifier? Sprite;
}
/// <summary>
/// Raised directed on an entity when its ItemToggle is attempted to be activated.
/// </summary>
[ByRefEvent]
public record struct ItemSwitchAttemptEvent()
{
public bool Cancelled = false;
public required readonly EntityUid? User { get; init; }
public required readonly string State { get; init; }
/// <summary>
/// Pop-up that gets shown to users explaining why the attempt was cancelled.
/// </summary>
public string? Popup { get; set; }
}
/// <summary>
/// Raised directed on an entity any sort of toggle is complete.
/// </summary>
[ByRefEvent]
public readonly record struct ItemSwitchedEvent()
{
public required readonly bool Predicted { get; init; }
public required readonly string State { get; init; }
public required readonly EntityUid? User { get; init; }
}

View File

@ -0,0 +1,192 @@
using System.Linq;
using Content.Shared.Clothing.Components;
using Content.Shared.Clothing.EntitySystems;
using Content.Shared.Interaction;
using Content.Shared.Interaction.Events;
using Content.Shared.Item;
using Content.Shared._Starlight.ItemSwitch.Components;
using Content.Shared.Popups;
using Content.Shared._Starlight.ItemSwitch.Visuals;
using Content.Shared.Verbs;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Network;
namespace Content.Shared._Starlight.ItemSwitch;
public abstract class SharedItemSwitchSystem : EntitySystem
{
[Dependency] private readonly INetManager _netManager = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly SharedItemSystem _item = default!;
[Dependency] private readonly ClothingSystem _clothing = default!;
private EntityQuery<ItemSwitchComponent> _query;
public override void Initialize()
{
base.Initialize();
_query = GetEntityQuery<ItemSwitchComponent>();
SubscribeLocalEvent<ItemSwitchComponent, MapInitEvent>(OnMapInit);
SubscribeLocalEvent<ItemSwitchComponent, UseInHandEvent>(OnUseInHand);
SubscribeLocalEvent<ItemSwitchComponent, GetVerbsEvent<ActivationVerb>>(OnActivateVerb);
SubscribeLocalEvent<ItemSwitchComponent, ActivateInWorldEvent>(OnActivate);
SubscribeLocalEvent<ClothingComponent, ItemSwitchedEvent>(UpdateClothingLayer);
}
private void OnMapInit(Entity<ItemSwitchComponent> ent, ref MapInitEvent args)
{
var state = ent.Comp.State;
state ??= ent.Comp.States.Keys.FirstOrDefault();
if (state != null)
Switch((ent, ent.Comp), state, predicted: ent.Comp.Predictable);
}
private void OnUseInHand(Entity<ItemSwitchComponent> ent, ref UseInHandEvent args)
{
if (args.Handled || !ent.Comp.OnUse || ent.Comp.States.Count == 0)
return;
args.Handled = true;
if (ent.Comp.States.TryGetValue(Next(ent), out var state) && state.Hidden)
return;
Switch((ent, ent.Comp), Next(ent), args.User, predicted: ent.Comp.Predictable);
}
private void OnActivateVerb(Entity<ItemSwitchComponent> ent, ref GetVerbsEvent<ActivationVerb> args)
{
if (!args.CanAccess || !args.CanInteract || !ent.Comp.OnActivate || ent.Comp.States.Count == 0) return;
var user = args.User;
int addedVerbs = 0;
foreach (var state in ent.Comp.States)
{
if (state.Value.Hidden)
continue;
args.Verbs.Add(new ActivationVerb()
{
Text = Loc.TryGetString(state.Value.Verb, out var title) ? title : state.Value.Verb,
Category = VerbCategory.Switch,
Act = () => Switch((ent.Owner, ent.Comp), state.Key, user, ent.Comp.Predictable)
});
addedVerbs++;
}
if (addedVerbs > 0)
args.ExtraCategories.Add(VerbCategory.Switch);
}
private void OnActivate(Entity<ItemSwitchComponent> ent, ref ActivateInWorldEvent args)
{
if (args.Handled || !ent.Comp.OnActivate)
return;
args.Handled = true;
if (ent.Comp.States.TryGetValue(Next(ent), out var state) && state.Hidden)
return;
Switch((ent.Owner, ent.Comp), Next(ent), args.User, predicted: ent.Comp.Predictable);
}
private static string Next(Entity<ItemSwitchComponent> ent)
{
var foundCurrent = false;
string firstState = null!;
foreach (var state in ent.Comp.States.Keys)
{
firstState ??= state;
if (foundCurrent)
return state;
if (state == ent.Comp.State)
foundCurrent = true;
}
return firstState;
}
/// <summary>
/// Used when an item is attempted to be toggled.
/// Sets its state to the opposite of what it is.
/// </summary>
/// <returns>Same as <see cref="TrySetActive"/></returns>
public bool Switch(Entity<ItemSwitchComponent?> ent, string key, EntityUid? user = null, bool predicted = true)
{
if (!_query.Resolve(ent, ref ent.Comp, false) || !ent.Comp.States.TryGetValue(key, out var state))
return false;
var uid = ent.Owner;
var comp = ent.Comp;
if (!comp.Predictable && _netManager.IsClient)
return true;
var attempt = new ItemSwitchAttemptEvent
{
User = user,
State = key
};
RaiseLocalEvent(uid, ref attempt);
if (ent.Comp.States.TryGetValue(ent.Comp.State, out var prevState) && prevState.RemoveComponents && prevState.Components is not null)
EntityManager.RemoveComponents(ent, prevState.Components);
if (state.Components is not null)
EntityManager.AddComponents(ent, state.Components);
if (!comp.Predictable) predicted = false;
if (attempt.Cancelled)
{
if (predicted)
_audio.PlayPredicted(state.SoundFailToActivate, uid, user);
else
_audio.PlayPvs(state.SoundFailToActivate, uid);
if (attempt.Popup != null && user != null)
if (predicted)
_popup.PopupClient(attempt.Popup, uid, user.Value);
else
_popup.PopupEntity(attempt.Popup, uid, user.Value);
return false;
}
if (predicted)
_audio.PlayPredicted(state.SoundStateActivate, uid, user);
else
_audio.PlayPvs(state.SoundStateActivate, uid);
comp.State = key;
UpdateVisuals((uid, comp), key);
Dirty(uid, comp);
var switched = new ItemSwitchedEvent { Predicted = predicted, State = key, User = user };
RaiseLocalEvent(uid, ref switched);
return true;
}
public virtual void VisualsChanged(Entity<ItemSwitchComponent> ent, string key)
{
}
protected virtual void UpdateVisuals(Entity<ItemSwitchComponent> ent, string key)
{
if (TryComp(ent, out AppearanceComponent? appearance))
_appearance.SetData(ent, ItemSwitchVisuals.Switched, key, appearance);
_item.SetHeldPrefix(ent, key);
VisualsChanged(ent, key);
}
private void UpdateClothingLayer(Entity<ClothingComponent> ent, ref ItemSwitchedEvent args)
=> _clothing.SetEquippedPrefix(ent, args.State, ent.Comp);
}

View File

@ -0,0 +1,11 @@
using Robust.Shared.Serialization;
namespace Content.Shared._Starlight.ItemSwitch.Visuals;
// Appearance Data key
[Serializable, NetSerializable]
public enum ItemSwitchLightVisuals : byte
{
Enabled,
Color
}

View File

@ -0,0 +1,16 @@
using Content.Shared.Actions;
using Robust.Shared.Serialization;
namespace Content.Shared._Starlight.ItemSwitch.Visuals;
public sealed partial class SwitchableActionEvent : InstantActionEvent;
/// <summary>
/// Generic enum keys for toggle-visualizer appearance data & sprite layers.
/// </summary>
[Serializable, NetSerializable]
public enum ItemSwitchVisuals : byte
{
Switched,
Layer
}

View File

@ -0,0 +1,53 @@
using Content.Shared.Damage;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared._Starlight.Weapon.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class WeaponDismantleOnShootComponent : Component
{
[DataField, AutoNetworkedField]
public float DismantleChance = 0.0f;
/// <summary>
/// How far to throw things when dismantling.
/// </summary>
[DataField, AutoNetworkedField]
public float DismantleDistance = 5f;
[DataField]
public SoundCollectionSpecifier? DismantleSound = new SoundCollectionSpecifier("MetalBreak");
[DataField, AutoNetworkedField]
[ViewVariables(VVAccess.ReadWrite)]
public DamageSpecifier SelfDamage = new();
[DataField, AutoNetworkedField]
public List<DismantleOnShootItem> items = [];
}
[DataDefinition]
[Serializable, NetSerializable]
public sealed partial class DismantleOnShootItem
{
public DismantleOnShootItem() { }
[DataField("id")]
public EntProtoId? PrototypeId = null;
/// <summary>
/// The probability that an item will spawn. Takes decimal form so 0.05 is 5%, 0.50 is 50% etc.
/// </summary>
[DataField("prob")]
public float SpawnProbability = 1;
[DataField]
public int Amount = 1;
[ViewVariables(VVAccess.ReadWrite), DataField]
public Angle LaunchAngle = Angle.FromDegrees(0);
[ViewVariables(VVAccess.ReadWrite), DataField]
public Angle AngleRandomness = Angle.FromDegrees(5);
}

View File

@ -0,0 +1,101 @@
using System.Numerics;
using Content.Shared._Starlight.Weapon.Components;
using Content.Shared.Throwing;
using Content.Shared.Weapons.Ranged.Events;
using Content.Shared.Damage;
using Content.Shared.Damage.Systems;
using Content.Shared.Weapons.Ranged.Components;
using Robust.Shared.Random;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Map;
using Robust.Shared.IoC;
using Robust.Shared.GameObjects;
namespace Content.Shared._Starlight.Weapon;
public abstract partial class SharedWeaponDismantleOnShootSystem : EntitySystem
{
[Dependency] protected readonly ThrowingSystem Throwing = default!;
[Dependency] protected readonly DamageableSystem Damageable = default!;
[Dependency] protected readonly SharedAudioSystem Audio = default!;
public override void Initialize()
{
SubscribeLocalEvent<WeaponDismantleOnShootComponent, AmmoShotEvent>(OnGunShot);
}
public bool DismantleCheck(Entity<WeaponDismantleOnShootComponent> ent, ref AmmoShotEvent args)
{
//roll to see if we explode or not
var random = IoCManager.Resolve<IRobustRandom>();
//1.0f means always true, 0.0f means always false
if (!random.Prob(ent.Comp.DismantleChance))
return false;
return true;
}
private void OnGunShot(Entity<WeaponDismantleOnShootComponent> ent, ref AmmoShotEvent args)
{
if (DismantleCheck(ent, ref args) == false)
return;
// we need the user (shooter) to proceed
if (!args.Shooter.HasValue)
return;
var shooter = args.Shooter.Value;
// apply the damage to the shooter (expects Entity<DamageableComponent?>)
Damageable.TryChangeDamage((shooter, null), ent.Comp.SelfDamage, origin: shooter);
Audio.PlayPredicted(ent.Comp.DismantleSound, shooter, shooter);
// get the user's transform
var userPosition = Transform(shooter).Coordinates;
if (!TryComp<GunComponent>(ent, out var gunComponent))
return;
var toCoordinates = gunComponent.ShootCoordinates;
if (toCoordinates == null)
return;
//loop through all of the items
var random = IoCManager.Resolve<IRobustRandom>();
foreach (var item in ent.Comp.items)
{
for (var i = 0; i < item.Amount; i++)
{
//roll to see if we destroy the item or not
if (!random.Prob(item.SpawnProbability))
continue;
//get the item entity
var itemEntity = Spawn(item.PrototypeId, userPosition);
var direction = toCoordinates.Value.Position;
//normalize it
direction = Vector2.Normalize(direction);
//multiply it by the distance
direction *= ent.Comp.DismantleDistance;
//rotate it by the angle
direction = item.LaunchAngle.RotateVec(direction);
//roll for random angle modifier
double randomAngle = random.NextDouble(-item.AngleRandomness.Degrees, item.AngleRandomness.Degrees);
//rotate it by the random angle
direction = Angle.FromDegrees(randomAngle).RotateVec(direction);
var throwDirection = new EntityCoordinates(shooter, direction);
Throwing.TryThrow(itemEntity, throwDirection, ent.Comp.DismantleDistance, compensateFriction: true);
}
}
//now we need to destroy the gun
//get the gun entity
PredictedQueueDel(ent.Owner);
}
}

View File

@ -0,0 +1,187 @@
crafting-menu-name-FDB = forged double-barrel shotgun
crafting-menu-text-FDB = The cousin of the improvised shotgun, this one is made from better quality parts and an additional barrel! Takes time and welding supplies to make, however.
crafting-menu-name-MP = makeshift pistol
crafting-menu-text-MP = A hastily built pistol, looks horrible and is liable to explode in your face.
crafting-menu-name-IP = improvised pistol
crafting-menu-text-IP = The next best thing in improvised pistols, comes with an internal magazine of five rounds.
crafting-menu-name-FP = forged pistol
crafting-menu-text-FP = A reliable, high quality firearm. Takes six-round clipazines, and needs welding supplies to make.
crafting-menu-name-IPB = improvised pistol bullet
crafting-menu-text-IPB = Better than nothing. Low-quality propellant means it won't hit as hard as a normal bullet.
crafting-menu-name-IPM = improvised pistol magazine
crafting-menu-text-IPM = A compact 6-round clipazine.
crafting-menu-name-MR = makeshift revolver
crafting-menu-text-MR = Hastily built revolver that has a good chance of backfiring into your face.
crafting-menu-name-IR = improvised revolver
crafting-menu-text-IR = An odd double-barrel revolver with no cylinder. The unique construction lowers the chance of a backfire, but does not eliminate it.
crafting-menu-name-FR = forged revolver
crafting-menu-text-FR = The best Tider Engineering can provide. Has 4 shots and will NOT blow up in your face, but needs welding supplies to make.
crafting-menu-name-IMB = improvised magnum bullet
crafting-menu-text-IMB = Better than nothing. Stuffed to the brim with phosphorus but still won't hit as hard.
crafting-menu-name-IMS = improvised magnum speedloader
crafting-menu-text-IMS = A simple speedloader capable of holding 4 shots.
crafting-menu-name-MB = modular barrel
crafting-menu-text-MB = For all your guncrafting needs!
crafting-menu-name-MSH = makeshift shotgun
crafting-menu-text-MSH = A robust hand-cannon that'll snap your wrist right off if you're not careful
crafting-menu-name-MS = makeshift smg
crafting-menu-text-MS = It can't hit the broad side of a barn.
crafting-menu-name-IS = improvised smg
crafting-menu-text-IS = It CAN hit the broad side of a barn, but not a person.
crafting-menu-name-FS = forged smg
crafting-menu-text-FS = Finally, an SMG that can hit a person! Needs to be welded together, so make sure you have welding supplies!
crafting-menu-name-ISM = improvised smg magazine
crafting-menu-text-ISM = The fact this thing works at all is nothing short of a miracle
crafting-menu-name-MRR = makeshift repeater rifle
crafting-menu-text-MRR = Too big to fit in your pocket, but small enough to fit in your bag. An odd weapon indeed.
crafting-menu-name-IRR = improvised repeater rifle
crafting-menu-text-IRR = The weird in-between cousin, too big to be stored comfortably, but also not that inaccurate.
crafting-menu-name-FRR = forged repeater rifle
crafting-menu-text-FRR = The peak of tider engineering. But does need welding supplies to finish.
crafting-menu-name-IRB = improvised rifle bullet
crafting-menu-text-IRB = Better than nothing. Fairly full with phosphorus but still won't hit as hard.
crafting-menu-name-IMGB = improvised ammo box
crafting-menu-text-IMGB = Organization is not the strong suit of any tider. Can hold all kinds of bullets.
crafting-menu-name-IMGP = improvised ammo box (.35 auto)
crafting-menu-text-IMGP = Organization is not the strong suit of any tider. Holds 40 improvised .35 auto rounds.
crafting-menu-name-IMGR = improvised ammo box (.30 rifle)
crafting-menu-text-IMGR = Organization is not the strong suit of any tider. Holds 40 improvised .30 rifle rounds.
crafting-menu-name-IMGM = improvised ammo box (.45 magnum)
crafting-menu-text-IMGM = Organization is not the strong suit of any tider. Holds 40 improvised .45 magnum rounds.
crafting-menu-name-IMGS = improvised ammo box (.50 shotgun)
crafting-menu-text-IMGS = Organization is not the strong suit of any tider. Holds 40 improvised .50 shotgun shells.
crafting-menu-name-phosphorus = crushed phosphorus
crafting-menu-text-phosphorus = Crushing the tips off of matches yields this bright red, exceedingly volatile compound.
crafting-menu-name-MC = makeshift crowbar
crafting-menu-text-MC = You must be REALLY desperate..
crafting-menu-name-IC = improvised crowbar
crafting-menu-text-IC = Not the best, not the worst. Needs welding supplies to finish.
crafting-menu-name-ISC = improvised screwdriver
crafting-menu-name-IW = improvised wirecutter
crafting-menu-name-IWR = improvised wrench
crafting-menu-name-IM = improvised multitool
crafting-menu-text-IM = The best you're gonna get. Needs welding supplies to finish.
crafting-menu-name-EW = emergency welder
crafting-menu-name-IO = improvised omnitool
crafting-menu-text-IO = The fact that this abomination of tiderkind actually works is nothing short of a miracle.
crafting-menu-name-FO = forged omnitool
crafting-menu-text-FO = The better, but more psychopathic omnitool.
crafting-menu-name-WH = wooden hilt
crafting-menu-text-WH = Needed in the construction of basic bladed weapons.
crafting-menu-name-PH = plasteel hilt
crafting-menu-text-PH = Needed in the construction of advanced bladed weapons.
crafting-menu-name-SB = steel blade
crafting-menu-text-SB = Needed in the construction of basic bladed weapons.
crafting-menu-name-PB = plasteel blade
crafting-menu-text-PB = Needed in the construction of advanced bladed weapons.
crafting-menu-name-MSW = makeshift sword
crafting-menu-text-MSW = Big and scary, but not that dangerous.
crafting-menu-name-ISW = improvised sword
crafting-menu-text-ISW = The budget option for aspiring maints knights.
crafting-menu-name-FSW = forged sword
crafting-menu-text-FSW = Now THAT'S a weapon! Best paired with equally shiny armor, needs welding.
crafting-menu-name-DSW = dawnbreaker
crafting-menu-text-DSW = Burn away the unholdy heretics with this weapon of justice!
crafting-menu-name-TSW = tidebreaker
crafting-menu-text-TSW = Crush those who oppose you!
crafting-menu-name-ISH = improvised shield
crafting-menu-text-ISH = Keep a solid sheet of metal between you and your enemies. Needs welding supplies to finish.
crafting-menu-name-FSH = forged buckler shield
crafting-menu-text-FSH = Lightweight plasteel shield forged by the best tidersmiths, does a good job of keeping you alive. Needs welding supplies to finish.
crafting-menu-name-FSHT = forged tower shield
crafting-menu-text-FSHT = Heavily armored plasteel shield, the extra plating and size making it more durable but heavier to hold. Needs welding supplies to finish.
crafting-menu-name-PSH = paladin shield
crafting-menu-text-PSH = Sturdy yet light in your hands, perfectly weighted. Shaped into perfection for sword fights, among other Paladins. Needs welding supplies to finish.
crafting-menu-name-PSHG = paladin greatshield
crafting-menu-text-PSHG = Become the wall you want to be. Exeedingly heavy to the point of needing a makeshift harness to simply hold. Needs welding supplies to finish.
crafting-menu-name-MVT = makeshift vest
crafting-menu-text-MVT = Arguably nothing is better than this. Scrap metal cobbled together with LV cables to TRY and protect you.
crafting-menu-name-IVT = improvised vest
crafting-menu-text-IVT = Actually better than nothing, but still a bit on the heavy side, good at keeping you from getting stabbed.
crafting-menu-name-FVT = forged vest
crafting-menu-text-FVT = A high quality armor vest based upon old earth mongolian designs, it is very effective at what it does.
crafting-menu-name-PVT = paladin suit
crafting-menu-text-PVT = The best a tidersmith can make! Don this suit of armor and deal swift justice to evildoers! Or.. do the evil yourself, I won't judge.
crafting-menu-name-MVTH = makeshift helmet
crafting-menu-text-MVTH = Nothing is, somehow, still better than this. Provides minimal protection, MIGHT save your head from a bullet.
crafting-menu-name-IVTH = improvised helmet
crafting-menu-text-IVTH = Better than nothing, by a slim margin.
crafting-menu-name-FVTH = forged helmet
crafting-menu-text-FVTH = Almost the best a tidersmith can offer, it'll reliably stop a bullet and protect your head from being smashed in.
crafting-menu-name-PVTH = paladin helmet
crafting-menu-text-PVTH = The best a tidersmith can offer, no holy crusade is fit to go on without a matching helmet!
crafting-menu-name-ETX = emergency toolbox
crafting-menu-name-MUL = multitool
crafting-menu-name-WRE = wrench
crafting-menu-name-WIR = wirecutter
crafting-menu-name-SCR = screwdriver
crafting-menu-name-CRO = crowbar
crafting-menu-name-EXOXY = extended-capacity emergency oxygen tank
crafting-menu-name-CGREN = green crayon
crafting-menu-name-CYELO = yellow crayon

View File

@ -0,0 +1,4 @@
# Ores
materials-raw-abyssium = raw abyssium
stack-phosphorus = crushed phosporus

View File

@ -117,7 +117,7 @@
- type: Sprite
sprite: _Harmony/Objects/Weapons/Melee/Shields/riot-laser-shield.rsi
state: icon
#state: riot_laser-icon
#state: riot_laser-icon
- type: Item
sprite: _Harmony/Objects/Weapons/Melee/Shields/riot-laser-shield.rsi
size: Ginormous
@ -148,7 +148,7 @@
- type: Sprite
sprite: _Harmony/Objects/Weapons/Melee/Shields/riot-bullet-shield.rsi
state: icon
#state: riot_bullet-icon
#state: riot_bullet-icon
- type: Item
sprite: _Harmony/Objects/Weapons/Melee/Shields/riot-bullet-shield.rsi
size: Ginormous
@ -157,7 +157,7 @@
sprite: _Harmony/Objects/Weapons/Melee/Shields/riot-bullet-shield.rsi
quickEquip: false
slots:
- suitStorage
- suitStorage
# End of Harmony Change
- type: Blocking
passiveBlockModifier:
@ -297,7 +297,7 @@
components:
# Begin of Harmony Change: Shield Rework -- Suit Storage Slot
- type: Sprite
sprite: _Harmony/Objects/Weapons/Melee/Shields/makeshift-shield.rsi
sprite: _Harmony/Objects/Weapons/Melee/Shields/makeshift-shield.rsi
state: icon
#state: makeshift-icon
- type: Item
@ -308,7 +308,7 @@
sprite: _Harmony/Objects/Weapons/Melee/Shields/makeshift-shield.rsi
quickEquip: false
slots:
- suitStorage
- suitStorage
# End of Harmony Change
- type: Blocking
passiveBlockModifier:
@ -354,6 +354,8 @@
min: 1
max: 2
#Starlight Changes End
- type: entity
name: web shield
parent: BaseShield

View File

@ -221,6 +221,9 @@
enabled: false
radius: 1.0
color: orange
- type: Tag
tags:
- EmergencyWelder #Starlight, distinction needed for use in crafting recipies.
- type: entity
parent: [ Welder, BaseXenoborgContraband ]

View File

@ -6,11 +6,11 @@
edges:
- to: shotgun
steps:
- tag: Pipe
- tag: ModularBarrel #Starlight
icon:
sprite: Structures/Piping/Atmospherics/pipe.rsi
state: pipeStraight
name: construction-graph-tag-pipe
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi

View File

@ -12,65 +12,72 @@
- material: Plastic
amount: 1
doAfter: 0.5
- tag: GlassShard
name: construction-graph-tag-glass-shard
icon:
sprite: Objects/Materials/Shards/shard.rsi
state: shard1
doAfter: 0.5
- tag: GlassShard
name: construction-graph-tag-glass-shard
icon:
sprite: Objects/Materials/Shards/shard.rsi
state: shard2
doAfter: 0.5
- tag: GlassShard
name: construction-graph-tag-glass-shard
icon:
sprite: Objects/Materials/Shards/shard.rsi
state: shard1
doAfter: 0.5
- tag: GlassShard
name: construction-graph-tag-glass-shard
icon:
sprite: Objects/Materials/Shards/shard.rsi
state: shard3
doAfter: 0.5
- tag: Matchstick
name: construction-graph-tag-match-stick
icon:
sprite: Objects/Tools/matches.rsi
state: match_unlit
doAfter: 0.5
- tag: Matchstick
name: construction-graph-tag-match-stick
icon:
sprite: Objects/Tools/matches.rsi
state: match_unlit
doAfter: 0.5
- tag: Matchstick
name: construction-graph-tag-match-stick
icon:
sprite: Objects/Tools/matches.rsi
state: match_unlit
doAfter: 0.5
- tag: Matchstick
name: construction-graph-tag-match-stick
icon:
sprite: Objects/Tools/matches.rsi
state: match_unlit
doAfter: 0.5
- tag: Matchstick
name: construction-graph-tag-match-stick
icon:
sprite: Objects/Tools/matches.rsi
state: match_unlit
doAfter: 0.5
- tag: Matchstick
name: construction-graph-tag-match-stick
icon:
sprite: Objects/Tools/matches.rsi
state: match_unlit
# Starlight - Makeshift Weapons Update
- material: Glass
amount: 3
doAfter: 1.5
- material: CrushedPhosphorus
amount: 4
# - tag: GlassShard
# name: construction-graph-tag-glass-shard
# icon:
# sprite: Objects/Materials/Shards/shard.rsi
# state: shard1
# doAfter: 0.5
# - tag: GlassShard
# name: construction-graph-tag-glass-shard
# icon:
# sprite: Objects/Materials/Shards/shard.rsi
# state: shard2
# doAfter: 0.5
# - tag: GlassShard
# name: construction-graph-tag-glass-shard
# icon:
# sprite: Objects/Materials/Shards/shard.rsi
# state: shard1
# doAfter: 0.5
# - tag: GlassShard
# name: construction-graph-tag-glass-shard
# icon:
# sprite: Objects/Materials/Shards/shard.rsi
# state: shard3
# doAfter: 0.5
# - tag: Matchstick
# name: construction-graph-tag-match-stick
# icon:
# sprite: Objects/Tools/matches.rsi
# state: match_unlit
# doAfter: 0.5
# - tag: Matchstick
# name: construction-graph-tag-match-stick
# icon:
# sprite: Objects/Tools/matches.rsi
# state: match_unlit
# doAfter: 0.5
# - tag: Matchstick
# name: construction-graph-tag-match-stick
# icon:
# sprite: Objects/Tools/matches.rsi
# state: match_unlit
# doAfter: 0.5
# - tag: Matchstick
# name: construction-graph-tag-match-stick
# icon:
# sprite: Objects/Tools/matches.rsi
# state: match_unlit
# doAfter: 0.5
# - tag: Matchstick
# name: construction-graph-tag-match-stick
# icon:
# sprite: Objects/Tools/matches.rsi
# state: match_unlit
# doAfter: 0.5
# - tag: Matchstick
# name: construction-graph-tag-match-stick
# icon:
# sprite: Objects/Tools/matches.rsi
# state: match_unlit
# END Starlight
doAfter: 0.5
- node: shell
entity: ShellShotgunImprovised

View File

@ -0,0 +1,111 @@
- type: entity
parent: BaseItem
id: BaseMagazineBoxImprovised
name: improvised ammunition box
description: This looks suspiciously like a .20 magazine box with a crude bullet drawing ontop. Mixing ammo is not advised.
components:
- type: BallisticAmmoProvider
mayTransfer: true
whitelist:
tags:
- CartridgePistol
- CartridgePistolImprovised
- CartridgeMagnum
- CartridgeMagnumImprovised
- CartridgeLightRifle
- CartridgeLightRifleImprovised
- ShellShotgun
- ShellShotgunImprovised
proto: null
capacity: 40
- type: Item
size: Small
- type: ContainerContainer
containers:
ballistic-ammo: !type:Container
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: MagazineVisuals
magState: mag
steps: 3
zeroVisible: false
- type: Appearance
- type: Construction
graph: ImprovisedMagazineBoxGraph
node: shell
- type: Tag
tags:
- ImprovisedAmmoBox
- type: entity
parent: BaseMagazineBoxImprovised
id: MagazineBoxImprovisedPistol
name: improvised ammunition box (.35 auto improvised)
components:
- type: BallisticAmmoProvider
proto: CartridgePistolImprovised
- type: Sprite
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: Construction
graph: ImprovisedMagazineBoxGraph
node: pistol
- type: entity
parent: BaseMagazineBoxImprovised
id: MagazineBoxImprovisedRifle
name: improvised ammunition box (.30 rifle improvised)
components:
- type: BallisticAmmoProvider
proto: CartridgeLightRifleImprovised
- type: Sprite
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: Construction
graph: ImprovisedMagazineBoxGraph
node: rifle
- type: entity
parent: BaseMagazineBoxImprovised
id: MagazineBoxImprovisedMagnum
name: improvised ammunition box (.45 magnum improvised)
components:
- type: BallisticAmmoProvider
proto: CartridgeMagnumImprovised
- type: Sprite
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: Construction
graph: ImprovisedMagazineBoxGraph
node: magnum
- type: entity
parent: BaseMagazineBoxImprovised
id: MagazineBoxImprovisedShotgun
name: improvised ammunition box (.50 shotgun improvised)
components:
- type: BallisticAmmoProvider
proto: ShellShotgunImprovised
- type: Sprite
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: Construction
graph: ImprovisedMagazineBoxGraph
node: shotgun

View File

@ -18,3 +18,32 @@
steps: 7
zeroVisible: false
- type: Appearance
- type: entity
id: SpeedLoaderMagnumImprovised
name: "speed loader (.45 magnum)"
parent: BaseSpeedLoaderMagnum
components:
- type: BallisticAmmoProvider
proto: null
whitelist:
tags:
- CartridgeMagnum
- CartridgeMagnumImprovised
capacity: 4
- type: MagazineVisuals
magState: base
steps: 5
zeroVisible: false
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/improvised_magnum_speed_loader.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: base-4
map: [ "enum.GunVisualLayers.Mag" ]
# Unshaded tip layer removed to avoid missing state errors (no corresponding 'base-unshaded-*' states in RSI)
- type: Construction
graph: ImprovisedMagnumSpeedLoaderGraph
node: shell

View File

@ -0,0 +1,74 @@
- type: entity
parent: ClothingHeadHelmetBase
id: ClothingHeadHelmetMakeshift
name: makeshift helmet
description: Cobbled together steel held together with lv cables in the vauge shape of a helmet. Barely does anything.
components:
- type: Armor
modifiers:
coefficients:
Blunt: 0.97
Slash: 0.96
Piercing: 0.97
Heat: 0.98
- type: Sprite
sprite: _Starlight/Clothing/Head/Helmets/makeshift.rsi
- type: Clothing
sprite: _Starlight/Clothing/Head/Helmets/makeshift.rsi
- type: Construction
graph: ClothingHeadHelmetMakeshiftGraph
node: helmet
- type: entity
parent: ClothingHeadHelmetBase
id: ClothingHeadHelmetImprovised
name: improvised helmet
description: Interlocking steel plates provides some decent protection, but is still barely better than nothing.
components:
- type: Armor
modifiers:
coefficients:
Blunt: 0.95
Slash: 0.93
Piercing: 0.95
Heat: 0.96
- type: Sprite
sprite: _Starlight/Clothing/Head/Helmets/improvised.rsi
- type: Clothing
sprite: _Starlight/Clothing/Head/Helmets/improvised.rsi
- type: entity
parent: ClothingHeadHelmetBase
id: ClothingHeadHelmetForged
name: forged helmet
description: A high-quality helmet made by some of the best Tidersmiths, it is finally worthwhile to have it on your head.
components:
- type: Armor
modifiers:
coefficients:
Blunt: 0.92
Slash: 0.90
Piercing: 0.92
Heat: 0.94
- type: Sprite
sprite: _Starlight/Clothing/Head/Helmets/forged.rsi
- type: Clothing
sprite: _Starlight/Clothing/Head/Helmets/forged.rsi
- type: entity
parent: ClothingHeadHelmetBase
id: ClothingHeadHelmetPaladin
name: paladin helmet
description: No true paladin can go without their helmet!
components:
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.88
Piercing: 0.90
Heat: 0.92
- type: Sprite
sprite: _Starlight/Clothing/Head/Helmets/paladin.rsi
- type: Clothing
sprite: _Starlight/Clothing/Head/Helmets/paladin.rsi

View File

@ -0,0 +1,91 @@
- type: entity
parent: ClothingOuterArmorForged
id: ClothingOuterArmorMakeshift
name: makeshift vest
description: Might catch a bullet. Might.
components:
- type: Sprite
sprite: _Starlight/Clothing/OuterClothing/Armor/makeshift.rsi
- type: Clothing
sprite: _Starlight/Clothing/OuterClothing/Armor/makeshift.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.80
Piercing: 0.90
Heat: 0.95
- type: ClothingSpeedModifier
walkModifier: 0.90
sprintModifier: 0.90
- type: ExplosionResistance
damageCoefficient: 0.95
- type: Construction
graph: ClothingOuterArmorMakeshiftGraph
node: vest
- type: entity
parent: ClothingOuterArmorForged
id: ClothingOuterArmorImprovised
name: improvised vest
description: Interlocking metal plates ensure you're decently protected against stabs, but not much else.
components:
- type: Sprite
sprite: _Starlight/Clothing/OuterClothing/Armor/improvised.rsi
- type: Clothing
sprite: _Starlight/Clothing/OuterClothing/Armor/improvised.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.85
Slash: 0.70
Piercing: 0.85
Heat: 0.90
- type: ClothingSpeedModifier
walkModifier: 0.95
sprintModifier: 0.95
- type: ExplosionResistance
damageCoefficient: 0.95
- type: entity
parent: [ClothingOuterBaseMedium, AllowSuitStorageClothing]
id: ClothingOuterArmorForged
name: forged vest
description: A product of high-quality tidesmithing, the additional leather padding and the swap for plasteel over steel ensures the armor is lightweight and effective.
components:
- type: Sprite
sprite: _Starlight/Clothing/OuterClothing/Armor/forged.rsi
- type: Clothing
sprite: _Starlight/Clothing/OuterClothing/Armor/forged.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.75
Slash: 0.65
Piercing: 0.70
Heat: 0.85
- type: ExplosionResistance
damageCoefficient: 0.90
- type: entity
parent: [ClothingOuterBaseMedium, AllowSuitStorageClothing]
id: ClothingOuterArmorPaladin
name: paladin suit
description: Be the paladin you want to be! Swing swords in maints at the terrified security officer! Battle MONSTERS that are totally not vent creatures! Get shot by lasers and die-! Wait what?
components:
- type: Sprite
sprite: _Starlight/Clothing/OuterClothing/Armor/paladin.rsi
- type: Clothing
sprite: _Starlight/Clothing/OuterClothing/Armor/paladin.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.70
Slash: 0.50
Piercing: 0.55
Heat: 0.85
- type: ClothingSpeedModifier
walkModifier: 0.85
sprintModifier: 0.85
- type: ExplosionResistance
damageCoefficient: 0.85

View File

@ -0,0 +1,46 @@
- type: entity
parent: MaterialBase
id: CrushedPhosphorus
name: crushed phosphorus
suffix: Full
components:
- type: Material
- type: Stack
stackType: CrushedPhosphorus
baseLayer: base
layerStates:
- phosphorus
- phosphorus_2
- phosphorus_3
- type: Sprite
sprite: _Starlight/Objects/Materials/phosphorus.rsi
state: phosphorus_3
layers:
- state: phosphorus_3
map: ["base"]
- type: Appearance
- type: Item
heldPrefix: phosphorus
- type: entity
parent: CrushedPhosphorus
id: CrushedPhosphorus10
suffix: 10
components:
- type: Sprite
state: phosphorus
- type: Stack
count: 10
- type: entity
parent: CrushedPhosphorus
id: CrushedPhosphorus1
suffix: Single
components:
- type: Sprite
state: phosphorus
- type: Stack
count: 1
- type: Construction
graph: CrushedPhosphorus
node: crushed

View File

@ -0,0 +1,127 @@
- type: entity
parent: BaseItem
id: UnfinishedForgedShotgun
name: assembled forged shotgun
description: Just needs the welding to keep everything in place.
components:
- type: Item
size: Normal
shape:
- 0,0,4,0
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Shotguns/forged_shotgun.rsi
state: ishotgunstep2
- type: ToolRefinable
refineResult:
- id: WeaponShotgunForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedShotgunGraph
node: shotgun
- type: entity
parent: BaseItem
id: UnfinishedPistolForged
name: forged pistol parts
description: Some assembly may be reqiured. Needs welding.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Pistols/forged_pistol.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: WeaponPistolForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedPistolGraph
node: shotgun
- type: entity
parent: BaseItem
id: UnfinishedRevolverForged
name: forged revolver parts
description: Some assembly may be reqiured. Needs welding.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Revolvers/forged_revolver.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: WeaponRevolverForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedRevolverGraph
node: shotgun
- type: entity
parent: BaseItem
id: UnfinishedSubMachineGunForged
name: forged SMG parts
description: Some assembly may be reqiured. Needs welding.
components:
- type: Item
size: Large
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/SMGs/forged_smg.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: WeaponSubMachineGunForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedSMGGraph
node: shotgun
- type: entity
parent: BaseItem
id: UnfinishedSniperForged
name: forged sniper parts
description: Some assembly may be reqiured. Needs welding.
components:
- type: Item
size: Large
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Snipers/forged_rifle.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: WeaponSniperForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedSniperGraph
node: shotgun
- type: entity
parent: BaseItem
id: ModularBarrel
name: modular barrel
description: A vital component in guncrafting.
components:
- type: Item
size: Normal
shape:
- 0,0,4,0
- type: Sprite
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
- type: Tag
tags:
- Metal
- ModularBarrel
- type: Construction
graph: ModularBarrelGraph
node: shotgun

View File

@ -0,0 +1,491 @@
- type: entity
parent: BaseItem
id: UnfinishedImprovisedCrowbar
name: crowbar parts
description: Needs welding to hold it together.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_crowbar.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: CrowbarImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ImprovisedCrowbarGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedImprovisedScrewdriver
name: screwdriver parts
description: Needs welding to hold it together.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_screwdriver.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ScrewdriverImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ImprovisedScrewdriverGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedImprovisedWirecutter
name: wirecutter parts
description: Needs welding to hold it together.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_wirecutters.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: WirecutterImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ImprovisedWirecutterGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedImprovisedWrench
name: wrench parts
description: Needs welding to hold it together.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_wrench.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: WrenchImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ImprovisedWrenchGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedImprovisedMultitool
name: multitool parts
description: Needs welding and some patience to put it all together.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_multitool.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: MultitoolImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ImprovisedMultitoolGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedImprovisedOmnitool
name: improvised omnitool parts
description: What are you doing..? Needs.. to be welded.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: OmnitoolImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ImprovisedOmnitoolGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedForgedOmnitool
name: forged omnitool parts
description: You are either crazy, or a psychopath. Likely both, needs to be welded.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: OmnitoolForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedOmnitoolGraph
node: tool
- type: entity
parent: BaseItem
id: HiltWood
name: wooden hilt
description: People will try to convince you otherwise, but wooden handles are not part of a high-quality sword, nor a knife.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Misc/wooden_hilt.rsi
state: icon
- type: Tag
tags:
- HiltWood
- type: Construction
graph: HiltWoodGraph
node: hilt
- type: entity
parent: BaseItem
id: HiltPlasteel
name: plasteel hilt
description: Part of high-quality sword & knife crafting.
components:
- type: Item
size: Small
- type: Sprite
sprite: _Starlight/Objects/Misc/plasteel_hilt.rsi
state: icon
- type: Tag
tags:
- HiltPlasteel
- type: Construction
graph: HiltPlasteelGraph
node: hilt
- type: entity
parent: BaseItem
id: BladeSteel
name: steel blade
description: Doesn't look very sharp..
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Objects/Misc/steel_blade.rsi
state: icon
- type: Tag
tags:
- BladeSteel
- type: Construction
graph: BladeSteelGraph
node: blade
- type: entity
parent: BaseItem
id: BladePlasteel
name: plasteel blade
description: Ouch! Just touching the edge can cut you.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Objects/Misc/plasteel_blade.rsi
state: icon
- type: Tag
tags:
- BladePlasteel
- type: Construction
graph: BladePlasteelGraph
node: blade
- type: entity
parent: BaseItem
id: UnfinishedSwordForged
name: forged sword parts
description: Simply needs a bit of welding around the edges.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/forged_sword.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: SwordForged
- type: Tag
tags:
- Metal
- type: Construction
graph: SwordForgedGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedClaymoreForged
name: tidebreaker parts
description: Simply needs a bit of welding around the edges.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/tidebreaker.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ClaymoreForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ClaymoreForgedGraph
node: tool
- type: entity
parent: BaseItem
id: UnfinishedImprovisedShield
name: improvised shield parts
description: Some assembly required, and welding too.
components:
- type: Item
size: Ginormous
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/improvised_shield.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ImprovisedShield
- type: Tag
tags:
- Metal
- type: Construction
graph: ImprovisedShieldGraph
node: shield
- type: entity
parent: BaseItem
id: UnfinishedForgedShieldBuckler
name: forged buckler shield parts
description: Some assembly required, and welding too.
components:
- type: Item
size: Ginormous
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/forged_buckler_shield.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ForgedShieldBuckler
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedShieldBucklerGraph
node: shield
- type: entity
parent: BaseItem
id: UnfinishedForgedShieldTower
name: forged tower shield parts
description: Some assembly required, and welding too.
components:
- type: Item
size: Ginormous
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/forged_tower_shield.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ForgedShieldTower
- type: Tag
tags:
- Metal
- type: Construction
graph: ForgedShieldTowerGraph
node: shield
- type: entity
parent: BaseItem
id: UnfinishedPaladinShield
name: paladin shield parts
description: The shield of a true paladin..! In pieces. Needs some welding.
components:
- type: Item
size: Ginormous
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/paladin_shield.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: PaladinShield
- type: Tag
tags:
- Metal
- type: Construction
graph: PaladinShieldGraph
node: shield
- type: entity
parent: BaseItem
id: UnfinishedPaladinShieldGreat
name: paladin greatshield parts
description: You're either crazy, or want to become a mobile emplacement. Needs a lot of welding..
components:
- type: Item
size: Ginormous
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/paladin_greatshield.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: PaladinShieldGreat
- type: Tag
tags:
- Metal
- type: Construction
graph: PaladinShieldGreatGraph
node: shield
- type: entity
parent: BaseItem
id: UnfinishedClothingOuterArmorImprovised
name: improvised vest parts
description: Some assembly required, and welding too.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Clothing/OuterClothing/Armor/improvised.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ClothingOuterArmorImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ClothingOuterArmorImprovisedGraph
node: vest
- type: entity
parent: BaseItem
id: UnfinishedClothingOuterArmorForged
name: forged vest parts
description: Some assembly required, and welding too.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Clothing/OuterClothing/Armor/forged.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ClothingOuterArmorForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ClothingOuterArmorForgedGraph
node: vest
- type: entity
parent: BaseItem
id: UnfinishedClothingOuterArmorPaladin
name: paladin suit parts
description: A LOT of assembly required, minimal welding needed. Become the paladin you've always wanted to be!
components:
- type: Item
size: Ginormous
- type: Sprite
sprite: _Starlight/Clothing/OuterClothing/Armor/paladin.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ClothingOuterArmorPaladin
- type: Tag
tags:
- Metal
- type: Construction
graph: ClothingOuterArmorPaladinGraph
node: vest
- type: entity
parent: BaseItem
id: UnfinishedClothingHeadHelmetImprovised
name: improvised helmet parts
description: Some assembly required, and welding too.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Clothing/Head/Helmets/improvised.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ClothingHeadHelmetImprovised
- type: Tag
tags:
- Metal
- type: Construction
graph: ClothingHeadHelmetImprovisedGraph
node: helmet
- type: entity
parent: BaseItem
id: UnfinishedClothingHeadHelmetForged
name: forged helmet parts
description: Some assembly required, and welding too.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Clothing/Head/Helmets/forged.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ClothingHeadHelmetForged
- type: Tag
tags:
- Metal
- type: Construction
graph: ClothingHeadHelmetForgedGraph
node: helmet
- type: entity
parent: BaseItem
id: UnfinishedClothingHeadHelmetPaladin
name: paladin helmet parts
description: No Paladin LARP is good without the helmet! Needs welding.
components:
- type: Item
size: Normal
- type: Sprite
sprite: _Starlight/Clothing/Head/Helmets/paladin.rsi
state: unfinished
- type: ToolRefinable
refineResult:
- id: ClothingHeadHelmetPaladin
- type: Tag
tags:
- Metal
- type: Construction
graph: ClothingHeadHelmetPaladinGraph
node: helmet

View File

@ -0,0 +1,304 @@
- type: entity
name: paladin shield
parent: BaseItem
id: PaladinShield
description: A shield for a true paladin! Good at deflecting hits with swords and absorbing the impact from bats, but not much else.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/paladin_shield.rsi
state: base
- type: Item
sprite: _Starlight/Objects/Weapons/Melee/paladin_shield.rsi
size: Ginormous
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/paladin_shield.rsi
quickEquip: false
slots:
- Back
- suitStorage
- type: Blocking
passiveBlockModifier:
coefficients:
Blunt: 0.7
Slash: 0.5 #Encourages long swordfights, which I really, really want to see.
Piercing: 0.8
Heat: 0.85
activeBlockModifier:
coefficients:
Blunt: 0.5
Slash: 0.3
Piercing: 0.7
Heat: 0.75
flatReductions:
Blunt: 1
Slash: 1
Piercing: 1
Heat: 1
- type: MeleeWeapon
damage:
types:
Blunt: 14 #Bonk!
soundHit:
path: "/Audio/Weapons/smash.ogg"
- type: Damageable
damageContainer: Shield
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 160
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 120
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel:
min: 4
max: 13
SheetSteel:
min: 5
max: 13
- type: entity
name: paladin greatshield
parent: PaladinShield
id: PaladinShieldGreat
description: You're up against the wall and I! AM! THE! FUCKING! WALL!
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/paladin_greatshield.rsi
state: base
- type: Item
sprite: _Starlight/Objects/Weapons/Melee/paladin_greatshield.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/paladin_greatshield.rsi
- type: Blocking
passiveBlockModifier:
coefficients:
Blunt: 0.7
Slash: 0.7
Piercing: 0.7
Heat: 0.85
activeBlockModifier:
coefficients: #Insanely high resist because normal shields suck when raising. This is a WALL.
Blunt: 0.1
Slash: 0.1
Piercing: 0.1
Heat: 0.75 # Achilles Heel
- type: MeleeWeapon
attackRate: 0.50 # Large and heavy but god help you if someone hits you with this thing.
damage:
types:
Blunt: 20
- type: ClothingSpeedModifier
walkModifier: 0.7
sprintModifier: 0.5
- type: HeldSpeedModifier
- type: Damageable
damageContainer: Shield
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 250 #Combined with damage resistances, IF raised, can tank 6 lector magdumps before finally breaking. You will STAM CRIT before then. If just held, or a laser is used it'll function like a normal shield more or less.
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel:
min: 6
max: 20
SheetSteel:
min: 4
max: 15
SheetGlass:
min: 2
max: 3
- type: entity
name: forged buckler shield
parent: PaladinShield
id: ForgedShieldBuckler
description: Made from the best plasteel the tidersmiths could offer. Decent all-arounder, however being made out of solid metal makes it get hot real fast.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/forged_buckler_shield.rsi
state: base
- type: Item
sprite: _Starlight/Objects/Weapons/Melee/forged_buckler_shield.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/forged_buckler_shield.rsi
- type: Blocking
passiveBlockModifier:
coefficients:
Blunt: 0.7
Slash: 0.6
Piercing: 0.7
Heat: 0.9
activeBlockModifier:
coefficients:
Blunt: 0.6
Slash: 0.5
Piercing: 0.6
Heat: 0.8
- type: MeleeWeapon
damage:
types:
Blunt: 12
- type: Damageable
damageContainer: Shield
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 140
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel:
min: 2
max: 6
SheetSteel:
min: 1
max: 4
- type: entity
name: forged tower shield
parent: ForgedShieldBuckler
id: ForgedShieldTower
description: Tall and menacing. A bit on the heavy side, however.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/forged_tower_shield.rsi
state: base
- type: Item
sprite: _Starlight/Objects/Weapons/Melee/forged_tower_shield.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/forged_tower_shield.rsi
- type: MeleeWeapon
attackRate: 0.75
damage:
types:
Blunt: 15
- type: ClothingSpeedModifier
walkModifier: 1
sprintModifier: 0.9
- type: HeldSpeedModifier
- type: Damageable
damageContainer: Shield
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 180
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel:
min: 2
max: 10
SheetSteel:
min: 4
max: 10
SheetGlass:
min: 1
max: 2
- type: entity
name: improvised shield
parent: PaladinShield
id: ImprovisedShield
description: Steel welded together in a interlocking pattern to hold up better to various kinds of blows. Don't expect it to do well in a gunfight, however.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/improvised_shield.rsi
state: base
- type: Item
sprite: _Starlight/Objects/Weapons/Melee/improvised_shield.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/improvised_shield.rsi
- type: Blocking
passiveBlockModifier:
coefficients:
Blunt: 0.8
Slash: 0.7
Piercing: 0.9
Heat: 0.95
activeBlockModifier:
coefficients:
Blunt: 0.7
Slash: 0.6
Piercing: 0.8
Heat: 0.85
- type: MeleeWeapon
damage:
types:
Blunt: 10
- type: Damageable
damageContainer: Shield
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 60
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel:
min: 2
max: 3
- type: Construction
graph: MakeshiftShield
node: makeshiftShield

View File

@ -0,0 +1,54 @@
- type: entity
name: makeshift crowbar
parent: BaseItem
id: CrowbarMakeshift
description: Barely better than nothing. Could be made into something greater with a welder, though..
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/crowbar_drop.ogg
- type: Sprite
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: base
- type: Item
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
- type: MeleeWeapon
wideAnimationRotation: -135
damage:
types:
Blunt: 8
- type: Tool
qualities:
- Prying
- type: ToolTileCompatible
delay: 4
- type: Prying
speedModifier: 0.25
- type: ToolRefinable
refineResult:
- id: CrowbarWrenchMakeshift
- type: Construction
graph: MakeshiftCrowbarGraph
node: tool
- type: Tag
tags:
- Crowbar
- type: entity
name: improvised crowbar
parent: CrowbarMakeshift
id: CrowbarImprovised
description: A few pieces of metal welded together and sharpened at the edges. Not the best tool, but it'll do.
components:
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_crowbar.rsi
state: icon
- type: Item
sprite: _Starlight/Objects/Tools/improvised_crowbar.rsi
storedSprite:
sprite: _Starlight/Objects/Tools/improvised_crowbar.rsi
state: storage
- type: ToolTileCompatible
delay: 2
- type: Prying
speedModifier: 0.50

View File

@ -0,0 +1,706 @@
- type: entity
name: makeshift crowbar-wrench
parent: BaseItem
id: CrowbarWrenchMakeshift
description: A makeshift combination of tools that's still only marginally better than nothing.
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/crowbar_drop.ogg
- type: Sprite
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: wrench
- type: Item
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
- type: Prying
enabled: true # Defaulting to active to match likely test setup.
speedModifier: 0.25
- type: ToolTileCompatible
delay: 4
- type: Tool
qualities:
- Prying
speedModifier: 0.25
useSound:
path: /Audio/Items/crowbar.ogg
- type: MeleeWeapon
wideAnimationRotation: -135
damage:
types:
Blunt: 9
- type: MultipleTool
statusShowBehavior: true
entries:
- behavior: Prying
sprite:
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: wrench
useSound:
path: /Audio/Items/crowbar.ogg
- type: entity
name: makeshift crowbar-wrench-screwdriver
parent: CrowbarWrenchMakeshift
id: CrowbarWrenchScrewdriverMakeshift
description: It's.. useful?
components:
- type: MeleeWeapon
wideAnimationRotation: -135
damage:
types:
Blunt: 9
Slash: 1
- type: Sprite
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: screwdriver
- type: MultipleTool
statusShowBehavior: true
entries:
- behavior: Prying
sprite:
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: screwdriver
useSound:
path: /Audio/Items/crowbar.ogg
- behavior: Screwing
sprite:
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: screwdriverflipped
- behavior: Anchoring
sprite:
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: screwdriverflipped
useSound:
path: /Audio/Items/ratchet.ogg
- type: ToolRefinable
refineResult:
- id: OmnitoolMakeshift
- type: Tag
tags:
- Crowbar
- Wrench
- Screwdriver
- type: entity
name: makeshift omni-tool
parent: CrowbarWrenchScrewdriverMakeshift
id: OmnitoolMakeshift
description: Who would've thought a red toolbox would have so many uses?
components:
- type: Tool
qualities:
- Prying
useSound:
path: /Audio/Items/crowbar.ogg
- type: MeleeWeapon
wideAnimationRotation: -135
damage:
types:
Blunt: 9
Slash: 2
- type: Sprite
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: wirecutter
- type: MultipleTool
statusShowBehavior: true
entries:
- behavior: Prying
sprite:
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: wirecutter
useSound:
path: /Audio/Items/crowbar.ogg
- behavior: Cutting
sprite:
sprite: _Starlight/Objects/Tools/makeshift_omnitool.rsi
state: wirecutterside
useSound:
path: /Audio/Items/wirecutter.ogg
- type: Tag
tags:
- Crowbar
- Wrench
- Screwdriver
- Wirecutter
- type: entity
name: improvised screwdriver
parent: BaseItem
id: ScrewdriverImprovised
description: A handful of metal with some cloth wrapped around it, and sharpened at the tip. It works.
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/screwdriver_drop.ogg
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_screwdriver.rsi
state: screwdriver
- type: Item
sprite: _Starlight/Objects/Tools/improvised_screwdriver.rsi
storedRotation: -90
- type: MeleeWeapon
wideAnimationRotation: -90
attackRate: 1
damage:
types:
Slash: 6 # I don't care if base screwdriver does pierce, that's dumb.
soundHit:
path: "/Audio/Weapons/bladeslice.ogg"
- type: Tool
qualities:
- Screwing
useSound:
collection: Screwdriver
speedModifier: 0.50
- type: Tag
tags:
- Screwdriver
- type: entity
name: improvised wirecutter
parent: BaseItem
id: WirecutterImprovised
description: The metal's just sharp enough to cut through thick wires.
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/wirecutter_drop.ogg
- type: Tag
tags:
- PlantSampleTaker
- Wirecutter
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_wirecutters.rsi
state: cutters
- type: MeleeWeapon
wideAnimationRotation: -90
damage:
types:
Slash: 2 #WHY IS WIZ SO OBSESSED WITH PIERCE
soundHit:
path: "/Audio/Items/wirecutter.ogg"
attackRate: 2
- type: Item
sprite: _Starlight/Objects/Tools/improvised_wirecutters.rsi
storedRotation: -90
- type: ToolTileCompatible
- type: Tool
qualities:
- Cutting
useSound:
path: /Audio/Items/wirecutter.ogg
speedModifier: 0.50
- type: entity
name: improvised wrench
parent: BaseItem
id: WrenchImprovised
description: One size fits all.. Kinda.
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/wrench_drop.ogg
- type: Tag
tags:
- Wrench
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_wrench.rsi
state: icon
- type: Item
sprite: _Starlight/Objects/Tools/improvised_wrench.rsi
storedSprite:
sprite: _Starlight/Objects/Tools/improvised_wrench.rsi
state: storage
- type: MeleeWeapon
wideAnimationRotation: 135
attackRate: 1.5
damage:
types:
Blunt: 4.5
soundHit:
collection: MetalThud
- type: Tool
qualities:
- Anchoring
useSound:
path: /Audio/Items/ratchet.ogg
speedModifier: 0.50
- type: entity
name: improvised multitool
parent: BaseItem
id: MultitoolImprovised
description: A not so advanced tool to break into places. Why else would you have this?
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/multitool_drop.ogg
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_multitool.rsi
layers:
- state: icon
- state: green-unlit
shader: unshaded
- type: Item
sprite: _Starlight/Objects/Tools/improvised_multitool.rsi
- type: Clothing
sprite: _Starlight/Objects/Tools/improvised_multitool.rsi
quickEquip: false
slots:
- Belt
- type: Tool
qualities:
- Pulsing
- type: NetworkConfigurator
- type: ActivatableUI
key: enum.NetworkConfiguratorUiKey.List
inHandsOnly: true
- type: UserInterface
interfaces:
enum.NetworkConfiguratorUiKey.List:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Configure:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Link:
type: NetworkConfiguratorBoundUserInterface
- type: Tag
tags:
- Multitool
- DoorElectronicsConfigurator
- type: entity
name: improvised omnitool
parent: BaseItem
id: OmnitoolImprovised
description: An unholy abomination only second to the great Throngler itself.
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/crowbar_drop.ogg
- type: Sprite
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
layers:
- state: icon
- state: welder_flame
visible: false
shader: unshaded
map: ["enum.ToggleableVisuals.Layer"]
- type: RefillableSolution
solution: Welder
- type: Tool
useSound:
collection: Welder
qualities: Welding
- type: SolutionContainerManager
solutions:
Welder:
reagents:
- ReagentId: WeldingFuel
Quantity: 50
maxVol: 50
- type: Welder
- type: GenericVisualizer
visuals:
enum.ToggleableVisuals.Enabled:
enum.ToggleableVisuals.Layer:
True: { visible: true }
False: { visible: false }
- type: Item
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
size: Normal
- type: ItemSwitch
state: Prying
states:
prying: !type:ItemSwitchState
verb: Prying
sprite:
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
state: icon
components:
- type: ToolTileCompatible
delay: 1
- type: Prying
speedModifier: 0.75
useSound:
path: /Audio/Items/crowbar.ogg
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
Slash: 5
screwing: !type:ItemSwitchState
verb: Screwing
sprite:
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
state: icon
components:
- type: Tool
qualities:
- Screwing
useSound:
collection: Screwdriver
speedModifier: 0.75
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
Slash: 5
cutting: !type:ItemSwitchState
verb: Cutting
sprite:
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
state: icon
components:
- type: ToolTileCompatible
- type: Tool
qualities:
- Cutting
useSound:
path: /Audio/Items/wirecutter.ogg
speedModifier: 0.75
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
Slash: 5
anchoring: !type:ItemSwitchState
verb: Anchoring
sprite:
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
state: icon
components:
- type: Tool
qualities:
- Anchoring
useSound:
path: /Audio/Items/ratchet.ogg
speedModifier: 0.75
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
Slash: 5
pulsing: !type:ItemSwitchState
verb: Pulsing
sprite:
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
state: icon
components:
- type: Tool
qualities:
- Pulsing
- type: NetworkConfigurator
- type: ActivatableUI
key: enum.NetworkConfiguratorUiKey.List
inHandsOnly: true
- type: UserInterface
interfaces:
enum.NetworkConfiguratorUiKey.List:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Configure:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Link:
type: NetworkConfiguratorBoundUserInterface
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
Slash: 5
welding: !type:ItemSwitchState
verb: Welding
sprite:
sprite: _Starlight/Objects/Tools/improvised_omnitool.rsi
state: icon
components:
- type: ItemToggle
predictable: false
soundActivate:
collection: WelderOn
soundDeactivate:
collection: WelderOff
- type: ItemToggleSize
activatedSize: Large
- type: ItemToggleHot
- type: ComponentToggler
components:
- type: DisarmMalus
malus: 0.6
- type: ToggleableLightVisuals
spriteLayer: flame
- type: RefillableSolution
solution: Welder
- type: Tool
useSound:
collection: Welder
qualities: Welding
speedModifier: 0.75
- type: PointLight
enabled: false
radius: 1.5
color: orange
netsync: false
- type: ItemTogglePointLight
- type: Appearance
- type: RequiresEyeProtection
- type: IgnitionSource
temperature: 700
- type: ItemToggleMeleeWeapon
activatedSoundOnHit:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
activatedSoundOnHitNoDamage:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
deactivatedSoundOnHitNoDamage:
collection: MetalThud
activatedDamage:
types: # Have you ever been attacked by a lit welder, a sharp object, and a blunt crowbar all at the same time? That hurts.
Blunt: 4
Slash: 4
Heat: 5
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
Slash: 5
- type: Tag
tags:
- Multitool
- DoorElectronicsConfigurator
- Wrench
- PlantSampleTaker
- Wirecutter
- Screwdriver
- type: entity
name: forged omnitool
parent: BaseItem
id: OmnitoolForged
description: Some absolute psychopath decided to saw off the heads of all tools they could find and smash it together into a makeshift drill. Looks nice, considering it's origins.
components:
- type: EmitSoundOnLand
sound:
path: /Audio/Items/crowbar_drop.ogg
- type: Sprite
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
layers:
- state: icon
- state: welder_flame
visible: false
shader: unshaded
map: ["enum.ToggleableVisuals.Layer"]
- type: RefillableSolution
solution: Welder
- type: Tool
useSound:
collection: Welder
qualities: Welding
- type: SolutionContainerManager
solutions:
Welder:
reagents:
- ReagentId: WeldingFuel
Quantity: 50
maxVol: 100
- type: Welder
- type: GenericVisualizer
visuals:
enum.ToggleableVisuals.Enabled:
enum.ToggleableVisuals.Layer:
True: { visible: true }
False: { visible: false }
- type: Item
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
size: Normal
- type: ItemSwitch
state: Prying
states:
prying: !type:ItemSwitchState
verb: Prying
sprite:
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
state: crowbar
components:
- type: ToolTileCompatible
delay: 1
- type: Prying
useSound:
path: /Audio/Items/crowbar.ogg
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 9 #one extra damage, as a treat
screwing: !type:ItemSwitchState
verb: Screwing
sprite:
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
state: screwdriver
components:
- type: Tool
qualities:
- Screwing
useSound:
collection: Screwdriver
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Slash: 7
cutting: !type:ItemSwitchState
verb: Cutting
sprite:
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
state: cutters
components:
- type: ToolTileCompatible
- type: Tool
qualities:
- Cutting
useSound:
path: /Audio/Items/wirecutter.ogg
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Slash: 4
anchoring: !type:ItemSwitchState
verb: Anchoring
sprite:
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
state: wrench
components:
- type: Tool
qualities:
- Anchoring
useSound:
path: /Audio/Items/ratchet.ogg
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5.5
pulsing: !type:ItemSwitchState
verb: Pulsing
sprite:
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
state: multi
components:
- type: Tool
qualities:
- Pulsing
- type: NetworkConfigurator
- type: ActivatableUI
key: enum.NetworkConfiguratorUiKey.List
inHandsOnly: true
- type: UserInterface
interfaces:
enum.NetworkConfiguratorUiKey.List:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Configure:
type: NetworkConfiguratorBoundUserInterface
enum.NetworkConfiguratorUiKey.Link:
type: NetworkConfiguratorBoundUserInterface
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
welding: !type:ItemSwitchState
verb: Welding
sprite:
sprite: _Starlight/Objects/Tools/forged_omnitool.rsi
state: welder
components:
- type: ItemToggle
predictable: false
soundActivate:
collection: WelderOn
soundDeactivate:
collection: WelderOff
- type: ItemToggleSize
activatedSize: Large
- type: ItemToggleHot
- type: ComponentToggler
components:
- type: DisarmMalus
malus: 0.6
- type: ToggleableLightVisuals
spriteLayer: flame
- type: RefillableSolution
solution: Welder
- type: Tool
useSound:
collection: Welder
qualities: Welding
- type: PointLight
enabled: false
radius: 2.5
color: orange
netsync: false
- type: ItemTogglePointLight
- type: Appearance
- type: RequiresEyeProtection
- type: IgnitionSource
temperature: 700
- type: ItemToggleMeleeWeapon
activatedSoundOnHit:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
activatedSoundOnHitNoDamage:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
deactivatedSoundOnHitNoDamage:
collection: MetalThud
activatedDamage:
types:
Heat: 10
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
collection: MetalThud
damage:
types:
Blunt: 5
- type: Tag
tags:
- Multitool
- DoorElectronicsConfigurator
- Wrench
- PlantSampleTaker
- Wirecutter
- Screwdriver

View File

@ -0,0 +1,21 @@
- type: entity
id: CartridgeLightRifleImprovised
name: improvised cartridge (.30 rifle)
description: A handmade rifle bullet, uses phosphorus as a propellent instead of gunpowder.
parent: BaseCartridgeLightRifle
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi
layers:
- state: base
map: [ "enum.AmmoVisualLayers.Base" ]
- state: tip
map: [ "enum.AmmoVisualLayers.Tip" ]
color: "#717171"
- type: Tag
tags:
- Cartridge
- CartridgeLightRifleImprovised
- type: Construction
graph: ImprovisedLightRifleBulletGraph
node: shell

View File

@ -0,0 +1,21 @@
- type: entity
id: CartridgeMagnumImprovised
name: improvised cartridge (.45 magnum)
description: A handmade revolver bullet, stuffed to the brim with phosphorus for extra 'oomph'. Still not as good as a normal magnum bullet.
parent: BaseCartridgeMagnum
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi
layers:
- state: base
map: [ "enum.AmmoVisualLayers.Base" ]
- state: tip
map: [ "enum.AmmoVisualLayers.Tip" ]
color: "#717171"
- type: Tag
tags:
- Cartridge
- CartridgeMagnumImprovised
- type: Construction
graph: ImprovisedMagnumBulletGraph
node: shell

View File

@ -0,0 +1,21 @@
- type: entity
id: CartridgePistolImprovised
name: improvised cartridge (.35 auto)
description: A handmade pistol bullet, uses phosphorus as a propellent instead of gunpowder which makes it much less effective.
parent: BaseCartridgePistol
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Casings/improvised_casing.rsi
layers:
- state: base
map: [ "enum.AmmoVisualLayers.Base" ]
- state: tip
map: [ "enum.AmmoVisualLayers.Tip" ]
color: "#717171"
- type: Tag
tags:
- Cartridge
- CartridgePistolImprovised
- type: Construction
graph: ImprovisedPistolBulletGraph
node: shell

View File

@ -0,0 +1,52 @@
- type: entity
id: MagazinePistolImprovised
name: "Improvised Pistol Magazine (.35)"
parent: BaseMagazinePistol
components:
- type: Item
size: Tiny
- type: BallisticAmmoProvider
proto: null
capacity: 6
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: Tag
tags:
- MagazinePistolImprovised
- type: Construction
graph: ImprovisedPistolMagazineGraph
node: shell
- type: entity
id: MagazinePistolSubMachineGunImprovised
name: Improvised SMG magazine (.35 auto)
parent: [ BaseMagazinePistolSubMachineGun, BaseMinorContraband ]
components:
- type: BallisticAmmoProvider
proto: null
capacity: 20
whitelist:
tags:
- CartridgePistol
- CartridgePistolImprovised
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
- type: MagazineVisuals
magState: mag
steps: 3
- type: Tag
tags:
- MagazineSMGImprovised
- type: Construction
graph: ImprovisedMagazinePistolSubMachineGunGraph
node: shell

View File

@ -0,0 +1,167 @@
- type: entity
name: makeshift pistol
parent: BaseWeaponPistol
id: WeaponPistolMakeshiftCrafted
description: Little more than a space eoka. Very unreliable.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Pistols/makeshift_pistol_crafted.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Pistols/makeshift_pistol_crafted.rsi
- type: Gun
fireRate: 5 #Each bullet is manually loaded, no reason to impose a firerate limit.
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/mk58.ogg
- type: ChamberMagazineAmmoProvider
soundRack:
path: /Audio/Weapons/Guns/Cock/pistol_cock.ogg
- type: ItemSlots
slots:
gun_chamber:
name: Chamber
startingItem: CartridgePistolSpent
priority: 1
whitelist:
tags:
- CartridgePistol
- type: Construction
graph: MakeshiftPistolCraftedGraph
node: shotgun
- type: WeaponDismantleOnShoot
dismantleChance: 0.20
selfDamage:
types:
Blunt: 6
Heat: 6
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: RifleStock
launchAngle: 180
prob: 0.80
- type: entity
name: improvised pistol
parent: BaseWeaponSniper
id: WeaponPistolImprovised
description: A cobbled together pistol with an internal magazine. More reliable, but still liable to blow up in your face.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Pistols/improvised_pistol.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Pistols/improvised_pistol.rsi
- type: Gun
fireRate: 3
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/mk58.ogg
minAngle: 1
maxAngle: 30
angleIncrease: 12
angleDecay: 4
- type: BallisticAmmoProvider
capacity: 5
proto: CartridgePistol
whitelist:
tags:
- CartridgePistol
- type: Item
size: Small #Magazine location makes it bigger but should still fit in a pocket. (This basically serves to keep people from putting it in a boot/stacking them as easily)
shape:
- 0,0,1,0
- 0,1,1,1
- type: Construction
graph: ImprovisedPistolGraph
node: shotgun
- type: WeaponDismantleOnShoot
dismantleChance: 0.10
selfDamage:
types:
Blunt: 6
Heat: 6
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: SheetSteel1
launchAngle: 67
prob: 0.20
- id: SheetSteel1
launchAngle: 87
prob: 0.20
- id: SheetSteel1
launchAngle: 270
prob: 0.20
- id: RifleStock
launchAngle: 180
prob: 0.80
- type: entity
name: forged pistol
parent: BaseWeaponPistol
id: WeaponPistolForged
description: A reliable magazine-fed pistol made by the best tider blacksmiths.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Pistols/forged_pistol.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Pistols/forged_pistol.rsi
- type: MagazineVisuals
magState: mag
steps: 3
zeroVisible: true
- type: Item
size: Small
shape:
- 0,0,1,0
- 0,1,1,1
- type: Gun
fireRate: 4
minAngle: 1
maxAngle: 20
angleIncrease: 8
angleDecay: 9
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/mk58.ogg
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
startingItem: null
whitelist:
tags:
- MagazinePistolImprovised
whitelistFailPopup: gun-magazine-whitelist-fail
gun_chamber:
name: Chamber
startingItem: null
priority: 1
whitelist:
tags:
- CartridgePistol
- CartridgePistolImprovised

View File

@ -0,0 +1,90 @@
- type: entity
name: Makeshift Revolver
parent: [BaseWeaponRevolver, BaseMinorContraband]
id: WeaponRevolverMakeshift
description: Little more than a hand-cannon with a high chance of blowing up in your face.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Revolvers/makeshift_revolver.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Revolvers/makeshift_revolver.rsi
- type: RevolverAmmoProvider
whitelist:
tags:
- CartridgeMagnum
- CartridgeMagnumImprovised
- SpeedLoaderMagnum
- SpeedLoaderMagnumImprovised
proto: null
capacity: 1
chambers: [ null]
ammoSlots: [ null]
- type: Construction
graph: MakeshiftRevolverGraph
node: shotgun
- type: WeaponDismantleOnShoot
dismantleChance: 0.30
selfDamage:
types:
Blunt: 8
Heat: 8
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: RifleStock
launchAngle: 180
prob: 0.80
- type: entity
name: Improvised Revolver
parent: WeaponRevolverMakeshift
id: WeaponRevolverImprovised
description: A revolver that has two barrels and no cylinder. Can you really call this a revolver?
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Revolvers/improvised_revolver.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Revolvers/improvised_revolver.rsi
- type: RevolverAmmoProvider
capacity: 2
chambers: [ null, null]
ammoSlots: [ null, null]
- type: Construction
graph: ImprovisedRevolverGraph
node: shotgun
- type: WeaponDismantleOnShoot
dismantleChance: 0.10
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: SheetSteel1
launchAngle: 67
prob: 0.70
- id: RifleStock
launchAngle: 180
prob: 0.80
- type: entity
name: Forged Revolver
parent: WeaponRevolverImprovised
id: WeaponRevolverForged
description: The best Tider engineering can offer, a revolver with the ability to hold 4 bullets!
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Revolvers/forged_revolver.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Revolvers/forged_revolver.rsi
- type: RevolverAmmoProvider
capacity: 4
chambers: [ null, null, null, null]
ammoSlots: [ null, null, null, null]
- type: WeaponDismantleOnShoot
dismantleChance: 0

View File

@ -0,0 +1,155 @@
- type: entity
name: makeshift SMG
parent: BaseWeaponSubMachineGun
id: WeaponSubMachineGunMakeshift
description: Held together with cloth and dreams, it rattles ominously with every shot.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/SMGs/makeshift_smg.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/SMGs/makeshift_smg.rsi
- type: Item
size: Normal
- type: Gun
fireRate: 9
minAngle: 32
angleIncrease: 3
maxAngle: 64
selectedMode: FullAuto
availableModes:
- FullAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/smg.ogg
- type: MagazineVisuals
magState: mag
steps: 1
zeroVisible: true
- type: Appearance
- type: ItemSlots
slots:
gun_magazine:
name: Magazine
startingItem: null
insertSound: /Audio/Weapons/Guns/MagIn/smg_magin.ogg
ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg
priority: 2
whitelist:
tags:
- MagazineSMGImprovised
whitelistFailPopup: gun-magazine-whitelist-fail
gun_chamber:
name: Chamber
startingItem: null
priority: 1
whitelist:
tags:
- CartridgePistolImprovised
- type: Construction
graph: MakeshiftSMGGraph
node: shotgun
- type: WeaponDismantleOnShoot
dismantleChance: 0.03 #Very low to account for automatic weapon fire, if entire mag is shot 3/10 SMGs will survive
selfDamage:
types:
Blunt: 5
Heat: 5
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.30
- id: RifleStock
launchAngle: 180
prob: 0.80
- id: MagazinePistolSubMachineGunImprovised
launchAngle: 190
prob: 1
- type: entity
name: improvised SMG
parent: WeaponSubMachineGunMakeshift
id: WeaponSubMachineGunImprovised
description: It's tightly held together by cloth, steel and determination.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/SMGs/improvised_smg.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/SMGs/makeshift_smg.rsi
- type: Item
size: Large
- type: Wieldable
unwieldOnUse: false
- type: GunWieldBonus
minAngle: -5
maxAngle: -10
- type: Gun
fireRate: 7
minAngle: 16
angleIncrease: 3
maxAngle: 32
- type: Appearance
- type: Construction
graph: ImprovisedSMGGraph
node: shotgun
- type: WeaponDismantleOnShoot
dismantleChance: 0.01
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: SheetSteel1
launchAngle: 67
prob: 0.20
- id: SheetSteel1
launchAngle: 87
prob: 0.20
- id: SheetSteel1
launchAngle: 270
prob: 0.20
- id: RifleStock
launchAngle: 180
prob: 0.80
- type: entity
name: forged SMG
parent: WeaponSubMachineGunImprovised
id: WeaponSubMachineGunForged
description: The best a tider could get, steel and plasteel welded together for a pretty decent SMG, though the heavy bolt on it does slow the shooting down.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/SMGs/forged_smg.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-0
map: ["enum.GunVisualLayers.Mag"]
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/SMGs/forged_smg.rsi
- type: Wieldable
unwieldOnUse: false
- type: GunWieldBonus
minAngle: -10
maxAngle: -15
- type: Gun
fireRate: 5
minAngle: 16
angleIncrease: 3
maxAngle: 32
- type: Appearance
- type: WeaponDismantleOnShoot
dismantleChance: 0

View File

@ -0,0 +1,55 @@
- type: entity
name: forged double-barrel shotgun
parent: [BaseWeaponShotgun, BaseGunWieldable, BaseMinorContraband]
id: WeaponShotgunForged
description: Decently made double-barrel shotgun, reinforced with mixed steel and plasteel plates to keep it together. Not as accurate as a real gun.
components:
- type: Item
sprite: _Starlight/Objects/Weapons/Guns/Shotguns/forged_shotgun_inhands_64x.rsi
size: Normal
shape:
- 0,0,4,0
- type: Gun
fireRate: 3
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Shotguns/forged_shotgun.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Shotguns/forged_shotgun.rsi
- type: GunRequiresWield
- type: BallisticAmmoProvider
capacity: 2
proto: null
- type: entity
name: makeshift shotgun
parent: [WeaponFlareGunSecurity, BaseMinorContraband]
id: WeaponShotgunMakeshift
description: A small hand-cannon that fires .50 shotgun shells. Has no cloth to hold it together, so it has a high chance of falling apart with every shot.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Shotguns/makeshift_shotgun.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- type: Item
size: Small
sprite: _Starlight/Objects/Weapons/Guns/Shotguns/makeshift_shotgun.rsi
- type: Construction
graph: MakeshiftShotgunGraph
node: shotgun
- type: WeaponDismantleOnShoot
dismantleChance: 0.50
selfDamage:
types:
Blunt: 5
Heat: 5
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: RifleStock
launchAngle: 180
prob: 0.80

View File

@ -0,0 +1,122 @@
- type: entity
name: Makeshift Repeater Rifle
parent: BaseWeaponSniper
id: WeaponSniperMakeshift
description: It'll blow a hole in the guy you point this at, if it doesn't snap your wrist first.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Snipers/makeshift_rifle.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Snipers/makeshift_rifle.rsi
- type: Item
size: Normal # Small, but can't fit in your pocket.
- type: Gun
fireRate: 1
minAngle: 10
maxAngle: 20
selectedMode: SemiAuto
availableModes:
- SemiAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/sniper.ogg
- type: BallisticAmmoProvider
whitelist:
tags:
- CartridgeLightRifle
- CartridgeLightRifleImprovised
capacity: 2
proto: null
- type: WeaponDismantleOnShoot
dismantleChance: 0.40
selfDamage:
types:
Blunt: 10
Heat: 10
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: RifleStock
launchAngle: 180
prob: 0.80
- type: Construction
graph: MakeshiftSniperGraph
node: shotgun
- type: entity
name: Improvised Repeater Rifle
parent: WeaponSniperMakeshift
id: WeaponSniperImprovised
description: Can ALMOST reliably hit a target!
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Snipers/improvised_rifle.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Snipers/improvised_rifle.rsi
- type: Item
size: Large
- type: Wieldable
unwieldOnUse: false
- type: GunWieldBonus
minAngle: -5
maxAngle: -10
- type: Gun
selectedMode: SemiAuto
availableModes:
- SemiAuto
- type: BallisticAmmoProvider
capacity: 4
- type: WeaponDismantleOnShoot
dismantleChance: 0.20
items:
- id: ModularBarrel
launchAngle: 0
prob: 1
- id: ModularReceiver
launchAngle: 90
prob: 0.10
- id: SheetSteel1
launchAngle: 67
prob: 0.20
- id: SheetSteel1
launchAngle: 87
prob: 0.20
- id: SheetSteel1
launchAngle: 270
prob: 0.20
- id: RifleStock
launchAngle: 180
prob: 0.80
- type: Construction
graph: ImprovisedSniperGraph
node: shotgun
- type: entity
name: Forged Repeater Rifle
parent: WeaponSniperMakeshift
id: WeaponSniperForged
description: The best a tider can achive, reliable fire-rate and accuracy with a satisfying lever-action system. What more can you ask for?
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Guns/Snipers/forged_rifle.rsi
- type: Clothing
sprite: _Starlight/Objects/Weapons/Guns/Snipers/forged_rifle.rsi
- type: Item
size: Huge
- type: Wieldable
unwieldOnUse: false
- type: GunWieldBonus
minAngle: -8
maxAngle: -15
- type: Gun
selectedMode: SemiAuto
availableModes:
- SemiAuto
- type: BallisticAmmoProvider
capacity: 8
- type: WeaponDismantleOnShoot
dismantleChance: 0

View File

@ -0,0 +1,171 @@
- type: entity
name: makeshift sword
parent: BaseSword
id: SwordMakeshift
description: Some sharp steel affixed to a metal rod, it can hardly be called a sword.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/makeshift_sword.rsi
- type: MeleeWeapon
attackRate: 1
damage:
types:
Slash: 10
soundHit:
path: /Audio/Weapons/bladeslice.ogg
- type: Item
- type: DisarmMalus
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/makeshift_sword.rsi
slots:
- suitStorage
- type: Construction
graph: SwordMakeshiftGraph
node: sword
- type: entity
name: improvised sword
parent: BaseSword
id: SwordImprovised
description: Not too sharp, but it does the job just fine.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/improvised_sword.rsi
- type: MeleeWeapon
attackRate: 1
damage:
types:
Slash: 14
soundHit:
path: /Audio/Weapons/bladeslice.ogg
- type: Item
- type: DisarmMalus
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/improvised_sword.rsi
slots:
- suitStorage
- type: Construction
graph: SwordImprovisedGraph
node: sword
- type: entity
name: forged sword
parent: BaseSword
id: SwordForged
description: Made with plasteel, a single touch of the blade is enough to draw blood.
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/forged_sword.rsi
- type: MeleeWeapon
damage:
types:
Slash: 15
soundHit:
path: /Audio/Weapons/bladeslice.ogg
- type: Item
- type: DisarmMalus
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/forged_sword.rsi
slots:
- suitStorage
- type: Tag
tags:
- SwordForged
- type: entity
name: dawnbreaker
parent: [ BaseSword,Welder ]
id: SwordFlaming
description: How do you perfect upon perfection? Why, use fire of course! Be the shining light through maints and fight valiantly!
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/dawnbreaker.rsi
layers:
- state: icon
- state: welder_flame
visible: false
shader: unshaded
map: ["enum.ToggleableVisuals.Layer"]
- type: GenericVisualizer
visuals:
enum.ToggleableVisuals.Enabled:
enum.ToggleableVisuals.Layer:
True: { visible: true }
False: { visible: false }
- type: PointLight
enabled: false
radius: 3
- type: ItemToggle
predictable: false
soundActivate:
collection: WelderOn
params:
variation: 0.125
volume: -5
soundDeactivate:
collection: WelderOff
params:
variation: 0.125
volume: -5
- type: ItemToggleMeleeWeapon
activatedSoundOnHit:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
params:
variation: 0.250
volume: -10
activatedSoundOnHitNoDamage:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
params:
variation: 0.250
volume: -12
deactivatedSoundOnHitNoDamage:
collection: MetalThud
activatedDamage:
types:
Heat: 8
Slash: 10
- type: MeleeWeapon
damage:
types:
Slash: 16
soundHit:
path: /Audio/Weapons/bladeslice.ogg
- type: Item
sprite: _Starlight/Objects/Weapons/Melee/dawnbreaker.rsi
- type: DisarmMalus
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/dawnbreaker.rsi
slots:
- suitStorage
- type: Construction
graph: SwordFlamingGraph
node: sword
- type: entity
name: tidebreaker
parent: BaseSword
id: ClaymoreForged
description: The perfect weapon for an aspiring maints knight!
components:
- type: Sprite
sprite: _Starlight/Objects/Weapons/Melee/tidebreaker.rsi
- type: MeleeWeapon
attackRate: 0.75
damage:
types:
Slash: 20
Structural: 10
soundHit:
path: /Audio/Weapons/bladeslice.ogg
- type: Item
- type: Clothing
sprite: _Starlight/Objects/Weapons/Melee/tidebreaker.rsi
slots:
- suitStorage
- type: DisarmMalus
- type: Scalpel
- type: SurgeryTool
startSound:
path: /Audio/_Shitmed/Medical/Surgery/scalpel1.ogg
endSound:
path: /Audio/_Shitmed/Medical/Surgery/scalpel2.ogg

View File

@ -0,0 +1,16 @@
- type: constructionGraph
id: CrushedPhosphorus
start: start
graph:
- node: start
edges:
- to: crushed
steps:
- tag: Matchstick
name: construction-graph-tag-match-stick
icon:
sprite: Objects/Tools/matches.rsi
state: match_unlit
doAfter: 0.2
- node: crushed
entity: CrushedPhosphorus1

View File

@ -0,0 +1,32 @@
- type: constructionGraph
id: SwordFlamingGraph
start: start
graph:
- node: start
edges:
- to: sword
steps:
- tag: SwordForged
icon:
sprite: _Starlight/Objects/Weapons/Melee/forged_sword.rsi
state: icon
name: crafting-menu-name-FSW
- material: Plastic
amount: 4
doAfter: 5
- material: Cable
amount: 2
doAfter: 5
- material: Glass
amount: 6
doAfter: 5
- material: MetalRod
amount: 2
- tag: Igniter
icon:
sprite: Objects/Devices/igniter.rsi
state: icon
name: construction-graph-tag-igniter
doAfter: 10
- node: sword
entity: SwordFlaming

View File

@ -0,0 +1,21 @@
- type: constructionGraph
id: ClothingHeadHelmetForgedGraph
start: start
graph:
- node: start
edges:
- to: helmet
steps:
- material: Steel
amount: 5
doAfter: 7
- material: Plasteel
amount: 3
doAfter: 8
- material: Plastic
amount: 2
- material: Cloth
amount: 4
doAfter: 6
- node: helmet
entity: UnfinishedClothingHeadHelmetForged

View File

@ -0,0 +1,59 @@
- type: constructionGraph
id: ForgedOmnitoolGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- tag: Multitool
icon:
sprite: Objects/Tools/multitool.rsi
state: icon
name: crafting-menu-name-MUL
- tag: Wrench
icon:
sprite: Objects/Tools/wrench.rsi
state: icon
name: crafting-menu-name-WRE
- tag: Wirecutter
icon:
sprite: Objects/Tools/wirecutters.rsi
state: cutters-map
name: crafting-menu-name-WIR
- tag: Screwdriver
icon:
sprite: Objects/Tools/screwdriver.rsi
state: screwdriver-map
name: crafting-menu-name-SCR
- tag: Crowbar
icon:
sprite: Objects/Tools/crowbar.rsi
state: storage
name: crafting-menu-name-CRO
- tag: EmergencyWelder
icon:
sprite: Objects/Tools/welder_mini.rsi
state: icon
name: crafting-menu-name-EW
- tag: PowerCellSmall
icon:
sprite: Objects/Power/power_cells.rsi
state: small
name: construction-graph-tag-power-cell-small
- tag: GasTank
icon:
sprite: Objects/Tanks/emergency_extended.rsi
state: icon
name: crafting-menu-name-EXOXY
- material: Cable
amount: 3
doAfter: 5
- material: Steel
amount: 10
doAfter: 20
- material: Plasteel
amount: 5
doAfter: 30
- node: tool
entity: UnfinishedForgedOmnitool

View File

@ -0,0 +1,31 @@
- type: constructionGraph
id: ForgedPistolGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Steel
amount: 7
doAfter: 7
- material: Plasteel
amount: 4
doAfter: 13
- node: shotgun
entity: UnfinishedPistolForged

View File

@ -0,0 +1,31 @@
- type: constructionGraph
id: ForgedRevolverGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Steel
amount: 9
doAfter: 10
- material: Plasteel
amount: 5
doAfter: 15
- node: shotgun
entity: UnfinishedRevolverForged

View File

@ -0,0 +1,20 @@
- type: constructionGraph
id: ForgedShieldBucklerGraph
start: start
graph:
- node: start
edges:
- to: shield
steps:
- material: Steel
amount: 5
doAfter: 10
- material: Plasteel
amount: 4
doAfter: 15
- material: Plastic
amount: 4
- material: Cloth
amount: 5
- node: shield
entity: UnfinishedForgedShieldBuckler

View File

@ -0,0 +1,24 @@
- type: constructionGraph
id: ForgedShieldTowerGraph
start: start
graph:
- node: start
edges:
- to: shield
steps:
- material: MetalRod
amount: 10
- material: Steel
amount: 12
doAfter: 15
- material: Glass
amount: 4
- material: Plasteel
amount: 10
doAfter: 15
- material: Plastic
amount: 6
- material: Cloth
amount: 8
- node: shield
entity: UnfinishedForgedShieldTower

View File

@ -0,0 +1,39 @@
- type: constructionGraph
id: ForgedShotgunGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- material: Steel
amount: 4
doAfter: 5
- material: Plasteel
amount: 2
doAfter: 10
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 3
doAfter: 15
- node: shotgun
entity: UnfinishedForgedShotgun

View File

@ -0,0 +1,31 @@
- type: constructionGraph
id: ForgedSMGGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Steel
amount: 17
doAfter: 17
- material: Plasteel
amount: 10
doAfter: 20
- node: shotgun
entity: UnfinishedSubMachineGunForged

View File

@ -0,0 +1,31 @@
- type: constructionGraph
id: ForgedSniperGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Steel
amount: 25
doAfter: 20
- material: Plasteel
amount: 15
doAfter: 25
- node: shotgun
entity: UnfinishedSniperForged

View File

@ -0,0 +1,30 @@
- type: constructionGraph
id: SwordForgedGraph
start: start
graph:
- node: start
edges:
- to: sword
steps:
- tag: BladePlasteel
icon:
sprite: _Starlight/Objects/Misc/plasteel_blade.rsi
state: icon
name: crafting-menu-name-PB
- material: Plasteel
amount: 4
doAfter: 15
- material: Cloth
amount: 4
doAfter: 5
- tag: HiltPlasteel
icon:
sprite: _Starlight/Objects/Misc/plasteel_hilt.rsi
state: icon
name: crafting-menu-name-PH
- node: tool
edges: [] # Add this tool node as an empty placeholder or connect it if needed.
- node: sword
entity: UnfinishedSwordForged

View File

@ -0,0 +1,21 @@
- type: constructionGraph
id: ClothingOuterArmorForgedGraph
start: start
graph:
- node: start
edges:
- to: vest
steps:
- material: Steel
amount: 10
doAfter: 10
- material: Plasteel
amount: 5
doAfter: 15
- material: Plastic
amount: 5
- material: Cloth
amount: 10
doAfter: 10
- node: vest
entity: UnfinishedClothingOuterArmorForged

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: ImprovisedCrowbarGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- material: Steel
amount: 5
doAfter: 10
- node: tool
entity: UnfinishedImprovisedCrowbar

View File

@ -0,0 +1,18 @@
- type: constructionGraph
id: ClothingHeadHelmetImprovisedGraph
start: start
graph:
- node: start
edges:
- to: helmet
steps:
- material: Steel
amount: 7
doAfter: 6
- material: Cloth
amount: 3
doAfter: 3
- material: Cable
amount: 4
- node: helmet
entity: UnfinishedClothingHeadHelmetImprovised

View File

@ -0,0 +1,16 @@
- type: constructionGraph
id: ImprovisedLightRifleBulletGraph
start: start
graph:
- node: start
edges:
- to: shell
steps:
- material: Steel
amount: 1
doAfter: 0.5
- material: CrushedPhosphorus
amount: 3
doAfter: 0.5
- node: shell
entity: CartridgeLightRifleImprovised

View File

@ -0,0 +1,101 @@
- type: constructionGraph
id: ImprovisedMagazineBoxGraph
start: start
graph:
- node: start
edges:
- to: shell
steps:
- material: Steel
amount: 5
doAfter: 5
- material: Cloth
amount: 3
doAfter: 5
- node: shell
entity: BaseMagazineBoxImprovised
- node: startpistol
edges:
- to: pistol
steps:
- tag: ImprovisedAmmoBox
icon:
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi
state: base
name: crafting-menu-name-IMGB
doAfter: 10
- material: Steel
amount: 30
doAfter: 0.5
- material: CrushedPhosphorus
amount: 30
doAfter: 0.5
- node: pistol
entity: MagazineBoxImprovisedPistol
- node: startrifle
edges:
- to: rifle
steps:
- tag: ImprovisedAmmoBox
icon:
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi
state: base
name: crafting-menu-name-IMGB
doAfter: 10
- material: Steel
amount: 30
doAfter: 0.5
- material: CrushedPhosphorus
amount: 30
doAfter: 0.5
- material: CrushedPhosphorus
amount: 30
doAfter: 0.5
- node: rifle
entity: MagazineBoxImprovisedRifle
- node: startmagnum
edges:
- to: magnum
steps:
- tag: ImprovisedAmmoBox
icon:
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi
state: base
name: crafting-menu-name-IMGB
doAfter: 10
- material: Steel
amount: 30
doAfter: 0.5
- material: CrushedPhosphorus
amount: 30
doAfter: 0.5
- material: CrushedPhosphorus
amount: 30
doAfter: 0.5
- node: magnum
entity: MagazineBoxImprovisedMagnum
- node: startshotgun
edges:
- to: shotgun
steps:
- tag: ImprovisedAmmoBox
icon:
sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Boxes/improvised.rsi
state: base
name: crafting-menu-name-IMGB
doAfter: 10
- material: Steel
amount: 30
doAfter: 0.5
- material: Glass
amount: 30
doAfter: 1.5
- material: CrushedPhosphorus
amount: 30
doAfter: 0.5
- material: CrushedPhosphorus
amount: 30
doAfter: 0.5
entity: MagazineBoxImprovisedShotgun
- node: shotgun
entity: MagazineBoxImprovisedShotgun

View File

@ -0,0 +1,16 @@
- type: constructionGraph
id: ImprovisedMagnumBulletGraph
start: start
graph:
- node: start
edges:
- to: shell
steps:
- material: Steel
amount: 1
doAfter: 0.5
- material: CrushedPhosphorus
amount: 3
doAfter: 0.5
- node: shell
entity: CartridgeMagnumImprovised

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: ImprovisedMagnumSpeedLoaderGraph
start: start
graph:
- node: start
edges:
- to: shell
steps:
- material: Steel
amount: 6
doAfter: 5
- node: shell
entity: SpeedLoaderMagnumImprovised

View File

@ -0,0 +1,27 @@
- type: constructionGraph
id: ImprovisedMultitoolGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- material: Steel
amount: 6
doAfter: 10
- material: Plastic
amount: 2
doAfter: 10
- material: Glass
amount: 4
doAfter: 10
- tag: PowerCellSmall
icon:
sprite: Objects/Power/power_cells.rsi
state: small
name: construction-graph-tag-power-cell-small
- material: Cable
amount: 2
doAfter: 5
- node: tool
entity: UnfinishedImprovisedMultitool

View File

@ -0,0 +1,43 @@
- type: constructionGraph
id: ImprovisedOmnitoolGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- tag: ImprovisedMultitool
icon:
sprite: _Starlight/Objects/Tools/improvised_multitool.rsi
state: icon
name: crafting-menu-name-IM
- tag: Wrench
icon:
sprite: _Starlight/Objects/Tools/improvised_wrench.rsi
state: icon
name: crafting-menu-name-IWR
- tag: Wirecutter
icon:
sprite: _Starlight/Objects/Tools/improvised_wirecutters.rsi
state: cutters
name: crafting-menu-name-IW
- tag: Screwdriver
icon:
sprite: _Starlight/Objects/Tools/improvised_screwdriver.rsi
state: screwdriver
name: crafting-menu-name-ISC
- tag: Crowbar
icon:
sprite: _Starlight/Objects/Tools/improvised_screwdriver.rsi
state: icon
name: crafting-menu-name-IC
- tag: EmergencyWelder
icon:
sprite: Objects/Tools/welder_mini.rsi
state: icon
name: crafting-menu-name-EW
- material: Steel
amount: 5
doAfter: 35
- node: tool
entity: UnfinishedImprovisedOmnitool

View File

@ -0,0 +1,31 @@
- type: constructionGraph
id: ImprovisedPistolGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 5
doAfter: 5
- material: Steel
amount: 4
doAfter: 5
- node: shotgun
entity: WeaponPistolImprovised

View File

@ -0,0 +1,16 @@
- type: constructionGraph
id: ImprovisedPistolBulletGraph
start: start
graph:
- node: start
edges:
- to: shell
steps:
- material: Steel
amount: 1
doAfter: 0.5
- material: CrushedPhosphorus
amount: 2
doAfter: 0.5
- node: shell
entity: CartridgePistolImprovised

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: ImprovisedPistolMagazineGraph
start: start
graph:
- node: start
edges:
- to: shell
steps:
- material: Steel
amount: 5
doAfter: 2
- node: shell
entity: MagazinePistolImprovised

View File

@ -0,0 +1,36 @@
- type: constructionGraph
id: ImprovisedRevolverGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 4
doAfter: 7
- material: Steel
amount: 6
doAfter: 7
- node: shotgun
entity: WeaponRevolverImprovised

View File

@ -0,0 +1,16 @@
- type: constructionGraph
id: ImprovisedScrewdriverGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- material: Steel
amount: 3
doAfter: 10
- material: Cloth
amount: 1
doAfter: 5
- node: tool
entity: UnfinishedImprovisedScrewdriver

View File

@ -0,0 +1,17 @@
- type: constructionGraph
id: ImprovisedShieldGraph
start: start
graph:
- node: start
edges:
- to: shield
steps:
- material: MetalRod
amount: 8
- material: Steel
amount: 15
doAfter: 15
- material: Cloth
amount: 3
- node: shield
entity: UnfinishedImprovisedShield

View File

@ -0,0 +1,31 @@
- type: constructionGraph
id: ImprovisedSMGGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 5
doAfter: 5
- material: Steel
amount: 15
doAfter: 10
- node: shotgun
entity: WeaponSubMachineGunImprovised

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: ImprovisedMagazinePistolSubMachineGunGraph
start: start
graph:
- node: start
edges:
- to: shell
steps:
- material: Steel
amount: 8
doAfter: 6
- node: shell
entity: MagazinePistolSubMachineGunImprovised

View File

@ -0,0 +1,31 @@
- type: constructionGraph
id: ImprovisedSniperGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 6
doAfter: 7
- material: Steel
amount: 20
doAfter: 15
- node: shotgun
entity: WeaponSniperImprovised

View File

@ -0,0 +1,26 @@
- type: constructionGraph
id: SwordImprovisedGraph
start: start
graph:
- node: start
edges:
- to: sword
steps:
- tag: BladeSteel
icon:
sprite: _Starlight/Objects/Misc/steel_blade.rsi
state: icon
name: crafting-menu-name-SB
- material: Steel
amount: 2
doAfter: 15
- material: Cloth
amount: 3
doAfter: 5
- tag: HiltWood
icon:
sprite: _Starlight/Objects/Misc/wooden_hilt.rsi
state: icon
name: crafting-menu-name-WH
- node: sword
entity: SwordImprovised

View File

@ -0,0 +1,18 @@
- type: constructionGraph
id: ClothingOuterArmorImprovisedGraph
start: start
graph:
- node: start
edges:
- to: vest
steps:
- material: Steel
amount: 12
doAfter: 10
- material: Cloth
amount: 5
doAfter: 5
- material: Cable
amount: 7
- node: vest
entity: UnfinishedClothingOuterArmorImprovised

View File

@ -0,0 +1,16 @@
- type: constructionGraph
id: ImprovisedWirecutterGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- material: Steel
amount: 5
doAfter: 10
- material: Cloth
amount: 2
doAfter: 5
- node: tool
entity: UnfinishedImprovisedWirecutter

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: ImprovisedWrenchGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- material: Steel
amount: 3
doAfter: 10
- node: tool
entity: UnfinishedImprovisedWrench

View File

@ -0,0 +1,16 @@
- type: constructionGraph
id: MakeshiftCrowbarGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- tag: Toolbox
icon:
sprite: Objects/Tools/Toolboxes/toolbox_red.rsi
state: icon
name: crafting-menu-name-ETX
doAfter: 8
- node: tool
entity: CrowbarMakeshift

View File

@ -0,0 +1,15 @@
- type: constructionGraph
id: ClothingHeadHelmetMakeshiftGraph
start: start
graph:
- node: start
edges:
- to: helmet
steps:
- material: Steel
amount: 4
doAfter: 5
- material: Cable
amount: 3
- node: helmet
entity: ClothingHeadHelmetMakeshift

View File

@ -0,0 +1,28 @@
- type: constructionGraph
id: MakeshiftPistolCraftedGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 4
doAfter: 5
- node: shotgun
entity: WeaponPistolMakeshiftCrafted

View File

@ -0,0 +1,28 @@
- type: constructionGraph
id: MakeshiftRevolverGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 3
doAfter: 7
- node: shotgun
entity: WeaponRevolverMakeshift

View File

@ -0,0 +1,27 @@
- type: constructionGraph
id: MakeshiftShotgunGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
doAfter: 3
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
doAfter: 3
- node: shotgun
entity: WeaponShotgunMakeshift

View File

@ -0,0 +1,28 @@
- type: constructionGraph
id: MakeshiftSMGGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 5
doAfter: 5
- node: shotgun
entity: WeaponSubMachineGunMakeshift

View File

@ -0,0 +1,28 @@
- type: constructionGraph
id: MakeshiftSniperGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- tag: ModularBarrel
icon:
sprite: _Starlight/Objects/Misc/modular_barrel.rsi
state: icon
name: crafting-menu-name-MB
- tag: ModularReceiver
icon:
sprite: Objects/Misc/modular_receiver.rsi
state: icon
name: construction-graph-tag-modular-receiver
- tag: RifleStock
icon:
sprite: Objects/Misc/rifle_stock.rsi
state: icon
name: construction-graph-tag-rifle-stock
- material: Cloth
amount: 5
doAfter: 7
- node: shotgun
entity: WeaponSniperMakeshift

View File

@ -0,0 +1,23 @@
- type: constructionGraph
id: SwordMakeshiftGraph
start: start
graph:
- node: start
edges:
- to: sword
steps:
- material: MetalRod
amount: 1
- material: Steel
amount: 4
doAfter: 10
- material: Cloth
amount: 5
doAfter: 5
- tag: HiltWood
icon:
sprite: _Starlight/Objects/Misc/wooden_hilt.rsi
state: icon
name: crafting-menu-name-WH
- node: sword
entity: SwordMakeshift

View File

@ -0,0 +1,15 @@
- type: constructionGraph
id: ClothingOuterArmorMakeshiftGraph
start: start
graph:
- node: start
edges:
- to: vest
steps:
- material: Steel
amount: 6
doAfter: 10
- material: Cable
amount: 5
- node: vest
entity: ClothingOuterArmorMakeshift

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: ModularBarrelGraph
start: start
graph:
- node: start
edges:
- to: shotgun
steps:
- material: Steel
amount: 1
doAfter: 3
- node: shotgun
entity: ModularBarrel

View File

@ -0,0 +1,24 @@
- type: constructionGraph
id: PaladinShieldGreatGraph
start: start
graph:
- node: start
edges:
- to: shield
steps:
- material: MetalRod
amount: 12
- material: Steel
amount: 20
doAfter: 20
- material: Glass
amount: 4
- material: Plasteel
amount: 30
doAfter: 20
- material: Plastic
amount: 10
- material: Cloth
amount: 12
- node: shield
entity: UnfinishedPaladinShieldGreat

View File

@ -0,0 +1,21 @@
- type: constructionGraph
id: ClothingHeadHelmetPaladinGraph
start: start
graph:
- node: start
edges:
- to: helmet
steps:
- material: Steel
amount: 7
doAfter: 9
- material: Plasteel
amount: 6
doAfter: 9
- material: Plastic
amount: 2
- material: Cloth
amount: 6
doAfter: 7
- node: helmet
entity: UnfinishedClothingHeadHelmetPaladin

View File

@ -0,0 +1,22 @@
- type: constructionGraph
id: PaladinShieldGraph
start: start
graph:
- node: start
edges:
- to: shield
steps:
- material: MetalRod
amount: 8
- material: Steel
amount: 10
doAfter: 15
- material: Plasteel
amount: 8
doAfter: 15
- material: Plastic
amount: 4
- material: Cloth
amount: 5
- node: shield
entity: UnfinishedPaladinShield

View File

@ -0,0 +1,21 @@
- type: constructionGraph
id: ClothingOuterArmorPaladinGraph
start: start
graph:
- node: start
edges:
- to: vest
steps:
- material: Steel
amount: 15
doAfter: 15
- material: Plasteel
amount: 10
doAfter: 15
- material: Plastic
amount: 4
- material: Cloth
amount: 15
doAfter: 15
- node: vest
entity: UnfinishedClothingOuterArmorPaladin

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: BladePlasteelGraph
start: start
graph:
- node: start
edges:
- to: blade
steps:
- material: Plasteel
amount: 6
doAfter: 15
- node: blade
entity: BladePlasteel

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: HiltPlasteelGraph
start: start
graph:
- node: start
edges:
- to: hilt
steps:
- material: Plasteel
amount: 4
doAfter: 10
- node: hilt
entity: HiltPlasteel

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: BladeSteelGraph
start: start
graph:
- node: start
edges:
- to: blade
steps:
- material: Steel
amount: 4
doAfter: 10
- node: blade
entity: BladeSteel

View File

@ -0,0 +1,41 @@
- type: constructionGraph
id: ClaymoreForgedGraph
start: start
graph:
- node: start
edges:
- to: tool
steps:
- tag: BladePlasteel
icon:
sprite: _Starlight/Objects/Misc/plasteel_blade.rsi
state: icon
name: crafting-menu-name-PB
- tag: CrayonGreen
icon:
sprite: Objects/Fun/crayons.rsi
state: green
name: crafting-menu-name-CGREN
- tag: CrayonYellow
icon:
sprite: Objects/Fun/crayons.rsi
state: yellow
name: crafting-menu-name-CYELO
- material: Plasteel
amount: 15
doAfter: 25
- material: Cloth
amount: 8
doAfter: 5
- node: tool
entity: HiltPlasteel
edges:
- to: sword
steps:
- tag: HiltPlasteel
icon:
sprite: _Starlight/Objects/Misc/plasteel_hilt.rsi
state: icon
name: crafting-menu-name-PH
- node: sword
entity: UnfinishedClaymoreForged

View File

@ -0,0 +1,13 @@
- type: constructionGraph
id: HiltWoodGraph
start: start
graph:
- node: start
edges:
- to: hilt
steps:
- material: WoodPlank
amount: 3
doAfter: 4
- node: hilt
entity: HiltWood

View File

@ -0,0 +1,559 @@
- type: construction
name: crafting-menu-name-FDB
id: WeaponShotgunForged
graph: ForgedShotgunGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FDB
- type: construction
name: crafting-menu-name-MP
id: WeaponPistolMakeshiftCrafted
graph: MakeshiftPistolCraftedGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MP
- type: construction
name: crafting-menu-name-IP
id: WeaponPistolImprovised
graph: ImprovisedPistolGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IP
- type: construction
name: crafting-menu-name-FP
id: WeaponPistolForged
graph: ForgedPistolGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FP
- type: construction
name: crafting-menu-name-IPB
id: CartridgePistolImprovised
graph: ImprovisedPistolBulletGraph
startNode: start
targetNode: shell
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IPB
- type: construction
name: crafting-menu-name-IPM
id: MagazinePistolImprovised
graph: ImprovisedPistolMagazineGraph
startNode: start
targetNode: shell
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IPM
- type: construction
name: crafting-menu-name-MR
id: WeaponRevolverMakeshift
graph: MakeshiftRevolverGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MR
- type: construction
name: crafting-menu-name-IR
id: WeaponRevolverImprovised
graph: ImprovisedRevolverGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IR
- type: construction
name: crafting-menu-name-FR
id: WeaponRevolverForged
graph: ForgedRevolverGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FR
- type: construction
name: crafting-menu-name-IMB
id: CartridgeMagnumImprovised
graph: ImprovisedMagnumBulletGraph
startNode: start
targetNode: shell
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IMB
- type: construction
name: crafting-menu-name-IMS
id: SpeedLoaderMagnumImprovised
graph: ImprovisedMagnumSpeedLoaderGraph
startNode: start
targetNode: shell
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IMS
- type: construction
name: crafting-menu-name-MB
id: ModularBarrel
graph: ModularBarrelGraph
startNode: start
targetNode: shotgun
category: construction-category-misc
objectType: Item
description: crafting-menu-text-MB
- type: construction
name: crafting-menu-name-MSH
id: WeaponShotgunMakeshift
graph: MakeshiftShotgunGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MSH
- type: construction
name: crafting-menu-name-MS
id: WeaponSMGMakeshift
graph: MakeshiftSMGGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MS
- type: construction
name: crafting-menu-name-IS
id: WeaponSubMachineGunImprovised
graph: ImprovisedSMGGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IS
- type: construction
name: crafting-menu-name-FS
id: WeaponSubMachineGunForged
graph: ForgedSMGGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FS
- type: construction
name: crafting-menu-name-ISM
id: MagazinePistolSubMachineGunImprovised
graph: ImprovisedMagazinePistolSubMachineGunGraph
startNode: start
targetNode: shell
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-ISM
- type: construction
name: crafting-menu-name-MRR
id: WeaponSniperMakeshift
graph: MakeshiftSniperGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MRR
- type: construction
name: crafting-menu-name-IRR
id: WeaponSniperImprovised
graph: ImprovisedSniperGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IRR
- type: construction
name: crafting-menu-name-FRR
id: WeaponSniperForged
graph: ForgedSniperGraph
startNode: start
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FRR
- type: construction
name: crafting-menu-name-IRB
id: CartridgeLightRifleImprovised
graph: ImprovisedLightRifleBulletGraph
startNode: start
targetNode: shell
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IRB
- type: construction
name: crafting-menu-name-IMGB
id: BaseMagazineBoxImprovised
graph: ImprovisedMagazineBoxGraph
startNode: start
targetNode: shell
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IMGB
- type: construction
name: crafting-menu-name-IMGP
id: MagazineBoxImprovisedPistol
graph: ImprovisedMagazineBoxGraph
startNode: startpistol
targetNode: pistol
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IMGP
- type: construction
name: crafting-menu-name-IMGR
id: MagazineBoxImprovisedRifle
graph: ImprovisedMagazineBoxGraph
startNode: startrifle
targetNode: rifle
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IMGR
- type: construction
name: crafting-menu-name-IMGM
id: MagazineBoxImprovisedMagnum
graph: ImprovisedMagazineBoxGraph
startNode: startmagnum
targetNode: magnum
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IMGM
- type: construction
name: crafting-menu-name-IMGS
id: MagazineBoxImprovisedShotgun
graph: ImprovisedMagazineBoxGraph
startNode: startshotgun
targetNode: shotgun
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IMGS
- type: construction
name: crafting-menu-name-MC
id: CrowbarMakeshift
graph: MakeshiftCrowbarGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-MC
- type: construction
name: crafting-menu-name-IC
id: CrowbarImprovised
graph: ImprovisedCrowbarGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-IC
- type: construction
name: crafting-menu-name-ISC
id: ScrewdriverImprovised
graph: ImprovisedScrewdriverGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-IC
- type: construction
name: crafting-menu-name-IW
id: WirecutterImprovised
graph: ImprovisedWirecutterGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-IC
- type: construction
name: crafting-menu-name-IWR
id: WrenchImprovised
graph: ImprovisedWrenchGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-IC
- type: construction
name: crafting-menu-name-IM
id: MultitoolImprovised
graph: ImprovisedMultitoolGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-IM
- type: construction
name: crafting-menu-name-IO
id: OmnitoolImprovised
graph: ImprovisedOmnitoolGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-IO
- type: construction
name: crafting-menu-name-FO
id: OmnitoolForged
graph: ForgedOmnitoolGraph
startNode: start
targetNode: tool
category: construction-category-tools
objectType: Item
description: crafting-menu-text-FO
- type: construction
name: crafting-menu-name-WH
id: HiltWood
graph: HiltWoodGraph
startNode: start
targetNode: hilt
category: construction-category-tools
objectType: Item
description: crafting-menu-text-WH
- type: construction
name: crafting-menu-name-PH
id: HiltPlasteel
graph: HiltPlasteelGraph
startNode: start
targetNode: hilt
category: construction-category-tools
objectType: Item
description: crafting-menu-text-PH
- type: construction
name: crafting-menu-name-SB
id: BladeSteel
graph: BladeSteelGraph
startNode: start
targetNode: blade
category: construction-category-tools
objectType: Item
description: crafting-menu-text-SB
- type: construction
name: crafting-menu-name-PB
id: BladePlasteel
graph: BladePlasteelGraph
startNode: start
targetNode: blade
category: construction-category-tools
objectType: Item
description: crafting-menu-text-PB
- type: construction
name: crafting-menu-name-MSW
id: SwordMakeshift
graph: SwordMakeshiftGraph
startNode: start
targetNode: sword
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MSW
- type: construction
name: crafting-menu-name-ISW
id: SwordImprovised
graph: SwordImprovisedGraph
startNode: start
targetNode: sword
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-ISW
- type: construction
name: crafting-menu-name-FSW
id: SwordForged
graph: SwordForgedGraph
startNode: start
targetNode: sword
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FSW
- type: construction
name: crafting-menu-name-DSW
id: SwordFlaming
graph: SwordFlamingGraph
startNode: start
targetNode: sword
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-DSW
- type: construction
name: crafting-menu-name-TSW
id: ClaymoreForged
graph: ClaymoreForgedGraph
startNode: start
targetNode: sword
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-TSW
- type: construction
name: crafting-menu-name-ISH
id: ImprovisedShield
graph: ImprovisedShieldGraph
startNode: start
targetNode: shield
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-ISH
- type: construction
name: crafting-menu-name-FSH
id: ForgedShieldBuckler
graph: ForgedShieldBucklerGraph
startNode: start
targetNode: shield
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FSH
- type: construction
name: crafting-menu-name-FSHT
id: ForgedShieldTower
graph: ForgedShieldTowerGraph
startNode: start
targetNode: shield
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FSHT
- type: construction
name: crafting-menu-name-PSH
id: PaladinShield
graph: PaladinShieldGraph
startNode: start
targetNode: shield
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-PSH
- type: construction
name: crafting-menu-name-PSHG
id: PaladinShieldGreat
graph: PaladinShieldGreatGraph
startNode: start
targetNode: shield
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-PSHG
- type: construction
name: crafting-menu-name-MVT
id: ClothingOuterArmorMakeshift
graph: ClothingOuterArmorMakeshiftGraph
startNode: start
targetNode: vest
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MVT
- type: construction
name: crafting-menu-name-IVT
id: ClothingOuterArmorImprovised
graph: ClothingOuterArmorImprovisedGraph
startNode: start
targetNode: vest
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IVT
- type: construction
name: crafting-menu-name-FVT
id: ClothingOuterArmorForged
graph: ClothingOuterArmorForgedGraph
startNode: start
targetNode: vest
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FVT
- type: construction
name: crafting-menu-name-PVT
id: ClothingOuterArmorPaladin
graph: ClothingOuterArmorPaladinGraph
startNode: start
targetNode: vest
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-PVT
- type: construction
name: crafting-menu-name-MVTH
id: ClothingHeadHelmetMakeshift
graph: ClothingHeadHelmetMakeshiftGraph
startNode: start
targetNode: helmet
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-MVTH
- type: construction
name: crafting-menu-name-IVTH
id: ClothingHeadHelmetImprovised
graph: ClothingHeadHelmetImprovisedGraph
startNode: start
targetNode: helmet
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-IVTH
- type: construction
name: crafting-menu-name-FVTH
id: ClothingHeadHelmetForged
graph: ClothingHeadHelmetForgedGraph
startNode: start
targetNode: helmet
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-FVTH
- type: construction
name: crafting-menu-name-PVTH
id: ClothingHeadHelmetPaladin
graph: ClothingHeadHelmetPaladinGraph
startNode: start
targetNode: helmet
category: construction-category-weapons
objectType: Item
description: crafting-menu-text-PVTH

View File

@ -0,0 +1,9 @@
- type: construction
name: crafting-menu-name-phosphorus
id: CrushedPhosphorus
graph: CrushedPhosphorus
startNode: start
targetNode: crushed
category: construction-category-misc
objectType: Item
description: crafting-menu-text-phosphorus

View File

@ -0,0 +1,6 @@
- type: stack
id: CrushedPhosphorus
name: stack-phosphorus
icon: { sprite: _Starlight/Objects/Materials/phosphorus.rsi, state: phosphorus_3 }
spawn: CrushedPhosphorus1
maxCount: 30

View File

@ -0,0 +1,49 @@
# ALPHABETIZE
- type: Tag
id: BladePlasteel
- type: Tag
id: BladeSteel
- type: Tag
id: CartridgePistolImprovised
- type: Tag
id: CartridgeMagnumImprovised
- type: Tag
id: CartridgeLightRifleImprovised
- type: Tag
id: EmergencyWelder
- type: Tag
id: HiltPlasteel
- type: Tag
id: HiltWood
- type: Tag
id: ImprovisedAmmoBox
- type: Tag
id: MagazinePistolImprovised
- type: Tag
id: MagazineSMGImprovised
- type: Tag
id: ModularBarrel
- type: Tag
id: SwordForged
- type: Tag
id: SpeedLoaderMagnumImprovised
- type: Tag
id: ShellShotgunImprovised
- type: Tag
id: SpeedLoaderShotgun

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Some files were not shown because too many files have changed in this diff Show More