From 26eb71f1eb4c088065af22fbac99804589550579 Mon Sep 17 00:00:00 2001 From: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Date: Sat, 19 Aug 2023 17:54:52 -0500 Subject: [PATCH] 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> --- Content.Server/Anomaly/AnomalySystem.cs | 2 +- .../BatteryWeaponFireModesComponent.cs | 44 ++++++ .../Systems/BatteryWeaponFireModesSystem.cs | 130 ++++++++++++++++++ Content.Shared/Anomaly/SharedAnomaly.cs | 2 +- Resources/Locale/en-US/anomaly/anomaly.ftl | 1 + .../Locale/en-US/store/uplink-catalog.ftl | 4 +- Resources/Locale/en-US/weapons/ranged/gun.ftl | 1 + .../Catalog/Fills/Boxes/ammunition.yml | 15 -- .../Prototypes/Catalog/uplink_catalog.yml | 8 +- .../Syndicate_Gadgets/chimp_upgrade_kit.yml | 14 ++ .../Guns/Ammunition/Cartridges/magnum.yml | 73 ---------- .../Weapons/Guns/Battery/battery_guns.yml | 57 ++++++++ .../Weapons/Guns/Projectiles/projectiles.yml | 13 +- .../Weapons/Guns/Revolvers/revolvers.yml | 41 +----- .../Entities/Structures/Machines/lathe.yml | 3 - .../Graphs/weapons/upgraded_chimp.yml | 13 ++ .../Prototypes/Recipes/Lathes/security.yml | 21 --- .../Prototypes/Research/experimental.yml | 3 - Resources/Prototypes/tags.yml | 3 + .../Projectiles/magic.rsi/magicm_cyan.png | Bin 0 -> 3994 bytes .../Guns/Projectiles/magic.rsi/magicm_red.png | Bin 0 -> 3957 bytes .../Projectiles/magic.rsi/magicm_yellow.png | Bin 0 -> 3895 bytes .../Guns/Projectiles/magic.rsi/meta.json | 33 +++++ 23 files changed, 316 insertions(+), 165 deletions(-) create mode 100644 Content.Server/Weapons/Ranged/Components/BatteryWeaponFireModesComponent.cs create mode 100644 Content.Server/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs create mode 100644 Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/chimp_upgrade_kit.yml create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/weapons/upgraded_chimp.yml create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_cyan.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_red.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_yellow.png diff --git a/Content.Server/Anomaly/AnomalySystem.cs b/Content.Server/Anomaly/AnomalySystem.cs index b32119264b..bf103fb0ce 100644 --- a/Content.Server/Anomaly/AnomalySystem.cs +++ b/Content.Server/Anomaly/AnomalySystem.cs @@ -1,4 +1,4 @@ -using Content.Server.Anomaly.Components; +using Content.Server.Anomaly.Components; using Content.Server.Atmos.EntitySystems; using Content.Server.Audio; using Content.Server.Explosion.EntitySystems; diff --git a/Content.Server/Weapons/Ranged/Components/BatteryWeaponFireModesComponent.cs b/Content.Server/Weapons/Ranged/Components/BatteryWeaponFireModesComponent.cs new file mode 100644 index 0000000000..f8d2f7d9dc --- /dev/null +++ b/Content.Server/Weapons/Ranged/Components/BatteryWeaponFireModesComponent.cs @@ -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; + +/// +/// Allows battery weapons to fire different types of projectiles +/// +[RegisterComponent] +[Access(typeof(BatteryWeaponFireModesSystem))] +[AutoGenerateComponentState] +public sealed partial class BatteryWeaponFireModesComponent : Component +{ + /// + /// A list of the different firing modes the weapon can switch between + /// + [DataField("fireModes", required: true)] + [AutoNetworkedField] + public List FireModes = new(); + + /// + /// The currently selected firing mode + /// + [DataField("currentFireMode")] + [AutoNetworkedField] + public BatteryWeaponFireMode? CurrentFireMode = default!; +} + +[DataDefinition] +public sealed class BatteryWeaponFireMode +{ + /// + /// The projectile prototype associated with this firing mode + /// + [DataField("proto", required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] + public string Prototype = default!; + + /// + /// The battery cost to fire the projectile associated with this firing mode + /// + [DataField("fireCost")] + public float FireCost = 100; +} diff --git a/Content.Server/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs b/Content.Server/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs new file mode 100644 index 0000000000..90859d4068 --- /dev/null +++ b/Content.Server/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs @@ -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(OnInteractHandEvent); + SubscribeLocalEvent>(OnGetVerb); + SubscribeLocalEvent(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(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 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(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(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); + } + } + } +} diff --git a/Content.Shared/Anomaly/SharedAnomaly.cs b/Content.Shared/Anomaly/SharedAnomaly.cs index 60023b28e9..b7585cb5f1 100644 --- a/Content.Shared/Anomaly/SharedAnomaly.cs +++ b/Content.Shared/Anomaly/SharedAnomaly.cs @@ -1,4 +1,4 @@ -using Robust.Shared.Serialization; +using Robust.Shared.Serialization; using Robust.Shared.Utility; namespace Content.Shared.Anomaly; diff --git a/Resources/Locale/en-US/anomaly/anomaly.ftl b/Resources/Locale/en-US/anomaly/anomaly.ftl index cff944ae22..29d5169694 100644 --- a/Resources/Locale/en-US/anomaly/anomaly.ftl +++ b/Resources/Locale/en-US/anomaly/anomaly.ftl @@ -8,6 +8,7 @@ anomaly-vessel-component-upgrade-output = point output anomaly-particles-delta = Delta particles anomaly-particles-epsilon = Epsilon particles anomaly-particles-zeta = Zeta particles +anomaly-particles-omega = Omega particles anomaly-scanner-component-scan-complete = Scan complete! diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 1011d44fff..1d8ddf21ac 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -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-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-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-name = C.H.I.M.P. Handcannon Upgrade Chip +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-desc = A mine disguised as a wet floor sign. diff --git a/Resources/Locale/en-US/weapons/ranged/gun.ftl b/Resources/Locale/en-US/weapons/ranged/gun.ftl index 5982934215..8b99fba592 100644 --- a/Resources/Locale/en-US/weapons/ranged/gun.ftl +++ b/Resources/Locale/en-US/weapons/ranged/gun.ftl @@ -5,6 +5,7 @@ gun-selector-verb = Change to {$mode} gun-selected-mode = Selected {$mode} gun-disabled = You can't use guns! gun-clumsy = The gun blows up in your face! +gun-set-fire-mode = Set to {$mode} # SelectiveFire gun-SemiAuto = semi-auto diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml b/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml index cd3eb15581..20e291494f 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml @@ -89,21 +89,6 @@ - id: MagazineMagnumSubMachineGun 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 name: box of Vector (practice) magazines parent: BoxMagazine diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index ddf2e37a64..75e9cbfa72 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -955,10 +955,10 @@ - Mime - type: listing - id: UplinkChimpAmmo - name: uplink-chimp-ammo-name - description: uplink-chimp-ammo-desc - productEntity: BoxMagazineChimpOmega + id: UplinkChimpUpgradeKit + name: uplink-chimp-upgrade-kit-name + description: uplink-chimp-upgrade-kit-desc + productEntity: WeaponPistolCHIMPUpgradeKit cost: Telecrystal: 4 categories: diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/chimp_upgrade_kit.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/chimp_upgrade_kit.yml new file mode 100644 index 0000000000..aed09fe70b --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/chimp_upgrade_kit.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml index 2368b81269..e0fb98f0ab 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml @@ -59,76 +59,3 @@ components: - type: CartridgeAmmo 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 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 21d08fbd14..f970b06f8e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -430,6 +430,63 @@ - type: StaticPrice 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 name: Eye of a behonker diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 10cc39d17a..0b86ff6752 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -378,7 +378,7 @@ - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/magic.rsi layers: - - state: magicm + - state: magicm_red shader: unshaded - type: Ammo muzzleFlash: null @@ -419,6 +419,10 @@ name: epsilon particles noSpawn: true components: + - type: Sprite + layers: + - state: magicm_cyan + shader: unshaded - type: AnomalousParticle particleType: Epsilon @@ -440,9 +444,13 @@ name: zeta particles noSpawn: true components: + - type: Sprite + layers: + - state: magicm_yellow + shader: unshaded - type: AnomalousParticle particleType: Zeta - + - type: entity parent: AnomalousParticleZeta id: AnomalousParticleZetaStrong @@ -458,6 +466,7 @@ - type: entity parent: AnomalousParticleDelta id: AnomalousParticleOmegaStrong + name: omega particles noSpawn: true components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml index 0d9fea2cb7..48c02f484e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml @@ -152,43 +152,4 @@ - type: RevolverAmmoProvider capacity: 5 chambers: [ True, True, True, True, True ] - 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 + ammoSlots: [ null, null, null, null, null ] \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index aa5c17e84c..985d11f74d 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -239,9 +239,6 @@ - PowerCellMedium - PowerCellHigh - WeaponPistolCHIMP - - CartridgeAnomalousParticleDelta - - CartridgeAnomalousParticleEpsilon - - CartridgeAnomalousParticleZeta - SynthesizerInstrument - RPED - ClothingShoesBootsMag diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/upgraded_chimp.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/upgraded_chimp.yml new file mode 100644 index 0000000000..eecd78cc13 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/upgraded_chimp.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index adfd9f25be..19b3ec03c9 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -207,27 +207,6 @@ Steel: 10 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 id: TargetHuman result: TargetHuman diff --git a/Resources/Prototypes/Research/experimental.yml b/Resources/Prototypes/Research/experimental.yml index 3b80c4ccaf..c1730bb15e 100644 --- a/Resources/Prototypes/Research/experimental.yml +++ b/Resources/Prototypes/Research/experimental.yml @@ -108,9 +108,6 @@ cost: 10000 recipeUnlocks: - WeaponPistolCHIMP - - CartridgeAnomalousParticleDelta - - CartridgeAnomalousParticleEpsilon - - CartridgeAnomalousParticleZeta technologyPrerequisites: - BasicAnomalousResearch diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 6e03bd421e..92f2998ad4 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -998,6 +998,9 @@ - type: Tag id: WallmountSubstationElectronics + +- type: Tag + id: WeaponPistolCHIMPUpgradeKit - type: Tag id: Window diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_cyan.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6a0094a4fd661e9e525db5a44907ae6256a0f9 GIT binary patch literal 3994 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 A=Kufz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_red.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_red.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e0d8c6533ab2611cb360be6f4fa33377988929 GIT binary patch literal 3957 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 P00000NkvXXu0mjf*0-j3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_yellow.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..6fe8b5e727f643794561c06892387ad385a439db GIT binary patch literal 3895 zcmV-756JL|P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=QHax^y%gx`6JIYMy-c^s}0bAvhld?2eA$?|W> z_RBa%EvZ}8)g*vS013*>|NMKIfAJMUxJ-zWQ%ULKE0j=NF0k3DSrc-`dt9hdKg?l&F_dfnOaV!Rv4b$71Y+Y(de zd67z%cT<}?&;4O?e*Lt2(QVOn{xi5BgPTYls0xi9j3Qpg$^_X327y(7jz{$Q^J`)#t9I49N; z#|%If%bgFdfq;$C4UBZb`{azc>~wEFBX-~GqDxLMQ=0%H`s4*{im!kbLWDmOG90SW z#}H#oQDQc+#F~5xDW;SpX_2eqB}kMcB3X*m>~qL5rz|<=l526rQv+j3MM^HE)ap!S zqsm&9`zu$PYrcgRTWZpBE3J0u(?gFvb?Ld6UWXfgP$otiGV&;+PHQHWVul%Knlke& zvo5%{{0b|sv}EN~R(+y&qxzf24^Xo=YHlN?_sJ7At{RcY5?0GeRLnrk1q?&I2qQl6j*qC7zF(3@ny148UyBBib!p+3|E!^B6A!ii2zXLe~bic*z z3)F`8xxNuQS*S6+JlV(lGgsqs)uvYe>hnKwp;ptn@-jKdf$;7F zZC_)q;TquqwL$Pwb`?c4hQCUPELXC+i1#^v4?454`x~G$8#_9$e*|m$^a$1VsjE{@ zpT@gS!%Ap_)SOr}R~vq1nQg8>QK)fBC#FlPtZR|nlk}$=goPn{(Zz~gQlH}EaxJIs zO(Y_bJRfo2HEpYEY@w)ODJmiQ(7F_0oYaG9alH*GLvm|)p$lJy!lsG`$?DteZKX6e zHm*0B3XM=cY+kLcIw(yzRyBZ0`cisIOWp!ECC3Cjw3D#lps0gI9dvSyDAarz)P3|0 zu}iaBi>R0}h59TKc(Ppim*y8g%Ibpt;6iU`#=79Nr5}X`Zk@6Y@DWUmIKwuWt zTnwa`vWnRypBv;jH_7VaCoVwLB} zJ-ODe?h?B?+DMC$9mbfWr82Oy^g$0Twr|u^Gyv=gYL{(OT{IIry{P%C(>GUAwwJt! z2_N#BHhJ!}+2qv3QHmQ#3RV+7`Y8&PC&$=MoUf`KfRq|gNi2zccW!ID=IGuL{n zVs$>Nn0r*Q6(Z>v;aq8}6*R$ghyl{Dqxc%ycjqM8kDk~`Nywlu+9Xx9M8n>>4w~Vh zxel6AxuX>7&=Nn}>XF40Vl*O7$Y+qkF;T|~pPv#nj#mA0d?xM6!z`l}p&r)tMsaVN zUTdKtQ$WrDVbSWLmZHQ}@>s0dDJoh&GGYq|V2iTE&1do|Pr%BY?7dq}JLyXhQB!yN zDp&-#R@8gaG_Ga%NE%O7Y`u_D$`teKj&m!71CW+31qggj={orA(j`U#`q0d^*H~q# zuR>!R-qzw-sd~(WPJEa;Y}MF0X$kGL1Y%VD?g_Gc!o2v-%kJo$q*dk??RA>8ZWj^M zr>C*RU8cu!&|E9%hd5&4E~ zNNb#Fj?y+ns|OPXp{92!+srFtw3j>+X1x+dd&x6lHXejzeI|pU_q?&;d-CHeQkbt< z@dHxaUDCXJMzwnLO<}I@)%lZu`Ga=`_ZVWyY56ny@l_?wOAr0EDrvM#-i7~E-&aCE z^7&r&_wpI>Nc4=Q@(UHIFtq;|zPD%dH;p3yU+8~(p+@U|N;>bJl1|wPGw%}1$i164 z)J+*_-1bB<(TRq7&Is7Yo+z}XqSD=2m%@G4y~b+SI_r{5B+}7aD8{=AQXx~O=C@rg zLd})(Or3)4myUzBqVt}E(v^QS9RIP8A3UT}Zy(Lm$shQrr`(^tG*37GqK~Hj3E#fL z&$M6pHpF*?_LYzJ@S^jh-?=szdrur}0P?#Yn1KPL`J@%-I?q*Ii{HUsld+?jeCV8%3S7{=cJ|{5r(pKiXawW4Q7VV<{>>eq`xYM zf~{$XL5*O}lI2yzF`Vs_0RQ16K!`q!4y&2SgnW)D);^-xGk<4lK%#Ng#bc4ZicX?M z4>YZZq$tYgoCy_@c?_COjXm;DkD*@!9xgEz#9ojK(bZ=8jy`+TR`5Y})fOklwV)^c zs%Wm?KI_J}T0R?}(LvSn**Tt>B%x~8OS`-_XMR@t>F#os%I<8=C=>LE0})dPb29n_ z-9A(S*JTjdf%)G0*Ur%FZD%xcZ?B!bzYiNwHwn?BhXZwjjJy-GW{A8gs89O}*J~e7-JNmr3p;ye<|TSxF5qz`ZdXGYc+6 zcyEvM8T~I6#+^|gt7=!PuJ`F}XXi|X3L?q^LSpWi*iSJzW56Ae_8t+10v^@IC=gN! zQAdDYkbXXCxjjntyIj!8>1M;t1#^=@xBoE{=14lrr+Q{urzbt+C!bE5wmI)Yk#jr; zahiNti*Q|c^6lx5*zDwEEGs0RxwFrWeOOT2J}e+GzL9vPPU${TWlP(mLk&%5wxN~E z0cnur`q0GHg&6TkTn%eqLQIK?dU#Iv$~oOTM-b3S4Yk*vWD@@n`kqC7~%D>ZroP9b@QR!{513OZ01|!cqO8C zq^V~X%rk{4NRLvCyawI=7<4~+rz6cT{B!hEIu2qq>*<}le(c>xFU@Vutypero?aen zzT>C);ONuOpQC8r-26*kn(zMWp|llRbuhW~3z{?}DK3tJ zYr(;f#j1mgv#t)Vf*|+-;_Bk0=prTlFDbN$@!+^0@9sVB-T^|R!c?s^#*d7t}p^eK6h0X~st?f%Ws^E4huXpY-CdN#9?Bw*uioKvy!0_PZLKJRik_%>$1Xm zi?dp(vDQ8L3qyHrCCzo3BZy-O2_zvxMh#_DU?EDYMv93P?Z-U)!;U{mE}2|qFmf!Q z3Kf#$2mgcL-I|4|NjE7J1G-;q`(qRc>;lcYZGRuzcJl=AKLb}<+h1(}v!A5b+gjuZ z=-&n|uG^Zt2VCv|Lr=P7NRH&EDHIC8`x$*x4j8xvde+?DTKhPC05a6o@(pls2#gge zd)?#R!Oq_PJ=5y%2Rrq0kv6l=mH+?%24YJ`L;&>w^#Jt;Pt*DU000SaNLh0L01m_e z01m_fl`9S#00007bV*G`2j>V26csQkr;ttn00D1FL_t(|+U?pwYJ)%&2H@Y&E2IGf zZqfsE>AK)5CkRM-wu+DwWF@$EnFG{~pkTa2S1(Ma209}%CCvY=X666h!x;qyh=_=Y zh{)9Wgywug^UV2?Z7=|AHyHq+A1eUB{(#h1Nc*wE(3Q7aZ)%H0d(bpr){?8Qy_^BE*XIsF*VJsaaoZY#e+&lyB1A+)L_|bH zL_|bH^hcLEYc6%xJac|z8w}ik83KU!k1F-mc%0;SUx$aTw91c`G_M!nV+eZl!gdH& z-v;#pWGzE*X|8#-2B-fAJes}~5GOfYo(Y#aYv!`m8cg$p|34u5?>%Vh`u+9rE|}T^ zuWz5J^E+VZ%3nVy_}Kq**-L8({xKN*ix3eJ5fM?KegJ~E{}bg4%&7nX002ovPDHLk FV1hiZfV2Pr literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/meta.json index 0dbedf2922..d42d64964d 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/meta.json @@ -28,6 +28,39 @@ 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",