diff --git a/Content.Server/Changeling/ChangelingSystem.Abilities.cs b/Content.Server/Changeling/ChangelingSystem.Abilities.cs index abb30c976c..b837e9a912 100644 --- a/Content.Server/Changeling/ChangelingSystem.Abilities.cs +++ b/Content.Server/Changeling/ChangelingSystem.Abilities.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Content.Server.Administration.Systems; using Content.Server.Body.Components; using Content.Server.Body.Systems; @@ -11,6 +11,7 @@ using Content.Server.Mind; using Content.Server.Polymorph.Systems; using Content.Server.Popups; using Content.Server.Store.Components; +using Content.Server.Temperature.Components; using Content.Server.Temperature.Systems; using Content.Shared.Actions; using Content.Shared.Changeling; @@ -431,7 +432,8 @@ public sealed partial class ChangelingSystem private void OnCryoSting(EntityUid uid, ChangelingComponent component, CryoStingActionEvent args) { - if (!HasComp(args.Target)) + if (!HasComp(args.Target) || + !TryComp(args.Target, out TemperatureComponent? temperature)) { _popup.PopupEntity(Loc.GetString("changeling-popup-cant-sting"), uid, uid); return; @@ -440,10 +442,8 @@ public sealed partial class ChangelingSystem if (!TakeChemicals(uid, component, 15)) return; - var statusTimeSpan = TimeSpan.FromSeconds(30); - _statusEffectsSystem.TryAddStatusEffect(args.Target, "SlowedDown", statusTimeSpan, false, "SlowedDown"); - - _temperatureSystem.ForceChangeTemperature(args.Target, 100); + _temperatureSystem.ForceChangeTemperature(args.Target, MathF.Min(70, temperature.CurrentTemperature), + temperature); args.Handled = true; } diff --git a/Content.Server/Temperature/Components/TemperatureComponent.cs b/Content.Server/Temperature/Components/TemperatureComponent.cs index ec00a570f9..2fa39a1b29 100644 --- a/Content.Server/Temperature/Components/TemperatureComponent.cs +++ b/Content.Server/Temperature/Components/TemperatureComponent.cs @@ -58,6 +58,9 @@ public sealed partial class TemperatureComponent : Component } } + [DataField, ViewVariables(VVAccess.ReadWrite)] + public bool Slowdown = true; + [DataField, ViewVariables(VVAccess.ReadWrite)] public DamageSpecifier ColdDamage = new(); diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index 9f7057d9b6..ff3a23fc79 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -155,6 +155,13 @@ public sealed class TemperatureSystem : EntitySystem var heat = temperatureDelta * (airHeatCapacity * heatCapacity / (airHeatCapacity + heatCapacity)); ChangeHeat(uid, heat * temperature.AtmosTemperatureTransferEfficiency, temperature: temperature); + + // WD START + var adjEv = new AdjustTemperatureEvent(temperature.CurrentTemperature); + RaiseLocalEvent(uid, adjEv); + if (!MathHelper.CloseTo(adjEv.Temperature, temperature.CurrentTemperature)) + ForceChangeTemperature(uid, adjEv.Temperature, temperature); + // WD END } public float GetHeatCapacity(EntityUid uid, TemperatureComponent? comp = null, PhysicsComponent? physics = null) diff --git a/Content.Server/_White/ChangeTemperatureOnCollide/ChangeTemperatureOnCollideComponent.cs b/Content.Server/_White/ChangeTemperatureOnCollide/ChangeTemperatureOnCollideComponent.cs new file mode 100644 index 0000000000..2836e07e43 --- /dev/null +++ b/Content.Server/_White/ChangeTemperatureOnCollide/ChangeTemperatureOnCollideComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Server._White.ChangeTemperatureOnCollide; + +[RegisterComponent] +public sealed partial class ChangeTemperatureOnCollideComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float Temperature; + + [DataField] + public string FixtureID = "projectile"; +} diff --git a/Content.Server/_White/ChangeTemperatureOnCollide/ChangeTemperatureOnCollideSystem.cs b/Content.Server/_White/ChangeTemperatureOnCollide/ChangeTemperatureOnCollideSystem.cs new file mode 100644 index 0000000000..05df58c2c3 --- /dev/null +++ b/Content.Server/_White/ChangeTemperatureOnCollide/ChangeTemperatureOnCollideSystem.cs @@ -0,0 +1,30 @@ +using Content.Server.Temperature.Components; +using Content.Server.Temperature.Systems; +using Content.Shared.Atmos; +using Robust.Shared.Physics.Events; + +namespace Content.Server._White.ChangeTemperatureOnCollide; + +public sealed class ChangeTemperatureOnCollideSystem : EntitySystem +{ + [Dependency] private readonly TemperatureSystem _temperature = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnCollide); + } + + private void OnCollide(EntityUid uid, ChangeTemperatureOnCollideComponent component, ref StartCollideEvent args) + { + if (args.OurFixtureId != component.FixtureID) + return; + + if (!TryComp(args.OtherEntity, out TemperatureComponent? temperature)) + return; + + _temperature.ForceChangeTemperature(args.OtherEntity, + MathF.Max(Atmospherics.TCMB, temperature.CurrentTemperature + component.Temperature), temperature); + } +} diff --git a/Content.Server/_White/ChangeTemperatureOnCollide/ClothingTemperatureAdjustComponent.cs b/Content.Server/_White/ChangeTemperatureOnCollide/ClothingTemperatureAdjustComponent.cs new file mode 100644 index 0000000000..a5739c2034 --- /dev/null +++ b/Content.Server/_White/ChangeTemperatureOnCollide/ClothingTemperatureAdjustComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Server._White.ChangeTemperatureOnCollide; + +[RegisterComponent] +public sealed partial class ClothingTemperatureAdjustComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float Rate = 1f; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float TargetTemperature = 310.15f; +} diff --git a/Content.Server/_White/ChangeTemperatureOnCollide/ClothingTemperatureAdjustSystem.cs b/Content.Server/_White/ChangeTemperatureOnCollide/ClothingTemperatureAdjustSystem.cs new file mode 100644 index 0000000000..3af17233b9 --- /dev/null +++ b/Content.Server/_White/ChangeTemperatureOnCollide/ClothingTemperatureAdjustSystem.cs @@ -0,0 +1,23 @@ +using Content.Shared.Inventory; +using Content.Shared.Temperature; + +namespace Content.Server._White.ChangeTemperatureOnCollide; + +public sealed class ClothingTemperatureAdjustSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>( + OnAdjustTemperature); + } + + private void OnAdjustTemperature(Entity ent, + ref InventoryRelayedEvent args) + { + var delta = ent.Comp.TargetTemperature - args.Args.Temperature; + var rate = Math.Min(ent.Comp.Rate, Math.Abs(delta)); + args.Args.Temperature += Math.Sign(delta) * rate; + } +} diff --git a/Content.Server/_White/ChangeTemperatureOnCollide/LowTemperatureSlowdownSystem.cs b/Content.Server/_White/ChangeTemperatureOnCollide/LowTemperatureSlowdownSystem.cs new file mode 100644 index 0000000000..9c5fc8dada --- /dev/null +++ b/Content.Server/_White/ChangeTemperatureOnCollide/LowTemperatureSlowdownSystem.cs @@ -0,0 +1,52 @@ +using Content.Server.Temperature.Components; +using Content.Server.Temperature.Systems; +using Content.Shared.Movement.Components; +using Content.Shared.Movement.Systems; + +namespace Content.Server._White.ChangeTemperatureOnCollide; + +public sealed class LowTemperatureSlowdownSystem : EntitySystem +{ + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifierSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnTemperatureChange); + SubscribeLocalEvent(OnMoveSpeedRefresh); + } + + private void OnMoveSpeedRefresh(EntityUid uid, TemperatureComponent component, + RefreshMovementSpeedModifiersEvent args) + { + var modifier = !component.Slowdown ? 1f : GetSpeedModifier(component.CurrentTemperature); + args.ModifySpeed(modifier, modifier); + } + + private void OnTemperatureChange(EntityUid uid, MovementSpeedModifierComponent component, + OnTemperatureChangeEvent args) + { + // ReSharper disable once CompareOfFloatsByEqualityOperator + if(GetSpeedModifier(args.LastTemperature) == GetSpeedModifier(args.CurrentTemperature)) + return; + + _movementSpeedModifierSystem.RefreshMovementSpeedModifiers(uid, component); + } + + private static float GetSpeedModifier(float temperature) + { + return temperature switch + { + > 290f => 1f, + > 280f => 0.9f, + > 260f => 0.8f, + > 230f => 0.7f, + > 200f => 0.6f, + > 160f => 0.5f, + > 110f => 0.4f, + > 50f => 0.3f, + _ => 0.2f + }; + } +} diff --git a/Content.Shared/Inventory/InventorySystem.Relay.cs b/Content.Shared/Inventory/InventorySystem.Relay.cs index c43a588507..89cb3c61a6 100644 --- a/Content.Shared/Inventory/InventorySystem.Relay.cs +++ b/Content.Shared/Inventory/InventorySystem.Relay.cs @@ -26,6 +26,7 @@ public partial class InventorySystem SubscribeLocalEvent(RelayInventoryEvent); SubscribeLocalEvent(RelayInventoryEvent); SubscribeLocalEvent(RelayInventoryEvent); + SubscribeLocalEvent(RelayInventoryEvent); // WD SubscribeLocalEvent(RelayInventoryEvent); // by-ref events diff --git a/Content.Shared/Temperature/TemperatureEvents.cs b/Content.Shared/Temperature/TemperatureEvents.cs index ac12224868..73ad1a86f2 100644 --- a/Content.Shared/Temperature/TemperatureEvents.cs +++ b/Content.Shared/Temperature/TemperatureEvents.cs @@ -13,3 +13,17 @@ public sealed class ModifyChangedTemperatureEvent : EntityEventArgs, IInventoryR TemperatureDelta = temperature; } } + +// WD START +public sealed class AdjustTemperatureEvent : EntityEventArgs, IInventoryRelayEvent +{ + public SlotFlags TargetSlots => ~SlotFlags.POCKET; + + public float Temperature; + + public AdjustTemperatureEvent(float temperature) + { + Temperature = temperature; + } +} +// WD END diff --git a/Content.Shared/Weapons/Ranged/Components/TwoModeEnergyAmmoProviderComponent.cs b/Content.Shared/Weapons/Ranged/Components/TwoModeEnergyAmmoProviderComponent.cs index bc03fc4aba..f637c1dc94 100644 --- a/Content.Shared/Weapons/Ranged/Components/TwoModeEnergyAmmoProviderComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/TwoModeEnergyAmmoProviderComponent.cs @@ -40,6 +40,12 @@ public sealed partial class TwoModeEnergyAmmoProviderComponent : BatteryAmmoProv public SoundSpecifier? ToggleSound = new SoundPathSpecifier("/Audio/Weapons/Guns/Misc/egun_toggle.ogg"); [ViewVariables(VVAccess.ReadOnly)] public bool InStun = true; + + [DataField("modeNames")] public Dictionary ModeNames = new() + { + {EnergyModes.Stun, "Stun"}, + {EnergyModes.Laser, "Laser"} + }; } public enum EnergyModes diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Interactions.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Interactions.cs index 1cd3162e0d..749961def2 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Interactions.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Interactions.cs @@ -25,13 +25,13 @@ public abstract partial class SharedGunSystem return; args.PushMarkup(Loc.GetString("gun-twomode-mode-examine", ("color", TwoModeExamineColor), - ("mode", GetLocMode(comp.CurrentMode)))); + ("mode", GetLocMode(comp)))); } } - private object GetLocMode(EnergyModes mode) + private object GetLocMode(TwoModeEnergyAmmoProviderComponent comp) { - return Loc.GetString($"gun-twomode-{mode.ToString()}"); + return Loc.GetString($"gun-twomode-{comp.ModeNames[comp.CurrentMode]}"); } private string GetLocSelector(SelectiveFire mode) diff --git a/Resources/Locale/ru-RU/weapons/ranged/gun.ftl b/Resources/Locale/ru-RU/weapons/ranged/gun.ftl index 8b0a0875f1..5327e8c7e7 100644 --- a/Resources/Locale/ru-RU/weapons/ranged/gun.ftl +++ b/Resources/Locale/ru-RU/weapons/ranged/gun.ftl @@ -54,3 +54,5 @@ gun-speedloader-empty = Спидлоадер пуст gun-twomode-mode-examine = Выбран тип огня [color={ $color }]{ $mode }[/color]. gun-twomode-Stun = шокер gun-twomode-Laser = лазер +gun-twomode-Cool = охлаждение +gun-twomode-Heat = нагрев diff --git a/Resources/Locale/ru-RU/white/tempgun.ftl b/Resources/Locale/ru-RU/white/tempgun.ftl new file mode 100644 index 0000000000..2ccf2cbc10 --- /dev/null +++ b/Resources/Locale/ru-RU/white/tempgun.ftl @@ -0,0 +1,4 @@ +ent-WeaponTempGun = температурная пушка + .desc = Пушка, изменяющая температуру. + +research-technology-temperature-weaponry = Температурное вооружение diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml index 909c42719e..8754919afd 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml @@ -71,6 +71,7 @@ - id: WeaponDisabler - id: HoloprojectorSecurity prob: 0.6 + - id: WeaponTempGun - type: entity id: LockerBrigmedicFilled @@ -235,3 +236,13 @@ contents: - id: WeaponLaserCarbine amount: 3 + +- type: entity + parent: GunSafe + id: GunSafeTempGun + name: temperature gun safe + components: + - type: StorageFill + contents: + - id: WeaponTempGun + amount: 3 diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 24672b39b8..4d6a8a4aed 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -114,6 +114,7 @@ tags: - Hardsuit - WhitelistChameleon + - type: ClothingTemperatureAdjust - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml index 3be7b3fd9d..ae5efa75e1 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml @@ -63,6 +63,8 @@ - type: MobPrice price: 1000 # Living critters are valuable in space. - type: Perishable + - type: Temperature + slowdown: false - type: entity parent: @@ -106,3 +108,5 @@ price: 150 - type: FloatingVisuals - type: Penetrated + - type: Temperature + slowdown: true diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 1310578ef1..8eb5fb26bf 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -1324,3 +1324,56 @@ - type: Reflective reflective: - Energy + +- type: entity + name: heat beam + id: BulletHeat + parent: BaseBullet + noSpawn: true + components: + - type: FlyBySound + sound: + collection: EnergyMiss + params: + volume: 5 + - type: Sprite + sprite: White/Objects/Projectiles/temperature.rsi + layers: + - state: heat + shader: unshaded + - type: Physics + - type: Fixtures + fixtures: + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.15,-0.3,0.15,0.3" + hard: false + mask: + - Opaque + fly-by: *flybyfixture + - type: Ammo + muzzleFlash: null + - type: ChangeTemperatureOnCollide + temperature: 20 + - type: Projectile + damage: + types: + Heat: 0 + soundHit: + collection: WeakHit + soundForce: true + +- type: entity + name: cold beam + id: BulletCold + parent: BulletHeat + noSpawn: true + components: + - type: Sprite + sprite: White/Objects/Projectiles/temperature.rsi + layers: + - state: cold + shader: unshaded + - type: ChangeTemperatureOnCollide + temperature: -20 diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index d3c505f845..cdf6ce97b1 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -319,6 +319,7 @@ - ClothingEyesNightVisionGoggles # WD EDIT - KitchenKnife # WD EDIT - ButchCleaver # WD EDIT + - WeaponTempGun # WD EDIT - DeviceQuantumSpinInverter - type: EmagLatheRecipes emagDynamicRecipes: @@ -723,6 +724,7 @@ - WeaponLaserCannon - WeaponLaserCarbine - WeaponXrayCannon + - WeaponTempGun # WD EDIT - PowerCageSmall - PowerCageMedium - PowerCageHigh diff --git a/Resources/Prototypes/White/Entities/Objects/Weapons/Guns/tempgun.yml b/Resources/Prototypes/White/Entities/Objects/Weapons/Guns/tempgun.yml new file mode 100644 index 0000000000..7485f1a394 --- /dev/null +++ b/Resources/Prototypes/White/Entities/Objects/Weapons/Guns/tempgun.yml @@ -0,0 +1,27 @@ +- type: entity + name: temperature gun + parent: WeaponEgun + id: WeaponTempGun + description: A gun that changes temperatures. + components: + - type: Sprite + sprite: White/Objects/Weapons/Guns/Battery/tempgun.rsi + - type: Gun + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg + - type: TwoModeEnergyAmmoProvider + stunPrototype: BulletCold + fireCost: 64 + stunFireCost: 64 + laserPrototype: BulletHeat + laserFireCost: 64 + stunProjectileSpeed: 48 + laserProjectileSpeed: 48 + projSound: "/Audio/Weapons/Guns/Gunshots/laser.ogg" + hitscanSound: "/Audio/Weapons/Guns/Gunshots/laser.ogg" + modeNames: + Stun: Cool + Laser: Heat + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 20 diff --git a/Resources/Prototypes/White/Recipes/lathe_recipes.yml b/Resources/Prototypes/White/Recipes/lathe_recipes.yml index cb7124a2bd..5cffc8d6c3 100644 --- a/Resources/Prototypes/White/Recipes/lathe_recipes.yml +++ b/Resources/Prototypes/White/Recipes/lathe_recipes.yml @@ -11,6 +11,7 @@ completetime: 5 materials: Steel: 1500 + - type: latheRecipe id: ClothingEyesNightVisionGoggles result: ClothingEyesNightVisionGoggles @@ -21,3 +22,11 @@ Silver: 100 Gold: 100 +- type: latheRecipe + id: WeaponTempGun + result: WeaponTempGun + completetime: 8 + materials: + Steel: 1500 + Glass: 1000 + Silver: 200 diff --git a/Resources/Prototypes/White/Research/arsenal.yml b/Resources/Prototypes/White/Research/arsenal.yml new file mode 100644 index 0000000000..2cd1580ef0 --- /dev/null +++ b/Resources/Prototypes/White/Research/arsenal.yml @@ -0,0 +1,11 @@ +- type: technology + id: TemperatureWeaponry + name: research-technology-temperature-weaponry + icon: + sprite: White/Objects/Weapons/Guns/Battery/tempgun.rsi + state: icon + discipline: Arsenal + tier: 2 + cost: 7500 + recipeUnlocks: + - WeaponTempGun diff --git a/Resources/Textures/White/Objects/Projectiles/temperature.rsi/cold.png b/Resources/Textures/White/Objects/Projectiles/temperature.rsi/cold.png new file mode 100644 index 0000000000..5b56c42818 Binary files /dev/null and b/Resources/Textures/White/Objects/Projectiles/temperature.rsi/cold.png differ diff --git a/Resources/Textures/White/Objects/Projectiles/temperature.rsi/heat.png b/Resources/Textures/White/Objects/Projectiles/temperature.rsi/heat.png new file mode 100644 index 0000000000..8afc3fabcf Binary files /dev/null and b/Resources/Textures/White/Objects/Projectiles/temperature.rsi/heat.png differ diff --git a/Resources/Textures/White/Objects/Projectiles/temperature.rsi/meta.json b/Resources/Textures/White/Objects/Projectiles/temperature.rsi/meta.json new file mode 100644 index 0000000000..c3725cc438 --- /dev/null +++ b/Resources/Textures/White/Objects/Projectiles/temperature.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "taken from vgstation at https://github.com/vgstation-coders/vgstation13 at 6f3d7af6acf4f100cd88deec74cc750d6e90e4f3", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cold" + }, + { + "name": "heat" + } + ] +} diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/base.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/base.png new file mode 100644 index 0000000000..03aa2a1c2a Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/base.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/icon.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/icon.png new file mode 100644 index 0000000000..03aa2a1c2a Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/icon.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/inhand-left.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/inhand-left.png new file mode 100644 index 0000000000..a847c0f57c Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/inhand-left.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/inhand-right.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/inhand-right.png new file mode 100644 index 0000000000..dbcbc9b51b Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/inhand-right.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/laser-inhand-left.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/laser-inhand-left.png new file mode 100644 index 0000000000..eea62ffe3e Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/laser-inhand-left.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/laser-inhand-right.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/laser-inhand-right.png new file mode 100644 index 0000000000..ff78b4fc5e Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/laser-inhand-right.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-0.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-0.png new file mode 100644 index 0000000000..3459d1c82b Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-0.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-1.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-1.png new file mode 100644 index 0000000000..84b5b0b1b4 Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-1.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-2.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-2.png new file mode 100644 index 0000000000..06a3d4ff1e Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-2.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-3.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-3.png new file mode 100644 index 0000000000..5b9e8cb0c3 Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-3.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-4.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-4.png new file mode 100644 index 0000000000..ee1f8f5007 Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode1-4.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-0.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-0.png new file mode 100644 index 0000000000..3459d1c82b Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-0.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-1.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-1.png new file mode 100644 index 0000000000..3890890940 Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-1.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-2.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-2.png new file mode 100644 index 0000000000..f8546780b1 Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-2.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-3.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-3.png new file mode 100644 index 0000000000..f983aab80e Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-3.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-4.png b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-4.png new file mode 100644 index 0000000000..2a01aca02a Binary files /dev/null and b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/mag-twomode2-4.png differ diff --git a/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/meta.json b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/meta.json new file mode 100644 index 0000000000..037e9fe8d1 --- /dev/null +++ b/Resources/Textures/White/Objects/Weapons/Guns/Battery/tempgun.rsi/meta.json @@ -0,0 +1,75 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vgstation and tgstation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "base" + }, + { + "name": "mag-twomode1-0", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-twomode1-1" + }, + { + "name": "mag-twomode1-2" + }, + { + "name": "mag-twomode1-3" + }, + { + "name": "mag-twomode1-4" + }, + { + "name": "mag-twomode2-0", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-twomode2-1" + }, + { + "name": "mag-twomode2-2" + }, + { + "name": "mag-twomode2-3" + }, + { + "name": "mag-twomode2-4" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "laser-inhand-left", + "directions": 4 + }, + { + "name": "laser-inhand-right", + "directions": 4 + } + ] +}