C.H.I.M.P handcannon redesign (#19004)
* Added basic alternative fire mode system for the CHIMP * Redesign of the CHIMP handcannon - the CHIMP now has an internal rechargable battery (10 shots at 100% charge) - it has three alternative fire modes, one for each particle type, that its user can easily switch between - syndicate scientists have access to an experimental version which can also fire omega particles (4 TC) - each particle type now has a distinct color and damage type: delta (red): heat, epsilon (green): radiation, zeta (yellow): shock, omega (purple): heat + radiation. This affects A.P.E.s as well - CHIMP particles now do 10 damage (up from 5) - all CHIMP particle cartridges have been removed from the game (including the syndicate omega particle ammo pack) * Code revisions * Code revisions - Removed changes to particle damage and damage types - The experimental CHIMP was removed from the syndicate uplink and replaced with an upgrade kit, which when used on a standard CHIMP will convert it to an experimental one * Code revisions - Added a 2 second DoAfter for applying the upgrade kit * Fixed spelling mistake * Update projectiles.yml Removed commented code * Update Content.Server/Weapons/Ranged/Systems/AlternativeFireModesSystem.cs Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> * Code revisions - Implemented changes requested by EmoGarbage - Removed UpgradeKitComponent in favor of using a construction graph - Renamed AlternativeFireModesComponent.cs to BatteryWeaponFireModesComponent.cs Textures - Reverted omega particle to being a green color - Epsilon particles are now a cyan color * Added comments * Revisions - Moved BatteryWeaponFireModesComponent from Shared to Server - Restricted access to this component to BatteryWeaponFireModesSystem - Changed the CHIMP upgrade kit to a chip - Updated the localization files to reflect this change * Delete interaction-upgrade-kit-component.ftl This file is no longer needed * Update battery_guns.yml Added new description for the experimental CHIMP * Update battery_guns.yml Updated experimental CHIMP description again... * Fixed issue with ItemComponent --------- Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
using Content.Server.Anomaly.Components;
|
using Content.Server.Anomaly.Components;
|
||||||
using Content.Server.Atmos.EntitySystems;
|
using Content.Server.Atmos.EntitySystems;
|
||||||
using Content.Server.Audio;
|
using Content.Server.Audio;
|
||||||
using Content.Server.Explosion.EntitySystems;
|
using Content.Server.Explosion.EntitySystems;
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||||
|
using Content.Server.Weapons.Ranged.Systems;
|
||||||
|
|
||||||
|
namespace Content.Server.Weapons.Ranged.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Allows battery weapons to fire different types of projectiles
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent]
|
||||||
|
[Access(typeof(BatteryWeaponFireModesSystem))]
|
||||||
|
[AutoGenerateComponentState]
|
||||||
|
public sealed partial class BatteryWeaponFireModesComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A list of the different firing modes the weapon can switch between
|
||||||
|
/// </summary>
|
||||||
|
[DataField("fireModes", required: true)]
|
||||||
|
[AutoNetworkedField]
|
||||||
|
public List<BatteryWeaponFireMode> FireModes = new();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The currently selected firing mode
|
||||||
|
/// </summary>
|
||||||
|
[DataField("currentFireMode")]
|
||||||
|
[AutoNetworkedField]
|
||||||
|
public BatteryWeaponFireMode? CurrentFireMode = default!;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DataDefinition]
|
||||||
|
public sealed class BatteryWeaponFireMode
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The projectile prototype associated with this firing mode
|
||||||
|
/// </summary>
|
||||||
|
[DataField("proto", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
||||||
|
public string Prototype = default!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The battery cost to fire the projectile associated with this firing mode
|
||||||
|
/// </summary>
|
||||||
|
[DataField("fireCost")]
|
||||||
|
public float FireCost = 100;
|
||||||
|
}
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
using Content.Server.Popups;
|
||||||
|
using Content.Server.Weapons.Ranged.Components;
|
||||||
|
using Content.Shared.Database;
|
||||||
|
using Content.Shared.Examine;
|
||||||
|
using Content.Shared.Interaction;
|
||||||
|
using Content.Shared.Verbs;
|
||||||
|
using Content.Shared.Weapons.Ranged.Components;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Content.Server.Weapons.Ranged.Systems;
|
||||||
|
|
||||||
|
public sealed class BatteryWeaponFireModesSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
|
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<BatteryWeaponFireModesComponent, ActivateInWorldEvent>(OnInteractHandEvent);
|
||||||
|
SubscribeLocalEvent<BatteryWeaponFireModesComponent, GetVerbsEvent<Verb>>(OnGetVerb);
|
||||||
|
SubscribeLocalEvent<BatteryWeaponFireModesComponent, ExaminedEvent>(OnExamined);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnExamined(EntityUid uid, BatteryWeaponFireModesComponent component, ExaminedEvent args)
|
||||||
|
{
|
||||||
|
if (component.FireModes == null || component.FireModes.Count < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (component.CurrentFireMode == null)
|
||||||
|
{
|
||||||
|
SetFireMode(uid, component, component.FireModes.First());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (component.CurrentFireMode?.Prototype == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!_prototypeManager.TryIndex<EntityPrototype>(component.CurrentFireMode.Prototype, out var proto))
|
||||||
|
return;
|
||||||
|
|
||||||
|
args.PushMarkup(Loc.GetString("gun-set-fire-mode", ("mode", proto.Name)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetVerb(EntityUid uid, BatteryWeaponFireModesComponent component, GetVerbsEvent<Verb> args)
|
||||||
|
{
|
||||||
|
if (!args.CanAccess || !args.CanInteract || args.Hands == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (component.FireModes == null || component.FireModes.Count < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (component.CurrentFireMode == null)
|
||||||
|
{
|
||||||
|
SetFireMode(uid, component, component.FireModes.First());
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var fireMode in component.FireModes)
|
||||||
|
{
|
||||||
|
var entProto = _prototypeManager.Index<EntityPrototype>(fireMode.Prototype);
|
||||||
|
|
||||||
|
var v = new Verb
|
||||||
|
{
|
||||||
|
Priority = 1,
|
||||||
|
Category = VerbCategory.SelectType,
|
||||||
|
Text = entProto.Name,
|
||||||
|
Disabled = fireMode == component.CurrentFireMode,
|
||||||
|
Impact = LogImpact.Low,
|
||||||
|
DoContactInteraction = true,
|
||||||
|
Act = () =>
|
||||||
|
{
|
||||||
|
SetFireMode(uid, component, fireMode, args.User);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
args.Verbs.Add(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInteractHandEvent(EntityUid uid, BatteryWeaponFireModesComponent component, ActivateInWorldEvent args)
|
||||||
|
{
|
||||||
|
if (component.FireModes == null || component.FireModes.Count < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
CycleFireMode(uid, component, args.User);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CycleFireMode(EntityUid uid, BatteryWeaponFireModesComponent component, EntityUid user)
|
||||||
|
{
|
||||||
|
int index = (component.CurrentFireMode != null) ?
|
||||||
|
Math.Max(component.FireModes.IndexOf(component.CurrentFireMode), 0) + 1 : 1;
|
||||||
|
|
||||||
|
BatteryWeaponFireMode? fireMode;
|
||||||
|
|
||||||
|
if (index >= component.FireModes.Count)
|
||||||
|
{
|
||||||
|
fireMode = component.FireModes.FirstOrDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fireMode = component.FireModes[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
SetFireMode(uid, component, fireMode, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetFireMode(EntityUid uid, BatteryWeaponFireModesComponent component, BatteryWeaponFireMode? fireMode, EntityUid? user = null)
|
||||||
|
{
|
||||||
|
if (fireMode?.Prototype == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
component.CurrentFireMode = fireMode;
|
||||||
|
|
||||||
|
if (TryComp(uid, out ProjectileBatteryAmmoProviderComponent? projectileBatteryAmmoProvider))
|
||||||
|
{
|
||||||
|
if (!_prototypeManager.TryIndex<EntityPrototype>(fireMode.Prototype, out var prototype))
|
||||||
|
return;
|
||||||
|
|
||||||
|
projectileBatteryAmmoProvider.Prototype = fireMode.Prototype;
|
||||||
|
projectileBatteryAmmoProvider.FireCost = fireMode.FireCost;
|
||||||
|
|
||||||
|
if (user != null)
|
||||||
|
{
|
||||||
|
_popupSystem.PopupEntity(Loc.GetString("gun-set-fire-mode", ("mode", prototype.Name)), uid, user.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using Robust.Shared.Serialization;
|
using Robust.Shared.Serialization;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Shared.Anomaly;
|
namespace Content.Shared.Anomaly;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ anomaly-vessel-component-upgrade-output = point output
|
|||||||
anomaly-particles-delta = Delta particles
|
anomaly-particles-delta = Delta particles
|
||||||
anomaly-particles-epsilon = Epsilon particles
|
anomaly-particles-epsilon = Epsilon particles
|
||||||
anomaly-particles-zeta = Zeta particles
|
anomaly-particles-zeta = Zeta particles
|
||||||
|
anomaly-particles-omega = Omega particles
|
||||||
|
|
||||||
anomaly-scanner-component-scan-complete = Scan complete!
|
anomaly-scanner-component-scan-complete = Scan complete!
|
||||||
|
|
||||||
|
|||||||
@@ -221,8 +221,8 @@ uplink-banana-peel-explosive-desc = They will burst into laughter when they slip
|
|||||||
uplink-hot-potato-name = Hot Potato
|
uplink-hot-potato-name = Hot Potato
|
||||||
uplink-hot-potato-desc = Once activated, this time bomb can't be dropped - only passed to someone else!
|
uplink-hot-potato-desc = Once activated, this time bomb can't be dropped - only passed to someone else!
|
||||||
|
|
||||||
uplink-chimp-ammo-name = Box of 10 Omega Cartridges.
|
uplink-chimp-upgrade-kit-name = C.H.I.M.P. Handcannon Upgrade Chip
|
||||||
uplink-chimp-ammo-desc = A box of 10 omega particle cartridges for the CHIMP. Omega particles inflict severe burns and cause anomalies to go supercritical.
|
uplink-chimp-upgrade-kit-desc = Insert this chip into a standard C.H.I.M.P. handcannon to allow it to fire omega particles. Omega particles inflict severe burns and cause anomalies to go supercritical.
|
||||||
|
|
||||||
uplink-proximity-mine-name = Proximity Mine
|
uplink-proximity-mine-name = Proximity Mine
|
||||||
uplink-proximity-mine-desc = A mine disguised as a wet floor sign.
|
uplink-proximity-mine-desc = A mine disguised as a wet floor sign.
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ gun-selector-verb = Change to {$mode}
|
|||||||
gun-selected-mode = Selected {$mode}
|
gun-selected-mode = Selected {$mode}
|
||||||
gun-disabled = You can't use guns!
|
gun-disabled = You can't use guns!
|
||||||
gun-clumsy = The gun blows up in your face!
|
gun-clumsy = The gun blows up in your face!
|
||||||
|
gun-set-fire-mode = Set to {$mode}
|
||||||
|
|
||||||
# SelectiveFire
|
# SelectiveFire
|
||||||
gun-SemiAuto = semi-auto
|
gun-SemiAuto = semi-auto
|
||||||
|
|||||||
@@ -89,21 +89,6 @@
|
|||||||
- id: MagazineMagnumSubMachineGun
|
- id: MagazineMagnumSubMachineGun
|
||||||
amount: 3
|
amount: 3
|
||||||
|
|
||||||
- type: entity
|
|
||||||
name: box of omega particle cartridges
|
|
||||||
parent: BoxMagazine
|
|
||||||
id: BoxMagazineChimpOmega
|
|
||||||
description: A box full of omega particle cartridges for the CHIMP.
|
|
||||||
components:
|
|
||||||
- type: StorageFill
|
|
||||||
contents:
|
|
||||||
- id: CartridgeAnomalousParticleOmega
|
|
||||||
amount: 10
|
|
||||||
- type: Sprite
|
|
||||||
layers:
|
|
||||||
- state: box_science
|
|
||||||
- state: omegacart
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: box of Vector (practice) magazines
|
name: box of Vector (practice) magazines
|
||||||
parent: BoxMagazine
|
parent: BoxMagazine
|
||||||
|
|||||||
@@ -955,10 +955,10 @@
|
|||||||
- Mime
|
- Mime
|
||||||
|
|
||||||
- type: listing
|
- type: listing
|
||||||
id: UplinkChimpAmmo
|
id: UplinkChimpUpgradeKit
|
||||||
name: uplink-chimp-ammo-name
|
name: uplink-chimp-upgrade-kit-name
|
||||||
description: uplink-chimp-ammo-desc
|
description: uplink-chimp-upgrade-kit-desc
|
||||||
productEntity: BoxMagazineChimpOmega
|
productEntity: WeaponPistolCHIMPUpgradeKit
|
||||||
cost:
|
cost:
|
||||||
Telecrystal: 4
|
Telecrystal: 4
|
||||||
categories:
|
categories:
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
- type: entity
|
||||||
|
name: C.H.I.M.P. handcannon upgrade chip
|
||||||
|
parent: BaseItem
|
||||||
|
id: WeaponPistolCHIMPUpgradeKit
|
||||||
|
description: An experimental upgrade kit for the C.H.I.M.P.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Misc/module.rsi
|
||||||
|
state: abductor_mod
|
||||||
|
- type: Item
|
||||||
|
size: 10
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- WeaponPistolCHIMPUpgradeKit
|
||||||
@@ -59,76 +59,3 @@
|
|||||||
components:
|
components:
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
proto: BulletMagnumAP
|
proto: BulletMagnumAP
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: BaseAnomalousCartridge
|
|
||||||
parent: BaseCartridgeMagnum
|
|
||||||
description: Packs twice the punch of a standard A.P.E. particle.
|
|
||||||
abstract: true
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Objects/Weapons/Guns/Ammunition/Casings/anomalous_casing.rsi
|
|
||||||
layers:
|
|
||||||
- state: base
|
|
||||||
map: ["enum.AmmoVisualLayers.Base"]
|
|
||||||
- type: Tag
|
|
||||||
tags:
|
|
||||||
- Cartridge
|
|
||||||
- CartridgeCHIMP
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: CartridgeAnomalousParticleDelta
|
|
||||||
parent: BaseAnomalousCartridge
|
|
||||||
name: cartridge (delta particle)
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
layers:
|
|
||||||
- state: base
|
|
||||||
map: ["enum.AmmoVisualLayers.Base"]
|
|
||||||
- state: overlay
|
|
||||||
color: crimson
|
|
||||||
- type: CartridgeAmmo
|
|
||||||
proto: AnomalousParticleDeltaStrong
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: CartridgeAnomalousParticleEpsilon
|
|
||||||
parent: BaseAnomalousCartridge
|
|
||||||
name: cartridge (epsilon particle)
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
layers:
|
|
||||||
- state: base
|
|
||||||
map: ["enum.AmmoVisualLayers.Base"]
|
|
||||||
- state: overlay
|
|
||||||
color: plum
|
|
||||||
- type: CartridgeAmmo
|
|
||||||
proto: AnomalousParticleEpsilonStrong
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: CartridgeAnomalousParticleZeta
|
|
||||||
parent: BaseAnomalousCartridge
|
|
||||||
name: cartridge (zeta particle)
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
layers:
|
|
||||||
- state: base
|
|
||||||
map: ["enum.AmmoVisualLayers.Base"]
|
|
||||||
- state: overlay
|
|
||||||
color: goldenrod
|
|
||||||
- type: CartridgeAmmo
|
|
||||||
proto: AnomalousParticleZetaStrong
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: CartridgeAnomalousParticleOmega
|
|
||||||
parent: BaseAnomalousCartridge
|
|
||||||
name: cartridge (omega particle)
|
|
||||||
description: An experimental and often dangerous particle.
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
layers:
|
|
||||||
- state: base
|
|
||||||
map: ["enum.AmmoVisualLayers.Base"]
|
|
||||||
- state: overlay
|
|
||||||
color: green
|
|
||||||
- type: CartridgeAmmo
|
|
||||||
proto: AnomalousParticleOmegaStrong
|
|
||||||
|
|||||||
@@ -430,6 +430,63 @@
|
|||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 63
|
price: 63
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: C.H.I.M.P. handcannon
|
||||||
|
parent: BaseWeaponBatterySmall
|
||||||
|
id: WeaponPistolCHIMP
|
||||||
|
description: Just because it's a little C.H.I.M.P. doesn't mean it can't punch like an A.P.E.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Revolvers/chimp.rsi
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
map: ["enum.GunVisualLayers.Base"]
|
||||||
|
- state: mag-unshaded-1
|
||||||
|
visible: false
|
||||||
|
map: ["enum.GunVisualLayers.MagUnshaded"]
|
||||||
|
shader: unshaded
|
||||||
|
- type: Appearance
|
||||||
|
- type: MagazineVisuals
|
||||||
|
magState: mag
|
||||||
|
steps: 3
|
||||||
|
zeroVisible: false
|
||||||
|
- type: Clothing
|
||||||
|
sprite: Objects/Weapons/Guns/Revolvers/chimp.rsi
|
||||||
|
- type: Gun
|
||||||
|
fireRate: 1.5
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
|
||||||
|
- type: ProjectileBatteryAmmoProvider
|
||||||
|
proto: AnomalousParticleDeltaStrong
|
||||||
|
fireCost: 100
|
||||||
|
- type: BatteryWeaponFireModes
|
||||||
|
fireModes:
|
||||||
|
- proto: AnomalousParticleDeltaStrong
|
||||||
|
fireCost: 100
|
||||||
|
- proto: AnomalousParticleEpsilonStrong
|
||||||
|
fireCost: 100
|
||||||
|
- proto: AnomalousParticleZetaStrong
|
||||||
|
fireCost: 100
|
||||||
|
- type: Construction
|
||||||
|
graph: UpgradeWeaponPistolCHIMP
|
||||||
|
node: start
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: experimental C.H.I.M.P. handcannon
|
||||||
|
parent: WeaponPistolCHIMP
|
||||||
|
id: WeaponPistolCHIMPUpgraded
|
||||||
|
description: This C.H.I.M.P. seems to have a greater punch than is usual...
|
||||||
|
components:
|
||||||
|
- type: BatteryWeaponFireModes
|
||||||
|
fireModes:
|
||||||
|
- proto: AnomalousParticleDeltaStrong
|
||||||
|
fireCost: 100
|
||||||
|
- proto: AnomalousParticleEpsilonStrong
|
||||||
|
fireCost: 100
|
||||||
|
- proto: AnomalousParticleOmegaStrong
|
||||||
|
fireCost: 100
|
||||||
|
- proto: AnomalousParticleZetaStrong
|
||||||
|
fireCost: 100
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: Eye of a behonker
|
name: Eye of a behonker
|
||||||
|
|||||||
@@ -378,7 +378,7 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
|
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
|
||||||
layers:
|
layers:
|
||||||
- state: magicm
|
- state: magicm_red
|
||||||
shader: unshaded
|
shader: unshaded
|
||||||
- type: Ammo
|
- type: Ammo
|
||||||
muzzleFlash: null
|
muzzleFlash: null
|
||||||
@@ -419,6 +419,10 @@
|
|||||||
name: epsilon particles
|
name: epsilon particles
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
layers:
|
||||||
|
- state: magicm_cyan
|
||||||
|
shader: unshaded
|
||||||
- type: AnomalousParticle
|
- type: AnomalousParticle
|
||||||
particleType: Epsilon
|
particleType: Epsilon
|
||||||
|
|
||||||
@@ -440,6 +444,10 @@
|
|||||||
name: zeta particles
|
name: zeta particles
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
layers:
|
||||||
|
- state: magicm_yellow
|
||||||
|
shader: unshaded
|
||||||
- type: AnomalousParticle
|
- type: AnomalousParticle
|
||||||
particleType: Zeta
|
particleType: Zeta
|
||||||
|
|
||||||
@@ -458,6 +466,7 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
parent: AnomalousParticleDelta
|
parent: AnomalousParticleDelta
|
||||||
id: AnomalousParticleOmegaStrong
|
id: AnomalousParticleOmegaStrong
|
||||||
|
name: omega particles
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
|||||||
@@ -153,42 +153,3 @@
|
|||||||
capacity: 5
|
capacity: 5
|
||||||
chambers: [ True, True, True, True, True ]
|
chambers: [ True, True, True, True, True ]
|
||||||
ammoSlots: [ null, null, null, null, null ]
|
ammoSlots: [ null, null, null, null, null ]
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WeaponPistolCHIMP
|
|
||||||
parent: BaseWeaponRevolver
|
|
||||||
name: C.H.I.M.P. handcannon
|
|
||||||
description: Just because it's a little C.H.I.M.P. doesn't mean it can't punch like an A.P.E.
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
sprite: Objects/Weapons/Guns/Revolvers/chimp.rsi
|
|
||||||
layers:
|
|
||||||
- state: base
|
|
||||||
map: ["enum.GunVisualLayers.Base"]
|
|
||||||
- state: mag-unshaded-1
|
|
||||||
visible: false
|
|
||||||
map: ["enum.GunVisualLayers.MagUnshaded"]
|
|
||||||
shader: unshaded
|
|
||||||
- type: Appearance
|
|
||||||
- type: MagazineVisuals
|
|
||||||
magState: mag
|
|
||||||
steps: 3
|
|
||||||
zeroVisible: false
|
|
||||||
- type: Clothing
|
|
||||||
sprite: Objects/Weapons/Guns/Revolvers/chimp.rsi
|
|
||||||
- type: RevolverAmmoProvider
|
|
||||||
whitelist:
|
|
||||||
tags:
|
|
||||||
- CartridgeCHIMP
|
|
||||||
proto: CartridgeAnomalousParticleDelta #when revolvers stop sucking cock, make this spawn empty
|
|
||||||
capacity: 10
|
|
||||||
chambers: [ True, True, True, True, True, True, True, True, True, True ]
|
|
||||||
ammoSlots: [ null, null, null, null, null, null, null, null, null, null ]
|
|
||||||
soundEject:
|
|
||||||
path: /Audio/Weapons/Guns/MagOut/revolver_magout.ogg
|
|
||||||
soundInsert:
|
|
||||||
path: /Audio/Weapons/Guns/MagIn/revolver_magin.ogg
|
|
||||||
- type: Gun
|
|
||||||
fireRate: 1.5
|
|
||||||
soundGunshot:
|
|
||||||
path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
|
|
||||||
|
|||||||
@@ -239,9 +239,6 @@
|
|||||||
- PowerCellMedium
|
- PowerCellMedium
|
||||||
- PowerCellHigh
|
- PowerCellHigh
|
||||||
- WeaponPistolCHIMP
|
- WeaponPistolCHIMP
|
||||||
- CartridgeAnomalousParticleDelta
|
|
||||||
- CartridgeAnomalousParticleEpsilon
|
|
||||||
- CartridgeAnomalousParticleZeta
|
|
||||||
- SynthesizerInstrument
|
- SynthesizerInstrument
|
||||||
- RPED
|
- RPED
|
||||||
- ClothingShoesBootsMag
|
- ClothingShoesBootsMag
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
- type: constructionGraph
|
||||||
|
id: UpgradeWeaponPistolCHIMP
|
||||||
|
start: start
|
||||||
|
graph:
|
||||||
|
- node: start
|
||||||
|
edges:
|
||||||
|
- to: upgraded
|
||||||
|
steps:
|
||||||
|
- tag: WeaponPistolCHIMPUpgradeKit
|
||||||
|
doAfter: 2
|
||||||
|
|
||||||
|
- node: upgraded
|
||||||
|
entity: WeaponPistolCHIMPUpgraded
|
||||||
@@ -207,27 +207,6 @@
|
|||||||
Steel: 10
|
Steel: 10
|
||||||
Glass: 5
|
Glass: 5
|
||||||
|
|
||||||
- type: latheRecipe
|
|
||||||
id: CartridgeAnomalousParticleDelta
|
|
||||||
result: CartridgeAnomalousParticleDelta
|
|
||||||
completetime: 2
|
|
||||||
materials:
|
|
||||||
Plastic: 25
|
|
||||||
|
|
||||||
- type: latheRecipe
|
|
||||||
id: CartridgeAnomalousParticleEpsilon
|
|
||||||
result: CartridgeAnomalousParticleEpsilon
|
|
||||||
completetime: 2
|
|
||||||
materials:
|
|
||||||
Plastic: 25
|
|
||||||
|
|
||||||
- type: latheRecipe
|
|
||||||
id: CartridgeAnomalousParticleZeta
|
|
||||||
result: CartridgeAnomalousParticleZeta
|
|
||||||
completetime: 2
|
|
||||||
materials:
|
|
||||||
Plastic: 25
|
|
||||||
|
|
||||||
- type: latheRecipe
|
- type: latheRecipe
|
||||||
id: TargetHuman
|
id: TargetHuman
|
||||||
result: TargetHuman
|
result: TargetHuman
|
||||||
|
|||||||
@@ -108,9 +108,6 @@
|
|||||||
cost: 10000
|
cost: 10000
|
||||||
recipeUnlocks:
|
recipeUnlocks:
|
||||||
- WeaponPistolCHIMP
|
- WeaponPistolCHIMP
|
||||||
- CartridgeAnomalousParticleDelta
|
|
||||||
- CartridgeAnomalousParticleEpsilon
|
|
||||||
- CartridgeAnomalousParticleZeta
|
|
||||||
technologyPrerequisites:
|
technologyPrerequisites:
|
||||||
- BasicAnomalousResearch
|
- BasicAnomalousResearch
|
||||||
|
|
||||||
|
|||||||
@@ -999,6 +999,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: WallmountSubstationElectronics
|
id: WallmountSubstationElectronics
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: WeaponPistolCHIMPUpgradeKit
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Window
|
id: Window
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
@@ -28,6 +28,39 @@
|
|||||||
0.1
|
0.1
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "magicm_yellow",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "magicm_red",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "magicm_cyan",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "spell",
|
"name": "spell",
|
||||||
|
|||||||
Reference in New Issue
Block a user