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 0000000000..1c6a0094a4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_cyan.png differ 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 0000000000..b9e0d8c653 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_red.png differ 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 0000000000..6fe8b5e727 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/magic.rsi/magicm_yellow.png differ 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",