Merge branch 'master' into upstream-ops
Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
This commit is contained in:
commit
069a73317e
|
|
@ -0,0 +1,10 @@
|
|||
using Content.Server.Objectives.Systems;
|
||||
|
||||
namespace Content.Server.Objectives.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Requires that a target dies once and only once.
|
||||
/// Depends on <see cref="TargetObjectiveComponent"/> to function.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(TeachLessonConditionSystem))]
|
||||
public sealed partial class TeachLessonConditionComponent : Component;
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
using Content.Server.Objectives.Components;
|
||||
using Content.Shared.GameTicking;
|
||||
using Content.Shared.Mind;
|
||||
using Content.Shared.Objectives.Components;
|
||||
|
||||
namespace Content.Server.Objectives.Systems;
|
||||
|
||||
/// <summary>
|
||||
/// Handles teach a lesson condition logic, does not assign target.
|
||||
/// </summary>
|
||||
public sealed class TeachLessonConditionSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedMindSystem _mind = default!;
|
||||
[Dependency] private readonly TargetObjectiveSystem _target = default!;
|
||||
|
||||
private readonly List<EntityUid> _wasKilled = [];
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<TeachLessonConditionComponent, ObjectiveGetProgressEvent>(OnGetProgress);
|
||||
SubscribeLocalEvent<RoundRestartCleanupEvent>(OnRoundEnd);
|
||||
}
|
||||
|
||||
private void OnGetProgress(Entity<TeachLessonConditionComponent> ent, ref ObjectiveGetProgressEvent args)
|
||||
{
|
||||
if (!_target.GetTarget(ent, out var target))
|
||||
return;
|
||||
|
||||
args.Progress = GetProgress(target.Value);
|
||||
}
|
||||
|
||||
private float GetProgress(EntityUid target)
|
||||
{
|
||||
if (TryComp<MindComponent>(target, out var mind) && mind.OwnedEntity != null && !_mind.IsCharacterDeadIc(mind))
|
||||
return _wasKilled.Contains(target) ? 1f : 0f;
|
||||
|
||||
_wasKilled.Add(target);
|
||||
return 1f;
|
||||
}
|
||||
|
||||
// Clear the wasKilled list on round end
|
||||
private void OnRoundEnd(RoundRestartCleanupEvent ev)
|
||||
{
|
||||
_wasKilled.Clear();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,10 @@
|
|||
using Content.Shared.Damage;
|
||||
using Content.Shared.Weapons.Ranged.Components;
|
||||
using Content.Server.Power.Components; // Frontier
|
||||
using Content.Server.Power.EntitySystems; // Frontier
|
||||
using Content.Shared.Interaction; // Frontier
|
||||
using Content.Shared.Examine; // Frontier
|
||||
using Content.Shared.Power; // Frontier
|
||||
using Robust.Shared.Map;
|
||||
|
||||
namespace Content.Server.Weapons.Ranged.Systems;
|
||||
|
|
@ -39,4 +44,111 @@ public sealed partial class GunSystem
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// New Frontiers - Shuttle Gun Power Draw - makes shuttle guns require power if they
|
||||
// have an ApcPowerReceiverComponent
|
||||
// This code is licensed under AGPLv3. See AGPLv3.txt
|
||||
private void OnGunExamine(EntityUid uid, AutoShootGunComponent component, ExaminedEvent args)
|
||||
{
|
||||
if (!HasComp<ApcPowerReceiverComponent>(uid))
|
||||
return;
|
||||
|
||||
// Powered is already handled by other power components
|
||||
var enabled = Loc.GetString(component.On ? "gun-comp-enabled" : "gun-comp-disabled");
|
||||
|
||||
args.PushMarkup(enabled);
|
||||
}
|
||||
|
||||
private void OnActivateGun(EntityUid uid, AutoShootGunComponent component, ActivateInWorldEvent args)
|
||||
{
|
||||
if (args.Handled || !args.Complex)
|
||||
return;
|
||||
|
||||
component.On ^= true;
|
||||
|
||||
if (!component.On)
|
||||
{
|
||||
if (TryComp<ApcPowerReceiverComponent>(uid, out var apcPower) && component.OriginalLoad != 0)
|
||||
apcPower.Load = 1;
|
||||
|
||||
DisableGun(uid, component);
|
||||
args.Handled = true;
|
||||
}
|
||||
else if (CanEnable(uid, component))
|
||||
{
|
||||
if (TryComp<ApcPowerReceiverComponent>(uid, out var apcPower) && component.OriginalLoad != apcPower.Load)
|
||||
apcPower.Load = component.OriginalLoad;
|
||||
|
||||
EnableGun(uid, component);
|
||||
args.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tries to disable the AutoShootGun.
|
||||
/// </summary>
|
||||
public void DisableGun(EntityUid uid, AutoShootGunComponent component)
|
||||
{
|
||||
if (component.CanFire)
|
||||
component.CanFire = false;
|
||||
}
|
||||
|
||||
public bool CanEnable(EntityUid uid, AutoShootGunComponent component)
|
||||
{
|
||||
var xform = Transform(uid);
|
||||
|
||||
// Must be anchored to fire.
|
||||
if (!xform.Anchored)
|
||||
return false;
|
||||
|
||||
// No power needed? Always works.
|
||||
if (!HasComp<ApcPowerReceiverComponent>(uid))
|
||||
return true;
|
||||
|
||||
// Not switched on? Won't work.
|
||||
if (!component.On)
|
||||
return false;
|
||||
|
||||
return this.IsPowered(uid, EntityManager);
|
||||
}
|
||||
|
||||
public void EnableGun(EntityUid uid, AutoShootGunComponent component, TransformComponent? xform = null)
|
||||
{
|
||||
if (!component.CanFire)
|
||||
component.CanFire = true;
|
||||
}
|
||||
|
||||
private void OnAnchorChange(EntityUid uid, AutoShootGunComponent component, ref AnchorStateChangedEvent args)
|
||||
{
|
||||
if (args.Anchored && CanEnable(uid, component))
|
||||
EnableGun(uid, component);
|
||||
else
|
||||
DisableGun(uid, component);
|
||||
}
|
||||
|
||||
private void OnGunInit(EntityUid uid, AutoShootGunComponent component, ComponentInit args)
|
||||
{
|
||||
if (TryComp<ApcPowerReceiverComponent>(uid, out var apcPower) && component.OriginalLoad == 0)
|
||||
component.OriginalLoad = apcPower.Load;
|
||||
|
||||
if (!component.On)
|
||||
return;
|
||||
|
||||
if (CanEnable(uid, component))
|
||||
EnableGun(uid, component);
|
||||
}
|
||||
|
||||
private void OnGunShutdown(EntityUid uid, AutoShootGunComponent component, ComponentShutdown args)
|
||||
{
|
||||
DisableGun(uid, component);
|
||||
}
|
||||
|
||||
private void OnPowerChange(EntityUid uid, AutoShootGunComponent component, ref PowerChangedEvent args)
|
||||
{
|
||||
if (args.Powered && CanEnable(uid, component))
|
||||
EnableGun(uid, component);
|
||||
else
|
||||
DisableGun(uid, component);
|
||||
}
|
||||
// End of Frontier modified code
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ using Robust.Shared.Player;
|
|||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
using Robust.Shared.Containers;
|
||||
using Content.Shared.Interaction; // Frontier
|
||||
using Content.Shared.Examine; // Frontier
|
||||
using Content.Shared.Power; // Frontier
|
||||
|
||||
namespace Content.Server.Weapons.Ranged.Systems;
|
||||
|
||||
|
|
@ -48,6 +51,12 @@ public sealed partial class GunSystem : SharedGunSystem
|
|||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<BallisticAmmoProviderComponent, PriceCalculationEvent>(OnBallisticPrice);
|
||||
SubscribeLocalEvent<AutoShootGunComponent, ActivateInWorldEvent>(OnActivateGun); // Frontier
|
||||
SubscribeLocalEvent<AutoShootGunComponent, ComponentInit>(OnGunInit); // Frontier
|
||||
SubscribeLocalEvent<AutoShootGunComponent, ComponentShutdown>(OnGunShutdown); // Frontier
|
||||
SubscribeLocalEvent<AutoShootGunComponent, ExaminedEvent>(OnGunExamine); // Frontier
|
||||
SubscribeLocalEvent<AutoShootGunComponent, PowerChangedEvent>(OnPowerChange); // Frontier
|
||||
SubscribeLocalEvent<AutoShootGunComponent, AnchorStateChangedEvent>(OnAnchorChange); // Frontier
|
||||
}
|
||||
|
||||
private void OnBallisticPrice(EntityUid uid, BallisticAmmoProviderComponent component, ref PriceCalculationEvent args)
|
||||
|
|
|
|||
|
|
@ -11,4 +11,21 @@ public sealed partial class AutoShootGunComponent : Component
|
|||
{
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||
public bool Enabled;
|
||||
|
||||
/// <summary>
|
||||
/// Frontier - Whether the gun is switched on (e.g. through user interaction)
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public bool On { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Frontier - Whether or not the gun can actually fire (i.e. switched on and receiving power if needed)
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public bool CanFire;
|
||||
|
||||
/// <summary>
|
||||
/// Frontier - Amount of power this gun needs from an APC in Watts to function.
|
||||
/// </summary>
|
||||
public float OriginalLoad { get; set; } = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -228,6 +228,9 @@ public abstract partial class SharedGunSystem : EntitySystem
|
|||
|
||||
private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun)
|
||||
{
|
||||
if (TryComp<AutoShootGunComponent>(gunUid, out var auto) && !auto.CanFire) // Frontier
|
||||
return; // Frontier
|
||||
|
||||
if (gun.FireRateModified <= 0f ||
|
||||
!_actionBlockerSystem.CanAttack(user))
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1,68 +1,4 @@
|
|||
Entries:
|
||||
- author: deltanedas
|
||||
changes:
|
||||
- message: The fishops advanced user manual is now available in all finer bookstores
|
||||
near you.
|
||||
type: Add
|
||||
id: 175
|
||||
time: '2023-12-21T02:08:37.0000000+00:00'
|
||||
- author: Velcroboy and Kilk
|
||||
changes:
|
||||
- message: Added departmental winter boots!
|
||||
type: Add
|
||||
id: 176
|
||||
time: '2023-12-21T02:12:04.0000000+00:00'
|
||||
- author: Loonessia
|
||||
changes:
|
||||
- message: Deep fried burned food items should now have a description
|
||||
type: Fix
|
||||
id: 177
|
||||
time: '2023-12-21T02:15:30.0000000+00:00'
|
||||
- author: Adrian16199
|
||||
changes:
|
||||
- message: Head of personel has gotten back their armoured coat.
|
||||
type: Add
|
||||
id: 178
|
||||
time: '2023-12-21T02:17:25.0000000+00:00'
|
||||
- author: DebugOk
|
||||
changes:
|
||||
- message: Merged wizden. The upstream changelog may contain incorrect entries.
|
||||
type: Add
|
||||
- message: The random client freezes/crashes should be mostly gone.
|
||||
type: Fix
|
||||
id: 179
|
||||
time: '2023-12-22T23:46:32.0000000+00:00'
|
||||
- author: ps3moira
|
||||
changes:
|
||||
- message: Reverted in-hand E-Sword sprites.
|
||||
type: Tweak
|
||||
id: 180
|
||||
time: '2023-12-24T02:56:01.0000000+00:00'
|
||||
- author: deltanedas
|
||||
changes:
|
||||
- message: Ore Bags of Holding now use bluespace crystals instead of uranium.
|
||||
type: Tweak
|
||||
id: 181
|
||||
time: '2023-12-24T19:58:23.0000000+00:00'
|
||||
- author: Adrian16199
|
||||
changes:
|
||||
- message: Fixes cyborgs spawning with nearsighted trait.
|
||||
type: Fix
|
||||
id: 182
|
||||
time: '2023-12-27T17:55:07.0000000+00:00'
|
||||
- author: Adrian16199
|
||||
changes:
|
||||
- message: 'Added 3 classic hairstyles: Long hair, Long hair 2, Long hair 3.'
|
||||
type: Add
|
||||
id: 183
|
||||
time: '2023-12-27T18:23:39.0000000+00:00'
|
||||
- author: BramvanZijp
|
||||
changes:
|
||||
- message: Security dogs now can wear an id card and radio, are able to drag things,
|
||||
and have received additional combat training.
|
||||
type: Tweak
|
||||
id: 184
|
||||
time: '2023-12-28T09:32:10.0000000+00:00'
|
||||
- author: Adrian16199
|
||||
changes:
|
||||
- message: Gives shoukou an oxygen miner until air actualy works.
|
||||
|
|
@ -3732,3 +3668,74 @@
|
|||
id: 674
|
||||
time: '2024-11-14T18:08:37.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2193
|
||||
- author: Eternally-Confused
|
||||
changes:
|
||||
- message: The Corpsman now receives security magboots in their suit storage
|
||||
type: Tweak
|
||||
id: 675
|
||||
time: '2024-11-16T12:37:49.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2212
|
||||
- author: Radezolid
|
||||
changes:
|
||||
- message: Now medical belts have a slot for medkits.
|
||||
type: Tweak
|
||||
id: 676
|
||||
time: '2024-11-16T14:09:13.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2209
|
||||
- author: JustAnOrange, Lyndomen
|
||||
changes:
|
||||
- message: Syndicate recruiters arrive with more swagger
|
||||
type: Add
|
||||
id: 677
|
||||
time: '2024-11-17T00:46:38.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2217
|
||||
- author: DisposableCrewmember42
|
||||
changes:
|
||||
- message: Prosecutors now get the towels they deserve.
|
||||
type: Tweak
|
||||
id: 678
|
||||
time: '2024-11-17T00:48:14.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2215
|
||||
- author: Radezolid
|
||||
changes:
|
||||
- message: Beanbags hits hard again, bartenders rejoice!
|
||||
type: Tweak
|
||||
id: 679
|
||||
time: '2024-11-17T04:45:10.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2219
|
||||
- author: Stop-Signs
|
||||
changes:
|
||||
- message: Heads of Security will now have an energy shotgun in their locker.
|
||||
type: Add
|
||||
id: 680
|
||||
time: '2024-11-17T13:10:01.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2182
|
||||
- author: Radezolid
|
||||
changes:
|
||||
- message: Removed the Chief Justice cloak from the uniform printer.
|
||||
type: Remove
|
||||
id: 681
|
||||
time: '2024-11-17T13:24:04.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2180
|
||||
- author: Beck Thompson
|
||||
changes:
|
||||
- message: Generic radio implants are no longer syndicate branded.
|
||||
type: Tweak
|
||||
id: 682
|
||||
time: '2024-11-17T19:06:47.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2159
|
||||
- author: Lyndomen
|
||||
changes:
|
||||
- message: Security roles may select their service weapon in loadouts, along with
|
||||
their ammunition of choice
|
||||
type: Add
|
||||
id: 683
|
||||
time: '2024-11-18T02:08:58.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2214
|
||||
- author: Stareostar, Mylegsaresharp, Aikakakah
|
||||
changes:
|
||||
- message: Added new lobby art to the rotation!
|
||||
type: Add
|
||||
id: 684
|
||||
time: '2024-11-18T17:05:11.0000000+00:00'
|
||||
url: https://github.com/DeltaV-Station/Delta-v/pull/2226
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
|||
gun-comp-enabled = The gun is turned [color=green]on[/color].
|
||||
gun-comp-disabled = The gun is turned [color=red]off[/color].
|
||||
|
|
@ -0,0 +1 @@
|
|||
objective-condition-teach-person-title = Teach {$targetName}, {CAPITALIZE($job)} a lesson
|
||||
|
|
@ -93,6 +93,13 @@ loadout-group-brig-medic-outerclothing = Corpsman outer clothing
|
|||
loadout-group-prison-guard-head = Prison Guard head
|
||||
loadout-group-prison-guard-jumpsuit = Prison Guard jumpsuit
|
||||
|
||||
loadout-group-security-gun = Security Sidearm
|
||||
loadout-group-revolver-gun = Security Revolver
|
||||
loadout-group-all-gun = Security Sidearm
|
||||
loadout-group-security-gun-ammo = Ammunition
|
||||
loadout-group-revolver-ammo = Ammunition
|
||||
loadout-group-all-ammo = Ammunition
|
||||
|
||||
# Justice
|
||||
loadout-group-chiefjustice-head = Chief Justice head
|
||||
loadout-group-chiefjustice-jumpsuit = Chief Justice jumpsuit
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ uplink-syndicate-radio-implanter-desc = A cranial implant that lets you talk on
|
|||
uplink-syndicate-radio-implanter-bundle-name = Syndicate Radio Implanter Bundle
|
||||
uplink-syndicate-radio-implanter-bundle-desc = Two implanters for the price of one and a half! Share one with your Syndicate friend.
|
||||
|
||||
uplink-generic-radio-implanter-name = Generic Radio Implanter
|
||||
uplink-generic-radio-implanter-desc = A cranial implant with a bluespace compartment for a single encryption key (not included). Put in a key of your choice, and you can talk using it like you would with any headset.
|
||||
|
||||
uplink-doorjack-name = Airlock Access Override
|
||||
uplink-doorjack-desc = A specialized cryptographic sequencer, designed solely to doorjack NanoTrasen's updated airlocks. Does not tamper with anything else.
|
||||
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@
|
|||
- !type:NestedSelector # DeltaV
|
||||
tableId: LockerFillHeadOfSecurityDeltaV
|
||||
- id: BookSecretDocuments
|
||||
#- id: WeaponEnergyShotgun # DeltaV - replaced by X-01
|
||||
- id: WeaponEnergyShotgun
|
||||
- id: BookSpaceLaw
|
||||
- id: BoxEncryptionKeySecurity
|
||||
- id: CigarGoldCase
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@
|
|||
- id: TrackingImplanter
|
||||
amount: 2
|
||||
- id: ClothingOuterHardsuitCombatCorpsman
|
||||
- id: ClothingShoesBootsSecurityMagboots # Added security magboots.
|
||||
- id: BoxSterileMask
|
||||
- id: ClothingHeadHatBeretCorpsman # Add corpsman beret.
|
||||
- id: ClothingHeadsetBrigmedic # Add spare headset.
|
||||
|
|
|
|||
|
|
@ -267,6 +267,7 @@
|
|||
- id: OxygenTankFilled
|
||||
- id: ClothingOuterHardsuitCombatCorpsman
|
||||
- id: ClothingMaskBreath
|
||||
- id: ClothingShoesBootsSecurityMagboots #Added security magboots.
|
||||
- type: AccessReader
|
||||
access: [ [ "Corpsman" ] ]
|
||||
|
||||
|
|
|
|||
|
|
@ -7,3 +7,13 @@
|
|||
cost: 500
|
||||
category: Medical
|
||||
group: market
|
||||
|
||||
- type: cargoProduct
|
||||
id: RadioImplantCrate
|
||||
icon:
|
||||
sprite: Objects/Specific/Medical/implanter.rsi
|
||||
state: implanter0
|
||||
product: CrateGenericRadioImplants
|
||||
cost: 1500
|
||||
category: Medical
|
||||
group: market
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
- type: entity
|
||||
id: CrateGenericRadioImplants
|
||||
parent: CrateMedical
|
||||
name: radio implant crate
|
||||
description: Communicate without having a pesky headset on your ear.
|
||||
components:
|
||||
- type: StorageFill
|
||||
contents:
|
||||
- id: GenericRadioImplanter
|
||||
amount: 3
|
||||
|
|
@ -75,21 +75,6 @@
|
|||
categories:
|
||||
- UplinkImplants
|
||||
|
||||
|
||||
- type: listing
|
||||
id: UplinkGenericRadioImplanter
|
||||
name: uplink-generic-radio-implanter-name
|
||||
description: uplink-generic-radio-implanter-desc
|
||||
icon: { sprite: /Textures/Objects/Devices/encryption_keys.rsi, state: crypt_rusted }
|
||||
productEntity: GenericRadioImplanter
|
||||
discountCategory: usualDiscounts
|
||||
discountDownTo:
|
||||
Telecrystal: 1
|
||||
cost:
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkImplants
|
||||
|
||||
- type: listing
|
||||
id: UplinkDoorjack
|
||||
name: uplink-doorjack-name
|
||||
|
|
|
|||
|
|
@ -407,3 +407,14 @@
|
|||
sprite: DeltaV/Clothing/Uniforms/Jumpsuit/black_turtleneck.rsi
|
||||
- type: Clothing
|
||||
sprite: DeltaV/Clothing/Uniforms/Jumpsuit/black_turtleneck.rsi
|
||||
|
||||
- type: entity
|
||||
parent: ClothingUniformBase
|
||||
id: ClothingUniformCybersunAttorney
|
||||
name: cybersun attorney suit
|
||||
description: This durable Suit Jacket and Turtleneck Combo doubles as an Accounting suit, and includes an extra button. Take that, Nerd-otrasen!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: DeltaV/Clothing/Uniforms/Jumpsuit/cybersunattorney.rsi
|
||||
- type: Clothing
|
||||
sprite: DeltaV/Clothing/Uniforms/Jumpsuit/cybersunattorney.rsi
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
implant: BionicSyrinxImplant
|
||||
|
||||
- type: entity
|
||||
parent: BaseImplantOnlyImplanterSyndi
|
||||
parent: BaseImplantOnlyImplanter
|
||||
id: GenericRadioImplanter
|
||||
suffix: generic radio
|
||||
components:
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
parent: StorageImplant
|
||||
id: RadioImplant
|
||||
name: generic radio implant
|
||||
description: This implant contains a radio augmentation with a bluespace compartment for an encryption key. It allows its user to communicate on the key's channels.
|
||||
description: This implant contains a radio augmentation with a hidden compartment for an encryption key. It allows its user to communicate on the key's channels.
|
||||
components:
|
||||
- type: SubdermalImplant
|
||||
implantAction: ActionOpenRadioImplant
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
tags:
|
||||
- CartridgeSpecial
|
||||
- SpeedLoaderSpecial
|
||||
proto: CartridgeSpecialRubber
|
||||
proto: CartridgeSpecial
|
||||
capacity: 6
|
||||
chambers: [ True, True, True, True, True, True ]
|
||||
ammoSlots: [ null, null, null, null, null, null ]
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
tags:
|
||||
- CartridgeSpecial
|
||||
- SpeedLoaderSpecial
|
||||
proto: CartridgeSpecialRubber
|
||||
proto: CartridgeSpecial
|
||||
capacity: 6
|
||||
chambers: [ True, True, True, True, True, True ]
|
||||
ammoSlots: [ null, null, null, null, null, null ]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
- type: loadout
|
||||
id: SecurityRevolverWeaponRevolverLucky
|
||||
equipment:
|
||||
pocket1: WeaponRevolverLucky
|
||||
|
||||
- type: loadout
|
||||
id: SecurityRevolverInspector
|
||||
equipment:
|
||||
pocket1: WeaponRevolverInspector
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmWeaponRevolverFitz
|
||||
equipment:
|
||||
pocket1: WeaponRevolverFitz
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmSpeedLoaderMagnumRubber
|
||||
storage:
|
||||
back:
|
||||
- SpeedLoaderMagnumRubber
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmSpeedLoaderMagnum
|
||||
storage:
|
||||
back:
|
||||
- SpeedLoaderMagnum
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmSpeedLoaderSpecialRubber
|
||||
storage:
|
||||
back:
|
||||
- SpeedLoaderSpecialRubber
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmSpeedLoaderSpecial
|
||||
storage:
|
||||
back:
|
||||
- SpeedLoaderSpecial
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmWeaponRevolverK38Master
|
||||
equipment:
|
||||
pocket1: WeaponRevolverK38Master
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmWeaponRevolverDeckard
|
||||
equipment:
|
||||
pocket1: WeaponRevolverDeckard
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
- type: loadout
|
||||
id: SecurityFirearmWeaponPistolPollock
|
||||
equipment:
|
||||
pocket1: WeaponPistolPollock
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmWeaponPistolSLP57
|
||||
equipment:
|
||||
pocket1: WeaponPistolSLP57
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmWeaponPistolMk58
|
||||
equipment:
|
||||
pocket1: WeaponPistolMk58
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmWeaponDisabler
|
||||
equipment:
|
||||
pocket1: WeaponDisabler
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmMagazinePistolRubber
|
||||
storage:
|
||||
back:
|
||||
- MagazinePistolRubber
|
||||
|
||||
- type: loadout
|
||||
id: SecurityFirearmMagazinePistol
|
||||
storage:
|
||||
back:
|
||||
- MagazinePistol
|
||||
|
|
@ -140,6 +140,77 @@
|
|||
loadouts:
|
||||
- MimeHead
|
||||
|
||||
## Security Guns
|
||||
- type: loadoutGroup
|
||||
id: SecurityFirearm
|
||||
name: loadout-group-security-gun
|
||||
minLimit: 0
|
||||
maxLimit: 1
|
||||
loadouts:
|
||||
- SecurityFirearmWeaponPistolPollock
|
||||
- SecurityFirearmWeaponPistolSLP57
|
||||
- SecurityFirearmWeaponPistolMk58
|
||||
- SecurityFirearmWeaponDisabler
|
||||
|
||||
- type: loadoutGroup
|
||||
id: SecurityRevolverFirearm
|
||||
name: loadout-group-revolver-gun
|
||||
minLimit: 0
|
||||
maxLimit: 1
|
||||
loadouts:
|
||||
- SecurityRevolverInspector
|
||||
- SecurityFirearmWeaponRevolverFitz
|
||||
- SecurityRevolverWeaponRevolverLucky
|
||||
|
||||
- type: loadoutGroup
|
||||
id: SecurityFirearmAmmo
|
||||
name: loadout-group-security-gun-ammo
|
||||
minLimit: 0
|
||||
maxLimit: 2
|
||||
loadouts:
|
||||
- SecurityFirearmMagazinePistol
|
||||
- SecurityFirearmMagazinePistolRubber
|
||||
|
||||
- type: loadoutGroup
|
||||
id: SecurityRevolverAmmo
|
||||
name: loadout-group-revolver-ammo
|
||||
minLimit: 0
|
||||
maxLimit: 2
|
||||
loadouts:
|
||||
- SecurityFirearmSpeedLoaderMagnumRubber
|
||||
- SecurityFirearmSpeedLoaderMagnum
|
||||
- SecurityFirearmSpeedLoaderSpecialRubber
|
||||
- SecurityFirearmSpeedLoaderSpecial
|
||||
|
||||
- type: loadoutGroup
|
||||
id: SecurityAllFirearm
|
||||
name: loadout-group-all-gun
|
||||
minLimit: 0
|
||||
maxLimit: 1
|
||||
loadouts:
|
||||
- SecurityFirearmWeaponPistolPollock
|
||||
- SecurityFirearmWeaponPistolSLP57
|
||||
- SecurityFirearmWeaponPistolMk58
|
||||
- SecurityFirearmWeaponDisabler
|
||||
- SecurityRevolverInspector
|
||||
- SecurityFirearmWeaponRevolverFitz
|
||||
- SecurityRevolverWeaponRevolverLucky
|
||||
- SecurityFirearmWeaponRevolverDeckard
|
||||
- SecurityFirearmWeaponRevolverK38Master
|
||||
|
||||
- type: loadoutGroup
|
||||
id: SecurityAllAmmo
|
||||
name: loadout-group-all-ammo
|
||||
minLimit: 0
|
||||
maxLimit: 2
|
||||
loadouts:
|
||||
- SecurityFirearmMagazinePistol
|
||||
- SecurityFirearmMagazinePistolRubber
|
||||
- SecurityFirearmSpeedLoaderMagnumRubber
|
||||
- SecurityFirearmSpeedLoaderMagnum
|
||||
- SecurityFirearmSpeedLoaderSpecialRubber
|
||||
- SecurityFirearmSpeedLoaderSpecial
|
||||
|
||||
# Justice
|
||||
## Chief Justice
|
||||
- type: loadoutGroup
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
- SurvivalSecurity
|
||||
- Trinkets
|
||||
- GroupSpeciesBreathToolCorpsman
|
||||
- SecurityFirearm
|
||||
- SecurityFirearmAmmo
|
||||
|
||||
# Justice
|
||||
- type: roleLoadout
|
||||
|
|
|
|||
|
|
@ -50,3 +50,32 @@
|
|||
- type: StealCondition
|
||||
stealGroup: AnimalSilvia
|
||||
owner: job-name-cmo
|
||||
|
||||
# teach lesson
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BaseTargetObjective
|
||||
id: BaseTeachLessonObjective
|
||||
components:
|
||||
- type: Objective
|
||||
unique: false
|
||||
icon:
|
||||
sprite: Objects/Weapons/Guns/Pistols/viper.rsi
|
||||
state: icon
|
||||
- type: ObjectiveBlacklistRequirement
|
||||
blacklist:
|
||||
components:
|
||||
- SocialObjective
|
||||
|
||||
- type: entity
|
||||
parent: [BaseTraitorObjective, BaseTeachLessonObjective]
|
||||
id: TeachLessonRandomPersonObjective
|
||||
description: Kill them, and show everyone we mean business. They only need to die once.
|
||||
components:
|
||||
- type: Objective
|
||||
difficulty: 1.75
|
||||
unique: false
|
||||
- type: TargetObjective
|
||||
title: objective-condition-teach-person-title
|
||||
- type: PickRandomPerson
|
||||
- type: TeachLessonCondition
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@
|
|||
- type: startingGear
|
||||
id: SyndicateRecruiterGear
|
||||
equipment:
|
||||
jumpsuit: ClothingUniformJumpsuitDetectiveGrey
|
||||
jumpskirt: ClothingUniformJumpskirtDetectiveGrey
|
||||
jumpsuit: ClothingUniformCybersunAttorney
|
||||
back: ClothingBackpackSatchel
|
||||
head: ClothingHeadHatFedoraBrown
|
||||
eyes: ClothingEyesGlassesSunglasses
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
id: CorpsmanPDA
|
||||
ears: ClothingHeadsetBrigmedic
|
||||
belt: ClothingBeltCorpsmanWebbingFilled
|
||||
pocket1: WeaponPistolMk58Nonlethal
|
||||
# pocket1: WeaponPistolMk58Nonlethal # DeltaV - loadouts
|
||||
storage:
|
||||
back:
|
||||
- EmergencyRollerBedSpawnFolded
|
||||
|
|
@ -44,4 +44,4 @@
|
|||
- BruteAutoInjector
|
||||
- BurnAutoInjector
|
||||
- BurnAutoInjector
|
||||
- MagazinePistol
|
||||
# - MagazinePistol # DeltaV - loadouts
|
||||
|
|
|
|||
|
|
@ -308,6 +308,21 @@
|
|||
tags:
|
||||
- Wrench
|
||||
sprite: Clothing/Belt/belt_overlay.rsi
|
||||
# DeltaV - Add medkit slot to medical belts
|
||||
- type: ItemSlots
|
||||
slots:
|
||||
medkit:
|
||||
name: clothing-belt-medkit
|
||||
whitelist:
|
||||
tags:
|
||||
- Medkit
|
||||
insertOnInteract: false
|
||||
- type: ContainerContainer
|
||||
containers:
|
||||
storagebase: !type:Container
|
||||
ents: []
|
||||
medkit: !type:ContainerSlot {}
|
||||
# End of DeltaV - Add medkit slot to medical belts.
|
||||
- type: Appearance
|
||||
|
||||
- type: entity
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
types:
|
||||
Blunt: 10
|
||||
- type: StaminaDamageOnCollide
|
||||
damage: 40 # 3 hits to stun
|
||||
damage: 55 # DeltaV - Modified the beanbag stamina damage, was 40.
|
||||
|
||||
- type: entity
|
||||
id: PelletShotgun
|
||||
|
|
|
|||
|
|
@ -1030,15 +1030,16 @@
|
|||
bounds: "-0.15,-0.3,0.15,0.3"
|
||||
hard: false
|
||||
mask:
|
||||
- Impassable
|
||||
- BulletImpassable
|
||||
# - Impassable
|
||||
# - BulletImpassable
|
||||
- Opaque # Delta-V changed from impassable so that they can go through windows
|
||||
fly-by: *flybyfixture
|
||||
- type: Ammo
|
||||
- type: Projectile
|
||||
impactEffect: BulletImpactEffectOrangeDisabler
|
||||
damage:
|
||||
types:
|
||||
Heat: 13
|
||||
Heat: 10 # DeltaV changed from 13 to 10
|
||||
|
||||
- type: entity
|
||||
name: wide laser barrage
|
||||
|
|
|
|||
|
|
@ -1182,7 +1182,6 @@
|
|||
- ClothingOuterWinterQM
|
||||
- ClothingOuterWinterRD
|
||||
- ClothingOuterChiefJustice # DeltaV - Chief Justice
|
||||
- ClothingNeckCloakCJ # DeltaV - Chief Justice
|
||||
- ClothingOuterStasecSweater # DeltaV - added stasec sweater to uniform printer.
|
||||
- ClothingOuterWinterMusician
|
||||
- ClothingOuterWinterClown
|
||||
|
|
|
|||
|
|
@ -363,3 +363,6 @@
|
|||
count: 5
|
||||
- type: Machine
|
||||
board: ShuttleGunKineticCircuitboard
|
||||
- type: ExtensionCableReceiver # Frontier
|
||||
- type: ApcPowerReceiver # Frontier
|
||||
powerLoad: 1500 # Frontier
|
||||
|
|
|
|||
|
|
@ -322,8 +322,8 @@
|
|||
effects:
|
||||
- !type:JobRequirementLoadoutEffect
|
||||
requirement:
|
||||
!type:RoleTimeRequirement
|
||||
role: JobLawyer
|
||||
!type:DepartmentTimeRequirement # DeltaV - Use Justice department time instead of Lawyer job time
|
||||
department: Justice
|
||||
time: 360000 # 100hr
|
||||
storage:
|
||||
back:
|
||||
|
|
|
|||
|
|
@ -370,6 +370,8 @@
|
|||
- Trinkets
|
||||
- SecurityStar
|
||||
- GroupSpeciesBreathToolSecurity
|
||||
- SecurityAllFirearm # DeltaV - loadouts
|
||||
- SecurityAllAmmo # DeltaV - loadouts
|
||||
|
||||
- type: roleLoadout
|
||||
id: JobWarden
|
||||
|
|
@ -385,6 +387,8 @@
|
|||
- Trinkets
|
||||
- SecurityStar
|
||||
- GroupSpeciesBreathToolSecurity
|
||||
- SecurityAllFirearm # DeltaV - loadouts
|
||||
- SecurityAllAmmo # DeltaV - loadouts
|
||||
|
||||
- type: roleLoadout
|
||||
id: JobSecurityOfficer
|
||||
|
|
@ -401,6 +405,8 @@
|
|||
- Trinkets
|
||||
- SecurityStar
|
||||
- GroupSpeciesBreathToolSecurity
|
||||
- SecurityFirearm # DeltaV - loadouts
|
||||
- SecurityFirearmAmmo # DeltaV - loadouts
|
||||
|
||||
- type: roleLoadout
|
||||
id: JobDetective
|
||||
|
|
@ -416,6 +422,8 @@
|
|||
- Trinkets
|
||||
- SecurityStar
|
||||
- GroupSpeciesBreathToolSecurity
|
||||
- SecurityRevolverFirearm # DeltaV - loadouts
|
||||
- SecurityRevolverAmmo # DeltaV - loadouts
|
||||
|
||||
- type: roleLoadout
|
||||
id: JobSecurityCadet
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
- SurvivalSecurity
|
||||
- Trinkets
|
||||
- GroupSpeciesBreathToolSecurity
|
||||
- SecurityFirearm # DeltaV - loadouts
|
||||
- SecurityFirearmAmmo # DeltaV - loadouts
|
||||
|
||||
# Wildcards
|
||||
- type: roleLoadout
|
||||
|
|
|
|||
|
|
@ -30,4 +30,9 @@
|
|||
equipment:
|
||||
eyes: ClothingEyesGlassesSecurity
|
||||
id: PrisonGuardPDA
|
||||
ears: ClothingHeadsetPrisonGuard #DeltaV
|
||||
ears: ClothingHeadsetPrisonGuard # begin DeltaV
|
||||
storage:
|
||||
back:
|
||||
- Flash
|
||||
# - MagazinePistol # end DeltaV
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@
|
|||
- type: weightedRandom
|
||||
id: TraitorObjectiveGroupKill
|
||||
weights:
|
||||
KillRandomPersonObjective: 1
|
||||
# KillRandomPersonObjective: 1 # DeltaV Replaced for Teach Lesson
|
||||
TeachLessonRandomPersonObjective: 1
|
||||
KillRandomHeadObjective: 0.25
|
||||
|
||||
- type: weightedRandom
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
eyes: ClothingEyesGlassesSecurity
|
||||
id: DetectivePDA
|
||||
ears: ClothingHeadsetSecurity
|
||||
belt: ClothingBeltHolsterFilled
|
||||
belt: ClothingBeltHolster # DeltaV - loadouts
|
||||
storage:
|
||||
back:
|
||||
- Flash
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@
|
|||
id: HoSPDA
|
||||
gloves: ClothingHandsGlovesCombat
|
||||
ears: ClothingHeadsetAltSecurity
|
||||
pocket1: WeaponPistolMk58Nonlethal
|
||||
# pocket1: WeaponPistolMk58Nonlethal # DeltaV - loadouts
|
||||
storage:
|
||||
back:
|
||||
- Flash
|
||||
- MagazinePistol
|
||||
# - MagazinePistol # DeltaV - loadouts
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
id: SecurityCadetPDA
|
||||
ears: ClothingHeadsetSecurity
|
||||
belt: ClothingBeltSecurityFilled
|
||||
# pocket1: WeaponPistolMk58Nonlethal # DeltaV - Security Cadet doesn't spawn with a gun
|
||||
pocket1: WeaponDisabler # DeltaV - loadouts, Security Cadet doesn't spawn with a gun
|
||||
pocket2: BookSecurity
|
||||
storage:
|
||||
back:
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@
|
|||
equipment:
|
||||
eyes: ClothingEyesGlassesSecurity
|
||||
ears: ClothingHeadsetSecurity
|
||||
pocket1: WeaponPistolMk58Nonlethal
|
||||
# pocket1: WeaponPistolMk58Nonlethal # DeltaV - loadouts
|
||||
storage:
|
||||
back:
|
||||
- Flash
|
||||
- MagazinePistol
|
||||
# - MagazinePistol # DeltaV - loadouts
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@
|
|||
eyes: ClothingEyesGlassesSecurity
|
||||
id: WardenPDA
|
||||
ears: ClothingHeadsetSecurity
|
||||
pocket1: WeaponPistolMk58Nonlethal
|
||||
# pocket1: WeaponPistolMk58Nonlethal # DeltaV - loadouts
|
||||
storage:
|
||||
back:
|
||||
- Flash
|
||||
- MagazinePistol
|
||||
# - MagazinePistol # DeltaV - loadouts
|
||||
|
|
|
|||
|
|
@ -45,3 +45,15 @@
|
|||
- type: lobbyBackground
|
||||
id: breakingspace
|
||||
background: /Textures/LobbyScreens/breakingspace.webp
|
||||
|
||||
- type: lobbyBackground
|
||||
id: StationCrewBoard
|
||||
background: /Textures/LobbyScreens/station-crew-board.webp
|
||||
|
||||
- type: lobbyBackground
|
||||
id: CorporateRats
|
||||
background: /Textures/LobbyScreens/Corporate_Rats.webp
|
||||
|
||||
- type: lobbyBackground
|
||||
id: SecurityCamera
|
||||
background: /Textures/LobbyScreens/DeltaVContestWinner.webp
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 496 B |
Binary file not shown.
|
After Width: | Height: | Size: 597 B |
Binary file not shown.
|
After Width: | Height: | Size: 586 B |
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Made by JustanOrange",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "icon"
|
||||
},
|
||||
{
|
||||
"name": "equipped-INNERCLOTHING",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in New Issue