diff --git a/Content.Server/Bible/BibleSystem.cs b/Content.Server/Bible/BibleSystem.cs index c845b17230a..6c906b97b3b 100644 --- a/Content.Server/Bible/BibleSystem.cs +++ b/Content.Server/Bible/BibleSystem.cs @@ -1,10 +1,13 @@ using Content.Server.Bible.Components; +using Content.Server.Chemistry.EntitySystems; using Content.Server.Ghost.Roles.Components; using Content.Server.Ghost.Roles.Events; using Content.Server.Popups; using Content.Shared.ActionBlocker; using Content.Shared.Actions; using Content.Shared.Bible; +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.Reaction; using Content.Shared.Damage; using Content.Shared.IdentityManagement; using Content.Shared.Interaction; @@ -38,7 +41,8 @@ public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnAfterInteract); + SubscribeLocalEvent(OnMixingAttempt); // Frontier: restrict solution blessing to bible users + SubscribeLocalEvent(OnAfterInteract, before: [typeof(ReactionMixerSystem)]); // Frontier: add before parameter SubscribeLocalEvent>(AddSummonVerb); SubscribeLocalEvent(GetSummonAction); SubscribeLocalEvent(OnSummon); @@ -91,6 +95,19 @@ public override void Update(float frameTime) } } + // Frontier: only bible users can bless water/blood + private void OnMixingAttempt(EntityUid uid, BibleComponent component, ref MixingAttemptEvent args) + { + // Block water/blood blessing attempts by non-bible users + if (component.BlockMix) + { + _popupSystem.PopupEntity(Loc.GetString("bible-bless-solution-failed"), component.LastInteractingUser, component.LastInteractingUser, PopupType.Small); + args.Cancelled = true; + return; + } + } + // End Frontier + private void OnAfterInteract(EntityUid uid, BibleComponent component, AfterInteractEvent args) { if (!args.CanReach) @@ -99,12 +116,24 @@ private void OnAfterInteract(EntityUid uid, BibleComponent component, AfterInter if (!TryComp(uid, out UseDelayComponent? useDelay) || _delay.IsDelayed((uid, useDelay))) return; - if (args.Target == null || args.Target == args.User || !_mobStateSystem.IsAlive(args.Target.Value)) + // Frontier: only bible users can bless water/blood + if (args.Target == null) { return; } - if (!HasComp(args.User)) + // In case the user is trying to mix something, store who's using it and whether or not they're a bible user. + component.LastInteractingUser = args.User; + var hasBibleUserComponent = HasComp(args.User); + component.BlockMix = !hasBibleUserComponent; + + if (args.Target == args.User || !_mobStateSystem.IsAlive(args.Target.Value)) + { + return; + } + // End Frontier + + if (!hasBibleUserComponent) // Frontier: cache bible component lookup { _popupSystem.PopupEntity(Loc.GetString("bible-sizzle"), args.User, args.User); @@ -226,7 +255,10 @@ private void AttemptSummon(Entity ent, EntityUid user, Tran if (component.AlreadySummoned || component.SpecialItemPrototype == null) return; if (component.RequiresBibleUser && !HasComp(user)) + { + _popupSystem.PopupEntity(Loc.GetString("bible-summon-request-failed"), user, user, PopupType.Small); // Frontier: better summon feedback return; + } if (!Resolve(user, ref position)) return; if (component.Deleted || Deleted(uid)) diff --git a/Content.Server/Bible/Components/BibleComponent.cs b/Content.Server/Bible/Components/BibleComponent.cs index b7dc3db8e35..5d4e2a9d5b6 100644 --- a/Content.Server/Bible/Components/BibleComponent.cs +++ b/Content.Server/Bible/Components/BibleComponent.cs @@ -41,5 +41,20 @@ public sealed partial class BibleComponent : Component [DataField("locPrefix")] public string LocPrefix = "bible"; + + // Frontier: prevent non-bible users from blessing water/blood. + + /// + /// Whether or not a mixing attempt from this bible should be blocked. + /// + [ViewVariables] + public bool BlockMix = false; + + /// + /// The last user that interacted using the bible. + /// + [ViewVariables] + public EntityUid LastInteractingUser; + //End Frontier } } diff --git a/Content.Server/Nyanotrasen/Abilities/Oni/HeldByOniComponent.cs b/Content.Server/Nyanotrasen/Abilities/Oni/HeldByOniComponent.cs index 41ec3fa630e..50830a7a87d 100644 --- a/Content.Server/Nyanotrasen/Abilities/Oni/HeldByOniComponent.cs +++ b/Content.Server/Nyanotrasen/Abilities/Oni/HeldByOniComponent.cs @@ -4,5 +4,11 @@ namespace Content.Server.Abilities.Oni public sealed partial class HeldByOniComponent : Component { public EntityUid Holder = default!; + + // Frontier: wield accuracy fix + public double minAngleAdded = 0.0; + public double maxAngleAdded = 0.0; + public double angleIncreaseAdded = 0.0; + // End Frontier } } diff --git a/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs b/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs index b680788ff80..90bba75897b 100644 --- a/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs +++ b/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs @@ -4,12 +4,16 @@ using Content.Shared.Weapons.Melee.Events; using Content.Shared.Weapons.Ranged.Components; using Robust.Shared.Containers; +using Content.Shared.Weapons.Ranged.Systems; namespace Content.Server.Abilities.Oni { public sealed class OniSystem : EntitySystem { [Dependency] private readonly ToolSystem _toolSystem = default!; + [Dependency] private readonly SharedGunSystem _gunSystem = default!; + + private const double GunInaccuracyFactor = 17.0; // Frontier (20x<18x -> 10% buff) public override void Initialize() { @@ -28,21 +32,41 @@ private void OnEntInserted(EntityUid uid, OniComponent component, EntInsertedInt if (TryComp(args.Entity, out var gun)) { - gun.MinAngle *= 20f; - gun.AngleIncrease *= 20f; - gun.MaxAngle *= 20f; + // Frontier: adjust penalty for wielded malus + if (TryComp(args.Entity, out var bonus)) + { + //GunWieldBonus values are stored as negative. + heldComp.minAngleAdded = (gun.MinAngle + bonus.MinAngle) * GunInaccuracyFactor; + heldComp.angleIncreaseAdded = (gun.AngleIncrease + bonus.AngleIncrease) * GunInaccuracyFactor; + heldComp.maxAngleAdded = (gun.MaxAngle + bonus.MaxAngle) * GunInaccuracyFactor; + } + else + { + heldComp.minAngleAdded = gun.MinAngle * GunInaccuracyFactor; + heldComp.angleIncreaseAdded = gun.AngleIncrease * GunInaccuracyFactor; + heldComp.maxAngleAdded = gun.MaxAngle * GunInaccuracyFactor; + } + + gun.MinAngle += heldComp.minAngleAdded; + gun.AngleIncrease += heldComp.angleIncreaseAdded; + gun.MaxAngle += heldComp.maxAngleAdded; + _gunSystem.RefreshModifiers(args.Entity); // Make sure values propagate to modified values (this also dirties the gun for us) + // End Frontier } } private void OnEntRemoved(EntityUid uid, OniComponent component, EntRemovedFromContainerMessage args) { - - if (TryComp(args.Entity, out var gun)) + // Frontier: angle manipulation stored in HeldByOniComponent + if (TryComp(args.Entity, out var gun) && + TryComp(args.Entity, out var heldComp)) { - gun.MinAngle /= 20f; - gun.AngleIncrease /= 20f; - gun.MaxAngle /= 20f; + gun.MinAngle -= heldComp.minAngleAdded; + gun.AngleIncrease -= heldComp.angleIncreaseAdded; + gun.MaxAngle -= heldComp.maxAngleAdded; + _gunSystem.RefreshModifiers(args.Entity); // Make sure values propagate to modified values (this also dirties the gun for us) } + // End Frontier RemComp(args.Entity); } diff --git a/Content.Server/StationEvents/Components/BluespaceErrorRuleComponent.cs b/Content.Server/StationEvents/Components/BluespaceErrorRuleComponent.cs index 1b0ff547dbe..97a7bb65ec9 100644 --- a/Content.Server/StationEvents/Components/BluespaceErrorRuleComponent.cs +++ b/Content.Server/StationEvents/Components/BluespaceErrorRuleComponent.cs @@ -7,13 +7,13 @@ namespace Content.Server.StationEvents.Components; public sealed partial class BluespaceErrorRuleComponent : Component { /// - /// Path to the grid that gets bluspaced in + /// List of paths to the grids that can be bluespaced in. /// - [DataField("gridPath")] - public string GridPath = ""; + [DataField("gridPaths")] + public List GridPaths = new(); /// - /// The color of your thing. the name should be set by the mapper when mapping. + /// The color of your thing. The name should be set by the mapper when mapping. /// [DataField("color")] public Color Color = new Color(225, 15, 155); @@ -31,7 +31,7 @@ public sealed partial class BluespaceErrorRuleComponent : Component public EntityUid? GridUid = null; /// - /// How much the grid is appraised at upon entering into existance, set after starting the event + /// How much the grid is appraised at upon entering into existence, set after starting the event /// [DataField("startingValue")] public double startingValue = 0; diff --git a/Content.Server/StationEvents/Events/BluespaceErrorRule.cs b/Content.Server/StationEvents/Events/BluespaceErrorRule.cs index c6e7a3757a8..2caf13f811f 100644 --- a/Content.Server/StationEvents/Events/BluespaceErrorRule.cs +++ b/Content.Server/StationEvents/Events/BluespaceErrorRule.cs @@ -31,39 +31,42 @@ public sealed class BluespaceErrorRule : StationEventSystem Entity, EntityUid MapUid, Vector2 LocalPosition)> _playerMobs = new(); - protected override void Started(EntityUid uid, BluespaceErrorRuleComponent component, GameRuleComponent gameRule, - GameRuleStartedEvent args) + protected override void Started(EntityUid uid, BluespaceErrorRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { base.Started(uid, component, gameRule, args); + // Select a random grid path + var selectedGridPath = _random.Pick(component.GridPaths); var shuttleMap = _mapManager.CreateMap(); var options = new MapLoadOptions { LoadMap = true, }; - if (!_map.TryLoad(shuttleMap, component.GridPath, out var gridUids, options)) + if (!_map.TryLoad(shuttleMap, selectedGridPath, out var gridUids, options)) return; + component.GridUid = gridUids[0]; if (component.GridUid is not EntityUid gridUid) return; + component.startingValue = _pricing.AppraiseGrid(gridUid); _shuttle.SetIFFColor(gridUid, component.Color); var offset = _random.NextVector2(1350f, 2200f); var mapId = GameTicker.DefaultMap; var mapUid = _mapManager.GetMapEntityId(mapId); + if (TryComp(component.GridUid, out var shuttle)) { _shuttle.FTLToCoordinates(gridUid, shuttle, new EntityCoordinates(mapUid, offset), 0f, 0f, 30f); } - } protected override void Ended(EntityUid uid, BluespaceErrorRuleComponent component, GameRuleComponent gameRule, GameRuleEndedEvent args) { base.Ended(uid, component, gameRule, args); - if(!EntityManager.TryGetComponent(component.GridUid, out var gridTransform)) + if (!EntityManager.TryGetComponent(component.GridUid, out var gridTransform)) { Log.Error("bluespace error objective was missing transform component"); return; @@ -71,7 +74,7 @@ protected override void Ended(EntityUid uid, BluespaceErrorRuleComponent compone if (gridTransform.GridUid is not EntityUid gridUid) { - Log.Error( "bluespace error has no associated grid?"); + Log.Error("bluespace error has no associated grid?"); return; } @@ -98,12 +101,10 @@ protected override void Ended(EntityUid uid, BluespaceErrorRuleComponent compone _transform.SetCoordinates(mob.Entity.Owner, new EntityCoordinates(mob.MapUid, mob.LocalPosition)); } - var query = EntityQuery(); foreach (var account in query) { - _cargo.DeductFunds(account, (int) -(gridValue * component.RewardFactor)); + _cargo.DeductFunds(account, (int)-(gridValue * component.RewardFactor)); } } } - diff --git a/Content.Server/_NF/Implants/BibleUserImplantSystem.cs b/Content.Server/_NF/Implants/BibleUserImplantSystem.cs new file mode 100644 index 00000000000..01fb5582009 --- /dev/null +++ b/Content.Server/_NF/Implants/BibleUserImplantSystem.cs @@ -0,0 +1,38 @@ +using Content.Shared.Implants; +using Content.Shared.Implants.Components; +using Content.Server.Bible.Components; +using Robust.Shared.Containers; + +namespace Content.Server.Implants; + +public sealed class BibleUserImplantSystem : EntitySystem +{ + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInsert); + // We need to remove the BibleUserComponent from the owner before the implant + // is removed, so we need to execute before the SubdermalImplantSystem. + SubscribeLocalEvent(OnRemove, before: new[] { typeof(SubdermalImplantSystem) }); + } + + private void OnInsert(EntityUid uid, BibleUserImplantComponent component, ImplantImplantedEvent args) + { + if (!args.Implanted.HasValue) + return; + + var bibleUserComp = EnsureComp(args.Implanted.Value); + Dirty(args.Implanted.Value, bibleUserComp); + } + + // Currently permanent, but should support removal if/when a viable solution is found. + private void OnRemove(EntityUid uid, BibleUserImplantComponent component, EntGotRemovedFromContainerMessage args) + { + if (!TryComp(uid, out var implanted) || implanted.ImplantedEntity == null) + return; + + RemComp(implanted.ImplantedEntity.Value); + } +} diff --git a/Content.Server/_NF/Security/Components/ContrabandPriceGunComponent.cs b/Content.Server/_NF/Security/Components/ContrabandPriceGunComponent.cs new file mode 100644 index 00000000000..b0dc81a63d7 --- /dev/null +++ b/Content.Server/_NF/Security/Components/ContrabandPriceGunComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Server._NF.Security.Components; + +/// +/// This is used for the contraband appraisal gun, which checks the contraband turn-in value in FUCs of any object it appraises. +/// +[RegisterComponent] +public sealed partial class ContrabandPriceGunComponent : Component +{ + +} diff --git a/Content.Server/_NF/Security/ContrabandPriceGunSystem.cs b/Content.Server/_NF/Security/ContrabandPriceGunSystem.cs new file mode 100644 index 00000000000..bfd5e6d34a7 --- /dev/null +++ b/Content.Server/_NF/Security/ContrabandPriceGunSystem.cs @@ -0,0 +1,67 @@ +using Content.Server.Popups; +using Content.Shared._NF.Contraband.Components; +using Content.Server._NF.Security.Components; +using Content.Shared.IdentityManagement; +using Content.Shared.Interaction; +using Content.Shared.Timing; +using Content.Shared.Verbs; + +namespace Content.Server._NF.Security.Systems; + +/// +/// This system handles contraband appraisal messages and will inform a user of how much an item is worth for trade-in in FUCs. +/// +public sealed class ContrabandPriceGunSystem : EntitySystem +{ + [Dependency] private readonly UseDelaySystem _useDelay = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnAfterInteract); + SubscribeLocalEvent>(OnUtilityVerb); + } + + private void OnUtilityVerb(EntityUid uid, ContrabandPriceGunComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || args.Using == null) + return; + + if (!TryComp(uid, out UseDelayComponent? useDelay) || _useDelay.IsDelayed((uid, useDelay))) + return; + + if (!TryComp(args.Target, out var contraband)) + return; + + var verb = new UtilityVerb() + { + Act = () => + { + _popupSystem.PopupEntity(Loc.GetString("contraband-price-gun-pricing-result", ("object", Identity.Entity(args.Target, EntityManager)), ("price", contraband.Value)), args.User, args.User); + _useDelay.TryResetDelay((uid, useDelay)); + }, + Text = Loc.GetString("contraband-price-gun-verb-text"), + Message = Loc.GetString("contraband-price-gun-verb-message", ("object", Identity.Entity(args.Target, EntityManager))) + }; + + args.Verbs.Add(verb); + } + + private void OnAfterInteract(EntityUid uid, ContrabandPriceGunComponent component, AfterInteractEvent args) + { + if (!args.CanReach || args.Target == null || args.Handled) + return; + + if (!TryComp(uid, out UseDelayComponent? useDelay) || _useDelay.IsDelayed((uid, useDelay))) + return; + + if (TryComp(args.Target, out var contraband)) + _popupSystem.PopupEntity(Loc.GetString("contraband-price-gun-pricing-result", ("object", Identity.Entity(args.Target.Value, EntityManager)), ("price", contraband.Value)), args.User, args.User); + else + _popupSystem.PopupEntity(Loc.GetString("contraband-price-gun-pricing-result-none", ("object", Identity.Entity(args.Target.Value, EntityManager))), args.User, args.User); + + _useDelay.TryResetDelay((uid, useDelay)); + args.Handled = true; + } +} diff --git a/Content.Server/_NF/Transfer/Components/TransferMindOnDespawnComponent.cs b/Content.Server/_NF/Transfer/Components/TransferMindOnDespawnComponent.cs new file mode 100644 index 00000000000..aa3502bab3e --- /dev/null +++ b/Content.Server/_NF/Transfer/Components/TransferMindOnDespawnComponent.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server._NF.Transfer.Components; +/// +/// Its not fancy but it works for an in-between animations used on +/// hatching animation of the baby dragon +/// + +[RegisterComponent] +public sealed partial class TransferMindOnDespawnComponent : Component +{ + /// + /// The entity prototype to move the mind to after the animation. + /// + [DataField(required: true)] + public EntProtoId EntityPrototype = default!; +} diff --git a/Content.Server/_NF/Transfer/TransferMindOnDespawn.cs b/Content.Server/_NF/Transfer/TransferMindOnDespawn.cs new file mode 100644 index 00000000000..2e9f06fd516 --- /dev/null +++ b/Content.Server/_NF/Transfer/TransferMindOnDespawn.cs @@ -0,0 +1,37 @@ +using Content.Shared.Mind; +using Robust.Shared.Spawners; +using Robust.Shared.Prototypes; +using Content.Server._NF.Transfer.Components; + +namespace Content.Server._NF.Transfer; + +/// +/// Meant to be used along "TimedDespawn" component to transfer the player mind +/// after the animation for a smooth transition between entities +/// +public sealed class TransferMindOnDespawnSystem : EntitySystem +{ + [Dependency] private readonly SharedMindSystem _mindSystem = default!; + [Dependency] private readonly IPrototypeManager _protoManager= default!; + + ///Subscribe to the despawn event + public override void Initialize() + { + SubscribeLocalEvent(OnDespawnTransfer); + } + + private void OnDespawnTransfer(EntityUid uid, TransferMindOnDespawnComponent component, TimedDespawnEvent args) + { + if (!_mindSystem.TryGetMind(uid, out var mindId, out var mind)) + return; + + if (!_protoManager.TryIndex(component.EntityPrototype, out var entityProto)) + return; + + ///Spawn new entity on the same place where the animation ends and transfer the mind to the new entity + var coords = Transform(uid).Coordinates; + var dragon = EntityManager.SpawnAtPosition(entityProto.ID, coords); + + _mindSystem.TransferTo(mindId, dragon, mind: mind); + } +} diff --git a/Content.Shared/Weapons/Ranged/Components/RevolverAmmoProviderComponent.cs b/Content.Shared/Weapons/Ranged/Components/RevolverAmmoProviderComponent.cs index d982dfcb104..4dc8447d4ef 100644 --- a/Content.Shared/Weapons/Ranged/Components/RevolverAmmoProviderComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/RevolverAmmoProviderComponent.cs @@ -48,4 +48,18 @@ public sealed partial class RevolverAmmoProviderComponent : AmmoProviderComponen [DataField("soundSpin")] public SoundSpecifier? SoundSpin = new SoundPathSpecifier("/Audio/Weapons/Guns/Misc/revolver_spin.ogg"); + + // Frontier: better revolver reloading + /// + /// Is it okay for this entity to directly transfer its valid ammunition into another provider? + /// + [ViewVariables(VVAccess.ReadWrite), DataField("mayTransfer")] + public bool MayTransfer; + + /// + /// DoAfter delay for filling a bullet into another ballistic ammo provider. + /// + [DataField("fillDelay")] + public TimeSpan FillDelay = TimeSpan.FromSeconds(0.7); // Assume revolvers are harder to reload, and so should take more time. + // End Frontier } diff --git a/Content.Shared/Weapons/Ranged/Events/TakeAmmoEvent.cs b/Content.Shared/Weapons/Ranged/Events/TakeAmmoEvent.cs index 50cd7871d62..27b1083cf36 100644 --- a/Content.Shared/Weapons/Ranged/Events/TakeAmmoEvent.cs +++ b/Content.Shared/Weapons/Ranged/Events/TakeAmmoEvent.cs @@ -21,11 +21,19 @@ public sealed class TakeAmmoEvent : EntityEventArgs /// public EntityCoordinates Coordinates; - public TakeAmmoEvent(int shots, List<(EntityUid? Entity, IShootable Shootable)> ammo, EntityCoordinates coordinates, EntityUid? user) + // Frontier: better revolver reloading + /// + /// Does this event represent an intent to fire, or to safely remove ammo from an entity? + /// + public bool WillBeFired; + // End Frontier + + public TakeAmmoEvent(int shots, List<(EntityUid? Entity, IShootable Shootable)> ammo, EntityCoordinates coordinates, EntityUid? user, bool willBeFired = false) // Frontier: add willBeFired { Shots = shots; Ammo = ammo; Coordinates = coordinates; User = user; + WillBeFired = willBeFired; // Frontier } } diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs index 11cfc88470a..065ff53c893 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs @@ -5,6 +5,7 @@ using Content.Shared.Verbs; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Whitelist; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Serialization; @@ -63,31 +64,62 @@ private void OnBallisticAfterInteract(EntityUid uid, BallisticAmmoProviderCompon !Timing.IsFirstTimePredicted || args.Target == null || args.Used == args.Target || - Deleted(args.Target) || - !TryComp(args.Target, out var targetComponent) || - targetComponent.Whitelist == null) + Deleted(args.Target)) { return; } - args.Handled = true; + // Frontier: better revolver reloading + // Ensure the target of interaction has a valid component. + var validComponent = false; + TimeSpan fillDelay = component.FillDelay; // Default value should not be used. + if (TryComp(args.Target, out var ballisticComponent) && ballisticComponent.Whitelist is not null) + { + validComponent = true; + fillDelay = ballisticComponent.FillDelay; + } + else if (TryComp(args.Target, out var revolverComponent) && revolverComponent.Whitelist is not null) + { + validComponent = true; + fillDelay = revolverComponent.FillDelay; + } - _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.FillDelay, new AmmoFillDoAfterEvent(), used: uid, target: args.Target, eventTarget: uid) + if (validComponent) // End Frontier { - BreakOnMove = true, - BreakOnDamage = false, - NeedHand = true - }); + args.Handled = true; + + _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, fillDelay, new AmmoFillDoAfterEvent(), used: uid, target: args.Target, eventTarget: uid) // Frontier: component.FillDelay(args.Target, out var target) || - target.Whitelist == null) + if (Deleted(args.Target)) return; - if (target.Entities.Count + target.UnspawnedCount == target.Capacity) + // Frontier: Better revolver reloading + BallisticAmmoProviderComponent? ballisticTarget; + RevolverAmmoProviderComponent? revolverTarget = null; + if (!TryComp(args.Target, out ballisticTarget) && !TryComp(args.Target, out revolverTarget)) + { + return; + } + if ((ballisticTarget is null || ballisticTarget.Whitelist is null) && + (revolverTarget is null || revolverTarget.Whitelist is null)) + { + // No supported component type with valid whitelist. + return; + } + + //Check capacity + if (ballisticTarget is not null && GetBallisticShots(ballisticTarget) >= ballisticTarget.Capacity || + revolverTarget is not null && GetRevolverCount(revolverTarget) >= revolverTarget.Capacity) { Popup( Loc.GetString("gun-ballistic-transfer-target-full", @@ -96,6 +128,7 @@ private void OnBallisticAmmoFillDoAfter(EntityUid uid, BallisticAmmoProviderComp args.User); return; } + // End Frontier if (component.Entities.Count + component.UnspawnedCount == 0) { @@ -117,12 +150,15 @@ void SimulateInsertAmmo(EntityUid ammo, EntityUid ammoProvider, EntityCoordinate var evTakeAmmo = new TakeAmmoEvent(1, ammo, Transform(uid).Coordinates, args.User); RaiseLocalEvent(uid, evTakeAmmo); + bool validAmmoType = true; // Frontier: do not repeat reload attempts with invalid ammo. + foreach (var (ent, _) in ammo) { if (ent == null) continue; - if (!target.Whitelist.IsValid(ent.Value)) + if (ballisticTarget is not null && ballisticTarget?.Whitelist?.IsValid(ent.Value) != true || // Frontier: better revolver reloading + revolverTarget is not null && revolverTarget?.Whitelist?.IsValid(ent.Value) != true) // Frontier: better revolver reloading { Popup( Loc.GetString("gun-ballistic-transfer-invalid", @@ -132,6 +168,8 @@ void SimulateInsertAmmo(EntityUid ammo, EntityUid ammoProvider, EntityCoordinate args.User); SimulateInsertAmmo(ent.Value, uid, Transform(uid).Coordinates); + + validAmmoType = false; // Frontier: do not retry reloading if the ammo type is different. } else { @@ -145,9 +183,15 @@ void SimulateInsertAmmo(EntityUid ammo, EntityUid ammoProvider, EntityCoordinate } // repeat if there is more space in the target and more ammo to fill it - var moreSpace = target.Entities.Count + target.UnspawnedCount < target.Capacity; + // Frontier: better revolver reloading + var moreSpace = false; + if (ballisticTarget is not null) + moreSpace = GetBallisticShots(ballisticTarget) < ballisticTarget.Capacity; + else if (revolverTarget is not null) + moreSpace = GetRevolverCount(revolverTarget) < revolverTarget.Capacity; + // End Frontier var moreAmmo = component.Entities.Count + component.UnspawnedCount > 0; - args.Repeat = moreSpace && moreAmmo; + args.Repeat = moreSpace && moreAmmo && validAmmoType; // Frontier: do not repeat reload attempts with invalid ammo. } private void OnBallisticVerb(EntityUid uid, BallisticAmmoProviderComponent component, GetVerbsEvent args) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs index b8b00799c1b..fedc87a36c2 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs @@ -1,9 +1,11 @@ +using Content.Shared.DoAfter; using Content.Shared.Interaction; using Content.Shared.Verbs; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Robust.Shared.Map; using Robust.Shared.Serialization; using Robust.Shared.Utility; using System; @@ -25,6 +27,8 @@ protected virtual void InitializeRevolver() SubscribeLocalEvent(OnRevolverTakeAmmo); SubscribeLocalEvent>(OnRevolverVerbs); SubscribeLocalEvent(OnRevolverInteractUsing); + SubscribeLocalEvent(OnRevolverAfterInteract); // Frontier: better revolver reloading + SubscribeLocalEvent(OnRevolverAmmoFillDoAfter); // Frontier: better revolver reloading SubscribeLocalEvent(OnRevolverGetAmmoCount); SubscribeLocalEvent(OnRevolverUse); } @@ -47,13 +51,145 @@ private void OnRevolverGetAmmoCount(EntityUid uid, RevolverAmmoProviderComponent private void OnRevolverInteractUsing(EntityUid uid, RevolverAmmoProviderComponent component, InteractUsingEvent args) { - if (args.Handled) - return; + if (args.Handled || component?.Whitelist?.IsValid(args.Used, EntityManager) != true) // Frontier: better revolver reloading + return; // Frontier: better revolver reloading if (TryRevolverInsert(uid, component, args.Used, args.User)) args.Handled = true; } + // Frontier: better revolver reloading + private void OnRevolverAfterInteract(EntityUid uid, RevolverAmmoProviderComponent component, AfterInteractEvent args) + { + if (args.Handled || + !component.MayTransfer || + !Timing.IsFirstTimePredicted || + args.Target == null || + args.Used == args.Target || + Deleted(args.Target)) + return; + + // Ensure the target of interaction has a valid component. + var validComponent = false; + TimeSpan fillDelay = component.FillDelay; + if (TryComp(args.Target, out var ballisticComponent) && ballisticComponent.Whitelist is not null) + { + validComponent = true; + fillDelay = ballisticComponent.FillDelay; + } + else if (TryComp(args.Target, out var revolverComponent) && revolverComponent.Whitelist is not null) + { + validComponent = true; + fillDelay = revolverComponent.FillDelay; + } + + if (validComponent) + { + args.Handled = true; + + _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, fillDelay, new AmmoFillDoAfterEvent(), used: uid, target: args.Target, eventTarget: uid) + { + BreakOnMove = true, + BreakOnDamage = false, + NeedHand = true + }); + } + } + + // NOTE: closely resembles OnBallisticAmmoFillDoAfter except for bullet count check - redundancy could be removed. + private void OnRevolverAmmoFillDoAfter(EntityUid uid, RevolverAmmoProviderComponent component, AmmoFillDoAfterEvent args) + { + if (Deleted(args.Target)) + return; + + BallisticAmmoProviderComponent? ballisticTarget; + RevolverAmmoProviderComponent? revolverTarget = null; + if (!TryComp(args.Target, out ballisticTarget) && !TryComp(args.Target, out revolverTarget)) + { + return; + } + if ((ballisticTarget is null || ballisticTarget.Whitelist is null) && + (revolverTarget is null || revolverTarget.Whitelist is null)) + { + // No supported component type with valid whitelist. + return; + } + + if (ballisticTarget is not null && GetBallisticShots(ballisticTarget) >= ballisticTarget.Capacity || + revolverTarget is not null && GetRevolverCount(revolverTarget) >= revolverTarget.Capacity) + { + Popup( + Loc.GetString("gun-ballistic-transfer-target-full", + ("entity", args.Target)), + args.Target, + args.User); + return; + } + + if (GetRevolverUnspentCount(component) == 0) + { + // NOTE: the revolver hay be full of unspent cases. Is this considered "empty", or do we need a new string? + Popup( + Loc.GetString("gun-ballistic-transfer-empty", + ("entity", uid)), + uid, + args.User); + return; + } + + void SimulateInsertAmmo(EntityUid ammo, EntityUid ammoProvider, EntityCoordinates coordinates) + { + var evInsert = new InteractUsingEvent(args.User, ammo, ammoProvider, coordinates); + RaiseLocalEvent(ammoProvider, evInsert); + } + + List<(EntityUid? Entity, IShootable Shootable)> ammo = new(); + var evTakeAmmo = new TakeAmmoEvent(1, ammo, Transform(uid).Coordinates, args.User); + RaiseLocalEvent(uid, evTakeAmmo); + + bool validAmmoType = true; + + foreach (var (ent, _) in ammo) + { + if (ent == null) + continue; + + if (ballisticTarget is not null && ballisticTarget.Whitelist?.IsValid(ent.Value) != true || + revolverTarget is not null && revolverTarget.Whitelist?.IsValid(ent.Value) != true) + { + Popup( + Loc.GetString("gun-ballistic-transfer-invalid", + ("ammoEntity", ent.Value), + ("targetEntity", args.Target.Value)), + uid, + args.User); + + SimulateInsertAmmo(ent.Value, uid, Transform(uid).Coordinates); + + validAmmoType = false; + } + else + { + // play sound to be cool + Audio.PlayPredicted(component.SoundInsert, uid, args.User); + SimulateInsertAmmo(ent.Value, args.Target.Value, Transform(args.Target.Value).Coordinates); + } + + if (IsClientSide(ent.Value)) + Del(ent.Value); + } + + // repeat if there is more space in the target and more ammo to fill it + var moreSpace = false; + if (ballisticTarget is not null) + moreSpace = GetBallisticShots(ballisticTarget) < ballisticTarget.Capacity; + else if (revolverTarget is not null) + moreSpace = GetRevolverCount(revolverTarget) < revolverTarget.Capacity; + var moreAmmo = GetRevolverUnspentCount(component) > 0; + args.Repeat = moreSpace && moreAmmo && validAmmoType; + } + // End Frontier + private void OnRevolverGetState(EntityUid uid, RevolverAmmoProviderComponent component, ref ComponentGetState args) { args.State = new RevolverAmmoProviderComponentState @@ -89,7 +225,7 @@ private void OnRevolverHandleState(EntityUid uid, RevolverAmmoProviderComponent public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderComponent component, EntityUid uid, EntityUid? user) { - if (component.Whitelist?.IsValid(uid, EntityManager) == false) + if (component.Whitelist?.IsValid(uid, EntityManager) != true) // Frontier: no null, consistency with BallisticAmmoProvider return false; // If it's a speedloader try to get ammo from it. @@ -123,7 +259,8 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone return false; } - for (var i = Math.Min(ev.Ammo.Count - 1, component.Capacity - 1); i >= 0; i--) + // Rotate around until we've covered the whole cylinder or there are no more unspent bullets to transfer. + for (var i = 0; i < component.Capacity && ev.Ammo.Count > 0; i++) // Frontier: speedloader partial reload fix { var index = (component.CurrentIndex + i) % component.Capacity; @@ -145,9 +282,6 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone component.AmmoSlots[index] = ent.Value; Containers.Insert(ent.Value, component.AmmoContainer); SetChamber(index, component, uid); - - if (ev.Ammo.Count == 0) - break; } DebugTools.Assert(ammo.Count == 0); @@ -344,68 +478,112 @@ protected virtual void SpinRevolver(EntityUid revolverUid, RevolverAmmoProviderC private void OnRevolverTakeAmmo(EntityUid uid, RevolverAmmoProviderComponent component, TakeAmmoEvent args) { - var currentIndex = component.CurrentIndex; - Cycle(component, args.Shots); - - // Revolvers provide the bullets themselves rather than the cartridges so they stay in the revolver. - for (var i = 0; i < args.Shots; i++) + if (args.WillBeFired) // Frontier: fire the revolver { - var index = (currentIndex + i) % component.Capacity; - var chamber = component.Chambers[index]; - EntityUid? ent = null; + var currentIndex = component.CurrentIndex; + Cycle(component, args.Shots); - // Get contained entity if it exists. - if (component.AmmoSlots[index] != null) - { - ent = component.AmmoSlots[index]!; - component.Chambers[index] = false; - } - // Try to spawn a round if it's available. - else if (chamber != null) + // Revolvers provide the bullets themselves rather than the cartridges so they stay in the revolver. + for (var i = 0; i < args.Shots; i++) { - if (chamber == true) - { - // Pretend it's always been there. - ent = Spawn(component.FillPrototype, args.Coordinates); - - if (!_netManager.IsClient) - { - component.AmmoSlots[index] = ent; - Containers.Insert(ent.Value, component.AmmoContainer); - } + var index = (currentIndex + i) % component.Capacity; + var chamber = component.Chambers[index]; + EntityUid? ent = null; + // Get contained entity if it exists. + if (component.AmmoSlots[index] != null) + { + ent = component.AmmoSlots[index]!; component.Chambers[index] = false; } - } + // Try to spawn a round if it's available. + else if (chamber != null) + { + if (chamber == true) + { + // Pretend it's always been there. + ent = Spawn(component.FillPrototype, args.Coordinates); - // Chamber empty or spent - if (ent == null) - continue; + if (!_netManager.IsClient) + { + component.AmmoSlots[index] = ent; + Containers.Insert(ent.Value, component.AmmoContainer); + } - if (TryComp(ent, out var cartridge)) - { - if (cartridge.Spent) + component.Chambers[index] = false; + } + } + + // Chamber empty or spent + if (ent == null) continue; - // Mark cartridge as spent and if it's caseless delete from the chamber slot. - SetCartridgeSpent(ent.Value, cartridge, true); - var spawned = Spawn(cartridge.Prototype, args.Coordinates); - args.Ammo.Add((spawned, EnsureComp(spawned))); + if (TryComp(ent, out var cartridge)) + { + if (cartridge.Spent) + continue; + + // Mark cartridge as spent and if it's caseless delete from the chamber slot. + SetCartridgeSpent(ent.Value, cartridge, true); + var spawned = Spawn(cartridge.Prototype, args.Coordinates); + args.Ammo.Add((spawned, EnsureComp(spawned))); - if (cartridge.DeleteOnSpawn) + if (cartridge.DeleteOnSpawn) + component.Chambers[index] = null; + } + else + { component.Chambers[index] = null; + args.Ammo.Add((ent.Value, EnsureComp(ent.Value))); + } + + // Delete the cartridge entity on client + if (_netManager.IsClient) + { + QueueDel(ent); + } } - else - { - component.Chambers[index] = null; - args.Ammo.Add((ent.Value, EnsureComp(ent.Value))); - } + } + else + { + // Frontier: better revolver reloading + var currentIndex = component.CurrentIndex; + var shotsToRemove = Math.Min(args.Shots, GetRevolverUnspentCount(component)); + var removedShots = 0; - // Delete the cartridge entity on client - if (_netManager.IsClient) + // Rotate around until we've covered the whole cylinder or there are no more unspent bullets to transfer. + for (var i = 0; i < component.Capacity && removedShots < shotsToRemove; i++) { - QueueDel(ent); + // Remove the last rounds to be fired without cycling the action. + // If the gun had a live round to start, it should have a live round when finished if any unspent rounds remain. + var index = (currentIndex + (component.Capacity - 1) - i) % component.Capacity; + var chamber = component.Chambers[index]; + + // Only take live rounds, leave the empties where they are. + if (chamber == true) + { + // Get current cartridge, or spawn a new one if it doesn't exist. + EntityUid? ent = component.AmmoSlots[index]!; + if (ent == null) + { + ent = Spawn(component.FillPrototype, args.Coordinates); + + if (!_netManager.IsClient) + { + component.AmmoSlots[index] = ent; + Containers.Insert(ent.Value, component.AmmoContainer); + } + } + + // Add the cartridge to our set and remove the bullet from the gun. + args.Ammo.Add((ent.Value, EnsureComp(ent.Value))); + Containers.Remove(ent.Value, component.AmmoContainer); + component.AmmoSlots[index] = null; + component.Chambers[index] = null; + removedShots++; + } } + // End Frontier } UpdateAmmoCount(uid, prediction: false); diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index e16744769c8..57564f7a480 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -373,7 +373,7 @@ private bool TryTakeAmmo( fromCoordinates = Transform(user).Coordinates; // Remove ammo - var ev = new TakeAmmoEvent(shots, new List<(EntityUid? Entity, IShootable Shootable)>(), fromCoordinates, user); + var ev = new TakeAmmoEvent(shots, new List<(EntityUid? Entity, IShootable Shootable)>(), fromCoordinates, user, true); // Frontier: add intent to fire // Listen it just makes the other code around it easier if shots == 0 to do this. if (shots > 0) diff --git a/Content.Shared/_NF/Implants/BibleUserImplantComponent.cs b/Content.Shared/_NF/Implants/BibleUserImplantComponent.cs new file mode 100644 index 00000000000..4f0e0e6ae6b --- /dev/null +++ b/Content.Shared/_NF/Implants/BibleUserImplantComponent.cs @@ -0,0 +1,11 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Implants.Components; + +/// +/// Implant to get BibleUser status (to pray, summon familiars, bless with bibles) +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class BibleUserImplantComponent : Component +{ +} diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 22ecb8787cf..2896745a500 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -4987,3 +4987,73 @@ Entries: message: Fixed minor graphical error on long weapon case. id: 5030 time: '2024-06-12T22:22:04.0000000+00:00' +- author: Leander + changes: + - type: Add + message: >- + Nanotrasen has developed new tracking methods for the NFSD and packed it + all in a nice bundle. + - type: Add + message: >- + Nanotrasen has reverse engineered the china lake for the NFSD to deliver + high speed justice. + - type: Tweak + message: Organized the NFSD Uplink a little more into a bundles category. + id: 5031 + time: '2024-06-13T22:56:14.0000000+00:00' +- author: whatston3 + changes: + - type: Add + message: >- + Revolvers can now reload from ammunition boxes and magazines, and can + provide ammunition for speedloaders. + - type: Fix + message: Speedloaders do not waste ammunition on partial reloads. + id: 5032 + time: '2024-06-13T23:03:55.0000000+00:00' +- author: dvir01 + changes: + - type: Add + message: >- + Contraband appraisal guns are available to appraise contraband items' + value in FUCs. + - type: Add + message: The contraband appraisal gun is now included in the NFSD tool kit. + id: 5033 + time: '2024-06-13T23:06:44.0000000+00:00' +- author: whatston3 + changes: + - type: Tweak + message: >- + Oni accuracy penalty is now reduced from 20x normal spread to 18x normal + spread. + - type: Fix + message: >- + Oni accuracy penalty is now properly applied to handguns, and does not + compound on wielded penalty. + id: 5034 + time: '2024-06-13T23:18:43.0000000+00:00' +- author: whatston3 + changes: + - type: Add + message: >- + Characters can now select the Pious trait to start with a bible, the + ability to use it, and a vow of pacifism. + - type: Tweak + message: Water and blood can only be blessed with a bible if the user is Pious. + id: 5035 + time: '2024-06-13T23:45:16.0000000+00:00' +- author: Leander + changes: + - type: Add + message: >- + New dragon egg and baby dragon are now more easy to find on this dragon + hunting season, don't forget to butcher them! + - type: Add + message: >- + Dragon DNA evolved and there has been sights of them spitting walls of + flames. + - type: Add + message: New omelette recipe using expensive hard to find ingredients. + id: 5036 + time: '2024-06-14T00:02:44.0000000+00:00' diff --git a/Resources/Locale/en-US/_NF/cargo/price-gun-component.ftl b/Resources/Locale/en-US/_NF/cargo/price-gun-component.ftl new file mode 100644 index 00000000000..472e2608e9d --- /dev/null +++ b/Resources/Locale/en-US/_NF/cargo/price-gun-component.ftl @@ -0,0 +1,4 @@ +contraband-price-gun-pricing-result = The device deems {THE($object)} to be worth {$price} FUCs. +contraband-price-gun-verb-text = Appraisal +contraband-price-gun-verb-message = Appraise {THE($object)}. +contraband-price-gun-pricing-result-none = The device deems {THE($object)} to be worth no FUCs. diff --git a/Resources/Locale/en-US/_NF/chapel/bible.ftl b/Resources/Locale/en-US/_NF/chapel/bible.ftl new file mode 100644 index 00000000000..b85c4f3eb8e --- /dev/null +++ b/Resources/Locale/en-US/_NF/chapel/bible.ftl @@ -0,0 +1,3 @@ +bible-summon-request-failed = You don't feel worthy enough... + +bible-bless-solution-failed = You don't feel worthy enough... diff --git a/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl index e7fd2aff5a3..fe8111d8220 100644 --- a/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl @@ -22,3 +22,7 @@ ghost-role-information-ert-mailcarrier-description = Assist with paperworks effo ghost-role-information-jerma-name = Jerma ghost-role-information-jerma-description = Pog moment + +ghost-role-information-baby-dragon-name = Baby space dragon +ghost-role-information-baby-dragon-description = Hatch from your egg and go on incredible adventures with your mom and their crew! +ghost-role-information-baby-dragon-rules = You are about to hatch from your egg, make sure to know who is your mom, be loyal and protect their crew! diff --git a/Resources/Locale/en-US/_NF/store/currency.ftl b/Resources/Locale/en-US/_NF/store/currency.ftl index e6bb8966930..b09b85ff6a6 100644 --- a/Resources/Locale/en-US/_NF/store/currency.ftl +++ b/Resources/Locale/en-US/_NF/store/currency.ftl @@ -1 +1,2 @@ store-currency-display-security-telecrystal = FUC +store-currency-display-pirate-telecrystal = DB diff --git a/Resources/Locale/en-US/_NF/store/uplink-catalog.ftl b/Resources/Locale/en-US/_NF/store/uplink-catalog.ftl index 9ff0cb4f2cd..2330732b66a 100644 --- a/Resources/Locale/en-US/_NF/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/_NF/store/uplink-catalog.ftl @@ -6,6 +6,7 @@ store-category-secweapons = Weapons store-category-secutility = Utility store-category-secammo = Ammunition store-category-secexplosives = Explosives +store-category-secbundles = Bundles uplink-security-hardsuit-name = Security HardSuit @@ -141,4 +142,55 @@ uplink-security-stingergrenade-box-desc = A box containing 4 stinger grenades. uplink-security-breachingcharge-box-name = Breaching Charge Box uplink-security-breachingcharge-box-desc = A box containing 4 breaching charges. uplink-security-hoverbike-name = NFSD Hoverbike Flatpack -uplink-security-hoverbike-desc = Flatpack containing NFSD issued turbine with bike handles. Keys already slotted in the ignition. Very safe. \ No newline at end of file +uplink-security-hoverbike-desc = Flatpack containing NFSD issued turbine with bike handles. Keys already slotted in the ignition. Very safe. +uplink-security-trackingdart-bundle-name = Tracking Darts Bundle +uplink-security-trackingdart-bundle-desc = A bundle containing a Lake type launcher 5 tracking darts and 5 pinpointers. +uplink-security-emp-bundle-name = EMP Bundle +uplink-security-emp-bundle-desc = A bundle containing a Lake type launcher and 12 EMP grenades. +uplink-security-emp-ammo-name = EMP Projectile Ammo +uplink-security-emp-ammo-desc = A a box containing 4 EMP projectile grenades. +uplink-security-trackingdart-ammo-name = Tracking Darts Ammo +uplink-security-trackingdart-ammo-desc = A a box containing 4 tracking darts. + +store-category-piratehardsuits = EVA Suits +store-category-pirateweapons = Weapons +store-category-pirateutility = Utility +store-category-pirateammo = Ammunition +store-category-pirateexplosives = Explosives + +uplink-pirate-hardsuit-name = Pirate Hardsuit +uplink-pirate-hardsuit-desc = A heavy space suit that provides some basic protection from the cold harsh realities of deep space. +uplink-pirate-hardsuit-captain-name = Pirate Captain's Hardsuit +uplink-pirate-hardsuit-captain-desc = An ancient armored hardsuit, perfect for defending against space scurvy and toolbox-wielding scallywags. +uplink-pirate-crate-captain-name = Pirate Captain's Chest +uplink-pirate-crate-captain-desc = A chest filled with the necessary goodies for a pirate captain. +uplink-pirate-crate-name = Pirate Chest +uplink-pirate-crate-desc = A chest filled with the necessary goodies for a pirate. +uplink-pirate-magboots-name = Pirate Magboots +uplink-pirate-magboots-desc = Pirate magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle. +uplink-pirate-hoverbike-name = Pirate Hoverbike +uplink-pirate-hoverbike-desc = Yarr! Dis be me sovereign space shuttle. Now, whaur me rum? +uplink-pirate-blunderbuss-name = Blunderbuss +uplink-pirate-blunderbuss-desc = Deadly at close range, an illegal shotgun often found at the side of a pirate. +uplink-pirate-revolver-name = Pirate Revolver +uplink-pirate-revolver-desc = An odd, illegal, old-looking revolver, favoured by pirate crews. Uses .45 magnum ammo. +uplink-pirate-cannon-name = Pirate Cannon +uplink-pirate-cannon-desc = Kaboom! +uplink-pirate-cannonball-name = Cannonball Chest +uplink-pirate-cannonball-desc = A chest full of balls made to be shot from a cannon. +uplink-pirate-grapeshot-name = Grapeshot Chest +uplink-pirate-grapeshot-desc = A chest full of cluster balls made to shoot a wide spread of small projectiles. +uplink-pirate-glassshot-name = Glassshot Chest +uplink-pirate-glassshot-desc = A chest full of brittle glass balls that will fire multiple projectiles in a tight spread. +uplink-pirate-satchel-name = Pirate Satchel +uplink-pirate-satchel-desc = An inconspicuous satchel filled with pirate goodies. +uplink-pirate-flintlock-name = Flintlock Pistol +uplink-pirate-flintlock-desc = A pirate captain's companion. Yarrr! Uses .60 anti-materiel ammo. +uplink-pirate-shotgunammo-name = Blunderbuss Shell Box +uplink-pirate-shotgunammo-desc = A box of .50 shotgun shells, used in the blunderbuss. +uplink-pirate-revolverammo-name = Pirate Revolver Ammo Box +uplink-pirate-revolverammo-desc = A box of .45 magnum rounds, used in the pirate revolver. +uplink-pirate-flintlockammo-name = Flintlock Pistol Ammo Box +uplink-pirate-flintlockammo-desc = A box of .60 anti-materiel rounds, used in the flintlock pistol. +uplink-pirate-ecutlass-name = Energy Cutlass +uplink-pirate-ecutlass-desc = An energy cutlass! diff --git a/Resources/Locale/en-US/_NF/traits/traits.ftl b/Resources/Locale/en-US/_NF/traits/traits.ftl index 569153d67fc..f462ee8b97b 100644 --- a/Resources/Locale/en-US/_NF/traits/traits.ftl +++ b/Resources/Locale/en-US/_NF/traits/traits.ftl @@ -7,4 +7,7 @@ trait-stinky-in-range-others = {$target} smells foul! trait-stinky-in-range-self = Something smells foul! trait-goblin-accent-name = Goblin Cant -trait-goblin-accent-desc = You speak in secret language many find annoying and not that secretive. \ No newline at end of file +trait-goblin-accent-desc = You speak in secret language many find annoying and not that secretive. + +trait-pious-name = Pious +trait-pious-desc = You are in touch with the gods, but your vows keep you from striking in anger. \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Fills/Crates/antag.yml b/Resources/Prototypes/Catalog/Fills/Crates/antag.yml index fd1af8a3b98..8b137891791 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/antag.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/antag.yml @@ -1,34 +1 @@ -- type: entity - id: CratePirateChestCaptain - name: captains pirate chest - suffix: Filled - parent: CratePirate - components: - - type: StorageFill - contents: - - id: ClothingNeckCloakPirateCap - - id: Cutlass # Frontier EnergyCutlass[TODO NFSD BORG] + # id: UplinkReinforcementRadioSyndicateCyborgAssault1 + # name: uplink-reinforcement-radio-cyborg-assault-name + # description: uplink-reinforcement-radio-cyborg-assault-desc + # productEntity: ReinforcementRadioSyndicateCyborgAssault + # icon: { sprite: Mobs/Silicon/chassis.rsi, state: synd_sec } + # cost: + # FrontierUplinkCoin: 1 + # categories: + # - UplinkSecurityBundles + # conditions: + # - !type:StoreWhitelistCondition + # whitelist: + # tags: + # - SecurityUplink - type: listing id: UplinkSecurityHardsuit @@ -552,7 +552,7 @@ cost: FrontierUplinkCoin: 4 categories: - - UplinkSecurityUtility + - UplinkSecurityBundles conditions: - !type:StoreWhitelistCondition whitelist: @@ -1195,7 +1195,7 @@ cost: FrontierUplinkCoin: 15 categories: - - UplinkSecurityUtility + - UplinkSecurityBundles conditions: - !type:StoreWhitelistCondition whitelist: @@ -1207,6 +1207,38 @@ - SeniorOfficer - Sheriff +- type: listing + id: UplinkSecurityTrackingBundle + name: uplink-security-trackingdart-bundle-name + description: uplink-security-trackingdart-bundle-desc + productEntity: ClothingBackpackDuffelNfsdTrackingBundle + icon: { sprite: _NF/Clothing/Back/Duffels/nfsd_brown.rsi, state: icon } + cost: + FrontierUplinkCoin: 4 + categories: + - UplinkSecurityBundles + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - SecurityUplink + +- type: listing + id: UplinkSecurityEmpBundle + name: uplink-security-emp-bundle-name + description: uplink-security-emp-bundle-desc + productEntity: ClothingBackpackDuffelNfsdEmpBundle + icon: { sprite: _NF/Clothing/Back/Duffels/nfsd_brown.rsi, state: icon } + cost: + FrontierUplinkCoin: 4 + categories: + - UplinkSecurityBundles + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - SecurityUplink + # - type: listing # id: UplinkSecurityNonLethalArmory # name: uplink-security-nonlethalarmory-name @@ -1226,4 +1258,36 @@ # whitelist: # - Bailiff # - SeniorOfficer - # - Sheriff \ No newline at end of file + # - Sheriff + +- type: listing + id: UplinkSecurityEmpGrenadeAmmo + name: uplink-security-emp-ammo-name + description: uplink-security-emp-ammo-desc + productEntity: BoxEmpGrenadesAmmo + icon: { sprite: Objects/Storage/boxes.rsi, state: box } + cost: + FrontierUplinkCoin: 1 + categories: + - UplinkSecurityAmmo + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - SecurityUplink + +- type: listing + id: UplinkSecurityTrackingDartsAmmo + name: uplink-security-trackingdart-ammo-name + description: uplink-security-trackingdart-ammo-desc + productEntity: BoxTrackingDartsAmmo + icon: { sprite: Objects/Storage/boxes.rsi, state: box } + cost: + FrontierUplinkCoin: 1 + categories: + - UplinkSecurityAmmo + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - SecurityUplink diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml index 0d9c7cb69b0..d50d73de3ae 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Head/hats.yml @@ -138,6 +138,36 @@ - ClothMade - WhitelistChameleon +- type: entity + parent: ClothingHeadBase + id: ClothingHeadHatPirates + name: pirate's hat + description: Y'Arrgghhh. + components: + - type: Sprite + sprite: _NF/Clothing/Head/Hats/pirate_hat.rsi + - type: Clothing + sprite: _NF/Clothing/Head/Hats/pirate_hat.rsi + - type: Tag + tags: + - ClothMade + - WhitelistChameleon + +- type: entity + parent: ClothingHeadBase + id: ClothingHeadHatPirateLuffy + name: suspicious pirate's hat + description: This here hat be lookin' suspicious. + components: + - type: Sprite + sprite: _NF/Clothing/Head/Hats/pirate_hat_luffy.rsi + - type: Clothing + sprite: _NF/Clothing/Head/Hats/pirate_hat_luffy.rsi + - type: Tag + tags: + - ClothMade + - WhitelistChameleon + - type: entity parent: ClothingHeadBase id: ClothingHeadHatNfsdBeretGreen diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Neck/cloaks.yml b/Resources/Prototypes/_NF/Entities/Clothing/Neck/cloaks.yml index 9138eaca6de..2bd9d44b1b5 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Neck/cloaks.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Neck/cloaks.yml @@ -16,4 +16,13 @@ description: A top of the line cloak for Frontier Outpost's station representative. Made from exquisite fibers and furs, this thing must have cost a fortune! The fact this cloak was even issued shows the trust Central Command is placing in their representative on this outpost. components: - type: Sprite - sprite: _NF/Clothing/Neck/Cloaks/sr.rsi \ No newline at end of file + sprite: _NF/Clothing/Neck/Cloaks/sr.rsi + +- type: entity + parent: ClothingNeckBase + id: ClothingNeckCloakPirateParrot + name: Polly the pirate parrot + description: A mute parrot named Polly. Loves crackers, cannons, and sitting on shoulders. + components: + - type: Sprite + sprite: _NF/Clothing/Neck/Cloaks/pirate_parrot.rsi diff --git a/Resources/Prototypes/_NF/Entities/Clothing/OuterClothing/coats.yml b/Resources/Prototypes/_NF/Entities/Clothing/OuterClothing/coats.yml index 872f9fc7a21..3f731167066 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/OuterClothing/coats.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/OuterClothing/coats.yml @@ -144,3 +144,14 @@ sprite: _NF/Clothing/OuterClothing/Misc/sr_jacket.rsi - type: Clothing sprite: _NF/Clothing/OuterClothing/Misc/sr_jacket.rsi + +- type: entity + parent: ClothingOuterStorageBase + id: ClothingOuterCoatPirateCaptain + name: pirate captain's coat + description: Y'arrgh har fiddle di dee. + components: + - type: Sprite + sprite: _NF/Clothing/OuterClothing/Misc/pirate_captain.rsi + - type: Clothing + sprite: _NF/Clothing/OuterClothing/Misc/pirate_captain.rsi diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Shoes/boots.yml b/Resources/Prototypes/_NF/Entities/Clothing/Shoes/boots.yml index eaca108e349..6d2c93a8a17 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Shoes/boots.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Shoes/boots.yml @@ -41,3 +41,27 @@ collection: FootstepHeavy params: variation: 0.08 + +- type: entity + parent: ClothingShoesBaseButcherable + id: ClothingShoesBootsPirate + name: pirate boots + description: These boots can hold an endless hoard of foot. + components: + - type: Sprite + sprite: _NF/Clothing/Shoes/Boots/pirate.rsi + - type: Clothing + sprite: _NF/Clothing/Shoes/Boots/pirate.rsi + - type: Matchbox + +- type: entity + parent: ClothingShoesBaseButcherable + id: ClothingShoesBootsPirateLuffy + name: suspicious pirate sandals + description: A rather suspicious looking set of pirate sandals. + components: + - type: Sprite + sprite: _NF/Clothing/Shoes/Boots/pirate_luffy.rsi + - type: Clothing + sprite: _NF/Clothing/Shoes/Boots/pirate_luffy.rsi + - type: Matchbox diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/_NF/Entities/Clothing/Uniforms/jumpsuits.yml index 31351e1bbf0..848beefb8c8 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Uniforms/jumpsuits.yml @@ -232,3 +232,25 @@ sprite: Clothing/Uniforms/Jumpsuit/lawyergalaxyblue.rsi - type: Clothing sprite: Clothing/Uniforms/Jumpsuit/lawyergalaxyblue.rsi + +- type: entity + parent: ClothingUniformBase + id: ClothingUniformJumpsuitPirateSlops + name: pirate slops + description: A raggedy but comfortable uniform to plunder the sector. + components: + - type: Sprite + sprite: _NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi + - type: Clothing + sprite: _NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi + +- type: entity + parent: ClothingUniformBase + id: ClothingUniformJumpsuitPirateLuffy + name: suspicious pirate uniform + description: A rather suspicious looking set of pirate clothes. + components: + - type: Sprite + sprite: _NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi + - type: Clothing + sprite: _NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi diff --git a/Resources/Prototypes/_NF/Entities/Mobs/NPCs/baby_dragon.yml b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/baby_dragon.yml new file mode 100644 index 00000000000..de669d89e6d --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Mobs/NPCs/baby_dragon.yml @@ -0,0 +1,172 @@ +- type: entity + parent: + - SimpleSpaceMobBase + - FlyingMobBase + id: MobDragonPet + name: baby space dragon + description: Even a flying leviathan starts off small and from an egg. + components: + - type: Body + prototype: Animal + - type: Climbing + - type: NameIdentifier + group: GenericNumber + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.7 + 80: 0.5 + - type: MobPrice + price: 2000 + - type: Perishable + - type: Hunger + thresholds: + Overfed: 100 + Okay: 50 + Peckish: 25 + Starving: 10 + Dead: 0 + baseDecayRate: 0.00925925925926 # Guy needs to eat and drink + - type: Thirst + thresholds: + OverHydrated: 200 + Okay: 150 + Thirsty: 100 + Parched: 50 + Dead: 0 + baseDecayRate: 0.04 + - type: StatusEffects + allowed: + - Stun + - KnockedDown + - SlowedDown + - Stutter + - Electrocution + - ForcedSleep + - TemporaryBlindness + - Pacified + - StaminaModifier + - type: Bloodstream + bloodMaxVolume: 650 + - type: FloatingVisuals + - type: NpcFactionMember + factions: + - Dragon + - PetsNT + - type: Speech + speechVerb: SmallMob + - type: HTN + rootTask: + task: MouseCompound + - type: CombatMode + - type: MobMover + - type: InputMover + - type: MovementSpeedModifier + baseWalkSpeed: 3 + baseSprintSpeed: 5 + weightlessModifier: 1.5 + - type: RandomSprite + available: + - enum.DamageStateVisualLayers.Base: + alive: Rainbow + - type: Sprite + sprite: _NF/Mobs/Pets/baby_dragon.rsi + noRot: true + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: alive-unshaded + shader: unshaded + - type: Appearance + - type: DamageStateVisuals + states: + Alive: + Base: alive + BaseUnshaded: alive-unshaded + Critical: + Base: crit + Dead: + Base: dead + BaseUnshaded: dead-unshaded + - type: Physics + bodyType: KinematicController + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.40 + density: 100 + mask: + - FlyingMobMask + layer: + - FlyingMobLayer + - type: MobState + - type: MobStateActions + actions: + Critical: + - ActionCritSuccumb + - ActionCritLastWords + - type: MobThresholds + thresholds: + 0: Alive + 200: Critical + 300: Dead + - type: Metabolizer + solutionOnBody: false + metabolizerTypes: [ Dragon ] + groups: + - id: Medicine + - id: Poison + - type: Butcherable + spawned: + - id: FoodMeatDragon + amount: 1 + - type: InteractionPopup + successChance: 0.85 # It's no goose, but you better smell like carp. + interactSuccessString: petting-success-dragon + interactFailureString: petting-failure-dragon + interactFailureSound: + path: /Audio/Animals/space_dragon_roar.ogg + soundPerceivedByOthers: false # A 75% chance for a loud roar would get old fast. + - type: MeleeWeapon + altDisarm: false + angle: 0 + animation: WeaponArcBite + soundHit: + path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg + damage: + types: + Piercing: 5 + Slash: 5 + - type: Puller + needsHands: false + - type: ReplacementAccent + accent: genericAggressive + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + - type: ActionGun + action: ActionDragonsBreath + gunProto: BabyDragonsSparkGun + +- type: entity + noSpawn: true + id: BabyDragonsSparkGun + name: baby dragon's spark + description: For dragon's breathing + components: + - type: RechargeBasicEntityAmmo + rechargeCooldown: 120 + rechargeSound: + path: /Audio/Animals/space_dragon_roar.ogg + - type: BasicEntityAmmoProvider + proto: BabyDragonSpark + capacity: 1 + count: 1 + - type: Gun + soundGunshot: + path: /Audio/Animals/space_dragon_roar.ogg + soundEmpty: null + projectileSpeed: 15 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Consumable/Food/meals.yml b/Resources/Prototypes/_NF/Entities/Objects/Consumable/Food/meals.yml index d68d51dc773..abcb5740e4f 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Consumable/Food/meals.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Consumable/Food/meals.yml @@ -66,3 +66,33 @@ groups: Brute: 1 - type: FriedTrait + +- type: entity + name: dragon omelette + parent: FoodMealBase + id: FoodMealDragonOmelette + description: + components: + - type: FlavorProfile + flavors: + - egg + - fishy + - salty + - peppery + - type: Sprite + sprite: _NF/Objects/Consumable/Food/dragonomelette.rsi + state: icon + - type: SolutionContainerManager + solutions: + food: + maxVol: 40 + reagents: + - ReagentId: Nutriment + Quantity: 15 + - ReagentId: Flavorol + Quantity: 10 + - ReagentId: Ichor + Quantity: 12 + - type: Tag + tags: + - Meat diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml index 04b0b01ce79..821e7f22d11 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/implanters.yml @@ -25,3 +25,11 @@ components: - type: Implanter implant: DeathAcidifierImplantNF + +- type: entity + id: BibleUserImplanter + name: faith implanter + parent: BaseImplantOnlyImplanter + components: + - type: Implanter + implant: BibleUserImplant diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml index 517d950ffbc..a02d43f69a5 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/subdermal_implants.yml @@ -77,3 +77,14 @@ - SubdermalImplant - HideContextMenu - DeathAcidifier + +- type: entity + parent: BaseSubdermalImplant + id: BibleUserImplant + name: faith implant + description: This implant binds the user to the gods. + noSpawn: true + components: + - type: SubdermalImplant + permanent: true + - type: BibleUserImplant diff --git a/Resources/Prototypes/_NF/Entities/Objects/Misc/traking_dart.yml b/Resources/Prototypes/_NF/Entities/Objects/Misc/traking_dart.yml new file mode 100644 index 00000000000..f2de19d67d0 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Misc/traking_dart.yml @@ -0,0 +1,69 @@ +- type: entity + name: tracking dart + id: TrackingDart + parent: BaseItem + components: + - type: ThrowingAngle + angle: 315 + - type: EmbeddableProjectile + embedOnThrow: false + sound: /Audio/Weapons/star_hit.ogg + removalTime: 3 + - type: Projectile + deleteOnCollide: false + onlyCollideWhenShot: true + damage: + types: + Piercing: 20 + - type: Tag + tags: + - TrackingDart + - Trash + - type: Ammo + muzzleFlash: null + - type: Sprite + sprite: _NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi + layers: + - state: icon + map: [ base ] + - state: unshaded + shader: unshaded + - type: Fixtures + fixtures: + fix1: + shape: !type:PhysShapeCircle + radius: 0.2 + density: 5 + mask: + - ItemMask + restitution: 0.3 + friction: 0.2 + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.1,0.1,0.1" + hard: false + mask: + - Impassable + - BulletImpassable + - type: Appearance + - type: Dumpable + +- type: entity + name: tracking kit box + parent: BoxCardboard + id: BoxTrackingDarts + description: A box of tracking darts and pinpointers. + components: + - type: Storage + grid: + - 0,0,4,3 + - type: StorageFill + contents: + - id: TrackingDart + amount: 5 + - id: PinpointerUniversal + amount: 5 + - type: Sprite + layers: + - state: box diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/pirate.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/pirate.yml new file mode 100644 index 00000000000..687265706fc --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/pirate.yml @@ -0,0 +1,111 @@ +- type: entity + name: doubloon + parent: BaseItem + id: Doubloon + suffix: 20 DB + description: A dirty gold coin used for nefarious pirate exchanges. + components: + - type: Sprite + sprite: _NF/Objects/Specific/Pirate/pirate_doubloon.rsi + state: doubloon + - type: Item + sprite: _NF/Objects/Specific/Pirate/pirate_doubloon.rsi + size: Tiny + - type: Stack + count: 20 + stackType: Doubloon + - type: StaticPrice + price: 0 + - type: StackPrice + price: 200 + - type: Currency + price: + Doubloon: 1 + +- type: entity + parent: Doubloon + id: Doubloon1 + suffix: 1 DB + components: + - type: Stack + count: 1 + +- type: entity + parent: Doubloon + id: Doubloon5 + suffix: 5 DB + components: + - type: Stack + count: 5 + +- type: entity + parent: Doubloon + id: Doubloon10 + suffix: 10 DB + components: + - type: Stack + count: 10 + +# Uplinks +- type: entity + parent: BaseItem + id: BasePirateUplink + name: pirate uplink + description: A coconut with an antenna? + suffix: Empty + noSpawn: true + components: + - type: Sprite + sprite: _NF/Objects/Devices/pirate_uplink.rsi + layers: + - state: icon + scale: 0.7, 0.7 + - state: icon-overlay + scale: 0.7, 0.7 + shader: unshaded + - type: Item + sprite: _NF/Objects/Devices/pirate_uplink.rsi + heldPrefix: icon + - type: UserInterface + interfaces: + enum.StoreUiKey.Key: + type: StoreBoundUserInterface + - type: ActivatableUI + key: enum.StoreUiKey.Key + - type: Store + preset: StorePresetPirateUplink + balance: + Doubloon: 0 + - type: Tag + tags: + - PirateUplink + +- type: entity + parent: BasePirateUplink + id: BasePirateUplinkRadioDebug + suffix: Pirate, DEBUG + components: + - type: Store + preset: StorePresetPirateUplink + balance: + Doubloon: 99999 + +- type: entity + parent: BasePirateUplink + id: BaseSecurityUplinkRadioPirateCaptain + suffix: P. Captain 20 + components: + - type: Store + preset: StorePresetPirateUplink + balance: + Doubloon: 20 + +- type: entity + parent: BasePirateUplink + id: BaseSecurityUplinkPirateCrew + suffix: Crew 15 + components: + - type: Store + preset: StorePresetPirateUplink + balance: + Doubloon: 15 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Tools/contrabandappraisal.yml b/Resources/Prototypes/_NF/Entities/Objects/Tools/contrabandappraisal.yml new file mode 100644 index 00000000000..f3b54e1945e --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Tools/contrabandappraisal.yml @@ -0,0 +1,23 @@ +- type: entity + parent: BaseItem + id: ContrabandAppraisalTool + name: contraband appraisal tool + description: An officer's best friend, with a quantum connection to the NT database and the ability to appraise even the toughest items. + components: + - type: Sprite + sprite: _NF/Objects/Tools/appraisal-tool.rsi + state: icon + - type: Item + sprite: _NF/Objects/Tools/appraisal-tool.rsi + - type: ContrabandPriceGun + - type: UseDelay + delay: 1 + - type: Clothing + sprite: _NF/Objects/Tools/appraisal-tool.rsi + quickEquip: false + slots: + - Belt + - type: Tag + tags: + - AppraisalTool + - Sidearm diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Ammunition/Boxes/nfsd.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Ammunition/Boxes/nfsd.yml new file mode 100644 index 00000000000..c56109ae747 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Ammunition/Boxes/nfsd.yml @@ -0,0 +1,21 @@ +- type: entity + name: emp projectiles box + parent: BoxMagazine + id: BoxEmpGrenadesAmmo + description: A box of EMP projectile grenades. + components: + - type: StorageFill + contents: + - id: GrenadeEmp + amount: 4 + +- type: entity + name: tracking darts box + parent: BoxMagazine + id: BoxTrackingDartsAmmo + description: A box of tracking darts. + components: + - type: StorageFill + contents: + - id: TrackingDart + amount: 4 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml index d5d24f82b85..9ba72d6bf12 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml @@ -6,6 +6,9 @@ - type: BallisticAmmoProvider capacity: 200 proto: CartridgeCaselessRifleRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi + state: bigrubberdisplay - type: Sprite layers: - state: base-b @@ -26,6 +29,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeCaselessRifleRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi + state: rubberdisplay - type: Sprite layers: - state: base diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml index 2c30951bc98..bb3e1c1204a 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml @@ -5,6 +5,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeLightRifleRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi + state: rubberdisplay - type: Sprite layers: - state: base diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml index 84625045327..322cf3edc1c 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml @@ -5,6 +5,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeMagnumRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi + state: rubberdisplay - type: Sprite layers: - state: base diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml index 7ef05673de8..35d8d8caf52 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml @@ -6,6 +6,9 @@ components: - type: BallisticAmmoProvider proto: CartridgePistolRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi + state: rubberdisplay - type: Sprite layers: - state: base @@ -22,6 +25,9 @@ components: - type: BallisticAmmoProvider proto: CartridgePistolEmp + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi + state: empdisplay - type: Sprite layers: - state: base diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml index 67eb0fd869b..c86b5bcdb26 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml @@ -6,6 +6,9 @@ - type: BallisticAmmoProvider capacity: 200 proto: CartridgeRiflePractice + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi + state: bigpracticedisplay - type: Sprite layers: - state: base-b @@ -26,6 +29,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeRifleRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi + state: rubberdisplay - type: Sprite layers: - state: base diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/heavy_rifle.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/heavy_rifle.yml index 8320212f396..2fea05d787b 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/heavy_rifle.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/heavy_rifle.yml @@ -26,6 +26,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeRifle + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi + state: icon - type: Sprite sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi layers: @@ -79,6 +82,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeRiflePractice + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi + state: practice-icon - type: Sprite sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi layers: @@ -99,6 +105,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeRifleUranium + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi + state: uranium-icon - type: Sprite sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi layers: @@ -119,6 +128,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeRifleRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi + state: rubber-icon - type: Sprite sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi layers: diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml index 8f845f3adcb..d5c55448a0a 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml @@ -5,6 +5,9 @@ components: - type: BallisticAmmoProvider proto: CartridgeMagnumRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi + state: rubber-icon - type: Sprite sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi layers: diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml index db1a4d07339..99bb3ee0439 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml @@ -6,6 +6,9 @@ components: - type: BallisticAmmoProvider proto: CartridgePistolRubber + - type: Icon + sprite: _NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi + state: rubber-icon - type: Sprite layers: - state: base diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index 2850feca162..31bdb1848ee 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -89,3 +89,31 @@ capacity: 4 - type: StaticPrice price: 50 + +- type: entity + name: nfsd grenade launcher + parent: WeaponLauncherChinaLake + id: WeaponLauncherNfsdLake + description: nfsd rapid grenade delivery system + components: + - type: Sprite + sprite: _NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi + layers: + - state: icon + map: ["enum.GunVisualLayers.Base"] + - type: Clothing + sprite: _NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi + quickEquip: false + slots: + - Back + - Belt + - suitStorage + - type: BallisticAmmoProvider + proto: null + whitelist: + tags: + - TrackingDart + - Grenade + capacity: 4 + - type: StaticPrice + price: 50 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Projectiles/baby_dragon_fire.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Projectiles/baby_dragon_fire.yml new file mode 100644 index 00000000000..8393ccb0ce3 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Guns/Projectiles/baby_dragon_fire.yml @@ -0,0 +1,46 @@ +- type: entity + id: BabyDragonSpark + name: dragon ember spark + noSpawn: true + components: + - type: Physics + bodyType: Dynamic + fixedRotation: false + - type: EmbeddableProjectile + deleteOnRemove: true + - type: Fixtures + fixtures: + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.1,0.1,0.1" + mask: + - BulletImpassable + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi + state: buckshot-flare + - type: IgnitionSource + ignited: true + temperature: 1000 + - type: TimedDespawn + lifetime: 240 + - type: AmbientSound + enabled: true + volume: 0 + range: 7 + sound: + path: /Audio/Items/Flare/flare_burn.ogg + params: + loop: true + - type: IgniteOnCollide + fireStacks: 1 + - type: PointLight + enabled: true + color: "#E25822" + radius: 7.0 + energy: 5.0 + - type: Projectile + deleteOnCollide: false + damage: + types: + Heat: 5 diff --git a/Resources/Prototypes/_NF/Entities/Objects/Weapons/Melee/piratehook.yml b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Melee/piratehook.yml new file mode 100644 index 00000000000..dbab8379828 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Weapons/Melee/piratehook.yml @@ -0,0 +1,14 @@ +- type: entity + name: pirate hook + parent: BaseKnife + id: PirateHook + description: A pirate hook. + components: + - type: Tag + tags: + - Knife + - type: Sprite + sprite: _NF/Objects/Weapons/Melee/pirate_hook.rsi + state: icon + - type: Item + sprite: _NF/Objects/Weapons/Melee/pirate_hook.rsi diff --git a/Resources/Prototypes/_NF/Events/events_bluespace.yml b/Resources/Prototypes/_NF/Events/events_bluespace.yml index 58aa1d500f6..17b8b84bce2 100644 --- a/Resources/Prototypes/_NF/Events/events_bluespace.yml +++ b/Resources/Prototypes/_NF/Events/events_bluespace.yml @@ -16,7 +16,8 @@ maxDuration: 1560 maxOccurrences: 1 # Only once per shift possible - type: BluespaceErrorRule - gridPath: /Maps/_NF/Bluespace/cache.yml + gridPaths: + - /Maps/_NF/Bluespace/cache.yml rewardFactor: 3.3 - type: entity @@ -37,7 +38,8 @@ maxDuration: 1350 maxOccurrences: 1 # Only once per shift possible - type: BluespaceErrorRule - gridPath: /Maps/_NF/Bluespace/vault.yml + gridPaths: + - /Maps/_NF/Bluespace/vault.yml rewardFactor: 0.7 - type: entity @@ -59,7 +61,8 @@ maxDuration: 780 maxOccurrences: 1 # Only once per shift possible - type: BluespaceErrorRule - gridPath: /Maps/_NF/Bluespace/vaultsmall.yml + gridPaths: + - /Maps/_NF/Bluespace/vaultsmall.yml rewardFactor: 3 - type: entity # Need rework @@ -143,7 +146,8 @@ maxDuration: 1200 maxOccurrences: 1 # Only once per shift possible - type: BluespaceErrorRule - gridPath: /Maps/_NF/Bluespace/datacarrier.yml + gridPaths: + - /Maps/_NF/Bluespace/datacarrier.yml rewardFactor: 0.5 # Filler to make the bank go up - type: entity @@ -164,7 +168,8 @@ maxDuration: 2400 maxOccurrences: 1 # Only once per shift possible - type: BluespaceErrorRule - gridPath: /Maps/_NF/Bluespace/syndieftlintercept.yml + gridPaths: + - /Maps/_NF/Bluespace/syndieftlintercept.yml rewardFactor: 0.5 # Filler to make the bank go up - type: entity @@ -185,7 +190,8 @@ maxDuration: 1200 maxOccurrences: 1 # Only once per shift possible - type: BluespaceErrorRule - gridPath: /Maps/_NF/Bluespace/wizardprobealt.yml + gridPaths: + - /Maps/_NF/Bluespace/wizardprobealt.yml rewardFactor: 0.5 # Filler to make the bank go up - type: entity @@ -206,5 +212,6 @@ maxDuration: 2400 maxOccurrences: 1 # Only once per shift possible - type: BluespaceErrorRule - gridPath: /Maps/_NF/Bluespace/bloodmoon.yml + gridPaths: + - /Maps/_NF/Bluespace/bloodmoon.yml rewardFactor: 0.5 # Filler to make the bank go up diff --git a/Resources/Prototypes/_NF/Loadouts/Jobs/Contractor/tools.yml b/Resources/Prototypes/_NF/Loadouts/Jobs/Contractor/tools.yml index c76e3b45ff9..c23a4c4c577 100644 --- a/Resources/Prototypes/_NF/Loadouts/Jobs/Contractor/tools.yml +++ b/Resources/Prototypes/_NF/Loadouts/Jobs/Contractor/tools.yml @@ -180,4 +180,23 @@ - type: startingGear id: ContractorHypoMini inhand: - - HypoMini \ No newline at end of file + - HypoMini + +- type: loadout + id: ContractorBible + equipment: ContractorBible + name: bible and faith implanter + description: For the budding Chaplain. Perform miracles, proselytize, and grow your flock. + previewEntity: Bible + effects: + - !type:GroupLoadoutEffect + proto: ContractorT2 + price: 5000 + +- type: startingGear + id: ContractorBible + inhand: + - Bible + storage: + back: + - BibleUserImplanter diff --git a/Resources/Prototypes/_NF/Loadouts/contractor_loadout_groups.yml b/Resources/Prototypes/_NF/Loadouts/contractor_loadout_groups.yml index 4c570342fe7..f0b55ca3884 100644 --- a/Resources/Prototypes/_NF/Loadouts/contractor_loadout_groups.yml +++ b/Resources/Prototypes/_NF/Loadouts/contractor_loadout_groups.yml @@ -616,6 +616,7 @@ - ContractorShipyardRCD - ContractorHandheldCrewMonitor - ContractorHypoMini + - ContractorBible - type: loadoutGroup id: ContractorFun # Left Hand - 1 only diff --git a/Resources/Prototypes/_NF/Misc/dragon_egg.yml b/Resources/Prototypes/_NF/Misc/dragon_egg.yml new file mode 100644 index 00000000000..2a15f56aba1 --- /dev/null +++ b/Resources/Prototypes/_NF/Misc/dragon_egg.yml @@ -0,0 +1,122 @@ +- type: entity + parent: FoodEggBase + id: DragonEgg + name: dragon egg + description: How many did you kill just to get one of these eggs. + components: + - type: Sprite + sprite: _NF/Objects/Consumable/Food/dragon_egg.rsi + state: icon + - type: Item + sprite: _NF/Objects/Consumable/Food/dragon_egg.rsi + size: Large + - type: MultiHandedItem + - type: Food + trash: DragonEggshells + - type: DamageOnHighSpeedImpact + minimumSpeed: 0.1 + damage: + types: + Blunt: 1 + - type: Damageable + damageContainer: Biological + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: desecration + - !type:SpillBehavior + solution: food + - !type:SpawnEntitiesBehavior + spawn: + DragonEggshells: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: GhostRole + name: ghost-role-information-baby-dragon-name + description: ghost-role-information-baby-dragon-description + rules: ghost-role-information-baby-dragon-rules + requirements: + - !type:WhitelistRequirement + - type: GhostRoleMobSpawner + prototype: MobSpawnBabyDragon + - type: SolutionContainerManager + solutions: + food: + maxVol: 36 + reagents: + - data: null + ReagentId: Egg + Quantity: 12 + - data: null + ReagentId: Ichor + Quantity: 12 + - data: null + ReagentId: Vitamin + Quantity: 12 + - type: StaticPrice + price: 20000 + +- type: entity + name: dragon eggshells + parent: BaseItem + id: DragonEggshells + description: You're walkin' on 'em bud. + components: + - type: Sprite + sprite: _NF/Objects/Consumable/Food/dragon_egg.rsi + state: broken + - type: Food + - type: Item + sprite: Objects/Consumable/Food/egg.rsi + size: Large + - type: SolutionContainerManager + solutions: + food: + maxVol: 2 + reagents: + - ReagentId: Egg + Quantity: 1 + - type: Tag + tags: + - Egg + - Trash + - type: SpaceGarbage + +- type: entity #This is only for the hatching animation since this is an in between from picking the ghost role and becoming the dragon + id: MobSpawnBabyDragon + name: mobspawner dragon + noSpawn: true + components: + - type: Transform + anchored: True + - type: InteractionOutline + - type: Physics + bodyType: Static + - type: Sprite + sprite: _NF/Effects/dragonspawn.rsi + state: dragon + - type: EmitSoundOnSpawn + sound: + path: /Audio/Nyanotrasen/shogi_piece_clack.ogg + - type: Fixtures + fixtures: + portalFixture: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.48,0.25,0.48" + mask: + - FullTileMask + layer: + - WallLayer + hard: false + - type: TimedDespawn + lifetime: 3.5 + - type: TransferMindOnDespawn + entityPrototype: MobDragonPet diff --git a/Resources/Prototypes/_NF/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/_NF/Recipes/Cooking/meal_recipes.yml index d9cc13c2299..7082b470887 100644 --- a/Resources/Prototypes/_NF/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/_NF/Recipes/Cooking/meal_recipes.yml @@ -17,10 +17,23 @@ name: cat crispy recipe result: MobCatCrispy time: 15 - reagents: + reagents: Cornoil: 10 Cognizine: 5 solids: FoodMealFries: 1 FoodOnionRings: 1 OrganAnimalHeart: 1 + +- type: microwaveMealRecipe + id: RecipeDragonOmelette + name: dragon omelette recipe + result: FoodMealDragonOmelette + time: 15 + solids: + FoodButter: 1 + reagents: + Ichor: 12 + Egg: 12 + TableSalt: 5 + Blackpepper: 5 diff --git a/Resources/Prototypes/_NF/Stacks/Materials/crystals.yml b/Resources/Prototypes/_NF/Stacks/Materials/crystals.yml index 24c113cdbba..6a7d356e46f 100644 --- a/Resources/Prototypes/_NF/Stacks/Materials/crystals.yml +++ b/Resources/Prototypes/_NF/Stacks/Materials/crystals.yml @@ -4,3 +4,10 @@ icon: _NF/Objects/Specific/Security/frontieruplinkcoin.rsi spawn: FrontierUplinkCoin1 itemSize: 1 + +- type: stack + id: Doubloon + name: doubloon + icon: _NF/Objects/Specific/Pirate/pirate_doubloon.rsi + spawn: Doubloon1 + itemSize: 1 diff --git a/Resources/Prototypes/_NF/Store/categories.yml b/Resources/Prototypes/_NF/Store/categories.yml index 4ed53144bec..998f4d6c69c 100644 --- a/Resources/Prototypes/_NF/Store/categories.yml +++ b/Resources/Prototypes/_NF/Store/categories.yml @@ -1,7 +1,7 @@ #security - type: storeCategory id: UplinkSecurityBundles - name: store-category-bundles + name: store-category-secbundles - type: storeCategory id: UplinkSecurityHardsuits @@ -21,5 +21,30 @@ - type: storeCategory id: UplinkSecurityExplosives - name: store-category-explosives + name: store-category-secexplosives + +#pirate +- type: storeCategory + id: UplinkPirateBundles + name: store-category-piratebundles + +- type: storeCategory + id: UplinkPirateHardsuits + name: store-category-piratehardsuits + +- type: storeCategory + id: UplinkPirateWeapons + name: store-category-pirateweapons + +- type: storeCategory + id: UplinkPirateAmmo + name: store-category-pirateammo + +- type: storeCategory + id: UplinkPirateUtility + name: store-category-pirateutility + +- type: storeCategory + id: UplinkPirateExplosives + name: store-category-pirateexplosives diff --git a/Resources/Prototypes/_NF/Store/presets.yml b/Resources/Prototypes/_NF/Store/presets.yml index 7f43f074571..1ecba2ecbf3 100644 --- a/Resources/Prototypes/_NF/Store/presets.yml +++ b/Resources/Prototypes/_NF/Store/presets.yml @@ -25,5 +25,18 @@ - UplinkSecurityAmmo - UplinkSecurityUtility - UplinkSecurityExplosives + - UplinkSecurityBundles currencyWhitelist: - FrontierUplinkCoin + +- type: storePreset + id: StorePresetPirateUplink + storeName: Pirate Uplink + categories: + - UplinkPirateHardsuits + - UplinkPirateWeapons + - UplinkPirateAmmo + - UplinkPirateUtility + - UplinkPirateExplosives + currencyWhitelist: + - Doubloon \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Traits/disabilities.yml b/Resources/Prototypes/_NF/Traits/disabilities.yml new file mode 100644 index 00000000000..4bf604626d8 --- /dev/null +++ b/Resources/Prototypes/_NF/Traits/disabilities.yml @@ -0,0 +1,8 @@ +- type: trait + id: Pious + name: trait-pious-name + description: trait-pious-desc + traitGear: Bible + components: + - type: BibleUser + - type: Pacified # if this wasn't so debilitating, this trait would be elsewhere diff --git a/Resources/Prototypes/_NF/currency.yml b/Resources/Prototypes/_NF/currency.yml index bcc947e0059..164ee3b618e 100644 --- a/Resources/Prototypes/_NF/currency.yml +++ b/Resources/Prototypes/_NF/currency.yml @@ -11,3 +11,10 @@ cash: 1: FrontierUplinkCoin1 canWithdraw: true + +- type: currency + id: Doubloon + displayName: store-currency-display-pirate-telecrystal + cash: + 1: Doubloon1 + canWithdraw: true \ No newline at end of file diff --git a/Resources/Prototypes/_NF/tags.yml b/Resources/Prototypes/_NF/tags.yml index b23491c0e51..9d093981836 100644 --- a/Resources/Prototypes/_NF/tags.yml +++ b/Resources/Prototypes/_NF/tags.yml @@ -61,6 +61,9 @@ - type: Tag id: SecurityUplink +- type: Tag + id: PirateUplink + - type: Tag id: DroneUsable @@ -76,5 +79,8 @@ - type: Tag id: HoverbikeKeys +- type: Tag + id: TrackingDart + - type: Tag id: SpeedLoaderRifleHeavy diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/equipped-HELMET.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..2a35ac54e39 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/icon.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/icon.png new file mode 100644 index 00000000000..d784bf1de24 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/inhand-left.png new file mode 100644 index 00000000000..8242ee5774d Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/inhand-right.png new file mode 100644 index 00000000000..ddb0202d7e3 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/meta.json b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/meta.json new file mode 100644 index 00000000000..97bd08d96c7 --- /dev/null +++ b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by GentleButter for Frontier Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/equipped-HELMET.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..d177f9979b0 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/icon.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/icon.png new file mode 100644 index 00000000000..9ba1a688f84 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/inhand-left.png new file mode 100644 index 00000000000..377e65156ba Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/inhand-right.png new file mode 100644 index 00000000000..853847e597e Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/meta.json b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/meta.json new file mode 100644 index 00000000000..97bd08d96c7 --- /dev/null +++ b/Resources/Textures/_NF/Clothing/Head/Hats/pirate_hat_luffy.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by GentleButter for Frontier Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/equipped-NECK.png b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/equipped-NECK.png new file mode 100644 index 00000000000..ffb94cadcad Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/equipped-NECK.png differ diff --git a/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/icon.png b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/icon.png new file mode 100644 index 00000000000..fb821672ae6 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/inhand-left.png new file mode 100644 index 00000000000..da01add5787 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/inhand-right.png new file mode 100644 index 00000000000..60d93726e5d Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/meta.json b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/meta.json new file mode 100644 index 00000000000..de0bdfe5c1d --- /dev/null +++ b/Resources/Textures/_NF/Clothing/Neck/Cloaks/pirate_parrot.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by GentleButter for Frontier Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-NECK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 00000000000..c05d68330d0 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/icon.png b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/icon.png new file mode 100644 index 00000000000..3c7a6b10df7 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/inhand-left.png new file mode 100644 index 00000000000..e41939dd361 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/inhand-right.png new file mode 100644 index 00000000000..f5ec8540711 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/meta.json b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/meta.json new file mode 100644 index 00000000000..bf80b86ee5e --- /dev/null +++ b/Resources/Textures/_NF/Clothing/OuterClothing/Misc/pirate_captain.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Content created by GentleButter for Frontier Server", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/equipped-FEET.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/equipped-FEET.png new file mode 100644 index 00000000000..a9673adc1ac Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/equipped-FEET.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/icon.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/icon.png new file mode 100644 index 00000000000..9cb95c64e72 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/inhand-left.png new file mode 100644 index 00000000000..f1c58dc3a56 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/inhand-right.png new file mode 100644 index 00000000000..0cd7d126fb6 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/meta.json b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/meta.json new file mode 100644 index 00000000000..762c194a368 --- /dev/null +++ b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Content created by GentleButter for Frontier Server", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/equipped-FEET.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/equipped-FEET.png new file mode 100644 index 00000000000..28466deed51 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/equipped-FEET.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/icon.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/icon.png new file mode 100644 index 00000000000..348714efeda Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/inhand-left.png new file mode 100644 index 00000000000..5e9775df2ef Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/inhand-right.png new file mode 100644 index 00000000000..8cdd81e179d Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/meta.json b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/meta.json new file mode 100644 index 00000000000..762c194a368 --- /dev/null +++ b/Resources/Textures/_NF/Clothing/Shoes/Boots/pirate_luffy.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Content created by GentleButter for Frontier Server", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..f1f944d2256 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/icon.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/icon.png new file mode 100644 index 00000000000..36b3bb6988a Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/inhand-left.png new file mode 100644 index 00000000000..836f69aa889 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/inhand-right.png new file mode 100644 index 00000000000..1c388e4e486 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/meta.json b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/meta.json new file mode 100644 index 00000000000..4aa590794c0 --- /dev/null +++ b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_luffy.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by GentleButter for Frontier Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 00000000000..e2a14fbd838 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/equipped-INNERCLOTHING.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/icon.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/icon.png new file mode 100644 index 00000000000..4994480f2e7 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/inhand-left.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/inhand-left.png new file mode 100644 index 00000000000..7ba6421c214 Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/inhand-right.png b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/inhand-right.png new file mode 100644 index 00000000000..9fd2cd9534c Binary files /dev/null and b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/meta.json b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/meta.json new file mode 100644 index 00000000000..4aa590794c0 --- /dev/null +++ b/Resources/Textures/_NF/Clothing/Uniforms/Jumpsuit/pirate_slops.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by GentleButter for Frontier Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Effects/bloodcultbeams.rsi/meta.json b/Resources/Textures/_NF/Effects/bloodcultbeams.rsi/meta.json index 66ac7d37049..5ff716ccfae 100644 --- a/Resources/Textures/_NF/Effects/bloodcultbeams.rsi/meta.json +++ b/Resources/Textures/_NF/Effects/bloodcultbeams.rsi/meta.json @@ -32,4 +32,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/_NF/Effects/dragonspawn.rsi/dragon.png b/Resources/Textures/_NF/Effects/dragonspawn.rsi/dragon.png new file mode 100644 index 00000000000..123828093d5 Binary files /dev/null and b/Resources/Textures/_NF/Effects/dragonspawn.rsi/dragon.png differ diff --git a/Resources/Textures/_NF/Effects/dragonspawn.rsi/meta.json b/Resources/Textures/_NF/Effects/dragonspawn.rsi/meta.json new file mode 100644 index 00000000000..0cf0f642703 --- /dev/null +++ b/Resources/Textures/_NF/Effects/dragonspawn.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-4.0", + "copyright": "Created by @Stagnation on frontier discord server", + "states": [ + { + "name": "dragon", + "delays": [ + [ + 0.1, + 0.5, + 0.1, + 0.5, + 0.1, + 0.5, + 0.1, + 0.5, + 0.1, + 0.5, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + + ] + ] + } + ] +} + + + diff --git a/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/alive-unshaded.png b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/alive-unshaded.png new file mode 100644 index 00000000000..1a1e06a7244 Binary files /dev/null and b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/alive-unshaded.png differ diff --git a/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/alive.png b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/alive.png new file mode 100644 index 00000000000..a608ac61b21 Binary files /dev/null and b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/alive.png differ diff --git a/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/crit.png b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/crit.png new file mode 100644 index 00000000000..071839f21e6 Binary files /dev/null and b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/crit.png differ diff --git a/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/dead-unshaded.png b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/dead-unshaded.png new file mode 100644 index 00000000000..16db4640def Binary files /dev/null and b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/dead-unshaded.png differ diff --git a/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/dead.png b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/dead.png new file mode 100644 index 00000000000..071839f21e6 Binary files /dev/null and b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/dead.png differ diff --git a/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/meta.json b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/meta.json new file mode 100644 index 00000000000..87696066f25 --- /dev/null +++ b/Resources/Textures/_NF/Mobs/Pets/baby_dragon.rsi/meta.json @@ -0,0 +1,80 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-4.0", + "copyright": "Made by @Stagnation on frontier discord", + "states": [ + { + "name": "alive", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "alive-unshaded", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "crit" + }, + { + "name": "dead" + }, + { + "name": "dead-unshaded" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/broken.png b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/broken.png new file mode 100644 index 00000000000..63966bcebc8 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/broken.png differ diff --git a/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/icon.png b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/icon.png new file mode 100644 index 00000000000..70ec593acf6 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/inhand-left.png new file mode 100644 index 00000000000..34d3e60783b Binary files /dev/null and b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/inhand-right.png new file mode 100644 index 00000000000..34d3e60783b Binary files /dev/null and b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/meta.json b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/meta.json new file mode 100644 index 00000000000..b9e6aee76a4 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Consumable/Food/dragon_egg.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by @Stagnation on frontier station discord server", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "broken" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Consumable/Food/dragonomelette.rsi/icon.png b/Resources/Textures/_NF/Objects/Consumable/Food/dragonomelette.rsi/icon.png new file mode 100644 index 00000000000..bbc01bbc820 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Consumable/Food/dragonomelette.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Consumable/Food/dragonomelette.rsi/meta.json b/Resources/Textures/_NF/Objects/Consumable/Food/dragonomelette.rsi/meta.json new file mode 100644 index 00000000000..273446cf5ee --- /dev/null +++ b/Resources/Textures/_NF/Objects/Consumable/Food/dragonomelette.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by @GentleButter on discord and edited by @Stagnation on discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/icon-overlay.png b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/icon-overlay.png new file mode 100644 index 00000000000..f73d8198c90 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/icon-overlay.png differ diff --git a/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/icon.png b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/icon.png new file mode 100644 index 00000000000..a5ee33dd759 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/inhand-left.png new file mode 100644 index 00000000000..c3a2979d911 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/inhand-right.png new file mode 100644 index 00000000000..8ddfd55cfad Binary files /dev/null and b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/meta.json b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/meta.json new file mode 100644 index 00000000000..7a97353ba2c --- /dev/null +++ b/Resources/Textures/_NF/Objects/Devices/pirate_uplink.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by GentleButter for Frontier Station, icon-overlay by Whatstone (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "icon-overlay", + "delays": + [ + [0.1, 0.2, 0.1, 0.1, + 0.1, 0.1, 0.1, 0.05, + 0.1, 0.05, 0.075, 0.075, + 0.05, 0.2, 0.1, 0.1] + ] + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/doubloon.png b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/doubloon.png new file mode 100644 index 00000000000..89fc1d2a1f7 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/doubloon.png differ diff --git a/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/inhand-left.png new file mode 100644 index 00000000000..0c28a2e3b99 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/inhand-right.png new file mode 100644 index 00000000000..11fbf058e32 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/meta.json b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/meta.json new file mode 100644 index 00000000000..5380caa3c82 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Specific/Pirate/pirate_doubloon.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Made by GentleButter for Frontier Station 14", + "states": [ + { + "name": "doubloon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/foamdartsdisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/foamdartsdisplay.png new file mode 100644 index 00000000000..9719d459956 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/foamdartsdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/meta.json b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/meta.json new file mode 100644 index 00000000000..3137a9b4d37 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Source materials taken from tgstation at commit https://github.com/tgstation/tgstation/commit/cc65477c04f7403ca8a457bd5bae69a01abadbf0, and from boxwidetoy, shelltoy in boxes.rsi created by potato1234x (github).", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "foamdartsdisplay" + }, + { + "name": "shotgunbeanbagdisplay" + }, + { + "name": "shotgunflaredisplay" + }, + { + "name": "shotgunflashdisplay" + }, + { + "name": "shotgunincendiarydisplay" + }, + { + "name": "shotgunlethaldisplay" + }, + { + "name": "shotgunpracticedisplay" + }, + { + "name": "shotgunslugdisplay" + }, + { + "name": "shotgunuraniumdisplay" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunbeanbagdisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunbeanbagdisplay.png new file mode 100644 index 00000000000..4471bef527c Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunbeanbagdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunflaredisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunflaredisplay.png new file mode 100644 index 00000000000..54a6ea01801 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunflaredisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunflashdisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunflashdisplay.png new file mode 100644 index 00000000000..6d33b2c3a44 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunflashdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunincendiarydisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunincendiarydisplay.png new file mode 100644 index 00000000000..beecabbf7b5 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunincendiarydisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunlethaldisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunlethaldisplay.png new file mode 100644 index 00000000000..972d8d0fcee Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunlethaldisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunpracticedisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunpracticedisplay.png new file mode 100644 index 00000000000..e375f869acd Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunpracticedisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunslugdisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunslugdisplay.png new file mode 100644 index 00000000000..8b5dcc3b772 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunslugdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunuraniumdisplay.png b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunuraniumdisplay.png new file mode 100644 index 00000000000..f42a922534b Binary files /dev/null and b/Resources/Textures/_NF/Objects/Storage/boxes.rsi/shotgunuraniumdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/equipped-BELT.png b/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/equipped-BELT.png new file mode 100644 index 00000000000..eb11395e067 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/icon.png b/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/icon.png new file mode 100644 index 00000000000..c0c077c837a Binary files /dev/null and b/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/meta.json b/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/meta.json new file mode 100644 index 00000000000..07cec4822e9 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Tools/appraisal-tool.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "copyright" : "Taken from https://github.com/tgstation/tgstation/blob/master/icons/obj/device.dmi state export_scanner at commit 7544e865d0771d9bd917461e9da16d301fe40fc3.", + "license" : "CC-BY-SA-3.0", + "size" : { + "x" : 32, + "y" : 32 + }, + "states" : [ + { + "name" : "icon" + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ], + "version" : 1 +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/bigdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/bigdisplay.png new file mode 100644 index 00000000000..53fd5ab0ff4 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/bigdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/display.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/display.png new file mode 100644 index 00000000000..3d514bb89a3 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/display.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/meta.json new file mode 100644 index 00000000000..3b3fa347661 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/anti_materiel.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/983ad377d25729357b7ff8025f8014bd2f6ae9f7/icons/obj/ammo.dmi, and from base and mag-1 in anti_material.rsi by Alekshhh", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bigdisplay" + }, + { + "name": "display" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/10x24display.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/10x24display.png new file mode 100644 index 00000000000..ce8cd578895 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/10x24display.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/bigdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/bigdisplay.png new file mode 100644 index 00000000000..4a21cf68df6 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/bigdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/bigrubberdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/bigrubberdisplay.png new file mode 100644 index 00000000000..333d64cb894 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/bigrubberdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/display.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/display.png new file mode 100644 index 00000000000..a9dc8f84280 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/display.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/meta.json new file mode 100644 index 00000000000..942223151ba --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "10x24display" + }, + { + "name": "bigdisplay" + }, + { + "name": "bigrubberdisplay" + }, + { + "name": "display" + }, + { + "name": "practicedisplay" + }, + { + "name": "rubberdisplay" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/practicedisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/practicedisplay.png new file mode 100644 index 00000000000..8c950707c9d Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/practicedisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/rubberdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/rubberdisplay.png new file mode 100644 index 00000000000..1cb20463839 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/rubberdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/bigdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/bigdisplay.png new file mode 100644 index 00000000000..f4f5fa5105d Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/bigdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/display.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/display.png new file mode 100644 index 00000000000..a18857d48f0 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/display.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/incendiarydisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/incendiarydisplay.png new file mode 100644 index 00000000000..bd431a24bdd Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/incendiarydisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/meta.json new file mode 100644 index 00000000000..e110673e1d1 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bigdisplay" + }, + { + "name": "display" + }, + { + "name": "incendiarydisplay" + }, + { + "name": "practicedisplay" + }, + { + "name": "rubberdisplay" + }, + { + "name": "uraniumdisplay" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/practicedisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/practicedisplay.png new file mode 100644 index 00000000000..5b437956c84 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/practicedisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/rubberdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/rubberdisplay.png new file mode 100644 index 00000000000..bea89810255 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/rubberdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/uraniumdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/uraniumdisplay.png new file mode 100644 index 00000000000..a41a578c086 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi/uraniumdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/capdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/capdisplay.png new file mode 100644 index 00000000000..3f479843a38 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/capdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/display.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/display.png new file mode 100644 index 00000000000..251428a3334 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/display.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/incendiarydisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/incendiarydisplay.png new file mode 100644 index 00000000000..f0b6b04f546 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/incendiarydisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/meta.json new file mode 100644 index 00000000000..eee4d793d9d --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi. capbase and cap in magnum.rsi modified from base and rubber by potato1234x (github) for ss14, tweaked by Aleshhh", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "capdisplay" + }, + { + "name": "display" + }, + { + "name": "incendiarydisplay" + }, + { + "name": "piercingdisplay" + }, + { + "name": "practicedisplay" + }, + { + "name": "rubberdisplay" + }, + { + "name": "uraniumdisplay" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/piercingdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/piercingdisplay.png new file mode 100644 index 00000000000..09afbb82da0 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/piercingdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/practicedisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/practicedisplay.png new file mode 100644 index 00000000000..32013078a65 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/practicedisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/rubberdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/rubberdisplay.png new file mode 100644 index 00000000000..df56950fe9b Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/rubberdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/uraniumdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/uraniumdisplay.png new file mode 100644 index 00000000000..bc0fcc6b353 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/uraniumdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/display.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/display.png new file mode 100644 index 00000000000..e49af458177 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/display.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/empdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/empdisplay.png new file mode 100644 index 00000000000..d972925eeb7 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/empdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/incendiarydisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/incendiarydisplay.png new file mode 100644 index 00000000000..d4e1ca25101 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/incendiarydisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json new file mode 100644 index 00000000000..5dcfe5e39d6 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "display" + }, + { + "name": "empdisplay" + }, + { + "name": "incendiarydisplay" + }, + { + "name": "practicedisplay" + }, + { + "name": "rubberdisplay" + }, + { + "name": "uraniumdisplay" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/practicedisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/practicedisplay.png new file mode 100644 index 00000000000..b70dffcc347 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/practicedisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/rubberdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/rubberdisplay.png new file mode 100644 index 00000000000..690264fb116 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/rubberdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/uraniumdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/uraniumdisplay.png new file mode 100644 index 00000000000..80c321e44f4 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/uraniumdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/bigdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/bigdisplay.png new file mode 100644 index 00000000000..32ca9324b1d Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/bigdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/bigpracticedisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/bigpracticedisplay.png new file mode 100644 index 00000000000..1499e5e8145 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/bigpracticedisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/display.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/display.png new file mode 100644 index 00000000000..a11260d0a17 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/display.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/incendiarydisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/incendiarydisplay.png new file mode 100644 index 00000000000..b5835b087dc Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/incendiarydisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/meta.json new file mode 100644 index 00000000000..e73e1e4d391 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/meta.json @@ -0,0 +1,32 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/89456d18dd3e7c330839121e3c6bc8c609700137/icons/obj/ammo.dmi, tweaked by Alekshhh", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bigdisplay" + }, + { + "name": "bigpracticedisplay" + }, + { + "name": "display" + }, + { + "name": "incendiarydisplay" + }, + { + "name": "practicedisplay" + }, + { + "name": "rubberdisplay" + }, + { + "name": "uraniumdisplay" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/practicedisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/practicedisplay.png new file mode 100644 index 00000000000..c49a4113b1c Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/practicedisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/rubberdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/rubberdisplay.png new file mode 100644 index 00000000000..f79d926fa61 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/rubberdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/uraniumdisplay.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/uraniumdisplay.png new file mode 100644 index 00000000000..53131842d36 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/uraniumdisplay.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/meta.json index 7f4c9fadf9b..e6cc7f46fd9 100644 --- a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/meta.json +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/meta.json @@ -61,6 +61,9 @@ { "name": "practice-8" }, + { + "name": "practice-icon" + }, { "name": "rubber-1" }, @@ -85,6 +88,9 @@ { "name": "rubber-8" }, + { + "name": "rubber-icon" + }, { "name": "uranium-1" }, @@ -109,6 +115,9 @@ { "name": "uranium-8" }, + { + "name": "uranium-icon" + }, { "name": "piercing-1" }, @@ -132,6 +141,9 @@ }, { "name": "piercing-8" + }, + { + "name": "piercing-icon" } ] } diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/piercing-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/piercing-icon.png new file mode 100644 index 00000000000..c84f3f68fef Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/piercing-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/practice-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/practice-icon.png new file mode 100644 index 00000000000..670965cafd1 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/practice-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/rubber-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/rubber-icon.png new file mode 100644 index 00000000000..d77bd3998ba Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/rubber-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/uranium-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/uranium-icon.png new file mode 100644 index 00000000000..c8511271a9a Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/HeavyRifle/argenti_speed_loader.rsi/uranium-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/LightRifle/light_rifle_speed_loader.rsi/icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/LightRifle/light_rifle_speed_loader.rsi/icon.png new file mode 100644 index 00000000000..c6312eb1933 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/LightRifle/light_rifle_speed_loader.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/LightRifle/light_rifle_speed_loader.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/LightRifle/light_rifle_speed_loader.rsi/meta.json new file mode 100644 index 00000000000..c29f3bd3e2e --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/LightRifle/light_rifle_speed_loader.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/discordia-space/CEV-Eris/raw/d1120fc8287cca2632e834069b5019bf941a0170/icons/obj/ammo_speed.dmi", + "states": [ + { + "name": "icon" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/meta.json new file mode 100644 index 00000000000..16b3da4e21b --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/pull/1684/commits/19e51caef09e78ca1122d26455b539ff5968d334, https://github.com/tgstation/tgstation/blob/master/icons/obj/weapons/guns/ammo.dmi", + "states": [ + { + "name": "practice-icon" + }, + { + "name": "rubber-icon" + }, + { + "name": "uranium-icon" + }, + { + "name": "piercing-icon" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/piercing-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/piercing-icon.png new file mode 100644 index 00000000000..eb206ca5cbf Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/piercing-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/practice-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/practice-icon.png new file mode 100644 index 00000000000..52e3e24477e Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/practice-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/rubber-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/rubber-icon.png new file mode 100644 index 00000000000..c8cc0f50a51 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/rubber-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/uranium-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/uranium-icon.png new file mode 100644 index 00000000000..3997f05ca94 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/uranium-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/icon.png new file mode 100644 index 00000000000..d81d3830bb4 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/meta.json new file mode 100644 index 00000000000..8f391b8d358 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from and modified https://github.com/discordia-space/CEV-Eris/raw/aed9cbddbf9039dae1e4f02bab592248b0539431/icons/obj/ammo_speed.dmi", + "states": [ + { + "name": "icon" + }, + { + "name": "practice-icon" + }, + { + "name": "rubber-icon" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/practice-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/practice-icon.png new file mode 100644 index 00000000000..5da27bd87c9 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/practice-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/rubber-icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/rubber-icon.png new file mode 100644 index 00000000000..8df55ead870 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/rubber-icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/bolt-open.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/bolt-open.png new file mode 100644 index 00000000000..df3b329ff6f Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/bolt-open.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/equipped-BACKPACK.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/equipped-BACKPACK.png new file mode 100644 index 00000000000..6ec82c7abda Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 00000000000..6ec82c7abda Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/equipped-SUITSTORAGE.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/icon.png new file mode 100644 index 00000000000..6db0bb26203 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/inhand-left.png new file mode 100644 index 00000000000..fcf47240586 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/inhand-right.png new file mode 100644 index 00000000000..792b05721ec Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/meta.json new file mode 100644 index 00000000000..5614548ffbe --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Launchers/nfsd_lake.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Taken/modified from cev-eris at https://github.com/discordia-space/CEV-Eris/pull/6042/commits/64916c98f4847acc4adf3a2416bf78c005fd7dd7, https://github.com/discordia-space/CEV-Eris/blob/master/icons/obj/guns/launcher/grenadelauncher.dmi, backpack sprite by Peptide, backpack sling sprite edited by Boaz1111, Recolored by MagnusCrowe for Frontier Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "bolt-open" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/icon.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/icon.png new file mode 100644 index 00000000000..4fb3b1d9e7e Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/inhand-left.png new file mode 100644 index 00000000000..c640cdc4fdd Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/inhand-right.png new file mode 100644 index 00000000000..939c6afb37c Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/meta.json new file mode 100644 index 00000000000..bfc105ae601 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by @GentleButter on the frontier station discord", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "icon" + }, + { + "name": "unshaded", + "delays": [ + [ 0.5, 0.5, 0.5, 0.2 ] + ] + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/unshaded.png b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/unshaded.png new file mode 100644 index 00000000000..997bfd500b6 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Guns/Projectiles/tracking_dart.rsi/unshaded.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/icon.png b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/icon.png new file mode 100644 index 00000000000..09f53492df5 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/icon.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/inhand-left.png b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/inhand-left.png new file mode 100644 index 00000000000..d80d0337159 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/inhand-left.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/inhand-right.png b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/inhand-right.png new file mode 100644 index 00000000000..891b7911b50 Binary files /dev/null and b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/inhand-right.png differ diff --git a/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/meta.json b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/meta.json new file mode 100644 index 00000000000..974e9b22839 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Weapons/Melee/pirate_hook.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by GentleButter for Frontier Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +}