From 7363e2dd6ca7782cc49798d556a3fba97ceb69b5 Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 13:22:46 +0300 Subject: [PATCH 01/30] initial commit --- .../Weapons/Ranged/Systems/GunSystem.cs | 6 + .../Equipment/EntitySystems/MechGunSystem.cs | 61 +++ .../Weapons/Ranged/Systems/GunSystem.cs | 2 + .../Mech/Components/MechComponent.cs | 7 + .../Mech/EntitySystems/SharedMechSystem.cs | 13 + .../Weapons/Ranged/Systems/SharedGunSystem.cs | 36 +- Resources/Prototypes/Damage/modifier_sets.yml | 74 +++ .../Entities/Markers/Spawners/mechs.yml | 112 ++++ .../Specific/Mech/Weapons/Gun/base.yml | 18 + .../Specific/Mech/Weapons/Gun/debug.yml | 98 ++++ .../Specific/Mech/Weapons/Melee/base.yml | 15 + .../Specific/Mech/Weapons/Melee/debug.yml | 18 + .../Objects/Specific/Mech/mecha_equipment.yml | 61 ++- .../Entities/Objects/Specific/Mech/mechs.yml | 496 +++++++++++++++++- 14 files changed, 998 insertions(+), 19 deletions(-) create mode 100644 Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/base.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/debug.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/base.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/debug.yml diff --git a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs index 57d200d96b6..6407a403669 100644 --- a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs @@ -4,6 +4,7 @@ using Content.Client.Weapons.Ranged.Components; using Content.Shared.Camera; using Content.Shared.CombatMode; +using Content.Shared.Mech.Components; using Content.Shared.Weapons.Ranged; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; @@ -144,6 +145,11 @@ public override void Update(float frameTime) var entity = entityNull.Value; + if (TryComp(entity, out var mechPilot)) + { + entity = mechPilot.Mech; + } + if (!TryGetGun(entity, out var gunUid, out var gun)) { return; diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs new file mode 100644 index 00000000000..8ed55e7462a --- /dev/null +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs @@ -0,0 +1,61 @@ +using Content.Server.Mech.Systems; +using Content.Server.Power.Components; +using Content.Server.Power.EntitySystems; +using Content.Shared.Mech.Components; +using Content.Shared.Mech.Equipment.Components; +using Content.Shared.Throwing; +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.Random; + +namespace Content.Server.Mech.Equipment.EntitySystems; +public sealed class MechGunSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly ThrowingSystem _throwing = default!; + [Dependency] private readonly MechSystem _mech = default!; + [Dependency] private readonly BatterySystem _battery = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(MechGunShot); + } + + private void MechGunShot(EntityUid uid, MechEquipmentComponent component, ref GunShotEvent args) + { + if (!component.EquipmentOwner.HasValue) + return; + + if (!TryComp(component.EquipmentOwner.Value, out var mech)) + return; + + if (TryComp(uid, out var battery)) + { + ChargeGunBattery(uid, battery); + return; + } + } + + private void ChargeGunBattery(EntityUid uid, BatteryComponent component) + { + if (!TryComp(uid, out var mechEquipment) || !mechEquipment.EquipmentOwner.HasValue) + return; + + if (!TryComp(mechEquipment.EquipmentOwner.Value, out var mech)) + return; + + var maxCharge = component.MaxCharge; + var currentCharge = component.CurrentCharge; + + var chargeDelta = maxCharge - currentCharge; + + // TODO: The battery charge of the mech would be spent directly when fired. + if (chargeDelta <= 0 || mech.Energy - chargeDelta < 0) + return; + + if (!_mech.TryChangeEnergy(mechEquipment.EquipmentOwner.Value, -chargeDelta, mech)) + return; + + _battery.SetCharge(uid, component.MaxCharge, component); + } +} \ No newline at end of file diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index fbc46f59179..5a23ffb33f3 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -2,6 +2,7 @@ using System.Numerics; using Content.Server.Cargo.Systems; using Content.Server.Interaction; +using Content.Server.Mech.Equipment.Components; using Content.Server.Power.EntitySystems; using Content.Server.Stunnable; using Content.Server.Weapons.Ranged.Components; @@ -11,6 +12,7 @@ using Content.Shared.Database; using Content.Shared.Effects; using Content.Shared.Interaction.Components; +using Content.Shared.Mech.Equipment.Components; using Content.Shared.Projectiles; using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Ranged; diff --git a/Content.Shared/Mech/Components/MechComponent.cs b/Content.Shared/Mech/Components/MechComponent.cs index ba380492bc9..ce7026796b8 100644 --- a/Content.Shared/Mech/Components/MechComponent.cs +++ b/Content.Shared/Mech/Components/MechComponent.cs @@ -13,6 +13,13 @@ namespace Content.Shared.Mech.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class MechComponent : Component { + /// + /// Whether or not an emag disables it. + /// + [DataField("breakOnEmag")] + [AutoNetworkedField] + public bool BreakOnEmag = true; + /// /// How much "health" the mech has left. /// diff --git a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs index 7e44dea5078..345eae0ae1f 100644 --- a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs +++ b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs @@ -5,6 +5,8 @@ using Content.Shared.Destructible; using Content.Shared.DoAfter; using Content.Shared.DragDrop; +using Content.Shared.Emag.Components; +using Content.Shared.Emag.Systems; using Content.Shared.FixedPoint; using Content.Shared.Interaction; using Content.Shared.Interaction.Components; @@ -15,6 +17,8 @@ using Content.Shared.Movement.Systems; using Content.Shared.Popups; using Content.Shared.Weapons.Melee; +using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Whitelist; using Robust.Shared.Containers; using Robust.Shared.Network; using Robust.Shared.Serialization; @@ -49,6 +53,7 @@ public override void Initialize() SubscribeLocalEvent(OnGetAdditionalAccess); SubscribeLocalEvent(OnDragDrop); SubscribeLocalEvent(OnCanDragDrop); + SubscribeLocalEvent(OnEmagged); SubscribeLocalEvent(OnGetMeleeWeapon); SubscribeLocalEvent(OnCanAttackFromContainer); @@ -447,6 +452,14 @@ private void OnCanDragDrop(EntityUid uid, MechComponent component, ref CanDropTa args.CanDrop |= !component.Broken && CanInsert(uid, args.Dragged, component); } + private void OnEmagged(EntityUid uid, MechComponent component, ref GotEmaggedEvent args) + { + if (!component.BreakOnEmag) + return; + args.Handled = true; + component.EquipmentWhitelist = null; + Dirty(uid, component); + } } /// diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 3c5e5c79846..01c36f427db 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -12,6 +12,7 @@ using Content.Shared.Hands; using Content.Shared.Hands.Components; using Content.Shared.Item; // Delta-V: Felinids in duffelbags can't shoot. +using Content.Shared.Mech.Components; using Content.Shared.Popups; using Content.Shared.Projectiles; using Content.Shared.Tag; @@ -130,9 +131,10 @@ private void OnShootRequest(RequestShootEvent msg, EntitySessionEventArgs args) !_combatMode.IsInCombatMode(user) || !TryGetGun(user.Value, out var ent, out var gun) || HasComp(user)) // Delta-V: Felinids in duffelbags can't shoot. - { return; - } + + if (TryComp(user.Value, out var mechPilot)) + user = mechPilot.Mech; if (ent != GetEntity(msg.Gun)) return; @@ -147,14 +149,18 @@ private void OnStopShootRequest(RequestStopShootEvent ev, EntitySessionEventArgs { var gunUid = GetEntity(ev.Gun); - if (args.SenderSession.AttachedEntity == null || - !TryComp(gunUid, out var gun) || - !TryGetGun(args.SenderSession.AttachedEntity.Value, out _, out var userGun)) - { + var user = args.SenderSession.AttachedEntity; + + if (user == null) return; - } - if (userGun != gun) + if (TryComp(user.Value, out var mechPilot)) + user = mechPilot.Mech; + + if (!TryGetGun(user.Value, out var ent, out var gun)) + return; + + if (ent != gunUid) return; StopShooting(gunUid, gun); @@ -173,6 +179,15 @@ public bool TryGetGun(EntityUid entity, out EntityUid gunEntity, [NotNullWhen(tr gunEntity = default; gunComp = null; + if (TryComp(entity, out var mech) && + mech.CurrentSelectedEquipment.HasValue && + TryComp(mech.CurrentSelectedEquipment.Value, out var mechGun)) + { + gunEntity = mech.CurrentSelectedEquipment.Value; + gunComp = mechGun; + return true; + } + if (EntityManager.TryGetComponent(entity, out HandsComponent? hands) && hands.ActiveHandEntity is { } held && TryComp(held, out GunComponent? gun)) @@ -277,8 +292,11 @@ private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun) var shots = 0; var lastFire = gun.NextFire; + Log.Debug($"Nextfire={gun.NextFire} curTime={curTime}"); + while (gun.NextFire <= curTime) { + Log.Debug("Shots++"); gun.NextFire += fireRate; shots++; } @@ -302,6 +320,8 @@ private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun) throw new ArgumentOutOfRangeException($"No implemented shooting behavior for {gun.SelectedMode}!"); } + Log.Debug($"Shots fired: {shots}"); + var attemptEv = new AttemptShootEvent(user, null); RaiseLocalEvent(gunUid, ref attemptEv); diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 811d5a580c2..4cdcfc3d842 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -315,6 +315,7 @@ # doesnt have organs to poison Poison: 0.0 Cellular: 0.0 + Radiation: 0.1 # terminator's endoskeleton damage set - type: damageModifierSet @@ -359,3 +360,76 @@ Slash: 0.6 Piercing: 0.6 Holy: 1.5 + +# Mech armor +- type: damageModifierSet + id: ThinArmor + coefficients: + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.9 + Shock: 1.2 + Heat: 0.8 + flatReductions: + Blunt: 3 + Heat: 2 + +- type: damageModifierSet + id: LightArmor + coefficients: + Blunt: 0.75 + Slash: 0.75 + Piercing: 0.7 + Shock: 1.2 + Heat: 0.7 + flatReductions: + Blunt: 5 + Heat: 5 + +- type: damageModifierSet + id: MediumArmorNT + coefficients: + Blunt: 0.6 + Slash: 0.6 + Piercing: 0.65 + Shock: 1.4 + Heat: 0.7 + flatReductions: + Blunt: 8 + Heat: 10 + +- type: damageModifierSet + id: HeavyArmorNT + coefficients: + Blunt: 0.5 + Slash: 0.5 + Piercing: 0.35 + Shock: 1.8 + Heat: 0.6 + flatReductions: + Blunt: 15 + Heat: 15 + +- type: damageModifierSet + id: MediumArmorSyndi + coefficients: + Blunt: 0.6 + Slash: 0.6 + Piercing: 0.6 + Shock: 1.4 + Heat: 0.75 + flatReductions: + Blunt: 8 + Heat: 5 + +- type: damageModifierSet + id: HeavyArmorSyndi + coefficients: + Blunt: 0.5 + Slash: 0.5 + Piercing: 0.4 + Shock: 1.8 + Heat: 0.7 + flatReductions: + Blunt: 10 + Heat: 7 diff --git a/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml b/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml index 6b823f91d47..e20259fb8b3 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml @@ -12,6 +12,20 @@ prototypes: - MechRipleyBattery +- type: entity + name: Ripley APLU MK-II Spawner + id: SpawnMechRipley2 + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: ripleymkii + - type: ConditionalSpawner + prototypes: + - MechRipley2Battery + - type: entity name: H.O.N.K. Spawner id: SpawnMechHonker @@ -25,3 +39,101 @@ - type: ConditionalSpawner prototypes: - MechHonkerBattery +- type: entity + name: Clarke Spawner + id: SpawnMechClarke + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: clarke + - type: ConditionalSpawner + prototypes: + - MechClarkeBattery + +- type: entity + name: Gygax Spawner + id: SpawnMechGygax + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: gygax + - type: ConditionalSpawner + prototypes: + - MechGygaxBattery + +- type: entity + name: Durand Spawner + id: SpawnMechDurand + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: durand + - type: ConditionalSpawner + prototypes: + - MechDurandBattery + +- type: entity + name: Marauder Spawner + id: SpawnMechMarauder + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: marauder + - type: ConditionalSpawner + prototypes: + - MechMarauderBattery + +- type: entity + name: Seraph Spawner + id: SpawnMechSeraph + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: seraph + - type: ConditionalSpawner + prototypes: + - MechSeraphBattery + +- type: entity + name: Dark Gygax Spawner + id: SpawnMechGygaxSyndie + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: darkgygax + - type: ConditionalSpawner + prototypes: + - MechGygaxSyndieBattery + +- type: entity + name: Mauler Spawner + id: SpawnMechMaulerSyndie + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: mauler + - type: ConditionalSpawner + prototypes: + - MechMaulerSyndieBattery + diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/base.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/base.yml new file mode 100644 index 00000000000..f4b8f23f12d --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/base.yml @@ -0,0 +1,18 @@ +- type: entity + id: BaseMechWeaponRange + parent: BaseMechEquipment + abstract: true + components: + - type: Battery + maxCharge: 100 # Battery is charged by mech + startingCharge: 100 + - type: Appearance + - type: StaticPrice + price: 1 + - type: Item + size: Ginormous + - type: MultiHandedItem + - type: ClothingSpeedModifier + walkModifier: 0.5 + sprintModifier: 0.5 + - type: HeldSpeedModifier \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/debug.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/debug.yml new file mode 100644 index 00000000000..4fa0d0997e0 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/debug.yml @@ -0,0 +1,98 @@ +- type: entity + id: WeaponMechDebugBallistic + parent: [ BaseMechWeaponRange, DebugMechEquipment ] # Debug equipment dose has all whitelist tags. + suffix: Mech Weapon, DEBUG, Ballistic + name: debug bang + components: + - type: Sprite + sprite: Objects/Weapons/Guns/SMGs/c20r.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-0 + map: ["enum.GunVisualLayers.Mag"] + - type: Gun + minAngle: 24 + maxAngle: 45 + angleIncrease: 4 + angleDecay: 16 + fireRate: 5 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/lmg.ogg + soundEmpty: + path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg + - type: AmmoCounter + - type: ProjectileBatteryAmmoProvider + proto: CartridgeLightRifle + fireCost: 9 + - type: MagazineVisuals + magState: mag + steps: 5 + zeroVisible: true + - type: Appearance + +- type: entity + id: WeaponMechDebugLaser + name: debug pow + suffix: Mech Weapon, DEBUG, Laser + parent: [ BaseMechWeaponRange, DebugMechEquipment ] + description: A weapon using light amplified by the stimulated emission of radiation. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Battery/laser_retro.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-unshaded-4 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: HitscanBatteryAmmoProvider + proto: RedMediumLaser + fireCost: 19 + - type: MagazineVisuals + magState: mag + steps: 5 + zeroVisible: true + - type: Gun + fireRate: 2 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg + - type: AmmoCounter + +- type: entity + id: WeaponMechDebugDisabler + name: debug tew + description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. + suffix: Mech Weapon, DEBUG, Disabler + parent: [ BaseMechWeaponRange, DebugMechEquipment ] + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Battery/disabler.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-unshaded-0 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/taser2.ogg + - type: ProjectileBatteryAmmoProvider + proto: BulletDisabler + fireCost: 19 + - type: MagazineVisuals + magState: mag + steps: 5 + zeroVisible: true + - type: Appearance + - type: AmmoCounter \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/base.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/base.yml new file mode 100644 index 00000000000..a766d2ccc36 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/base.yml @@ -0,0 +1,15 @@ +- type: entity + id: BaseMechWeaponMelee + parent: BaseMechEquipment + abstract: true + components: + - type: Appearance + - type: StaticPrice + price: 1 + - type: Item + size: Ginormous + - type: MultiHandedItem + - type: ClothingSpeedModifier + walkModifier: 0.5 + sprintModifier: 0.5 + - type: HeldSpeedModifier \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/debug.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/debug.yml new file mode 100644 index 00000000000..dc5448446a0 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/debug.yml @@ -0,0 +1,18 @@ +- type: entity + id: WeaponMechDebugMelle + parent: [ BaseMechWeaponMelee, DebugMechEquipment ] # Debug equipment dose has all whitelist tags. + name: debug bam + suffix: Mech Weapon, DEBUG, Melee + description: A robust thing. + components: + - type: Sprite + state: paddy_claw + - type: MeleeWeapon + hidden: true + attackRate: 0.75 + damage: + types: + Blunt: 40 + Structural: 20 + soundHit: + collection: MetalThud \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml index c489dec1c56..8ba9d961f4a 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml @@ -1,3 +1,53 @@ +- type: entity + id: DebugMechEquipment + abstract: true + suffix: DEBUG + categories: [ HideSpawnMenu ] + components: + - type: Tag + tags: + - CombatMech + - IndustrialMech + - SpecialMech + - SmallMech + +- type: entity + id: CombatMechEquipment + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Tag + tags: + - CombatMech + +- type: entity + id: IndustrialMechEquipment + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Tag + tags: + - IndustrialMech + +- type: entity + id: SpecialMechEquipment + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Tag + tags: + - SpecialMech + +- type: entity + id: SmallMechEquipment + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Tag + tags: + - SmallMech +# TODO: Make medical mech with equipment. + - type: entity parent: BaseItem id: BaseMechEquipment @@ -15,7 +65,7 @@ - type: entity id: MechEquipmentGrabber - parent: BaseMechEquipment + parent: [ BaseMechEquipment, IndustrialMechEquipment ] name: hydraulic clamp description: Gives the mech the ability to grab things and drag them around. components: @@ -39,7 +89,7 @@ - type: MechGrabber maxContents: 4 grabDelay: 3 - grabEnergyDelta: 20 + grabEnergyDelta: -20 - type: Tag tags: - SmallMech @@ -48,10 +98,14 @@ - type: ContainerContainer containers: item-container: !type:Container + - type: Tag + tags: + - IndustrialMech + - SmallMech - type: entity id: MechEquipmentHorn - parent: BaseMechEquipment + parent: [ BaseMechEquipment, SpecialMechEquipment ] name: mech horn description: An enhanced bike horn that plays a hilarious array of sounds for the enjoyment of the crew. HONK! components: @@ -69,4 +123,3 @@ ui: !type:MechSoundboardUi - type: UseDelay delay: 0.5 - # TODO: tag as being for H.O.N.K. only!!! diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 6e5362d9bbb..a48b65b167c 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -1,3 +1,43 @@ +- type: entity + id: CombatMech + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Mech + equipmentWhitelist: + tags: + - CombatMech + +- type: entity + id: IndustrialMech + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Mech + equipmentWhitelist: + tags: + - IndustrialMech + +- type: entity + id: SpecialMech + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Mech + equipmentWhitelist: + tags: + - SpecialMech + +- type: entity + id: SmallMech + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: Mech + equipmentWhitelist: + tags: + - SmallMech + - type: entity id: BaseMech save: false @@ -85,17 +125,31 @@ mech-battery-slot: !type:ContainerSlot - type: Damageable damageContainer: Inorganic - damageModifierSet: Metallic + damageModifierSet: LightArmor - type: FootstepModifier footstepSoundCollection: path: /Audio/Mecha/mechmove03.ogg - type: GuideHelp guides: - Robotics + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1000 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:ChangeConstructionNodeBehavior + node: start + - !type:DoActsBehavior + acts: ["Destruction"] +# Ripley MK-I - type: entity id: MechRipley - parent: BaseMech + parent: [ BaseMech, IndustrialMech, BaseCargoContraband ] name: Ripley APLU description: Versatile and lightly armored, the Ripley is useful for almost any heavy work scenario. The "APLU" stands for Autonomous Power Loading Unit. components: @@ -137,9 +191,105 @@ mech-battery-slot: - PowerCellHigh -# TODO: have a whitelist for honker equipment +# Ripley MK-II - type: entity - parent: BaseMech + id: MechRipley2 + parent: [ BaseMech, IndustrialMech, BaseCargoContraband ] + name: Ripley APLU MK-II + description: The "MK-II" has a pressurized cabin for space operations, but the added weight has slowed it down. + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: ripleymkii + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: ripleymkii + openState: ripleymkii-open + brokenState: ripleymkii-broken + mechToPilotDamageMultiplier: 0.4 + airtight: true + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 20 + - type: MovementSpeedModifier + baseWalkSpeed: 1 + baseSprintSpeed: 2 + - type: Damageable + damageModifierSet: MediumArmorNT + +- type: entity + id: MechRipley2Battery + parent: MechRipley2 + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellHigh + +# Clarke +- type: entity + id: MechClarke + parent: [ BaseMech, IndustrialMech, BaseCargoContraband ] + name: Clarke + description: A fast-moving mech for space travel. It has built-in trusts. + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: clarke + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: clarke + openState: clarke-open + brokenState: clarke-broken + mechToPilotDamageMultiplier: 0.5 + airtight: true + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 26 + - type: MovementSpeedModifier + baseWalkSpeed: 2.5 + baseSprintSpeed: 4.5 + - type: CanMoveInAir + - type: MovementAlwaysTouching + +- type: entity + id: MechClarkeBattery + parent: MechClarke + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellHigh + +# H.O.N.K. +- type: entity + parent: [ BaseMech, SpecialMech, BaseCivilianContraband ] id: MechHonker name: H.O.N.K. description: "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!" @@ -159,6 +309,7 @@ openState: honker-open brokenState: honker-broken mechToPilotDamageMultiplier: 0.5 + airtight: true # Space Honks is real. pilotWhitelist: components: - HumanoidAppearance @@ -175,6 +326,7 @@ - type: entity parent: BaseMech + parent: [ BaseMech, SmallMech ] id: MechHamtr name: HAMTR description: "An experimental mech which uses a brain–computer interface to connect directly to a hamsters brain." @@ -196,9 +348,6 @@ mechToPilotDamageMultiplier: 0.2 maxEquipmentAmount: 2 airtight: true - equipmentWhitelist: - tags: - - SmallMech pilotWhitelist: tags: - Hamster @@ -287,3 +436,336 @@ containers: mech-battery-slot: - PowerCellHigh + +# Combat-Station Mechs + +# Gygax +- type: entity + id: MechGygax + parent: [ BaseMech, CombatMech, BaseRestrictedContraband ] + name: Gygax + description: While lightly armored, the Gygax has incredible mobility thanks to its ability that lets it smash through walls at high speeds. + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: gygax + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: gygax + openState: gygax-open + brokenState: gygax-broken + mechToPilotDamageMultiplier: 0.3 + airtight: true + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 25 + Structural: 180 + - type: MovementSpeedModifier + baseWalkSpeed: 2 + baseSprintSpeed: 2.6 + +- type: entity + id: MechGygaxBattery + parent: MechGygax + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellHigh + +# Durand +- type: entity + id: MechDurand + parent: [ BaseMech, CombatMech, BaseRestrictedContraband ] + name: Durand + description: A slow but beefy combat exosuit that is extra scary in confined spaces due to its punches. Xenos hate it! + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: durand + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: durand + openState: durand-open + brokenState: durand-broken + mechToPilotDamageMultiplier: 0.25 + airtight: true + maxIntegrity: 400 + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 40 + Structural: 220 + - type: MovementSpeedModifier + baseWalkSpeed: 1.5 + baseSprintSpeed: 2 + - type: Damageable + damageModifierSet: MediumArmorNT + - type: CanMoveInAir + - type: MovementAlwaysTouching + - type: Repairable + fuelCost: 30 + doAfterDelay: 15 + +- type: entity + id: MechDurandBattery + parent: MechDurand + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellHigh + +# Nanotrasen Combat Mechs + +# Marauder +- type: entity + id: MechMarauder + parent: [ BaseMech, CombatMech, BaseCentcommContraband ] + name: Marauder + description: Looks like we're all saved. # ERT mech + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: marauder + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: marauder + openState: marauder-open + brokenState: marauder-broken + mechToPilotDamageMultiplier: 0.1 + airtight: true + maxIntegrity: 500 + maxEquipmentAmount: 4 + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 40 + Structural: 200 + - type: MovementSpeedModifier + baseWalkSpeed: 1 + baseSprintSpeed: 1.5 + - type: Damageable + damageModifierSet: HeavyArmorNT + - type: CanMoveInAir + - type: MovementAlwaysTouching + - type: Repairable + fuelCost: 30 + doAfterDelay: 15 + +- type: entity + id: MechMarauderBattery + parent: MechMarauder + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellHyper + +# Seraph +- type: entity + id: MechSeraph + parent: [ BaseMech, CombatMech, BaseCentcommContraband ] + name: Seraph + description: That's the last thing you'll see. # Death Squad mech + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: seraph + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: seraph + openState: seraph-open + brokenState: seraph-broken + mechToPilotDamageMultiplier: 0.05 + airtight: true + maxIntegrity: 550 + maxEquipmentAmount: 5 + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 60 + Structural: 400 + - type: MovementSpeedModifier + baseWalkSpeed: 2.2 + baseSprintSpeed: 3.7 + - type: Damageable + damageModifierSet: HeavyArmorNT + - type: CanMoveInAir + - type: MovementAlwaysTouching + - type: Repairable + fuelCost: 30 + doAfterDelay: 20 + +- type: entity + id: MechSeraphBattery + parent: MechSeraph + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellAntiqueProto + +# Syndicate Combat Mech + +# Dark Gygax +- type: entity + id: MechGygaxSyndie + parent: [ BaseMech, CombatMech, BaseSyndicateContraband ] + name: Dark Gygax + description: A modified Gygax used for nefarious purposes. On the back of the armor plate there is an inscription "Cybersun Inc." + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: darkgygax + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: darkgygax + openState: darkgygax-open + brokenState: darkgygax-broken + mechToPilotDamageMultiplier: 0.15 + airtight: true + maxIntegrity: 300 + maxEquipmentAmount: 4 + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 30 + Structural: 200 + - type: MovementSpeedModifier + baseWalkSpeed: 2.2 + baseSprintSpeed: 3.7 + - type: Damageable + damageModifierSet: MediumArmorSyndi + - type: CanMoveInAir + - type: MovementAlwaysTouching + - type: Repairable + fuelCost: 40 + doAfterDelay: 20 + +- type: entity + id: MechGygaxSyndieBattery + parent: MechGygaxSyndie + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellHyper + +# Mauler +- type: entity + id: MechMaulerSyndie + parent: [ BaseMech, CombatMech, BaseSyndicateContraband ] + name: Mauler + description: A modified Marauder used by the Syndicate that's not as maneuverable as the Dark Gygax, but it makes up for that in armor and sheer firepower. On the back of the armor plate there is an inscription "Cybersun Inc." + components: + - type: Sprite + drawdepth: Mobs + noRot: true + sprite: Objects/Specific/Mech/mecha.rsi + layers: + - map: [ "enum.MechVisualLayers.Base" ] + state: mauler + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Mecha/sound_mecha_powerloader_step.ogg + - type: Mech + baseState: mauler + openState: mauler-open + brokenState: mauler-broken + mechToPilotDamageMultiplier: 0.1 + airtight: true + maxIntegrity: 500 + maxEquipmentAmount: 5 + pilotWhitelist: + components: + - HumanoidAppearance + - type: MeleeWeapon + hidden: true + attackRate: 1 + damage: + types: + Blunt: 50 + Structural: 400 + - type: MovementSpeedModifier + baseWalkSpeed: 1 + baseSprintSpeed: 1.5 + - type: Damageable + damageModifierSet: HeavyArmorSyndi + - type: CanMoveInAir + - type: MovementAlwaysTouching + - type: Repairable + fuelCost: 50 + doAfterDelay: 25 + +- type: entity + id: MechMaulerSyndieBattery + parent: MechMaulerSyndie + suffix: Battery + components: + - type: ContainerFill + containers: + mech-battery-slot: + - PowerCellHyper + From df400e80e4fd87bdee1d8664b77917f9365b74ef Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 13:27:03 +0300 Subject: [PATCH 02/30] some sprites --- .../Mech/clarke_construction.rsi/clarke0.png | Bin 0 -> 1302 bytes .../Mech/clarke_construction.rsi/clarke1.png | Bin 0 -> 1347 bytes .../Mech/clarke_construction.rsi/clarke10.png | Bin 0 -> 1532 bytes .../Mech/clarke_construction.rsi/clarke11.png | Bin 0 -> 1543 bytes .../Mech/clarke_construction.rsi/clarke12.png | Bin 0 -> 1514 bytes .../Mech/clarke_construction.rsi/clarke13.png | Bin 0 -> 1510 bytes .../Mech/clarke_construction.rsi/clarke14.png | Bin 0 -> 1460 bytes .../Mech/clarke_construction.rsi/clarke15.png | Bin 0 -> 1378 bytes .../Mech/clarke_construction.rsi/clarke16.png | Bin 0 -> 1565 bytes .../Mech/clarke_construction.rsi/clarke2.png | Bin 0 -> 1351 bytes .../Mech/clarke_construction.rsi/clarke3.png | Bin 0 -> 1594 bytes .../Mech/clarke_construction.rsi/clarke4.png | Bin 0 -> 1489 bytes .../Mech/clarke_construction.rsi/clarke5.png | Bin 0 -> 1496 bytes .../Mech/clarke_construction.rsi/clarke6.png | Bin 0 -> 1495 bytes .../Mech/clarke_construction.rsi/clarke7.png | Bin 0 -> 1504 bytes .../Mech/clarke_construction.rsi/clarke8.png | Bin 0 -> 1516 bytes .../Mech/clarke_construction.rsi/clarke9.png | Bin 0 -> 1533 bytes .../clarke_chassis.png | Bin 0 -> 1302 bytes .../clarke_harness+o.png | Bin 0 -> 741 bytes .../clarke_harness.png | Bin 0 -> 741 bytes .../clarke_construction.rsi/clarke_head+o.png | Bin 0 -> 308 bytes .../clarke_construction.rsi/clarke_head.png | Bin 0 -> 308 bytes .../clarke_l_arm+o.png | Bin 0 -> 286 bytes .../clarke_construction.rsi/clarke_l_arm.png | Bin 0 -> 289 bytes .../clarke_r_arm+o.png | Bin 0 -> 290 bytes .../clarke_construction.rsi/clarke_r_arm.png | Bin 0 -> 293 bytes .../clarke_treads+o.png | Bin 0 -> 601 bytes .../clarke_construction.rsi/clarke_treads.png | Bin 0 -> 601 bytes .../Mech/clarke_construction.rsi/meta.json | 95 ++++++++++++++ .../Mech/durand_construction.rsi/durand0.png | Bin 0 -> 1017 bytes .../Mech/durand_construction.rsi/durand1.png | Bin 0 -> 1022 bytes .../Mech/durand_construction.rsi/durand10.png | Bin 0 -> 1117 bytes .../Mech/durand_construction.rsi/durand11.png | Bin 0 -> 1111 bytes .../Mech/durand_construction.rsi/durand12.png | Bin 0 -> 1122 bytes .../Mech/durand_construction.rsi/durand13.png | Bin 0 -> 1112 bytes .../Mech/durand_construction.rsi/durand14.png | Bin 0 -> 1098 bytes .../Mech/durand_construction.rsi/durand15.png | Bin 0 -> 1081 bytes .../Mech/durand_construction.rsi/durand16.png | Bin 0 -> 1152 bytes .../Mech/durand_construction.rsi/durand17.png | Bin 0 -> 1105 bytes .../Mech/durand_construction.rsi/durand18.png | Bin 0 -> 1080 bytes .../Mech/durand_construction.rsi/durand2.png | Bin 0 -> 1248 bytes .../Mech/durand_construction.rsi/durand3.png | Bin 0 -> 1075 bytes .../Mech/durand_construction.rsi/durand4.png | Bin 0 -> 1094 bytes .../Mech/durand_construction.rsi/durand5.png | Bin 0 -> 1093 bytes .../Mech/durand_construction.rsi/durand6.png | Bin 0 -> 1103 bytes .../Mech/durand_construction.rsi/durand7.png | Bin 0 -> 1100 bytes .../Mech/durand_construction.rsi/durand8.png | Bin 0 -> 1108 bytes .../Mech/durand_construction.rsi/durand9.png | Bin 0 -> 1101 bytes .../durand_construction.rsi/durand_armor.png | Bin 0 -> 1035 bytes .../durand_chassis.png | Bin 0 -> 1022 bytes .../durand_harness+o.png | Bin 0 -> 737 bytes .../durand_harness.png | Bin 0 -> 737 bytes .../durand_construction.rsi/durand_head+o.png | Bin 0 -> 237 bytes .../durand_construction.rsi/durand_head.png | Bin 0 -> 238 bytes .../durand_l_arm+o.png | Bin 0 -> 309 bytes .../durand_construction.rsi/durand_l_arm.png | Bin 0 -> 311 bytes .../durand_l_leg+o.png | Bin 0 -> 299 bytes .../durand_construction.rsi/durand_l_leg.png | Bin 0 -> 306 bytes .../durand_r_arm+o.png | Bin 0 -> 303 bytes .../durand_construction.rsi/durand_r_arm.png | Bin 0 -> 309 bytes .../durand_r_leg+o.png | Bin 0 -> 288 bytes .../durand_construction.rsi/durand_r_leg.png | Bin 0 -> 301 bytes .../Mech/durand_construction.rsi/meta.json | 111 +++++++++++++++++ .../Mech/gygax_construction.rsi/gygax0.png | Bin 0 -> 1248 bytes .../Mech/gygax_construction.rsi/gygax1.png | Bin 0 -> 1242 bytes .../Mech/gygax_construction.rsi/gygax10.png | Bin 0 -> 1386 bytes .../Mech/gygax_construction.rsi/gygax11.png | Bin 0 -> 1384 bytes .../Mech/gygax_construction.rsi/gygax12.png | Bin 0 -> 1399 bytes .../Mech/gygax_construction.rsi/gygax13.png | Bin 0 -> 1401 bytes .../Mech/gygax_construction.rsi/gygax14.png | Bin 0 -> 1401 bytes .../Mech/gygax_construction.rsi/gygax15.png | Bin 0 -> 1401 bytes .../Mech/gygax_construction.rsi/gygax16.png | Bin 0 -> 1363 bytes .../Mech/gygax_construction.rsi/gygax17.png | Bin 0 -> 1406 bytes .../Mech/gygax_construction.rsi/gygax18.png | Bin 0 -> 1428 bytes .../Mech/gygax_construction.rsi/gygax19.png | Bin 0 -> 1672 bytes .../Mech/gygax_construction.rsi/gygax2.png | Bin 0 -> 1428 bytes .../Mech/gygax_construction.rsi/gygax20.png | Bin 0 -> 1674 bytes .../Mech/gygax_construction.rsi/gygax3.png | Bin 0 -> 1363 bytes .../Mech/gygax_construction.rsi/gygax4.png | Bin 0 -> 1375 bytes .../Mech/gygax_construction.rsi/gygax5.png | Bin 0 -> 1381 bytes .../Mech/gygax_construction.rsi/gygax6.png | Bin 0 -> 1384 bytes .../Mech/gygax_construction.rsi/gygax7.png | Bin 0 -> 1388 bytes .../Mech/gygax_construction.rsi/gygax8.png | Bin 0 -> 1394 bytes .../Mech/gygax_construction.rsi/gygax9.png | Bin 0 -> 1379 bytes .../gygax_construction.rsi/gygax_armor.png | Bin 0 -> 1312 bytes .../gygax_construction.rsi/gygax_chassis.png | Bin 0 -> 1251 bytes .../gygax_harness+o.png | Bin 0 -> 587 bytes .../gygax_construction.rsi/gygax_harness.png | Bin 0 -> 586 bytes .../gygax_construction.rsi/gygax_head+o.png | Bin 0 -> 244 bytes .../gygax_construction.rsi/gygax_head.png | Bin 0 -> 246 bytes .../gygax_construction.rsi/gygax_l_arm+o.png | Bin 0 -> 412 bytes .../gygax_construction.rsi/gygax_l_arm.png | Bin 0 -> 408 bytes .../gygax_construction.rsi/gygax_l_leg+o.png | Bin 0 -> 389 bytes .../gygax_construction.rsi/gygax_l_leg.png | Bin 0 -> 404 bytes .../gygax_construction.rsi/gygax_r_arm+o.png | Bin 0 -> 393 bytes .../gygax_construction.rsi/gygax_r_arm.png | Bin 0 -> 396 bytes .../gygax_construction.rsi/gygax_r_leg+o.png | Bin 0 -> 400 bytes .../gygax_construction.rsi/gygax_r_leg.png | Bin 0 -> 419 bytes .../Mech/gygax_construction.rsi/meta.json | 117 ++++++++++++++++++ .../mecha_equipment.rsi/mecha_air_tank.png | Bin 0 -> 612 bytes .../Mech/mecha_equipment.rsi/mecha_bin.png | Bin 0 -> 343 bytes .../Mech/mecha_equipment.rsi/mecha_camera.png | Bin 0 -> 507 bytes .../mecha_equipment.rsi/mecha_chainsword.png | Bin 0 -> 3636 bytes .../Mech/mecha_equipment.rsi/mecha_radio.png | Bin 0 -> 357 bytes .../mecha_equipment.rsi/mecha_sleeper.png | Bin 0 -> 562 bytes .../mecha_equipment.rsi/mecha_syringegun.png | Bin 0 -> 476 bytes .../Mech/mecha_equipment.rsi/meta.json | 37 +++++- .../Mech/mecha_equipment.rsi/paddy_claw.png | Bin 0 -> 889 bytes .../Mech/mecha_equipment.rsi/paddyupgrade.png | Bin 0 -> 1230 bytes .../ripley_chassis.png | Bin 1292 -> 4113 bytes .../ripley_harness+o.png | Bin 719 -> 3438 bytes .../ripley_harness.png | Bin 718 -> 3441 bytes .../ripleymkii_construction.rsi/meta.json | 113 +++++++++++++++++ .../ripleymkii0.png | Bin 0 -> 4163 bytes .../ripleymkii1.png | Bin 0 -> 1371 bytes .../ripleymkii10.png | Bin 0 -> 1558 bytes .../ripleymkii11.png | Bin 0 -> 1561 bytes .../ripleymkii12.png | Bin 0 -> 1553 bytes .../ripleymkii13.png | Bin 0 -> 1553 bytes .../ripleymkii14.png | Bin 0 -> 1553 bytes .../ripleymkii15.png | Bin 0 -> 1427 bytes .../ripleymkii16.png | Bin 0 -> 1453 bytes .../ripleymkii17.png | Bin 0 -> 1502 bytes .../ripleymkii18.png | Bin 0 -> 1508 bytes .../ripleymkii19.png | Bin 0 -> 3946 bytes .../ripleymkii2.png | Bin 0 -> 1372 bytes .../ripleymkii20.png | Bin 0 -> 3960 bytes .../ripleymkii3.png | Bin 0 -> 1526 bytes .../ripleymkii4.png | Bin 0 -> 1519 bytes .../ripleymkii5.png | Bin 0 -> 1532 bytes .../ripleymkii6.png | Bin 0 -> 1535 bytes .../ripleymkii7.png | Bin 0 -> 1541 bytes .../ripleymkii8.png | Bin 0 -> 1544 bytes .../ripleymkii9.png | Bin 0 -> 1557 bytes .../ripleymkii_chassis.png | Bin 0 -> 4171 bytes .../ripleymkii_harness+o.png | Bin 0 -> 3438 bytes .../ripleymkii_harness.png | Bin 0 -> 3441 bytes .../ripleymkii_l_arm+o.png | Bin 0 -> 352 bytes .../ripleymkii_l_arm.png | Bin 0 -> 357 bytes .../ripleymkii_l_leg+o.png | Bin 0 -> 359 bytes .../ripleymkii_l_leg.png | Bin 0 -> 369 bytes .../ripleymkii_r_arm+o.png | Bin 0 -> 367 bytes .../ripleymkii_r_arm.png | Bin 0 -> 380 bytes .../ripleymkii_r_leg+o.png | Bin 0 -> 382 bytes .../ripleymkii_r_leg.png | Bin 0 -> 387 bytes .../ripleymkii_upgrade_kit+o.png | Bin 0 -> 2962 bytes .../ripleymkii_upgrade_kit.png | Bin 0 -> 4020 bytes 147 files changed, 471 insertions(+), 2 deletions(-) create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke0.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke1.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke10.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke11.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke12.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke13.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke14.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke15.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke16.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke2.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke3.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke4.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke5.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke6.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke7.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke8.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke9.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_chassis.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_harness+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_harness.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_head+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_head.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_l_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_l_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_r_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_r_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_treads+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_treads.png create mode 100644 Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand0.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand1.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand10.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand11.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand12.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand13.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand14.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand15.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand16.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand17.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand18.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand2.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand3.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand4.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand5.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand6.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand7.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand8.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand9.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_armor.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_chassis.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_harness+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_harness.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_head+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_head.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_leg+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_leg.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_leg+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_leg.png create mode 100644 Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax0.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax1.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax10.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax11.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax12.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax13.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax14.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax15.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax16.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax17.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax18.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax19.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax2.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax20.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax3.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax4.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax5.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax6.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax7.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax8.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax9.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_armor.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_chassis.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_harness+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_harness.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_head+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_head.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_l_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_l_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_l_leg+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_l_leg.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_leg+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_leg.png create mode 100644 Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_air_tank.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_bin.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_camera.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_chainsword.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_radio.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_sleeper.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_syringegun.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/paddy_claw.png create mode 100644 Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/paddyupgrade.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii0.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii1.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii10.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii11.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii12.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii13.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii14.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii15.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii16.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii17.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii18.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii19.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii2.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii20.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii3.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii4.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii5.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii6.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii7.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii8.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii9.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_chassis.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_harness+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_harness.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_l_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_l_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_l_leg+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_l_leg.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_arm+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_arm.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_leg+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_leg.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_upgrade_kit+o.png create mode 100644 Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_upgrade_kit.png diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke0.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke0.png new file mode 100644 index 0000000000000000000000000000000000000000..8a88cec708a1cb55fec269cf63469661a1d0c32c GIT binary patch literal 1302 zcmV+x1?l>UP))kG#BBW#dkOlY}`aMGc)`@lgUsvo7L;X!^4(-*iVG-_p^)24;{(G+z<`@Mal1ur*QoHV`yH*Cw^X_>%V#Hv-It;Pbrr2M}xI&_9HF@bUcA*C#+*A&oP9v^_gJf zXsRvEwUqemU9LOOwWp2Rc6Cv5@(+4pT{+7TeS=Cn*5D-e4l13;pL$L=DD0Sx>wAu+ zE9C~;(!AYD6^NusQC}dNis&OZ=timy$fJWFf)jojeb2F^NZovnY?PibyB(!yY;2@+ zqa)O+`T)@*+7*#%>h0~-5#yIfUrOO<2aL}zM>fB<>lvz#R`dK!dW6Tf_Z;LA#(`KY zrZXTi=tCDU^`V>NhT)Ld44WRUiQdbTrB$owbpLPa*P}hZG&V?;6=f<#Wi*h!=-v-T z29O!iKXl+&j$>B8`N4;nBd70JAEhvUZOrgA*NZ zzO420@oj&sjWeNp0OX4*s%Y=NuPue^SH|=l1_Zd6@KO3OxgVv{nAig@ftSzAsU3LY z`K>%k-2k`t<+GXxTmwkA_oGy9J!C+*1VNkw?H4TvLT|Kx$UP7*z2Nis&tLt|s(EXA zZ&36Au&~rU(($imIl-07q}2nArPa%LTwQ;UmYqH`PNj>NSq4BL4-X)71RxxOATG0% zrURkR4}Qa0xIFHEM4ahKJ;$D$6TTC4Y2-(j?A8(vZU6uP M07*qoM6N<$g6VB<00000 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke1.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke1.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c9e427c143a1f7720383809d1de4d4eea09e96 GIT binary patch literal 1347 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke12.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke12.png new file mode 100644 index 0000000000000000000000000000000000000000..55fc94a22fbd802f366ed2a7611cc367eb2e8e7d GIT binary patch literal 1514 zcmVBAUja;U)ZUh+G_@!KS2|?qBsGCA`BfCJWZr^jh z`yS4BFSq)ye|omNbM86kectE1@B5u|%=91Qe*r!M5)%{M+z$#0qR`M#(GLg+pl>_Q z($CHr)87$>gx>9bI4hgx=jX+Lr_)I;mrKqM3=A0T&8i{V<{M7x_bi(jh| zM(O*?sJKMyYb_AJ+TQQQNm6c~7yn46vbl`j9#s|jlnYmOds zDz+{k?zPrz(T50`0(Oe_%B6lO0Qo~L0F}F@L|Onigb3~f5n++qnhA=J3zxPGm6Jut z6sW*LaL|T73u)^SGDIMR>gn8hhaqw*^rD+^LjZQK`4nS*&jD=`#VMn}gd4N0ej~7P zNglP>dgNN(HMsmi2a&oe}udk1`w=bguIdg_o{M!hyb8x(uG$S}i$42Bl zd|GHm7l7{`;6f?*=mycYWX<`AsOrYUfri{JU2;>4LJRHjL?QRY>lCKtUv&<_FFrp@ zl{r&zE;tY5=su7F_9+D5(AlJXdS|xXD-58#@$gEKe-N^Wq3>@JRanVdu@JRMC4yKB zo5sU>_`wBEB0U1AwK~nG6yOal{3a~|S`proyWt|7o1LSn=}Ga)slXWK0IWqFuwXa` zr&`zyzeOlSkl2A{Wc;+sN`k3o@1)OIY4z*J2JxNnS_m z(;uUTgH=94d=4V|2Y>)X5aEv1ZyJ~VG$(tz{3GMAsjjYO4wLGG?*W4V^#)|; z+z$(B61&kJE0mM_EVZ|OLJfA`-C)k;I)q1uu<_c66ruW(*D(ec@-rcvqtLduPl}>L z-htZPrBu43mb#~Zq36=0#Ta&~H|1^7L)DDF zenoSUBENvkZjql{pT1M+0PP*k+4R)Y`i_~OTc7KgLlhHDZeGYWp;kLmk&%%>mxczZ zNUH;*u2oJW9DRu?AcWZ$58M zDd5S%T+wpg06q873zki~1BBcAQOc(tBEVdX#W;J*M+^c?73Gbh25jM1d=%gQal&Uz zJvF^gP}Ber9Ik)Twl5br!R3jhp#}t2C9D?hx|I9m*oBLu6dtwO-~a?T?HJt02AG4f z7?+w#Re-7a_%|X7S4Vv>5%=7*>|>2bgwGc=J~*b6EejLv)ls{FL)|^_7ZRaTJBB`# QjsO4v07*qoM6N<$f=1KNGXMYp literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke13.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke13.png new file mode 100644 index 0000000000000000000000000000000000000000..4acdbaf25684ec3d747012cd788807b5cd6ef659 GIT binary patch literal 1510 zcmVrEWk`TM7$epGQnRbeQIE{jX?-g@1Gr!UGA3HT+4Pwp7Q2xvt(DtE(0I6E^-;}c`z$f>{><^Zfk9k5_H2d7%t zjDSTbM3C5lW@J2CMY}_(;{7qdvC{pzfd1=!P-5WkCv{sABW5kz=a=`W4jd7j$a+YRf|)6*#=WsB&qi&(m#^Mzm#;F|&z4M^U2 zy@0AdDidP~@rlCG(foW$Nlq4H&Ym9nr0up4hWsPruqiJuXAYCFseYzHQ%t0j9;^joa@&^h0sDi zMT-0aZfBxAa$WjPr31A0)MwGN&*?j6es2AqV-8VVEO~e#*MwT_NJU0Q23_mxrF^Xp zu=}phKA_c!Nz~ffDxY)w0@!mZJW>FjMjqtFd-gt0sg@+szv}80?ZE@5MGNOZb#=9j z0FS{Qwt#96TQ4^po7ksWRg`9VNOV>tSm{c~UF~;SDj(|aqE&HGT8N^k(>0*q4@v|O z8MgntuF=aeZ*PD63BlpD_ZU7(;r!eem7=p{TPCSEf0juyXD)I07{eSyl)d|! zv=79$_31(p30VUmkB&>As>9zH48}(KWgiY0xR~%!s(m1fk5Vp7tN|Cpm(Q0|3V0?j zTeO@vK+k>byk(v40O9uiDCJuZ5nwLHLY$q&0|o)6lHwXs1CGcWeu}4m9`+kkZ%yAD z6g2>ZM(Rh}@zp#hxV(`x)PTT>q?MvwoBE&}yK;4qB4bt>9Do3~9fSMW0CO-F;!;zo z3NY25{#Hcc)}a3*;+dV0eXQ|{@H;_6y*G8TB@v>%HRv>OsJjRL0tJLpHqj3!>i_@% M07*qoM6N<$g0rp9DF6Tf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke14.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke14.png new file mode 100644 index 0000000000000000000000000000000000000000..248eb8b97161c883f85f5d66e478aa4c4d3d78fb GIT binary patch literal 1460 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke16.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke16.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc4912fd998a0b6ddda7e259ff9e68ab41a084b GIT binary patch literal 1565 zcmV+&2IBdNP)d2*%Y!!;+fPlqyXi6$Q5K+G4qAv9tv1+KZ-A zgV=SxGyj>L|KDxxNp@%E%*^+lb7s!@$4B#&11}dQTD$+D>e7Wg4iznP&G%lJe5LnD0$i$YrVo^W6~LtVt{y!4WS|p3IZYXl1pEV5RoyWB9Q>L*9c>P zAs+Vg_*Q&W{kx6u5_lsp8#(SpUQVuyM-1_a@|hRzQ00?PP}jLj^udQg7a)M_(6@J8 z=W`w%J7aVp+EKa2wZ|*;mNbzM891vAX;?KcxI;@6BNxj9wtLAbGFFY3&+{Q2yHEO#-AyU z3UvewSUW>qp?sdmELXqYY@%?S?7SE8EzhDO#otip?(;7Fwv(I5-?N?W{XXr|1A}pE zvnf+?bUFIW`?9IGV*&YEI?t=iusJ~;L8`5q;mKoa!t04dVSUyu3Jp|HWPr@QKm=aH zx~xg+C4Y+df>}$CxbVU4b2?O3Rz~lsQ@D8XqS^HL`qd^18qiPu(|L4ujtCGOfOd6D#)b-|sR)0AR#ZuN>t5?bs<-y?`LUWjVj22sQojXN;ix@au4?ybCdc^D@$>3@Yq*-dv?-7Gzs zC*)h4!=Vr57wU8yCeQx#JZu0$CrasWs#;4M*B5htQU3t97dn3A7UYoT=4KNC(SZzm zA@+V4=U{_4LwJ0)MaX%`%7PGeUz$+AZ;jbQ*Lt~?B7@eBfavg;jf6)XjO6}3d-fO% zU0o^pC#eTy*Ly0og(a8jhN50FfO5=%flBI{d2HKO0{4t~c3;Dv+s zcXGQVpdY#&?MX~v*rKBJQYZC(g z#J?DS5}xXVL42v0G=ztyF^V-tF_^G1#zaXBMiUjHSt~1GL%S{P)-9z4TcDsKS{Br8 z`{MO}=kA%#+`9|D`Qn#sW_D)I_nkTC%*^%Ee~kYf@HkLYQ)5ZLsHljFi;KBmP*6aJ zj~t>a>8rkL5#CySi*@gswKOv`!~fIiG-WawH9s^oWZ3(4Lw(}>g$b%Czk~a5LI_)0 zT6kSF8a0Syyf5DC5!bmyM>gV@!L2X8#tYtl>t#Y8tpG$431Bdlqy@LlHyp-TZ7^im z=y>$;Es8sc;^(+S8p=+|6AZ zTq~Qj{Q3fEPoErAh6o{QK~PpQk6Q@B3F*rm!mZm1bWU*s@Dw2y3W=UOLExSRRJgQ- z`#)#L=7yaAfg3Iw4hV-3T49wKM`#X6AVOH&+Qz0r-e(OH6k$e!-s~rZfA=#=etdg zh7_RTfPVD8+I%}3yc)V{6FE1cL<1N(agpf68Y;RhEuiN-uyIa6SV-)Bd_ zF2Y~cZlnmOr>5z*$xG@u3NVH_K*Ysih=bF8+vasZIYC@Nwvlgi+)+?kQ0H{eymhf>~=|@ntFSC)sFGYV=t+&lmpu5mnDl|+V%w11*^G#JT=Vi>pS;x3vnP4iKqz3 z80=vS==QM9azofBntt7*<-xnSv#=^m$NDeZzaHiJ+0g`5R+QNxDx-nam~%g95kO?b z{FtG+)0ym$VQ#tU+)9bmF zya7(`%V#b3Isyo{`=eBDJw!mb1i3f|+Q$qBeB0aK;~I#Tp7wbB=kF7qG5ywb-=L@g zU~Z{%q@!QYa)K)xNuvfB3#%7#yR7a`HFoUyIF-&{WC(yj9v(pY*nn^da&hUY)E)4B zy6;<#!ntwpBVtWYsy^0ao$#EXv%_Z`vKvddJvW{-IP~2E{{VZgF58uU99{qb002ov JPDHLkV1f&0dsYAd literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke3.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke3.png new file mode 100644 index 0000000000000000000000000000000000000000..4e877ed690df83763a1ffa268bf4aee63e07c621 GIT binary patch literal 1594 zcmV-A2F3Y_P)`6pHRCt`tR((vBRTzJ6+*ObkA?gxLED{t1O!=4^9}=5WYRhW1 za&ygatr@L5vyGX57;~jY6PY=Ql^eO5W?QAR-B4!clu#}PDn@{yHq#Wu_;BUh`91IZ z9L{_1#rm&)+ub?$yyy8nU%&Id$4mb){$ByK-5+OROuBZ#6TBY07L1y)vDWhbE4SVA zj{(3*N=k~=Mr19S6irc4Q4}2=P1Jabii?Y_?++iMzTWG%b#hZnE&_o z_R_$>fPUWE+Um0Rnuanz{O2&8ztBVRag(XG{UWWLGlR$>EGjDEeSW{+Mf6$DEUG!$ zWclc(c3!0dM=`0GxZ@4bt%96yqXSDcr={vI1uZhnipd}^*n2?kkkB^;b=X{Lz} zOt8!VuvVoUkad&)KYz4|mL^Xna8G%2CeTLVD!k*%TRh4?i0m{DXe}iNRcy(c>b%iHYVNvpLEA1Z41D;$ps`Pr*RNz&K@uNfKo{5u@P&gD3Sfr#7QdE zHu~Xk3+3GM^LlUvjvi@oRnCMhx*iJwq^0Jv)>s3wA)(@JN>F2cgf@UUIiMw|fHA4C#5tZl!ZGk5-rQ1EM)-Y13rT=LS-5`bE&HWgFn@}oFiag_a!CVemG~&5A$pv zXaRValOaO$=&e=wZu&=e1xxh)( zp?y^>BWD6@cm}{ZbRcbjb8wo%cC}#C zAc)1NjNJWPf8!RF(dCdepCe$L8X!ptS-}H6g#*4lIso*=d;yt|6M<2cjr)oh5{?uA zJKvzKcmSH}vz>+9b*UzvoSm|=y^7Hd)PF68h zZ(kP@hy*PdwFPnq;2;zcg0K?vXoY&#@Wn?VXFD@9lcLfW@qA9q*s#vS!4-hn0yr1Z zytcBGwp6X-b(DF<(=XHZtT;+nCj@9#O8>Os0u40pqq9n=0mr7iyqv$Z<{d(gVMqYx zF$BapGOgLXjr#hple(->_2QRk;Na&}-5i=tUcqxp{U77fK~t5D$z=v%`qH0cEROW2 zhn?g2SsPREWN)1UJ_7kfE-+FccFFRie20F}=53yZS(&DGD+ ztkmf|Z)!Qs1c!TX>>u|%dM|^tCh-Rlg#FHu0 zGU!C(HT659BR_XGK#B3OszkALyrqN7ZB_u45&JK99<(_MvWY&iISLm%&K!=t<+_x@ z`QEQK@nq2xbIHWMuO*1Nw6<)kb{<>-tl=4gShxOFZ9f{{;wM*eCA0=WK0baLZQ1&r z%i!|)vw98(0=$@TDP2hRrBsB8J>U`q^96J20G@iGfJf;&VD~<5#B!(Y0Obz8l*(HV z6%Z~#IL_l`9j*X8YszX^1O9RCArasBy(eVNd}{`O#GnCS%sBf<`@bFG1ea4umj)P9 zrYG?D=&Y%F?L<>2jhm3*asUFn?F2GM0>U8($7QzC48XHz*8#3VcW3BF#2UJ)=h))} s5psggo$j*9?vCNHyR+HFVP+5f4S;cQY6b9p#Q*>R07*qoM6N<$g1t2Wd;kCd literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke4.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke4.png new file mode 100644 index 0000000000000000000000000000000000000000..065c065e6f90a3dfac365516e541e31c36a6ff22 GIT binary patch literal 1489 zcmV;?1upuDP)<36HJfdfu684dh{Zp>m-r)SfFd@c^a^wVE#KbX zbKmE1-g~*#x4!h-?#{XAoagua&htFyyvIrZG5!}2As{m|(~y3Ad^{y2Byc}AHkQ6? zYNT6%amU{gK9F#~@z|C^nwgp5|A9b&g2AAg@9yrl**kSZw5P8JsOgUx^2FSxl;q`9 zclkQ)&Re4hOG`_6o!9HN5y^OKTZ>wIw7rLRE=!gUV=X+j# zi;djX`)H5H?3*nBG1!Gf0;GlW?@-c1OATE>XP2KEr|%`V^&d8{6%2XaAP=}LKQ-0+ z42W>*&O5src>!9%@ztq{5W6T`aECS(l+db2H&9&MeLOcc^*deqse=le>#1sT9vwH= zDqAc3I`_J)LheI^N`W{K!OEjiqBvC)gmCkgtf&##Y(}8o+pgBi zuE7-zETGk~km|I-oSYoP=kxKn+nBJW;@?I2 zIpj7CQ2A94C)sivW9~F=?TfYuO#L{!1rhAII!f-C2{>oY_liP3kOJ|^0#Mz>+R^)R z*D^MEGkct>GBY{+N2#F!^0 z)bGF4N0u!b2kI#rlmO&Kzbtgfi9p-;U^3?w7m}Q5*x>@=!n!%4)8o7q=tNl=Wt%4i@SBzX zQR@f`L;jI**i=?l3Wr1YA>RR;0R0On&ZVDPeVlGhjN`FFMO&YvZ_j;9wf@N6U@jQ^ z0FMr~3EPMgq5D#wV+_vbXPBMi__aC$d>bO~z~MvXRKE8xwcVJY7u?A_hTZ3zVaFUq zVy%a6bHU1k1b)CLJ|aHHQk8P$7MJYcP~mkwq11$4?Wl>38#mI$zFsOb>j1m=eey1?c4bgYON;uP;}^wVQeh|o zHP-VBgR=Owz0Xo^RtEPkboFxk_MubU!Z}b|TdN`D ze&(~o+}ZwA0qHpVxsVjl{)%JDd3XdchB=5haPVbiAB}Iv)8!lqRRbVjl9EnGj(u%2 z7`xW5`fwn?#e_%cHVQpTr7*DuT!L`Ea84!Qndi51D|rJ#xlf+8JQ;F;aECui<<>(4 zgiA0NXGg_=O@QO|iubt&yo)YJD4zUnIATn{HN$UE)BvzxQRql}znbL)mla7{4KP+@ ztmJlmZmJqPe_@aoEnR7I00P{00_kG|!XcQ8OHZXPz;XK2HynklgOMK*WBP{bV~r&u r;sjmk9SV`nPvrLMpx?%!?;iLIHd0HYGBo1L00000NkvXXu0mjf1qIRL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke5.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke5.png new file mode 100644 index 0000000000000000000000000000000000000000..997a7b9414282a5725eb5b6f48ab35b54d45f84d GIT binary patch literal 1496 zcmV;}1tbfH(zTDC8wjt}k315@^KcwAylO zZPn%{+G<7H9qGoJAIP~fqJhqsthF|Cb2i&5UF}8^5sNqF5-)-#3SuJ)FE3p{%iI5V z?*BYI|9iRBx4!h-?w;qK=bYa;&pGFL{*RshWBeaLNC26cnSPl^M@LgkObpK>BO~d% zrbe3ZPTKyC@PU~7{g37s(A?Y{|Mz;mTWenXI8K$Z~7g4@FlANX=*@#`7m%jEk z8#$}@Q>n|C8zZp#r37kf_Nq*Pv|#ZaTD~H|uLsc8?V-lmd&z13$Ih`4!8O;L1(pA3@l4=Uv^6tbkF_)Vx9wViyHV?$Fk}B3k$GW{QfskJn~qey7Vnbx=WbJylIF zqFO^2s7+5MGSjbfZ^$a(If76n5T_WgTD zwgR0~f>0&U0Y%gdz=%H3k@m=PidtXH^Pf%GlI+0$w0lOCtw84jQqnhA*6pYRQX%Pq zB4pB(!CCmeshhUmb@Mzp13xr(TQa93&~(Fo1c2QeK3Nv_9xxWsoGJ@KxGg^`YzDR& z8K`%+D_z+&xWa)0Xtgb+6PnQBaQHhrJ6Z1ZPgzRwZ!;jy!I4Ij%sF`Ns#+I02O!5q z8fE84H;MK-$Y~g$^Q%@bx70Sm*lE=I7c3c=`Eh;=60mD%l$;S$aL%0X7Y2Nw1mcqe zKzDD~j^3AhSF*ud*^^Y2naTABp#;(2J4)31ZrHR!7d8ldqNj(sz)2Ly0D7&)@Tmd_ zhLL`okpZI#e^I-UCY+s_rC-O#_{iyi3~K;%(FYPRoP$$uY(dy2&cIHU z1B@pO`#t84gQn|q27A~7x;<=7ZaB7y zPrDw`=B$T!vL@9*7us(bzh)Kr^?^=GNs2d86i*%9R|EHhmH}i&>_0tu-sG6KFM8~8 z<}mI3mPaX^pZ%))to0lKWRtLc$%qHZk!#o&Bkcid!40W_%Xa zo4P=KP9~9+ew}-HUNO%RgerkJ#dz+_DHQ-U{Ne>hu zlctQ!!uKsfT6@dK^T-VR&>FO5PDi-uh71IN-J3pH7V{o37tx$53qrWAC@*FP)|nY- z^mQs-*)_OgfdgoF%%Ovt(Cu~`e!rjP9%IZ_ihr8{aSjd_jWXxJ`F^!7at=U_i!{oH z_bw4_ag)b1KQpNAA}M_@9E1#r{9Q~R_MY8fnV?LW-f3Ng)@L&t22G703u3|Gt0Cdp@5-^;DQ*UfR%qHX@h#SZ>vLCHodU$qUa{(%yYLSeCuS#f}bCR8YQo zLV$qT>F>7>b6}`HDh`{SJ9i3)L-!%y0b2n27f_tbJhQf*u8)o4u|g&5pQLY(e@G31 z=-pr~6nYnr4z`KdhzdgYr9Q_HPSb>mKU3Iz~@>(piSx z7no_s8iItbmu_&w%7X-cz$ZSUKF89Pa^;qmZQ@knek-*;(bA--FAxg2)RFUtcd8s< zJZRc)wstK1GDdxlB}EzOWQd~lgx>Awi8X81(3##IsxbQiyZ3+mCgr%6Qd?V_`kdnz z!(K{Zr~vA$=NE*c{L2u|s@1 z^@vvG-N%zf*={<~dCmN_s>m<&`6(-7u9>2_)D`Rx-w#>_kQuT6Wwi#Tx*r(=jAi%|hN9hI%KT4%Bp#v^KBwr+_3gGdl*7GQJ1H!dWpSC;{c7Sw8 zK1$`*Lk5IPFcW82b-yhD$II34a1Z!W&qYN%{@YNLOuscFZ&36Akdzue(!MXJIl*OR z($)ivMN1d+xN=3NlASm?K&feqZ4N+y+fE>JY(O{!GjZvq)B|uFIs6T0VQ?V&BVtTm xRdeWAK}4OP3q9w;o;#F85zm*(9lr&uJ$~Q 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_chassis.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_chassis.png new file mode 100644 index 0000000000000000000000000000000000000000..8a88cec708a1cb55fec269cf63469661a1d0c32c GIT binary patch literal 1302 zcmV+x1?l>UP))kG#BBW#dkOlY}`aMGc)`@lgUsvo7L;X!^4(-*iVG-_p^)24;{(G+z<`@Mal1ur*QoHV`yH*Cw^X_>%V#Hv-It;Pbrr2M}xI&_9HF@bUcA*C#+*A&oP9v^_gJf zXsRvEwUqemU9LOOwWp2Rc6Cv5@(+4pT{+7TeS=Cn*5D-e4l13;pL$L=DD0Sx>wAu+ zE9C~;(!AYD6^NusQC}dNis&OZ=timy$fJWFf)jojeb2F^NZovnY?PibyB(!yY;2@+ zqa)O+`T)@*+7*#%>h0~-5#yIfUrOO<2aL}zM>fB<>lvz#R`dK!dW6Tf_Z;LA#(`KY zrZXTi=tCDU^`V>NhT)Ld44WRUiQdbTrB$owbpLPa*P}hZG&V?;6=f<#Wi*h!=-v-T z29O!iKXl+&j$>B8`N4;nBd70JAEhvUZOrgA*NZ zzO420@oj&sjWeNp0OX4*s%Y=NuPue^SH|=l1_Zd6@KO3OxgVv{nAig@ftSzAsU3LY z`K>%k-2k`t<+GXxTmwkA_oGy9J!C+*1VNkw?H4TvLT|Kx$UP7*z2Nis&tLt|s(EXA zZ&36Au&~rU(($imIl-07q}2nArPa%LTwQ;UmYqH`PNj>NSq4BL4-X)71RxxOATG0% zrURkR4}Qa0xIFHEM4ahKJ;$D$6TTC4Y2-(j?A8(vZU6uP M07*qoM6N<$g6VB<00000 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_harness+o.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_harness+o.png new file mode 100644 index 0000000000000000000000000000000000000000..c752b5066d54c5ea0ec1e72eb9b9ea7db3af03c5 GIT binary patch literal 741 zcmVza&qrI z-}&x2=iYaZ(m%$30RsYx#iGx4Hk+kfE+_3wCPSO=-qODN(~2WJnLFWMxqOwn-LCxa zx-NO1r{+7IPLF?N2EOlpqsjbfX+s1Pmdj-+uvV+}5b=1^X$%C{x%x36fE8jVJO(1p zM1R02z$c71Q9u%5n3%9NrbrZk6rvZx0-5-ZBp|MKrT|B30gSLLnE03=Qh+#aXhf9- zQ$jsB?;c!33jh!pBzh_0vZ0IQ;PBgbJE;U%g2d;*dM%T(p$iWDA}_Dl3?Oxr`M)<} zST@1}1DJ;ogvO;mQ2>)NVgFcIaDam+od6R7me_%~@p_3k8&PAQcedqku>06=htVz}k5F zP`wXUA1zr+%d5V#_ls^Xsi-gDwF~OVwSsj~ z508-r=$I*-qpj^vR1tlE-M3yomSc@ZV`#2a0uUUqZCho4$HpQ6s98Ay69AF2R` zo`JMTEdUqO#KbYWF6@JY-#7u|6|nR515KZqQ+8UU7Jv^>m_0TD!Fl&Jd%OZh4b1oh XTIPTIN4wW;00000NkvXXu0mjfWQj`X literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_harness.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_harness.png new file mode 100644 index 0000000000000000000000000000000000000000..c752b5066d54c5ea0ec1e72eb9b9ea7db3af03c5 GIT binary patch literal 741 zcmVza&qrI z-}&x2=iYaZ(m%$30RsYx#iGx4Hk+kfE+_3wCPSO=-qODN(~2WJnLFWMxqOwn-LCxa zx-NO1r{+7IPLF?N2EOlpqsjbfX+s1Pmdj-+uvV+}5b=1^X$%C{x%x36fE8jVJO(1p zM1R02z$c71Q9u%5n3%9NrbrZk6rvZx0-5-ZBp|MKrT|B30gSLLnE03=Qh+#aXhf9- zQ$jsB?;c!33jh!pBzh_0vZ0IQ;PBgbJE;U%g2d;*dM%T(p$iWDA}_Dl3?Oxr`M)<} zST@1}1DJ;ogvO;mQ2>)NVgFcIaDam+od6R7me_%~@p_3k8&PAQcedqku>06=htVz}k5F zP`wXUA1zr+%d5V#_ls^Xsi-gDwF~OVwSsj~ z508-r=$I*-qpj^vR1tlE-M3yomSc@ZV`#2a0uUUqZCho4$HpQ6s98Ay69AF2R` zo`JMTEdUqO#KbYWF6@JY-#7u|6|nR515KZqQ+8UU7Jv^>m_0TD!Fl&Jd%OZh4b1oh XTIPTIN4wW;00000NkvXXu0mjfWQj`X literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_head+o.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_head+o.png new file mode 100644 index 0000000000000000000000000000000000000000..559fe1a35ac89e4c81944eaa7f9886998c92317c GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DEQ3N z#WAE}PI96|g2AhXK=uhw845i&{=ab~-md%U6bqpYE0g2oKCNRA?w9^T2!Rt+kjfnvL+SuihOr#<7ZjMlNm{0~~8ii5tkEv2bA25 z6n5(=Tz6V!*$|a*g>f;TMCpMQ%xTO8URCbAQdhu8Gh17$Wl$pPpH;D(B3BlP7t_ ze*gQcefaI}bV)y%+rQ_BxKDV)AgCBjMvPpESwKWNie+*d%t)s zGn);ILxbdtV86Q(Qv`n0RdQOoO?=)k`+A&_LCova1#Aj8886iQlbt8fG zCdf9r_M|wJ#X78O4Jl^WdSC^!n=IH%JUf^f1fPegua!020Q50~r>mdKI;Vst0A1C0 Axc~qF literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_l_arm+o.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_l_arm+o.png new file mode 100644 index 0000000000000000000000000000000000000000..163500ca49320a7d7f6371c1fd46a15fa7637e28 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0sos z#WAE}&f95-HV*_iHn~6WP_Secde@|)D3jRi@L<~41FWb1P0C!RqVT`t z+w6a5XI=kx-sktZ2v!CDhKCssHrmOrpZCqA;cAuiwZD0fx3aUaF4#9mnWJWF1RFmG z*MXN61(QFTFfy^YF#fnxF8r>}Z2hGAEm{H`3<=-wezcBa`=@E&aC>VXqX}cf5}mUQ zTRyQkuw9tr!*E9GqW)B)C5#Ugn>sZl7xX3TdfJ!DWSzopr0A$N-fB*mh literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_l_arm.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..4b8912ef2768ec60d4d2b046a465b8d6cc7210d8 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0tb^ z#WAE}&f9B-e1{BpST86TGFxvjG*}?lsC@8*q{KtL9*+*?5FVbKrPc+F2l%~GZ|E%V z)B36Z@y8{L(qDSTJP8b92^LZnYtA2E?VfFVAZsu0>$>e9w@g!rX!ul=r?8^?sL>T6 z7VZKoxjQK~e;FASIk`XFO%**?XQm(1wIScpg`weYz1{xc*NtYEVh_BH>XHs%ad@=# z44cQqJmw3`KP*!jQ+^9B?Td9bW8fF`IdX$})#DjzW&2-QEK{`p_Nt*e*3|UaMy&_` i*M!P1%{{`vR>AxvKDHy#bXh*odkmhgelF{r5}E+7HEb~e literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_r_arm+o.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_r_arm+o.png new file mode 100644 index 0000000000000000000000000000000000000000..21fc39da63064c1202a8473d472196f3d3e2496d GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0s!w z#WAE}&f94V`3^Y)t$WZYZ!tr;I@3dU zvwGf{ymM!EpUK@mQ$m~Z2(y92H`!O8Kfc;p&BeeYetNC_jrU;-@2`3O|J(F6xpA@Q zn&hS~6={>d@8&9crrZ}OcXY0VCX3Hv1(ioaMft`XsPu$+5y zA7h4%W@h{WKL+llhCHt&7%G_KP5ZX>Y_XK(-zWCdV+I#P)ng@bclIA^9v3*sAHKh4 l=6@zRhn}enLJgJ&q_4kBxx~EuwhGXH44$rjF6*2UngH{3ZS(*D literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_r_arm.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..38bb6cf779d69f263ddbfd1e9cb29c8bae517da4 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0tn| z#WAE}&f95}2qJHcTQCl_bA<0OH;3km|Ito$(v52yQFeqd!i z(|7XEw0*DYXWx98bKi9uqXdI=f`wGYmFu7HW><+au;_*FJ|+L{^{ssK?rZn6crWmr zUoXzye@b*Wt4LSWoucykDZ3a{xSoHR&)T5y%Gys}=p568u>q!So)4B zWpm{nYX;wClE3*im=qMHoxfSJF}yqAzcf7BZOP}C5m!wlcMEJ}d~qc6(H^S<<+9h~ oYI*)w%YG6|VDvc6!1I8){BFu6rF_XrKrb?Qy85}Sb4q9e0N(*^UH||9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_treads+o.png b/Resources/Textures/Objects/Specific/Mech/clarke_construction.rsi/clarke_treads+o.png new file mode 100644 index 0000000000000000000000000000000000000000..be12f067e7c2ed42ffeb2f95c9fad76b72274f8b GIT binary patch literal 601 zcmV-f0;c_mP)mzMQ(D?5A&`?R0n43khU*Lg-(ff}DfUu`;fQ5qHGMB!(ATfC5ZWy&F zJn(of5=ZQCZ_{-O4gnxSrzSuYwRd2WV2^7zSOW(8@u+xkGM06SunXW5lOu(&lZAtR z5uGM3g`b~WQHvRBOcOvc;;`evITcyLK8aNY@Qz>;TU$P0^(}285kEPWi?^vW*6gb` zFG4koC9Yk&2OdToDxNs7$HYq!B!F+OFNmOju*(A4+8~lHHXVtI;y3~nR1G<-p}@@S zn9P60H!w6VM92w%yvEnU7Nffsz(X!2W4F%jhCSdSv-8mzMQ(D?5A&`?R0n43khU*Lg-(ff}DfUu`;fQ5qHGMB!(ATfC5ZWy&F zJn(of5=ZQCZ_{-O4gnxSrzSuYwRd2WV2^7zSOW(8@u+xkGM06SunXW5lOu(&lZAtR z5uGM3g`b~WQHvRBOcOvc;;`evITcyLK8aNY@Qz>;TU$P0^(}285kEPWi?^vW*6gb` zFG4koC9Yk&2OdToDxNs7$HYq!B!F+OFNmOju*(A4+8~lHHXVtI;y3~nR1G<-p}@@S zn9P60H!w6VM92w%yvEnU7Nffsz(X!2W4F%jhCSdSv-8AZZJnvco0VF^BB2??vf{{BJy z_aL#G*yOM>B8x&)|oVPewGzJB$BgWsAil8LF+R+qR8 z$Zla_fesH3slUIUedWDWDp{Z0RFR@M#P^jY_L+bB++tVO*KEUjx8cc2(*glteD;x@ z!#D!LKw2xJ`{YXIDt%jiXUBor+na5R6+8!$CSsXlAXZ2>ma7;@$UNqf;8B8Q+$Pop zZ0#WpKpm#3-hh-SkIy`FcDo5CV(58RAfKP2YIW6S;*O!IFfIY`bbwNGc3qd!&wUm#IJ zt0Nd#bCj$H)`zn*8(dlYE|BKp?CQJv{>!F3d{v>LOOem zp%sV(Ksgw#il}gr1$?47Ax+MECDRjz)Zqkkd&A>z&6BO`Z!P#Wl(Sm0*S(>?6YiK# zA)o)H1oQ%TC-}hhm_DLI{+AK3((3a;)i(pZI?A}yQ6jeox+RdhBk0S@Mdn^q)Hd|?L5P5HFB?+Ni%5v% nS~2zRB@t9WH&7?d)b0Aeg!rNl(sx~a00000NkvXXu0mjfDL>)} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand1.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4c63b8c5a27f56e7a39975fd1e466ebe5c457a GIT binary patch literal 1022 zcmV0EqAV$z)R#6)h zqCX&9^e4EG{(uO|jnT?oAOniDD8!+05X4#(CMqpNaS*}9>wRb5Ih=RrULB@I2gY}~ z_uTJ%_dDnQu!H`ywM!rl^hf_nAOvg!#QFR%<#IW?akHO0fB)L1dc97yS|t{r7I2yf z#8XqxxY5$LFbSQYRE z5+$rUf`K`QhsTOFTlk~FjWzEADX!T9ug+dB-t!&4_FOnRI^=JnfXLK;*%GmF@IkevhR?zpP9yCJAWU7!x%bd9JYh)k4EZ zwxU%`2?%?e&m=h4hn;}!B!OzBACzCbt;A%jK`Ge*f?*Z2wU$YNCC2N?pQfY0=dH`}k_Pnk6Mu5Ornin;_MFqHwjV%JiFQD7|i z60)ne7*>Hu0E|OyRS^{~vVc#NEXb1cKFRDrOy+QcxwYZ(SM#ja^;ZkthH_TR>TPY< zd&2GWDdh9Nlz^S!?gSs0?XyR8$p10|Dy=;qOn#$~KYTp(0LthyoV5l~_x;@+_rNZ4{5kY2Er3S^xHRj4G81 zl}ZH{I(5Vl)dbvQ$BxS+kx0R7y@Mm;2(fOPCwj7=eNI+`IT4OsPEi( zVE=(nR$~F5ZGnV|z|_>V_j@{UfTgv4FY^yC~L8;qAeh9$uiaIV|h zcbVPWH@n4ndT*9ok6LNCU(&$daiMj@R?_23D`{qbg-+~VPA`7_F!^Vl)SfIko{4uu z{epMm;J#UB z%+;&oOKe5n1AY-Xp0{q!1L6qj!m=aAX~914v2nj89dF&Wi&zsdx#!R@D42?ItEV}X zoSrbT_xLO@fXOzLxG~=l<@~}zfn_pY6@Pj!b1o`ghXEcfpuirFx@Z~8CXEX#2BsV~ zHiEHO9HyR3hBB1&=0yS223QZEnA^rP-uWJHpRu3^8*rEjI7kB&ST4S6qI-uHOa!!{ zvuBcY^;$u6Sn}yY)gzx6WAK@|xdnrjPtO?RN|ts3iYuS)7Eql}$i(#-8JnKQ>D%Pb z!1?dr=VZJ*|K~ExrDsFah6n^iS9Z_Fq>M-bhm{FFD)}B?_$>SSk%IR*KLu5QS%Ynp zFa!`D?pL(af!-+z9k0VP^DwD!V$OR=A^%-0R?}2WS1&fSqP|HD0kGHA?irW*&Zl+J zwIo8v@f_0RLO;p$hKoB~M+LQ^-UzL4?h4!65Pc(&uOYwp0MMh}3)2saP?&yQ0{npi zu{%NUh3Tsfh}5q~!0|)o>iYrt_bwB)-e%RgL5CM1;^;Hw4 zZ@qkt5x^T^-3{g+3nkKKoFcmh8YK|;M$jKCwZ#5V@%6(9*CgO-FLYnmB7u(%6CL<00000NkvXXu0mjfZRZDW literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand11.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand11.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1f59cc33b195e3bd4757d59694be879eb4fb43 GIT binary patch literal 1111 zcmV-d1gQIoP) zCKD}NNJ6w}D->?rMNuLcwa`_82};zW#HrB)(dY*i1rdLkK`4UPJ7?Z^JMa3Q#IdBp$CW>UhR4U%esk z(^FX{MJ+9@R8w<|^7*{1_x3(`HCI2(pQnF06*ppcu-&(W=uALRZ1`x7+KF&o%_ z=9AS}z-L<^VIr`&xa9p_3LIdmZD?kG0$5#ri00*M3ufP)YaaJ+DD$$#DHi!}A-r2%H+h)R^O4(m>jjT(%1K87X16mYKV8_t;B z#}B*3c(OT7u19ThbWqa3-f^KdmX*_sJLR-|zCi6~chlQnKTQ5vC()E9$1^c8GAMZM z*EqjEa?S+!orzcG8 zJw6KzV6qJ*Zkcb0GJav9z)~r%iobl4cP=VkhXHY`;Vn=}Si8JKd|*a)7v z+$i;=Qk0^&_ns3#ZGiOvig(+1$~)iV?K2kiU;_>_0S9S-0?X}*D(b(qVIrUnb>BNo z9i3UxVd+X{iyryJ7=zEOu5K8tuH>>Yu4HQ$pt!n{-2$rf3E|eGPNJ$;F`8fa892Yb zzADeVYk!7WCb<%tHbfvGy0UwY#N~+;a9Ek3@woG=?CVPk-e>$26aiKYwoSqiKzO)c z(M}h77bSGO4$sWRq{4}J-a`uc?_92!rd+Z(*wBi4k{SYFudCfNF7=@ga67@!Wco8D z29FwIXf=)$Ish2DMRlzOQh@w(6nrrw8i!HsqVE|`H!|rWG2Lp&xj%9RGpr5*1Q3BR zF*9DZUs0b7F?bd>_3SBX6L6R*HnhjK_ynDZy~r;r?Y+j(5pV#Y6kHt@L}5FL&~ZG6 zG`Y}EGQHtqhU=)HHq;%V_06oXy$#Vf5_uc)eGdTr)O%t2VG#<`-;n@+U_k6n(0gI} zsskeRcOu~UA#?S7Kz{j-kJ4uyyWd0fcO(!H^u3x7f2AKb`%5AKkD|V6qV%nsuQUR< zBdpnA{;^OZZN@3GYoJsDfo}x;v9g`mA1c0n7~yRRxY`Td*V~am$aTcjdnk#>2U{BQD0xDP}n){g)H002ovPDHLkV1jXQ1wa4* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand12.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand12.png new file mode 100644 index 0000000000000000000000000000000000000000..4e5946d44ac46652be97fd8bf394559a68c996cb GIT binary patch literal 1122 zcmV-o1fBbdP)_pv(aL15n82XUFK;z7Mj${eCY!Zy5{R zKlRCKEa0;(kT4OLnws{0PX``gscksQ`~#$=aQoL!r#Z9Z%6AnP`4q>sH%%sFFj z+7w%1D{>C_MdWzix)~3MBcuzO-0`Z5ma%No7+4ix%3)(8 zSaZ1n>PV+4O$l$G6F_Z%^#F>!Z9MHg-{IXe7W7~P4l@AOJ(Wml?2_n+io!UnYp<|gVmOrF~*gw>;e>5TdG~cr1J^k)}vOUs#h_Z znEWMY2#Buij-3fvkpd1Y6J(DihppcN`PANL{1g-c zW(~GY!Vo}sxL?suCp)JkbbJoa%!^5d6MMcx3iL5S>5eO4A<5l|=^~n%}XJJ#%o}xAZhneC+du)qO(22N<{G!s{YYZI$2LMXJ z)loqdR+9)F$8$)N3;iV17cOSFjtXi+y(6@~nH9FTA^Jul--i6Y2Y_DnU6_7Ygu?Vo z65tOEh}{YLE=*r_K%{;t0*)UtSI-CJm*4SG`mAI3dx(BX0s%qatNE}d{jk|z76Et^ z^;Hw4Z@u}-BY<~=H5<%77D}YeI7N01luID+ji5hPRulU}#n%rbyea`#d!hS!H4+H9 oj+okql8B6eE}*p(Q@PLo0a~59(LO*%bpQYW07*qoM6N<$f>IL+TmS$7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand13.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand13.png new file mode 100644 index 0000000000000000000000000000000000000000..32e8f4169b19c77fcecab1d936b7af0c4c82a712 GIT binary patch literal 1112 zcmV-e1gHCnP)6TK1=ZPEbCdr_s@@ z51lQ<64eC!*4C@CC@(LkiHS*i^QK>n)zsF>e&*?Yd9v}DnJM{!R903Mbd2#!SFX!? zd@ReP=lxmUIfVtgYoO5Ca@-zHHBUAH|q_Vv6(09_n1m+B3+GUAyUX|1-PKm}O;& z4Yp$EKu|=U@z&26AdZkOEH`4D7M$}L8xLC2GyA?<#F~K3J%@%t!BmVpJ}MOtzuKF9{4$CMYZvSUPR0_}dp*b5Zd=4Dizd3Z3y&7cFDCq%p8cz?8$rM)1t# z2B|xprZiQWbxr`a0oDU3)~@lix!-Nh84G%_0f(7@hcrNe<<>|AJ-xVMBcKg+-91R{ z9a+&~=}cvVy)KKvcNP~{ELLY~-Wpf3u?tXKovAJflg=lETaP-3DqbgOdgga%Z+Ur9 z{=T!cKFl(yg~+ra0wK|r-F>K1o=5?Ql?k%PlEaSg>-jVuYVR{a3JL%V7TYCZ2_QV& zuV|<9J+l%z-iK%Q#iYWCHJ>4c{C6%_NK-CV7;I=oJxMJAu-DaYj7xp!3*1gHG}`i& zl6{9QF|-;-3LO9p-J-hILMcH0ISPT;5sk~JcF{M+TN;>jftYSJZKPzt_|3Zk%?#OQd& zAx$pwlT07@nBh7qs15aw(E4^(xZXzSTZw%e^7|eD`l-*N^rIparN1Qs{=k5^ouJR6 z^i>DM>TgBB3qt1W`GEZLJ3daIb=-cB(BG0kNYM9cK5R=rYW5dJ03OAC)x_yLZ@%IP z;2q)22K$eN5@|C|ky``B5(s@G=#Q1n#QjhS^rHxGO2F4%=)T^J1VXMOrq+=pVk4jn eXgkGJ?ESw4XSzq2_Vlp;0000SO`D> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand14.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand14.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cf6d5485f432df1d3a4e05a7b897a0b5374ed7 GIT binary patch literal 1098 zcmV-Q1hxB#P)ZRC0x2ND)*nhy)S5BNr6{62ue%3D{^L zg%}9wOd%;!T3Q4fyAX)65ON1%V<{n6MY*sMMB*VijHU=tP7vG8zVE%^-`vif+T_8q zyEA|OfAi-5+1VTBKcgvu@$vBp_d=l%sOHFHZf!i{ni8mU96PA%>+8#zR4QdU(s$+k zSNVrIJ3BMm+r_BSxFn*QKr}WsR%f}ox@w+2ducu`zcW))Q)Y2-QGy>H9>_(sw|B~& zHXP&e8Ic4DL<1iQh6^alj{go+=ezA7meIP0E zr~;7B=gq{#gnfoev>~7#NWd3KxBvlLr(l*FcxagtNTg!1DAH;YNd(1DY>P1(NwY_6 zQ6S#6?8dG~Fqzz-juqg6}86!!^Qq()CCBXH^1-URF4lenj2e6!wPoO*Loj8Bp0SH+@W9jOJF3;pUi;7r1azPbBCQHlXatW<5Kl;xOFWY4jtGZJ?vQ}a z4fZ+qcCT<}n_zFz^i<5*H#&r9G*jrx1OT@Znn6{-wFv}O$s)Z!aD5Zb`qmycZoN19 zH@K7n?n&vg_DOsHwFq!VzEh3Q-ud!fnSd=xN~sde{#dy7w9y-u$KFq%zrSCcO-@dl zrKKgawY6pN<<3`bj_^ z&yN@b61}~>LZbS?sw3fD0u0#M*|E?3DOp=v^UnV0=*WOP#{lr5f6ZL{16sq9Q(12g Qd;kCd07*qoM6N<$f?gr=P5=M^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand15.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand15.png new file mode 100644 index 0000000000000000000000000000000000000000..da8af5a091b5ff35afb3278ac4faa779ccc7e1f9 GIT binary patch literal 1081 zcmV-91jhS`P)q$gGRCt`lS3O8vK@gq?spJYlND)*nSOgKgBZme862ue%30N6O zAqGM^Q%H)GmKGt6T?oWj2wovJmJ)(hlnWO@B!c8Hnj)Z_Ahs|2&Al1s_I5pEihS^R z@9oaceDkw^H|Rg(x&+cld-AUYVv3tEI9Q@wE=N82JN*B%_MOhp&uM3;a;5QPh*|>a z#Kc64E-te1qoYH91l`@e{1zD*6VaIp2_cX!EG+QH$;pWd z)@n6=Ly?b{<%jg@-dFy9^W`qB&h9t$%b3p2PRi%=+TPXGMPp-QG&3{9Bs2mW8ygfu z|L`d7ZGF;zgc}C$Q;z>vX`kCdW9s!fRjbvgZXu8$EOT>n>NS8+0#Jm|iYG4DQH79^ zGyq5;{%t?(ke>n+R@Tvkk&zJ&8A6Bjhz$NMZ0bs-5*tEPH#awxi~zQ>f=!xc!L#SH z{Jywogj4c}sQ3ok0b^hsKtTc>9gUP#wmz#|bR7s4olE?@UJ&=Gd zA>jiAbnb##Y50LM6`+tRl?sQ}k_ZuGJx&&5EJEJHHblJEkl17b_{a)F-)JiqiyR#&l6<0|KuFpx{C_u| zy%guH4QT@bOo!A80I$E@q~*tF{N3Aoo8O0rKiGI*UmyR=J46CwPEXHN*L>l(8aGH< ziVy;*gZTo7%x*3%(YOqbtd5;8P>LDmyqNy?)AVw|e@Wp*@{~LIMSeJ{KcyYvj4Y;jb2m zP=qoS?MkWyB>#92E(~zSxjyUwnNFy3nRYTQr4Nz9(+GbAnT2dhSmz9vRB^qrq zSl$S=KO1aqNY3Sq0G**aXd)mH2toFD%ib?W=?krTc4f6QL3cwil@9B%kIZ-y>5HC- ztoK%jjX)v_j6iCmB2l;u5t+m}WXT1OWVRzEvp4~MZ3N^M0dIYIMRYfmwOYKlwPE)T zzbzD@kbGMLc7Q(b${t4Fy zj^Nmw+{FWWR0l{nJ?*Cwg+w$3 z7_hs$tKV`dSzlj|dVhR;Odu~~0O+t+Gar8dMqP_x?d1b=00000NkvXXu0mjf8N=Pn literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand16.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand16.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b51220dd4197ab38e809c3fe43822884b1aed0 GIT binary patch literal 1152 zcmV-`1b_R9P)1RCt`lS4~J%Q4~HeT8RrqXc09UEMmkT}T^u5oj)ggu;!B2$PVYl*uWOD6kyUpg{cYnDRVo$w@S$)heNsd< zfv~TyuS#-tb(PLtxJpkRKcKs%*~9 z&4ofj2!xZ9ll-!?vttD}Ha7SP=V{!Xy-cHL-|_pz+cWfR8#YL+f=gF!@N<8^5)+7OkF2B}9t7yXIe;bx zYHFgA6_#IFIqyE;YCOpTFflPfqobqteQ0RN$_S7>kbo_$3Ku}Yu3a$8bzQVf1!$x~ zp}?utBwPg9j**3qhAVpb<_u)BdDE#;out9yv0!s^lL=xu2?+oZBXW7SK@=i=kTkk@ z4UDaD>f!waA@Rus@DewMePS$|&9ZYCij7q@6p(ISL4AEa{z3^(`;ajZz;Xz+0C4a9 zF?xJ`FE(|AA|hY8uFcKOPKWF3>$dSSnNzg8yJu~UxBs-x6@scJgaG||MDE-JxS?w2V2kqxn_eN~k}>MuJX#alGS zMET{5r~E|cXEM5G-84QpOV#c-Y+5@z1YwMEQyprsIwwj_#HelfeA>HbAFQPiICLh1f+YzA#dS` zHZ5=AJq=~AmgseF=(8g|=E{&u{y+j+A-xh@#`Kt40bcoo2-wu>{Xx|?@X15QvEIG+ zg+pCT5D}ny;860ez5lNWNJPG`8lQaX&s>||pD z0|PWOGeavYD};*+PCfm(?E*f@aX6Wa2kclIAYtqrybR&Ix3`xM8aUL>@tue3o4G?c zonubEAE5&ht*xz0B0jLHNO(&Cg|)Rc`!1J~`T2Qo^xNCp1oEN-z=pn>rSS`b2AT2) Smqi5t0000%{>`fP5&8%rrgAyfus zqZcEZl^>~b33iYtQx8K(n9JTQy$yz$;9W=&fH4nh#;lVU5)w}H?8iIUWNbm%{Q{E7 zBNQrjHp%!7Aii5*%5sFK_G%3VEsN+>B?vsziH4A2A{flRcHL4;T zGL^1G-!h@L9;9XV=l3tyd$P|fW?aMo0Jgq;4e{4H%K#t{Y+=U(0EwlCNrSx7din;{ zTkGopR_*WiPvw#IcIW%P?SjoRJDCPhDi)Fo@F18|DfaZ7_D>Q?bn-hm_z}F-UJYbN z2|YVwazG`5oH;w-!Ay)_i$LH7^ww%MH#k_$4d06x+1vZ;>h*euapd*#NB8dihwzTg z0Kf{dF6d<8oWOuF(oLEc1Uk{3N&p~qEE2V@;Mi3YLDI9scF=S`I>`+ZmEXDZ7h(V; z4YItwSZGXfB}5pqWeAYjnR)+BvDQ8d$|hk1Kpl&?s0@i2O66s>y5PNlp&hp$4i?et z!M|Dzdh`td=pv_JfJDZgY-aN6=8fx~N_*(&oB)IriV1nDu@$XluT5}tlgO|~$fG30 zTOqbynWNK<-?<;Wv|Y}QSz|+k9_fpbjNsp)Qkjv@fjmCR1$(j?)a6T0jn0(E&9Y@Pc~S+-tf zo!D>@fK>1jLp&8PywO~mc*k9TC;)kc5-J2r8QY^eU9Te-%G>>ZK1$r<0Pww^fetC+ zspirx2Uw#cS>5H2auh!XlaxuDyuRc3Ed+PbXFRCt`7mrqMnQ5eS0z+DGoxC*W&E!s&DBh-|AfEE>&L5m0i zTeJxmMr+B1xM^V!xDxs!)uIoeIR#22?pmnHK&vSH0>L!D<9!bAIdku*y)ewV=brOE z&-?eBo4Nm!cEx<{xQY%V&>k7N8XmT`R>FAl(X<=8e9@0r*S@$H&u0U%l0B8g0)ft^ z$SQ$NKYbkLCdO9+_XAjM#a0Al$yTi`^t%%M zZAfG(_+IO$w+yTFTqbkt58PCJ^I*Ku8IQgU@5=U|llh_iRKS9S_kaa&wOSrr7V#_v zR+c7r+=x4IFm^j#fZB&h7ltAt0Zw-N?k(>Ufj*mC@L;J+QHU$casyF*q~H>8kS9|Q zLr9p*-YmThz)bKgrU=BChc#o?m5Jurk9ByHu_a~qi%2Gm08s2~lJOowyvORQoRG*f z09r4iQx32ZQyt7XY;V zeb08mb`?&hfsJoc0iFbND#gCO)Bc}Ck~{hB@BawaYOe;uQ9{qom>f{-kTYk8Jei5{ zYY_>oz`cz|!wnDT1@OJdBfGnQU9;Kj0!Lmie{}EOe+bWD1_D-ybxEd&a{>SZ(o5Qw z1Uk{3N+2M1ERt(o$+4>@f~04M?V#y?bdnn+D!+5*FT?~$8f1BEu@p>kB}4$(GK9$N z%)Ec6SZkjpWs@)>ppHdcREES1rLr>57rYgCXxr_DgGKK3fwr9E_Pa!R2*Axky3qP3|Gbd$(|Y7ZFGWD*@tP@xmI-rHOak^@kFW zMJS;{a4BPZRHy58QbizC1d1V`D;5e14@61G9G4Ig(Z$vfhz_To1e7$29kr}+uSR5hz8X^5 z`lEOtTvBi&O6cdrRkvBI%-*87^^$<}eygKOx(L`WC7KXQ1&$}GvRYNc8bk-s>RR2C yu%BZ`@_;^8G)Cxhw#lSInL?g?(dD$)dgLFNw-EXY*-j1s0000sWw^@XOWTjZzNU6+1vQjAn4aI;GIyjAmkcz0WrXV40nNX?~p7%TN zeK%*`yq6gl9!TDsd(ZvOcfWJay)y&yKiS%o&qSrWe+0e!`XT@@z9*njj%z^Qeu8Ha z=mK_t0MqyL#i!J#Ts|y?LP7RDSJLs{e_fO9?QL0EX+}%`{3T&~GZV`a%_0z;I(1rK zip8R=t=*DF>j_zlMSR2}39rD$ z#vS+nPR9b+==f3aQ^4Wj5m{gVMddCuL|&9b>hnk*>KF_@@EskW&`qu`U)AyJ*P9(1 zq>(`2+nw8tLbBR^dE!mk15-o1scSh?pw zQbd8)I*eT9xzgMQ|wPx*~AnQM!mN0iSzFgEWw7a+-B4 zfRsp2mZj&=lEfe;Vi=25fogR^TCKQfSYQ}i`uRtFM^Ry%0kC`Q8VQ(rV_L+4a*j_H zEeD(sxsu>TMEbkCHE{l0tCgHtl(9*e$LHvb7d2w z{@X2Caw!_%QCpU0y#ws*ji=@EYxlhZ1VGMf$gT53j%%&}OGX`HV9nOneUCL$`O^o7 zAtqvX6(QSkrgF{);Q8KY|E=#!(%D-M% z1L@n%o&|IJhY|_n6qKB-xXmJkeb=5oIU+1*st%Yk_@w)t-wXbe0t|p#kA2S?KrsIB zNc|9rr~r(0U7A_m=_(zT4npTs0a$Gd z_SqLeSOzvWHqGzN&#*+1!ko47KCt0PI0c;Rp5A_Y`r_FW zah@A2kZ+(>=cXkM932;0U*b&2+S}j1Z2nm%J5V6cxLBH^x{m&+Pkd5o-W8_e>2N1yXVD^fXh+>4_5ejNgR~*km6{{6yf0iUEzFGoLqA z{NmPbn$X!6#cWk5RuW9WuVur3C`*ap9|y}f5`jpcq?=Sq%t z0g7uZ*Knls=?XjN_S3SvyDiVhJAa2+F}D?&HZTwpUD@N8)AB?Lm{!oo;4(WulF=aHpTUr#c{3zZn28pv>3v0r}-SK2D!?+G8Jv2vWaA1Z-<6yRe4_&N&R t*T;bX<(e_Ijsy|QfG(hu6jQ73{{hSAuC_jmLXZFe002ovPDHLkV1i=l0ATg* zR$~F5V}XQGV0n4P`@Ir)fUUi|pZN)3OG_(NDqltJc%JAYb&Ag}?Z_G%`>=0&cb^<` zVP;C!XJ?Cn1HwSS@#Nl<|Bg#nX#UM>1I)ppN|dn=`!38B490sO!?IusIM-d>y=M3M z(}xl~-Jd1bqgF0VNE-NbTxdP9BlP&DLzPFX^x)VDdi(3A$v^v~`m*GBA?Btg1aJ8E zU4vbmnU;bjodRv!+cg8k0G)%^%^t6#7*hqWIM1J=q_2pslS7A((uc{HW}Pvcn&Nw6 zMa}`gh#c>+%rig8-7&wCu)Z%M~nckLq91WfK(8U_VZ32yZ?OUda8GkcGp z1qLuVhB7zi2cn!WBMK~&@v8XCN4e*s;&lYzs|6I;$J4SGSA;IuH~?HzfW0 zoKK7~_?h+fErT_ZUNym$?d<{-*GRe^Naxcw4$keTZF6&7uJ@VZv2pa{gT4zbAAfy0BZ)@CSeFb9`0AP)8(;ck&f4KGV@|ma^jx% zkV5{uR4R)6rF4C;p%wKcH3Yz3SGyNn>O()k?Sw$(>}N_%oHNAGYOEAG02sPOb*%+b zfc&!xzL^n?hf(d~?*-5HFzGrm-D=3WKXL^#tPTPMpg@?J8L!%}?oWmoP8K%x>?vv! zaF{7J^oecr2|5vbkzZ8$^cq7e-~d25xLOscu%AWvINpIYxzJBCz2RbpYgJGi>K&o| z&8)Cb8{%&)@@>dN1_1i1_rmfqZ>No-+J>kMgZ>!Yc`mFER;!`af<93Xp}(U z8$o}p>}U3eitisrcwYjpK85b<{YXG^t(dwGB@wBBE}*|DrbeIt4d+C%+XsV65C8xG M07*qoM6N<$g1d4GBLDyZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand5.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand5.png new file mode 100644 index 0000000000000000000000000000000000000000..832d88cba3e906b27aa599b01d4599fc13e5057b GIT binary patch literal 1093 zcmV-L1iJf)P)}L*pcfMHFTVBK}|oF$`YsoO$2vyz6@^)1m`< zulJnyo$sDs?-`^2EcFs_BhHL4n=aB`VK<8nUPwym8#a><36 zNjaaLEe0+K0RhJg_rCnMUA|89Z{HYTc8;h-3EQyk!pxMx_~2t$5=;T-x}&q(XrDiQ zEY35%IdVN}<*9K=1K*Adtt-|*uOBwh+SMuzUO7(he*ZH0XPb0SjvUX$+~m064c@(P zu!}R(Qm~{`pk-&LYJeD^z5kZc@i~eyJ?a(b=qVc7EE*l;*ol+$apI*pXUxXN_e zbHFbm$GfeY_kcJ;y0Gksaay2f9Xt11((%q+yNERblY0&ggMz6zw|bgG$>|9bTgT4= z1DNbXi5v4BQQj{s6j(OvRq@wPvge}Wb2#AD0t)DO)kVu#Hfap37?^U{*a_BBX^Muk zS;|t<+m{4TJ77D2VsAUode0Agdd7kseBi=Nz(E>d!17@342|8`HWAQ{5HWN^%HQXG zVvNDhY;0^Btf9=Bajs;47ofO?GBrm!pSG}bZa*zsTN|=I+Wb4r@|pF}v>^fk(Um=X zJ}E0wz+pxBm|SY}r|9)d3b)VuDX0Og8*H0|A%O63zoMP4jjTxM_#8JgFD4aE>{*8t z^53OWQNmx!)CL<`QBP7s0PJZa8%BHq4f9#Lkz9PkwOOmL$|1|wLl7x ze~yALW<=v*RJ+)F&U0N%x<*X58glNBT)_;hg8%_UAWY1RSM67`CqoQ33!8fO6txLB z%oGZJV_STJPJ}MKW9SGt08j?5jtZi1kVM!x-i0)|&`&b0a52MmR8Sl09ii>b ztgvqzVs9k!ZOB6g0D9HBF#E6wh1nlUKu9$F literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand6.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand6.png new file mode 100644 index 0000000000000000000000000000000000000000..6891cecaa421db3791103cc4eb3ba27613dbb731 GIT binary patch literal 1103 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 FV1hSm^9=w1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_chassis.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_chassis.png new file mode 100644 index 0000000000000000000000000000000000000000..b94f935a073e052c627c6311a88917aac31a4529 GIT binary patch literal 1022 zcmVOj z_cIIFhDIltp8%R-k)k*jxpNhwJ2WCb=X5G#k_r1HzC)wqlH}Ivl8mpd#hCoQCLoPf938W>uV1~8;I}49WD;u8^1PIR zm6)BKrGtY5>gnkbU%Z#gW$|GJ^5Z3nk`UjP=EY~`>2r%6uddjJ^=`wHle!JY03%b6 z>>Q7CAT}ng714cirSmF%U3_Q98MCV^*Ay#w4x~*aG9^HwkZvqjF(!d|o=byADVA}Y zSQD_dXK5JJVVda;mXgckGtZpeZouRidR`PL6vnAqUACFHV|{)7GL8WJbbvB*{Ny#Y z+K$C?NdsR9@C(bvLGa|ULZM(9^Hl-V0oV_qcz1&*>m^GhqGMpJgVfOp2et>Do%H4K zw^hIw2uf&mfWd1H)Afw?;q1%?SJu1>&|H#TZAX7xyyrXn>T}`f=unmVjk-RbcaFpZJ=z1hO93E(uEj^6-AecDk{-Dbn#cGQ)=n0rfl2L5)V8W0Aj_ z`d}++#Vi4^*Y!+-OMmDEyqyqez4U|f^EWLqY&BL2I{+A3G2LsK5}^L9LTV<{6KN(m zRyla-E|YE$(_2k7sFaa0eSMH200n%8qgijihCgM>;QMs5xu>X0AY!JN&>6dy5{v?K z!JClIUSntlA^<1{qg8 z{he^fdY`#t#oLQDUcVBf1AXvyDq z_P0d<8HH{&A%Ew~*B$|UBb>9r-gJ~nr*nzi9%z?9=8m8*D;Jr2QBm8_+Xo>6#=UHy so)?jTn+a07*qoM6N<$f)ME4W&i*H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_harness+o.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_harness+o.png new file mode 100644 index 0000000000000000000000000000000000000000..09c1d9296edcdd3551a558c52b67a6e8daa74432 GIT binary patch literal 737 zcmV<70v`Q|P)Zj%l@8>=O})&E)4e$!6^{$L#IZ zJqh|-U^(Ru^lj??1KR)ciN`{2TCdj&03rsl&DxH}`08T#%+mtxFieeH9i_YTMN*Em z#?B_U!7OcI$1+NQsnoOh+4Gn5cJ)o@qL4Ys zI`RV*>r04Dg$#uNzxCQ~D7pNGZQ4NvSPqZ^ph6hy_GhX5sI^;ZGr&)$s^ImVn+!xeL? zh*%XcOFTAqT@y8mKPkI;OAEss43&y=0^$nb`(0Wf<%fa1ID^}=FHBl;VW*&6F4M-w zM@`hfs`~-bhNY#4ggCm0Q{Vzef}`hVyUtrcoQ%%=KjDA3p@5-)p@5-)OBe7L$ERF) T=t}Y;00000NkvXXu0mjfqBUIg literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_harness.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_harness.png new file mode 100644 index 0000000000000000000000000000000000000000..75bc46691edb7bf3bb9aad1717b9be30c553b29f GIT binary patch literal 737 zcmV<70v`Q|P)Zj%l@8>=O})&E)4e$!6^{ z$L#IZJqh|-U^(Ru^lj??1KR)ciN`{2TCdj&03rsl&DxH}`08T#%+mtxFieeH9i_YT zMN*Em#?B_U!7OcI$1+NQsnoOh+4Gn5cJ)o@ zqL4YsI`RV*>r04Dg$#uNzxCQ~D7pNGZQ4NvSPqZ^ph6hy_GhX5sI^;ZGr&)$s^ImVn+ z!xeL?h*%XcOFTAqT@y8mKPkI;OAEss43&y=0^$nb`(0Wf<%fa1ID^}=FHBl;VW*&6 zF4M-wM@`hfs`~-bhNY#4ggCm0Q{Vzef}`hVyUtrcoQ%%=KjDA3p@5-)OBe7LUi4ge T+>*h^00000NkvXXu0mjfvN>Ce literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_head+o.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_head+o.png new file mode 100644 index 0000000000000000000000000000000000000000..2e87f14fcf82522e6532587ceb00604279e3325a GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5C^+BK z#WAE}&fAL{xta|G*dD|eoKcS0*nO92Y4GkJI<e@4y!^`b)z9$`zw{sjrE5u+t*betruLysdILD=7i6^i!@A^ zUeP}AG465W@;lNof>HDNHuT)ya)39zlD*>OQl^yovH$;gGX|L6lG+d{;K0Dh0w;De Zr*Wkze|dlQPAAZ*44$rjF6*2UngBU2RdWCU literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_head.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_head.png new file mode 100644 index 0000000000000000000000000000000000000000..30a4aa31f931315644afb52b81e2d75f61b98894 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D7e7W z#WAE}&f7~Hxta|G*dD|eoKcS0*nO92Y4GkJI<5-S6H)F@OxP+dA3#~kp-rO%ZxA1k`$M}{kChyOg zQYp2IHN1Q^|H@n3%eMJ2rM6ky>GfsCX@#@Jc0AO1&Y-_Dq~XoyYxeJh7(#ltvE_)d i2skh>vb^D&!MG?>`OBMkPXd5$W$<+Mb6Mw<&;$VUuvY;9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_arm+o.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_arm+o.png new file mode 100644 index 0000000000000000000000000000000000000000..0c168d0cdb1831c22d3317dccbaf9ac952c494e0 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DEQpd z#WAE}&fBSmT!$P4T-6gqZM->Ha*hUblr>c_@IPX7*&uAwdV{NR!e)gl|X@}JAqge4={5*X@PFYw(_*J&_2&83<4xuDSM9iymdl0nn5$`eIfr=I?) zu<`3x-il%`7RBG6>WU4QybOsb5V!5HfT_{z8iefv#a_t(8~;-u6{1-oD!M< D#NBn< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_arm.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3a803f54d05fcbb927cd3ef0ea6631223a351d GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DEQLT z#WAE}&fBSuT!$QZT!RZjZM-!_?sP2|xWoB~(WZl4;NaW`nn%_KXxMtc+-7z-WyOnS zCub-2G!6UT}I7Q`b==5xwWij=gOH?iaT4t}(CP z5$nI^{o*@}`RjxnPwcC)i{Z(%V()Y-S2!OY5L#Zo?)9g|--;Pb4taMx`|@m7F@r(6 zIP*;YS6U4DiwfTypJ3XQ)bLR6K^LpT&&PZZ&h6)D_;fsdxAg_JE6fTUJq)`Q1f?6S z6hzq-UiRMQ=X|={K~%xv!NKyxNwx>fdRYZr*%BDoJ}`Y(2tFBHIC%rm(+r-jelF{r G5}E*M+jdg` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_leg+o.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_l_leg+o.png new file mode 100644 index 0000000000000000000000000000000000000000..3603c6df8bc2fab5684a5541876ad27733cf189f GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0tV? z#WAE}&f6)DT!$QZT$L;41!?Slo@lG#(8sy*-e=x1O;r7=hd>_5p zLKOEgZOQeO&njRv5oLPtfH94s)$+xz>G%KN?p(lJ8RvBQ&hh=vwW_7Km`*Sz3E!() z$#5eo%K2R5i325yE^oiNuTo;p>S9WGeX;Q*4Xw$&)j>TUwuhr>gU%fX=69=g+T6OtfrZwrF6^U_2BN?#S#<;kE?(IDxN$k+C8^1SXj0+s>OqF?NKUQ)g4kB^ohL;eA^htGAy z86u^RPbfNIWDw60*#1mJ`*ed>7Q-ev*%`77YyFKGPVIN#5^(QLZ}=9~`H!*Y`?tSc zyqV`4iPbje$FtGn%%4$n)4s9wG1^So4)78&qol`;+0Dk*& AcmMzZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_arm+o.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_arm+o.png new file mode 100644 index 0000000000000000000000000000000000000000..0000a1a5c62fc83a044f0aa903355cfe710c2657 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DEQFR z#WAE}&f95*T!$P4T+=jC z+9}IUehNNw`p?XpXPz8SWMDIpWSD=Z?E%-?m=PRs3p7}!4SXUJbQ+dCqJn`s@;vkacDelF{r5}E+r0(1%h literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_arm.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..4934a7a277251ae8088ae72bffb47b03d21a75d7 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DEQpd z#WAE}&fBTBT!$P4TGbOoZM->Ha*hUblr>c_@IPX7*&uAwdV{NR!seDO*=ePRHr+bY z*TeC7mQL`KTI+i2M)}hWJO>#5Ngb%|NR48+SF`tKZ{x4J=51?b#g#0XPhS=LwXfM` zev`{ehMP}o3OE#}uHbz6ZN@)`HAX7TQ=T&U9se7>CUf1I|0>KA0s}*C)ciYbD$aPo z_-x;q#XGnf4jcBoIzO#KIBfGy4kwldUysEdO9R*s2whMKFkZ#b-6Ea#qy;P}zKTDZ|NS_gMtM?vqpa?H!q3+BXa6Wd=`IKbLh*2~7YF CiG05R literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_leg+o.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_leg+o.png new file mode 100644 index 0000000000000000000000000000000000000000..21887b6dec6760174dd6c15176f74478aa5b1c9d GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0s=! z#WAE}&fBSuT!$QZT$L;41!?RM^;g^>e1y3|fM21>`e1NJ^umCug&9qa8OI$JXXbq} zzdWh2^5@@~eu*ip4h$?XRKfHhdu|V7!|Strw|?{f+ILi@g`Gh!{PukFXl8{!n#JrZ zexLpsAoE~t@y~xt(%DLCC$Ji`zp7%4E%z>X;# z6j;J@lX21$1$A+Tw+@~Repam?jG31*L|iFVVvb**9L%tB&b2hNbb+sPS_*zkzhZcH a=m$eYNKjLim~AuAcMP7celF{r5}E*$@MjSK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_leg.png b/Resources/Textures/Objects/Specific/Mech/durand_construction.rsi/durand_r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..2daa3d391941cfb7a6eaeb05d62b557e0974a0ad GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D0tt~ z#WAE}&f95@T!$QZT!TN@EDb2op667c-ogGsLC%4tylJ_>cBh43oECGkEjpK!X5<(6 z$^5cVM*P1&C030SQyJJ27}zFoAF#ci#lx^YDu3bb*hC2{aqfkz1>H~GzB2GOH1h;m zHr$=>|N9Yx{@l<17RyOa__{zx#qxql@r&Qx+pE{LYH>R3bMQIf{x+H+N7whj#|?{T z@5+;0^g?11v&K2cHCGreHBMrfQo{4Fn$3%G!iH>rwncWwPcr0Ku6tYJrtrv0Lg{p- w2D60pv59fd@qTKoLynRt#G)Pq2B_ZSe z&dxVIGdr``#*=L4{yN|HopbL!Gi{bRT3dUoXZzRwnrfO0&YT2*JbiaYQmK^oCnqPR ze7WS!MZ~NGFzRdTc8dIYTnd8&Iu0=yYdhOpo1cY{KtMF5Q6S9wB>GD|&{Y%SEOn!x zV-yD=QQsu&X1iePOE1g*1D{Bz1Gj1A{8|^axMCOeFXbd4-f4`SHP9dAgvT$ZnoAJhKkC$>mBotEDG`=Kb~$Sp@`3oyWm zt@R@0;q@CNm&?iS?>#9Ni|T_hSfx_YF{FR@{Y~2b_Vg)n|eX{D_ z)gckE?XSHqAAGo1ve~S>y$T~)iL0CI$G0d3{Vd*tH9OR``=tM>Exye{G`AaL{v!>x%L zNF0Xx1GBAlp>jY#CJZPa_)}B3JCJ%xe4!u=UKhW*0$e7DTmyp$mSl?!uGm|Ey@?|S5J2MI@r7S{+~0xFoD<=}pS~19?8IBZl8nQ1@ZcA< zF}DpiD!bN2o%jXB)EA2vYJwdmu%c^YKgpIYTN<>BLlc3sJ-tc9%nW^^SW#>EO*k_0 zs}Z!6{lt$?W{;#GgpU<*Qvm=k4xRTHffb`!z_@>a>IC>cBO^0eWIrzbu>vT*r&6|LGQ3 za(?%-68a~+VI8nH#rh|SXpRC{2e#=1@+1+KoO2)q4g=yk>-#S?J#btln`I9G0000< KMNUMnLSTY==u4#l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax1.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax1.png new file mode 100644 index 0000000000000000000000000000000000000000..064c5734875680d10577702f47e0209d61209151 GIT binary patch literal 1242 zcmV<01SR{4P)L{_ZqtWW~sC&nfcBP1%)g~eh*r)rpr!8${%kuDlBG(s|UT#)De z&b;sSyf^O+w(%s>cmK}!edpYJ&wFi^C0b`!%Cr5ee_d-?3eJ)QfIM?&R?_LT_UGp2 zq;j$BEk(ql1TgBW>vxL$c~XiK<2nv880$PcRG(jjkU&5*rBNWv`y~2HKhRef;w*i= zsACidAyMBX>{h#A+e69HtM5ay_s0T4@=Z-g|QmM$7C%@4C6OTVBnM_883h#%aj3c)kp)J4w zC$=?;kcT&HlzcufyT9|KR4S`cX9yNsUx zTAq7$tImO}f8!>d=UQ$nFn|S22p~u37SPtLxmzw=_*s@MOKHDQDCi>I0s=>$Fx;A` zfy7~`KQKE}%asEHLK&bPJNBtQAp*8?0<0n1~+7lB$ zXnVzqTXikS+^=4ku3ZT*$Mh2&FHQvtb+805XTkGOs+7~>ik zM6e`VY;eWi0_;s3Ie-8X_l__AI^h0}hvu9J5B~I}2x2GR0+wVPp5ft7>SJyjY*cow zi#qWOh^a4?&esK}>SrOkHujTj_3BkYyEJ(vaJHv6iI|z8PZTR^O}`1Jr++tsR z@yYCw6ol}xB5o)E;HAlP9wV?~Gz%E_4^V>u-)DMyA&czCr9V~xMOYFD!ZW|_UbGXV z0SVV2dJ-lHP847b6_L?!OPU$hK!o4+E?xSq=_h(q0oYSZo|HzKKj(1^@N+&*|6xfK z0CK!y`S!Ez8yQ~N5x+zcO)~%xR4-Wcll%Yjixq(A`9fI?u{G=GV|oAS7FcqA_p=iE zC%kDLus6l}Cy8i{0$2yO=>+m55tf{DAOsEr;yUa5FY%&k*`9auNdN!<07*qoM6N<$ Ef{heEga7~l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax10.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax10.png new file mode 100644 index 0000000000000000000000000000000000000000..98f3307ae3c16beb667e6d91cc33a2ea4dde1759 GIT binary patch literal 1386 zcmV-w1(o`VP)8{1;y3Jr?IDAn3T zebkuRqN(`Q?t?!sw2=5_kf&m!R*jLw#;A#{Ehe=#HUh0-v8LiK5hG|wiGV=Btr~%4H0DMEkx7|0Y-r1L!G;*X1PM0+80blr%YKUl3}Xh2 zlFGIZ?2k(-m6Fcaj%$DCqmM~lU7ftq)9qPh5V(!uNdXib*yAGs;0KzwOMQL496Ikv zB9TxV=pai=ORAgSc0dlr3bg(8*)xGFx4}IGo_}tiy!G}G*?iX)4+%*73olCVn};PD zjmj&Vp@~Y6MCFR4)1u(Cu~SRm#PSfJ;^GhA>${?&!Zn7Yty}6PnM_I~5^(|1hxm1v z3mXE{7kv}UC2+o=O!Kv^@jm%>;2UL%eA-b+o24x;FKc*9N=oFbGpD8fY_X2@HlLQ3 z?GNfW=Q6GE0blS50>l7jL>9btVAG~M<Gy2|P5Iw&0-ogS7?eZC}pyKYj4 z07oAy2l$TGM|94q{*$tIcSt6Br{w}7X6D+qc65R9@~baN+tl>cLIk;N6lTDA=IPz? z!H4f_j?T@Q0@P$yP&ng;thZT{pcU^_<;hH_P5Y>+eo|ug#KP6NwM}c}pe#yLQJLI7 zazWr5;Fq)D9s(4G3S|^;Dw01w;=sjT80f%ypex~kjIAtAiGMU4IKpFoR3tPlj6V!_5ppf46lel@r}jO zzRwhpBZt+XZ`WFVLs0clU{D=V*-#zPhVZM%G0wGp*uFs`Fa>qDM?7a1hNx(^*d+QJ z2BdYcaRoRkCLRc@q2Kok0$_*%d}#PlA^7O%s0(hd7~l=J^_zak)o~64Bv_Jd-@q~{ z@DjkzL~eq>;RsIb8xM=q;Lok*cfd1dNI0;kElJRK&Qkyocub6!3fJ%R!dHZ}>C;6MT>$$Ezy8Fp7-lhG(ZpWQ$!2xM)>$HfI@AMc>c>WWIp z2{uS#WLU#mzx8gkC6@q%bFg|wioV(cY_54NM@8gnn38;gIUtd3I};PX!(5Ps*pCeWE(MeJyEeY4+H~OxwTv^Ag}`fD=?N zi2ur+PlD|HyFV`h{FC7a<^KTNV%x!2JfN5b62Ms|IPd+egxMXQw+`4R#kSA-bn;e0 sRxv*~jR2mDgbmIy0KyL!#Cf*ue}%M-FE7>L1ONa407*qoM6N<$f-BLO0RR91 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax11.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax11.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c5be80890663ce999ffb9328af656a1f43b15d GIT binary patch literal 1384 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax17.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax17.png new file mode 100644 index 0000000000000000000000000000000000000000..7c33b55f170ca0c8d35b9de84c5e9870e8545dda GIT binary patch literal 1406 zcmV-^1%djBP)+2*V}AWGoiP=nA+~*c zpEGl=_kHJ`vGu@k-}l~op65B|-uK))8MI5w&dDjhCWK_@z)mJ$m=h=ApS!UsCd4%N z18%b~CPswleyOlk296!Qm+I^5$?x~m($X^b{T2#Z0Pa4VPGm-FrkkTb|6VTlpS?P( zGJ(tlZN%kemE0B;9Z(#jmww#N0IapOm0o(Whd%tMog$G4`FuV~Pmhs_$@42Oze>Si zkj}n4#P25_e26M5E9w0Y&L>1Ed!?zVi98;U;z$tC)6+|DM^2L0?^PKP01zVzM1V0n z(Z%nE%pY0iAbaq=al@c+I6{MiLp%nKp21$_s|2*Sw{eRU;kU7|L0|M-;J!y5ew5qN z(o!DV$#QaXsJ8YF`sUlO`Tgnk4(@{?3*dU=&DX60q(cm8mJ9$0(M?WHF))MxNH;9o z{QNx6fk_6CJ&-#sj}n00h)r`(Q!|}D{Wx`Zce8^4!1nIlLuF-UR9IL@(P)$jMFgJF zhcQ?v6yg@XzyQ{rwRP0l*-8EV1N4(`OnqIJI#5${h}*`-Bb1q$r6xig2oRl~1rUp^ ztgNW$)6-*R0KOuzAEP%_*PGSb2G!WR1esS^lv~zXVq5=Z^q$+Z%wP$|ciY?8#y6tLc z$97zT#pMM{D~1gOD=I4DZ~nwPRdjLx40W_+(JdYSP?t&0eQ(WhQCeDB;`u*MPN{CS_4CFE&OL6A1%jjx}GQN(TAmIM{ zj`L1NN%nfZys5fch9Ql|kG346OP5FKh_G z*CRgj{0rP-ciTnirjzS_U7viM6x$*|J|n1E!ZkMr}Ct0|P$d3#^5OWzMMmw&ZvvgClI;zDx#? z@0xE#HZr@fy0)1bt{2mr9@$jcy+ z3pw7Oedam(@~d7|O2trKpL(*5KKuMrOXLtCSWX#p%m60p1Q3K4HoPHoc zEq6*K`phw-_&|wy>eZO1Umlg0S0EcH|F9$#0CL;~aWt>4{=tzu)pFhRdXG%x=NIsO z(!A0o6_GLnxC>%U3kveo1v6DNQUf3Y#K;2nLn?C=01&DBI{~B;FBZo#{?}Kalgq(^ zXBg@MzKCR5fNy+`A{PH-A~Ng%x`RB66UdW^(8*;Cgus!2WS;K(AGz~xn+Yos?f?J) M07*qoM6N<$g2L&h)Bpeg literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax18.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax18.png new file mode 100644 index 0000000000000000000000000000000000000000..1411d88dca3c6da6e18ed32a604de4ab497a5f0c GIT binary patch literal 1428 zcmV;F1#9|=P)f+kbP-miVAYO-84Hp$8c^M!%DUDXw{Pf77cp??8N;gM;@w0T+ zJ9lH!%mgyyRpZ>;2ZFGH6c!ZoGbd-S>Ep`Pf%ObP>g((2tvB1~^Di37@As3-<)Zj_ z!x=}SNGvQY@%Wv$-zBftOXohl#P7$CJx#^M#njr`Zt99ityEW6Q(9V@=_8ClTU$GQ z>_0*M?tU`^0szMu8EG5=*6fb1U32kI*ST}Y&$jpO1!-x?Pdz=Ccnv<+R3l}bi z0l|4zRyuwELpSf^=;#=gl|9Hr0Hh1HZF+i|bs(r8t_daG-9JVp%LGCd8+^37hEAP& zky=_>=(o`k20#sf$gW*Gsi2^Mva_=(5D2hCA%QXGum+i$nqnK+3dTca<o z^s8&g{JJcCptSS=KdY(^Q(|J0si?q$aDeFaEWokI{QSHbeSEyp24IT@g}?+GPvBZI zAmZ`-ZjP6h7Ws+K2~QN_o;{gVQc_}O!QpVQjvoE^_&D9Zy>5#dFt85L*qF!S!$QEZ z(_tYZseh^GZ|XR4KhFdB?%n^mK&7ZeFelY7V%Qp6k)EDuW&yrbcEU3NrXJ6F^fNPm z#+@$@?`Ci^<8xAO-m;;mjivcO&X=!uLpyd@1{i40XL*V-3J8*ulS7w(xvIPgz^-W$mbBK`Ox zbb%vOcWb-qlI=#b!W;z7MIT#ucF+-Qt_?7zU`HfSRdtXn87;ZLzh4#AL29n;RVx8r zKT>;?t`1(I!|D*iIe>k|7$T>ltcfnRqgnN^CmwIGVP|7|tpuPT%=L)RzWxS3QQdYD zy6DbzyXLRHjEZd`AfFLf$~%<%`hMY}+qW-|Zn}r95f}7^-jmEZ5PZ0zk~%s%`D}=W z9Y&z5t1GUirY7h?sVe!oub11e-MN0wU!Q6SS-ULr&;^NGw|tBNEEKX}!&evq$k5PG zoSgroa_Dmjv1O+G!?3=fY4?ZIq` z0QU9d$rpHx(+>{N%OgdGIkgtd-J7RQy;61hWl&*Z5q{Bz?Hq;la7BVl+!Ve{JC z^E>Z*9-jMNknFeJ-RC~fbAIPM=Q-y*=UVhXke-od*Z6&upP9?%BCWo`}n6bbh)yK%3FKwo@?WC%FV~m27I)oz~2Ad zR=t>W=tzPP1myRs#*4JV_b8E43^Y$JqJWyqUu?0Axz|({et)mlp^UZC6ga(rZVPVg{C$AkDA=BprN_gxm{!mXpAO1T{X9xLo-Lu$o-n~6pfoT+8;eWa zwJf#wPc3W0tD|IX9$B#~A-M?-Bm|d<&B-xd$Gw-gc2jXS(dd#H+P3or>IgJBr^L9e zNv)00BwgXXfRADcr#5v!x79su(dqCgTZA}(H*jJTNB_P}FE72H>Pm}f_qS6t_NF>n zw1cd@TU??J6`dKhbDh{nr5r8hy}SfQ@IH!_may#taW?l z1mHv*hz{sP8e4B2Kg$uTf=+^uH{edssbGsIyG`|BH(-}$#u

t{*2RJvtTdcH#2s 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 UTogv;!~g&Q07*qoM6N<$f*D975dZ)H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax3.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax3.png new file mode 100644 index 0000000000000000000000000000000000000000..cca6b2de54f7e26970716db1c508c173b4c1cc73 GIT binary patch literal 1363 zcmV-Z1+4msP)uAo{j*D?Yx?hNBI6S9m()&_ zz3~<&;Y<@mf029JibRY>X8Y7fa!J!hOzhI1RW@7{T2pRaeWdO>_4noHDuK%6OdBzb<#r*47{CMxw*nYQI^JON;D1<47ix z(HQt(`Fvh|DF5C>mA1b-aXfJ4Hn@kt3(xP6x86P^Ywud;Apz@t@g;fV&4Ut;$K}9eu1(G5nT_3K(Bo6Slr7IOj7hxvV&ix>hk z7jqNKC2*#yUiWK5+kJAn_j_fE{j{r4FiV@6nbGpr*4E0m$G_3Hq`mrjNtkxW<_C0~ zbGfa^fn3N50>l7jOs2d#ux8Dja_-zOvUF)!`>9k)UlqP3Ow1?1PyKsEBvce5zu}ad z92$?D4dG>q0Ro;1Fv;P=pQsZgU@KPK>T1KU*&(?j7MIb{G3`INrBf2e(i(?$fB%o_ zZ)#eua{*?48b3KT?&c(hVv+#F=H{m5&c1znWcTjZJuIL6A}>AL>NFw1k4<0I;G_Y6 zsB^2%Ihy|3-Ht6XrgQCBySl)5<+YckYjkW*h+r3u!wfi2KlO}!_|XTtN2e|s0ctlZ z2#vcXOW;qasCY-yUiA~lDBjfE7OZYxB70=o5UZDsgFgsz1N>qM+(UrIQb9(!|2ROf z=H_Mvo}QkMi$1dr_Nwf;X4MYc{&AK*lQ~-?94?*(|6C6NULaPj zTIu>SgX3O3Xn1REqXIG|;1S${X$QqBOvIaoa_#avwh zF$-SHp@>`!x1^F`4oH;R&V>uVSG=B=CE!1h+=5E~e3ZrK=8*O zdqO_@{8RPW?S-tPW0NN?VcP!FUy%Uc1|)%c!TeY5N){C7Km8R6;6E9DQ2r0FZFU@T zB?H7PkO1Cgg7e-_B`lrriaKDwDRz7*r&Cc0sbYR`1_8Vr2^*Ya07M=xi1X~&{{R9l VlVhAU3s?XE002ovPDHLkV1fiejLHB2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax4.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax4.png new file mode 100644 index 0000000000000000000000000000000000000000..cd98f134f5d241ea0da87e09763fded8b46c10ff GIT binary patch literal 1375 zcmV-l1)%zgP)Y-X-q@4g|^wc5S#0K zXZO3EdwX|_J<0aYoSAdJZ_dp9?zBu6X*IRgj@_TUJXNxoJc}X#@WxeP357!1pO~1C z^!b#t7!ub^;Df50oLK2qZBMS>A@bKzN%Z$=A7tRGIlWJ-vUhfgbWHz!O=MgG{*u~> zQa9e}M4f4Z=r43%OOA-K&}>3|Bo{Mn#Dp*XSz;5njnyi%!MDEfqI~#Kw=|pNC~NF| zN(c_S*Q{F1YE8Ly^`Xk^)St-ARRWbsn>Jz?%k4r8F@OmYZUr#Vm9CNP76}AK4Hzw* zZ|~S1lXN;QUmg8Y`;R~Ngfuob%D%3>o>c~c+ZdiLfP({DeIx+zcfnD!su+%DY* z;~Ix{fB%o_udlDuxd1aijh~zvcXJX$F-ZVob4z`lvuDpP*}3yA56fqcWTa+UWN4=Mf0JWMGl#aV4i{ejdPVtV#z3L~9QM{?SEm+mMM0UxvAyy?D27eIb2KdE1 zxQ76ZrGkud|8am|4Gj${KBbi#RC+;DNtrf$vzb#WN+Tm9>W`U2N6AHnncFtcw;=mZ zRt5}HJhA^QAzvRFfNYh_iPb4>1Dx}*6`d!`9pu0{U~bCryb6@xP%fR@jDQ^2uK_(< zmgy4))q}u59iePcN3>!5Dsqf-?HqP)kOA_KE@Ce0$vVt6d-Gz(9hMZ081+*#a*CoJ{OZ5I7Pc ziGAatI3<2-H-Gy)V}^u-c*c?ha~FIIkOYZwczSw1&H2nW*sHSVnpHb&`^Q=OWb$l| zaCPo1_~&{E@B*=NUuwvC>+sA>C8e^CN_8;}I*1@m9Ii&;>d|MV9n zfd6FpLHR$xw%KvW6$=ovKmvG|3C?>zl`wz8i|T;=rr7cMoK8_Cq>A~$83gb`By4bw h0T6k(AkMR6{{tW;l&CnBP3Zst002ovPDHLkV1gMljKlx{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax5.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax5.png new file mode 100644 index 0000000000000000000000000000000000000000..a078a264c85ed5490f3803d492266c1a34945cb1 GIT binary patch literal 1381 zcmV-r1)BPaP)0(l-%aT@~>%odh;HUzfVYCf3NmI2EMX$2em2(Zmg8nnSXAIj7z{@Qae$i z;tnV3%n(F>p$8k%M2v-Q^r?^JVy2Cl@YG*Q6^$IEWe~WH;n@N>IMCuF0pP7$wn<%Go$NdBNIV|b z82Dhbv$N_$`S(ThwEg|rGl46&!94_Cd3l$-_x@qoaNkA`30T{!ugN>_9+F5TB5!Vh zCn7->k*hL4FAB~Wduy4SSRMj&T=?Z@eU_J(yTM4bX=9xv5(x>1!!98DFuxCT5kp|+ zVs2u&1kUG`=zeW(cu3Cm{-8{;pLP}I&C=%P=Cr&;MMd)6nQx`-Y@xJlT_I7^Zrb*U zj&m-z6*-U#IYEFJzzj>us{`xT-zyg{{wl@ArP}Z8?9^9Xp-zy1tyy!Ys|~*;hUA`bM8?L(wg2e$X4(IC zx5lB}-~W^PtEwt>F2KxB~yz0*8I56In{kqMXRyk7TGT2I@gZ1s|$=b-g;eH$Ho_g2zJ>x%z*R!b1%rJ zpM9cx)H7uSsL`w-f5I(U6o1UBr>AP}3sZBdpF)ZR3#Y-)0K~3XI*()=KScyD5 z_@f{W`U2N6AHn zncFtcw_yI?c^NQF@x=bKgnWHy0J2pQZTMgS=X`91c~czZz&T)U%J8BJ6y91WZM%$s z96qE0T{~Cn69(0Tz(5_LY*0tEVf-p`jC1WAc5aXe+=AM>!=85*flxHtY!cn|z0%y* zum~KAi64w==+C`~02pEb9~ypC2tG742aY5O~Gw8CqNC`Q?28j<2 zXj$tv-H*0pGk|aoR?kW?S8G7blGk!5B3HvL$z_-W5}CGh>CzuLujg3__zxtvAlE-1 znK6f3fS-wR^zvaHyd?<`{OPBjk*|(^sXn{Clr=SN@x(<<+kg6V65!i_Bv3Dy|H_@q zg5vzAKPLhFC&LfQ{{gnmjzg|kfS3gmz`IOv-utP9nG>E<2kbY+j?d(Daw;KJ%n!~W nfM+9NgL4dk$ioG3o*nxiT1t~vehLdX00000NkvXXu0mjfqcM$2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax6.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax6.png new file mode 100644 index 0000000000000000000000000000000000000000..fad94386f0e28b838afd53c651f7d1baaf3942a3 GIT binary patch literal 1384 zcmV-u1(*7XP)IHXZIc)d_sXa2q+GA;psNNq=n zirbxfXNDm9gzs-m6EPCL-m5y2i4FV0fC&RYHMrdQ0GC?H|b(_@H)ye*gj>O|} zwSf*YJ3Fg7gnxg1p0>X`cQ$b4Hn@kt%P;MgciufJ8}8lcApvQ7ZE zXrdA%QCX1rc~NlM*r}y&VtEKqap~uu^j%(F?i$09xnT#*cIo{}S`-MsB# z9p_x86+Yk#K0$yOz>G-BTL;#!zeg@#{zXbkLfY@_?9`*eQ$ojlSAJb03vGoW$5MJ~ z{DNI>e5gHqmW5U;1_*c}aQ@!~k$jQk$3ImiNI=%Cxx=juza|Fd?nqQdN5{1P$o3XF z@K(3m?(6$e+f`MSIu~H(QTyrCxa*S`ib(<}Hn&w(IvpMRq`m!shvhS0&PvzLRq7Dn zXJ)RcaqLXDJlgV@&Nv6rd)vg8XqeWcBzl(VCvDk<%5Y(xEo(SjCWtV=7*1F$FbEg|bg(46#yq zaNq}lZ-8ITfO`l~7%G%eypca_AV_s}wHBWp9T7QEkx-IK%7Ck`J)uQuWMoA3F|+Ad zauH$rw#D-;nEz*9`VCXOk$;Ae$AB)S`V zq@}lU2{(57K%wY=f7#l|~AJ)cOmH@$@dh%)c{EN?2XSbJ==H{&)yL!|1@BW+wcpBgY)eGXk za_5pDJOA#_NdW(3_(AzUz_!?S@D&RvW`P87mI=;#KPzEohv%#V_DQkrGd`W1m5^1; q4^AV1XCq;Qa}0p+!v%4kZTla`1(j4#|836z0000Wpc)oyD((_777Zy16bQI&G}rmg z?sq%)a(Ahm=WLyINklKzC z6}LK3XHI6OYox4V1V9qHuR;5e(AJRZl$_DU%pBN+r~k;aiQB?x71-cAo_k*2|KL5T zH_j2(*hoSM4!JjagNRwJ3Ae7k>&;cF?-&?yBOy_dq-n#3woDgnhyhHHa3g?$?qr$l zvPi%%YQQMTOndjPm?V=)>3HL?_P0IynAFzR%D(O{&nkn!Z46Hepy0p`9|-_I*tA*d z>gr_gIY;90xY|GmnV+9m9rnTAXr8veIejW{6>Jl(*kGDC_Uu;2{BNd+B94 z@Ya5bL?ZIqdT1gNBoVnHsgx)q6TPyvm`{j7ZS@rRnDGt;I3HJTOVPr4zC;wL{{@s3v zBzo)nq@}-M5jZL)9tf+U-}fQ{V2A;HX!ubf`0((s3vRC%;PtonntrLP;~WS`uq4~Q zfn`$QC4ilY+ysHc5uDgJ9u}wmUs}v>pJ&XFa9~eclA!ObrvOgi7@Mc3=aaO~q`_X5 zJ=d(-VcS2>(8uHF(}YXYd%-`~Lx2~EwQJY7y7m6=r&|QH|Mxy}zu`koeG`hP7_vJ!nfd0SM<{^^6pKwFcNMc`Zjp@FaDbIdY+Yl ze?u|_x&C})#vG;qkFjy|@?mYfB?%DxiN~Lm&%gLgb#{9xX>M-v*hNj-zx#6%;Awyp zR4<7C%AHGs?EJewCjtDE;Roga0NY~Q!B;Gxm<1BRStdB|{j7wU9iFoe*eAud&-iq5 uRzg-WKRAs5o{fYJ&M^SO4;RFFw(WoVp^yaRc0<+x00006!v literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax8.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax8.png new file mode 100644 index 0000000000000000000000000000000000000000..c0295667e8293e634d2f7c154c7ef3e57b1d6e9f GIT binary patch literal 1394 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_armor.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_armor.png new file mode 100644 index 0000000000000000000000000000000000000000..70c43bd960ef90a93996bc292aa3aeb9c912196c GIT binary patch literal 1312 zcmV+*1>gFKP)`MrZIvLGSX=LrO~>G zwOS|?1VMD+!i7HzK}2w2bm789i&!WKg{p}zY;3_=qb*4-x{z@q5vyYdZ8f2t2Bwgq z*Ylk>=k?B=_ufqXV0icUJLjIid&kiKz?!u^_PPEn_4Rg3e_`n&?VYdCh4a zKFr;ZXy@>tjJ@^c3Hoh(kj4&|?5V$(V)rHSivq9Qowu(&vL%|# zz4vj;CRd?#`;P|$0|WNxo+;_q*4<1KJO<_B1nS=Mi%&%|SZO;kTMEnv+lDPn=;FZE zyJ**uABEuCt$7){_ejZt2qy&j%+Oj^q$tFTV|lx&(i5E?^Ugl$gVP6O8<_F<&%cTp z75C?EP$ihaU57!gIECsnU6O|2Wi{EZ-T|A zM})v^?575i^bs3}cHYPBdec5|?auWy$$(7azNswNL@S852hfa$5;BVLO@To>Jh$fdqK^m}y+k2Z7z=@9W zS8D^&N;Icjz6{7V?jkmCi`ic~F;DMq>6b5{1xPGY3r|y7UXd{e044Vd_9pqYcz9p90&pMQEFn3%1G6$skw>nd}rU(Mgq&8B{Bw-)noDcmr^ zeaPC>h>w<|s!KW%t|eCErQIHIqx`xM1&~@#R(j~`{T~JoJp3q=l>#?{eQ3!=$p)nM z^H|zd46g6HM(mn5LK%=5x!{Y7*HCeGx=~`QG|E@)`@V>v|!Ryap*Z-F?}DbB@z?p}f>oLqq|& zUOBDc+gGK=*QM6)&J`?7>-%=$l3uT&{%B*&2l(Ks&_X<)Sw&+%oFz^DCJV$N$+U_i$D}rfiz>i4lSV z^5CsEre02Ikjsbnf`c<8v7ohO)<-Lu3shpAHad9IO+h(ZpdkD zM_B-2s9-8wgO7#VxTlu_bCcAqe_VJZZ=nRZl2SS`3+_BP*D|h;(p)uH6 z6YEneY5WlzN*{>$pydUXKcMcDKcXo$jU+XVZQ@TJTH2VnAPIvQOLh&A!UHLZ6iA?x zJ~-a*?wskF*_lO%$E!mY0{wFbtjkbLS7}_V0fTkYD7I+$G@4 z6K!<$+7;UQPK`?hto^I6>C)wklt?7#o36b?3G%f>SAtCS59I74mzJ@a%O!w2#-2X0 z*EQle1E{tpNtsNB;_QW zI=#ik#q`_2uk`t6hxHi9nwvh<<2;v_6&Sz*CIm2tYZtKX*s-0SJ^PbNN^)OyDwWcc zco#6R_X)$U@ft`JhV}<$X?T<7fB;tp*lynZNk1XN3sl|u(wewo((LSy$~EOmFE&r=EO>lhAIR&KElnagxxZcgw0 zeJvm9u}J@YT9}@q&hm1)r34OjOyyNV&Mr94be%>}ZUKMK&V|%~^+oFu`r*cP@~dQv zOE0KbJ$n^7w%mj0{al7rJEE#1{b%Z*GvCI*b7XW_V}l%AzDwYjet_Wvf>l&h(A|4? zXn#*!6`_o-6R^Q(I@i~o(M4%yW=8j`kIq$+z1S`RATs|oNhu{f*#H0_=>#Ga8F?6? z4+e7HZjxMLa~aOd0KS9vHdR2b=mO$82T=7;U=THkQ5~HO*g|-W=gRXyV#@$s0%C8+ zU3(UesA$rpi2nLCwG1}ok)vYb2U9h|^25#(0EHO9LBod%laG&&JLEEAkk?oDtM{Iz%4TQn literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_harness+o.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_harness+o.png new file mode 100644 index 0000000000000000000000000000000000000000..5b6ad43d37391c5eb9b64b7a2f2c1aee00d18613 GIT binary patch literal 587 zcmV-R0<`^!P)JOSBt45=dqEE<2ed-{I^cxA04JOr z{RQfTzd{|T_Mp`sXhqT^yW-r0Xpn4E2U+u8JDX}GcGhYm={t1ayf=N{&zqT@ZH7AA z{{m=hZ#D4w`ts(olm8U}7JnVygtp62$*&SI#Y=Mxs}Pm|c=7(H2tbz%+P(S(g6Acc z12#wFz!o5cwg83EHaE6F(=<4ZoRIMB%p6FP1fjiM5H-sHW21iXdcCl7Z9q1gHDhSH zu2T$`e`ml&{zWq33;-_W+UhzS9PWdnD6rjwQRUmY3cN$H2qa$q&yU;iBLEh_LVdkn zP*oLVSvGSxMyrnDTm*LX3=~;wg+hUr*X?#gJaG=oODmK^v4DS^@_epU6FP*vaP<={ zpU;CGvjl)kd8ghQ-Le9?+#|&%CxQ?@J~I7G=7xNarvunraP%JF5KP<%1V(9$;#0wC z@}sdcSeRcVKORs1%}q!UZ_j4e_{v3NA=3{Zhro`B0kF>SwQOn`p)1)pI7IO@^D*|J zr-Zr}2H=K5cTB?Ow@z{sz1T$hameE@7y*(B?xXuB~(oTek<$XoU${nOGa|yhf!^!9o|F# za{wFwO8}i+9vz>BkD^N?-xL5AFN}qu^EO)b>qHFk>KxrHged@CeE2O6&?kfTr2c~7 zd5PtK&Cxip2?$GDfWm0u?H$lG4bI}HB)l-c2$Cd0bbk-5nrVQEz$AFRUWnZ3kjv$a z7+R@Rq8PS6GU6it>iW_i0Bq&v#ugkN9e|=JuseWJ<SH(;fo(kl6}Gf;xlHYKyWNnwynwaUb;_YwaB_s*?o^M1-S^pa1s!<<~hWE#l(dHI0Wy6sCZKV%?jHBV23#X4uAvj Y4V&vA!W8>|HUIzs07*qoM6N<$f}_X(g#Z8m literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_head+o.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_head+o.png new file mode 100644 index 0000000000000000000000000000000000000000..2f84e0bf96073a8b8e42a648881284a990920f35 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D7ehi z#WAE}&f80lT+IdotQRzIgdUu-)A=h$QvTJ+U(9SB#7*TKZJPwPTuAk_Zfv;S^XS!i zE#vN=`ihd8r{@&!fAjoh?S(gij4FF}OgVC9Vfnd0`;xe34>pe6dssqX|~$0 zKBMy~-l=Gbyg1MRAo$N6Fnx3Ex62mtix^dGyw@K&v(Efj!1e8Ayh;)Z4}&X}rR0{( z@14!*mbPjiyK)nwkb>hJalMeP`%#B9Pw`e9`Tk|v-Ryl2 ir#*;es1||Pz)-_bsJdYzkjqls?{{}#YXvC%5GTpUqxe6!# zu~7x907}{H40XHDlt?7`{FS-P7%DZJHyi;WB@Gatj8mm@NagYoR{~EV3h+93i|rrm zg{v!hy1Kp;*@6aul4SV}08GL7V@&PNJt2w%KVQ!Pj5=UwI)Gn*??1ZO#}A(v>EZyG<%tPN z4D%PvW3Vu{WO(=P9mB2LH~*942(m%|Wch?!{0s$1j!;uo2Ri~JPl`jxasbFunB|F> zjv&b_vK)|_lFl%D&P)b9U40ZsfB>n{K$ZhQmV>~h%NN14fPes)21m_=2_%_CvI9Uq z1SLc(OIwCx#}9);p?^XjN+{6O0WhGgt;KNl>NN%)9zHN1=yUpHLl{`KY7LkMIf4>E zmIF9AIT)In>KW?l8o?m}iVC_q;N|mIjOCSO|6`-$85S>HNOmbmwgX^*(%>iC0iay) zlu$zbZ2=058wejfCumZHvwd_ zX^FVs#ShK_U|udgsXPb*DTFWzaTNf6{kvL9vZR|%0I~K`r|+MsTL751Tb+}=BZM^B z3yA=_c@#x#ZoCmM0-T$NVMrgJLpQeo=9zSkg!oeHeY~|&`$Pb!SSqA-5e!w)`T!`HeP8w8L73NI{|=T*z5LH{yumk8%msn{P@^1P6W`+5h0$0f49Ki j9N?$-+?)+zZW`hMJ)5h|tQrIt00000NkvXXu0mjf9yyb* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_l_leg.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_l_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd0576f9e1bd76f27078418b0458583356bc3ad GIT binary patch literal 404 zcmV;F0c-w=P)D3nQew#m|oPzMr3;pOa%ZwhSNx$N-E13Xge? zF^-Z4>i`gceR&gp5Co(cMgZ9L@85=-#4yeP#(J&6{KcG8j)4pS@sIZB$r=TM1fYtC zVJO9!l?y literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_arm+o.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_arm+o.png new file mode 100644 index 0000000000000000000000000000000000000000..e76face7962374eb48ef690b00778f0ef7407664 GIT binary patch literal 393 zcmV;40e1e0P)HxYpfM0;`Kf2h*51$z6;sB84YO3lCLPA0e zCr%z`NK8m#n7?2iSRCXCnmGXGYjn#e+~Q{_fI0#MXc_|8e2#26O&tIV-dneCfr(V>Hp n(Igvnz^DU89Wd&ELG1tl=^2)HvIAPj00000NkvXXu0mjfY~_=A literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_arm.png b/Resources/Textures/Objects/Specific/Mech/gygax_construction.rsi/gygax_r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..98137c1e50262b70609a847ad8c37493940bbd8e GIT binary patch literal 396 zcmV;70dxL|P)VQ!Pj5=WGI)Gn*??1ZO#}A(v>EZy8!fX(ORT28V9K*4+K z_Dygoz%19()d$n5Dd`Ne=gg$71CT8i5D);Q5AMFr8-tJlEvs#R;qHiIGufP4;e zL{n2eLwRKxD0JxO08mt%yKwq{Y;-)>@|VwFksSXNIRFM=(LgSs$N@jT|6l-y0+=SJ z7^cVpAPYG-IT$k2vlyn&oCbCTIe?-NP*YJyDG%uG0Fb4H1w~*-fI@@rxd0RmAj?5u qKym>&iH@ocpavLqz^DTT+yMZ^^OkpQK7>L50000Kv00C{ONRpnn)Jp)y|`ycIR080*uG?)AR zuf0Z;RxEi7@TgU>*NAwu+rC&V=ahFlJ>>Qp5eDGH!HDw7beucaSR=}U)62xR-YX^jzWKu&F4T#m6etBs0kJ^svZ|3+ zf9r~K0pIs^nx<6GzrS=I36TKc22AxyW&rS3v#rAS87+m=82}J)&-3U)jK)K;gtY)b zX5^ahA@OkkD3%Z{0ZRZJ$8j!+Tz$X*DM!(qa;A1CBCGXc@#C%$ zWh2(S1h~wsxNAflola9t-zHS|x_7AEH6jGy&rdH@_Xn@i*W_zNyWs3_D!vn<5Ad&m z!3dm;5(z7TT{uGk1elL!{@$??RswVgh2gHwNJps29xKZx$@FJq*;13;F$``I#-t6ySp zITP}K&*3$A9YK-qKr9EzmsDZO5#tEF z4ge*z-%xg>B^THNbO5p(mmDZ}V9T;ZJAfVluLD4-T83c>0|PV)kOAxIB@Ch*3=FTj zau^ua&%==a`Fb1W4gdjg{svmI4M@L&=5to4I1Fs7>OqkMI~-UrfoO^x0E)l;ySDy! zbn|A2iH%@bvUmkt4k!+1&t1G2MUDaL2tx5s&;cMI9#qS)e_b=Ypg|V@aQG}Z#n)HW zVfdC^)C=f}Nra3iE)g0{hWPe3FpHrBa25q(bUBdYhykQ!Lk37LFhZ(i5Qb$lkOiRX*4TF8e~=h9IjT4S=7#to!$9A*ngSbDikbn0Te|IIgMP`u8;swv+0Dze7RaD z*2F!65}?~@Lrs!dOt4oJLK=YMouIG!ECARmN#Y(s;Q%-P3`1>P96()e#o^%)X5c{$ zA!?xMa1VUg+XrY!O_J#~xI`iD#W%_EjKp=~WAt%dbl01PLm$N;w@Ks8_oC^JxIfLs3ofI|fb5=FR&1pucRPQ4?F%<+AfZJTt7EZp~?Ku#{+%Ogpj~`+V8VKqN5OeOK2h?iljp>002ovPDHLkV1inF*4qF8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_chainsword.png b/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_chainsword.png new file mode 100644 index 0000000000000000000000000000000000000000..8a2878e9348b90b5b4ed0ae85fc74cdafbea566c GIT binary patch literal 3636 zcmV-44$JY0P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000ADNkl+~u|-)o z*dH(iEeNSHeAvU-%Gx>~T71a{7Do4AAAC`{P!vPj2*PcxEb9{6(q?O#cq7M$nrlLB zNlLZC&V_J4PICEv_Z+@+_gV>Lf8X-zu(>(4Z{#`GP#tp zcn17_zpQR-rmAK)i?a#*Am22^swJqZ*-iV=&*<$9lYI0Duh%QHi3B;93xMhAX;C<1 zn*tC%-6h)w`-KpK>c(a+_x#AN`VRp()6hVzuG15X;jGw!$L*FJnVMx)0aY6d&{(e5IejvuDq% zU&Ug0k9P3z<{-Q3kFfBUL3541p>zDnd)a&_Ca265fJ4tN$>c}BqU9{wK3_?0&ddN1 zw=4h_XA^evhQHJJsvShq&+%#7O1}5ymH-4GUw(uGV8VG`Fm;}$y?Z4!+FH631iBU+Y{V;&FY%nWhMVmYT3eczW`0w)+b%D)4r z&UO*%J|~7pMr9Ged^!z4B5SV`wG|ab$q#;d9P`1SoI2aZcyxjr;UUo-`d*eAN5<}o z>(>Sdb)O^H8W2SQ=G>g{xZN_;(!w96iLPnHEsJlxwe;Q@#d{=xweTOV%1W+Z8xTMI z^os=Sw<#qKhKJVQi1H8s?`xVpE4UAE`}dy#Nd242m!MsW!PY=o@w$hRIX5T%U#Fo0 zPyh-*0Vn_kpa2wr0#JV7o$v$gLj%GvjJM_onrrk|0PRBqB7C|_-WZFn>j%CQ8Ln)l zAGorKeqeIe6gGgK?J3I-oLtBf*)Ga%&kbkB_5<|?JaTf%Txm{Y+b;-!{dILE`GH8z zRd#ZpwhhudFq|1#*jH}I4;aqO#@v8&<#}JzVIpI9SC?Tqe&D6y5FdYXNRCG*){G0? zKz_WSZ7=o%lk@YU`_`?J{6J@C2LSi(-xHmk9dfOBcx06E=tR+YVXMAs3Gxu7_<`Y( zQM>OiCtg*CuleV!q#6&l1_-tWHWaJlSOF*i1@O)QychsG<8a0w1P|W;0000VQ!Pj5=WGIKa}<_CF~GA3uJWk!lVASzb|` z%kbjW8=@?i5EEhO=wnf?GFlfN3>#4V-LJz|ctpqYfBQ2fTUno}r|&2~}|0 zKEiBjI6zfZ=f9tq69YM5(>8|xw{Ks;n-z%)0aCLT91sy21Re1H^;3pDhtHE`KS(dd z4uFA&4i_0DH5I|^=hyFpX%HXAmOr4+aN*2xu%&{c(hLSBmPDCLv;#mEFdTrg8T28H z14wKJ2Ds(K_?%=1upB(f@WX^K#9)?#XsSB^WI4f5^gmgg+Vqt4>GDkL?Yi>VoPvdKb+j}$fcJ{jy z+6<~m?g}6cj0^tx$F3*9HI_7fq#46mL zUV$i>0_c(tMJ7N7B16U$fMd9~dk8Qd0$Jet-`d_#+XvjNe_8+keHih|$AgGJQvi-3 zBAL69PELHSIpkJ==w`z5=Ycx}Dgu;;Kwl8s%~<|Q%g|nduKsSJq;{U?75I34hu*_7#V}-(mj`pJmf=k+B*Ti2`K^CyFV3RyIMoxAT1S` zY+}lj5QC^}Mm%u0;&^;M1& literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_syringegun.png b/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/mecha_syringegun.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf012b4fbe0e1417ef901bc067a7ee8eaca543d GIT binary patch literal 476 zcmV<20VDp2P)dJ9qW6ELxx#=8Cb0RWn+f7*amKTOtC@iz!PP>KF$QX)iCG2dhq56IeiF1V<3^IISmT(plI~cR&RwRZj66i94`3KgUiS7Kc!Y<^;r#s80vs2a?-X z+liD^09;&Nv6fOQ2PAbmZ{q*s^F3h3gGzTpWQ$DYwr2*c2OE3)yR0^6eoD8tH&HI+ zaa3)H4Yk@0n+rqACnG48!lw@a@C>XL%dDlFO=jG*o8(udGU+A(!0W`*N@_knvoB7x zM^)Fp0Vsfc)2V;mIHzCbTlVKz&FM7^VlDud12d literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/meta.json b/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/meta.json index 5e07ad51faf..b8e924a5ba3 100644 --- a/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/meta.json @@ -1,7 +1,7 @@ { - "copyright" : "Taken from https://github.com/tgstation/tgstation at at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", - "license" : "CC-BY-SA-3.0", "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation at https://github.com/tgstation/tgstation/commit/da4d61210600269aaf56a2e309dd31c056252d84 || Mech ChainSword by NULL882 (GitHub)", "size": { "x": 32, "y": 32 @@ -150,6 +150,39 @@ }, { "name": "mecha_kineticgun" + }, + { + "name": "mecha_camera" + }, + { + "name": "mecha_bin" + }, + { + "name": "mecha_air_tank" + }, + { + "name": "mecha_radio" + }, + { + "name": "mecha_sleeper" + }, + { + "name": "mecha_syringegun" + }, + { + "name": "paddy_claw" + }, + { + "name": "paddyupgrade" + }, + { + "name": "mecha_chainsword", + "delays": [ + [ + 0.1, + 0.1 + ] + ] } ] } \ No newline at end of file diff --git a/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/paddy_claw.png b/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/paddy_claw.png new file mode 100644 index 0000000000000000000000000000000000000000..c6b69723bdd88b38e0a55849918b425b0155bb13 GIT binary patch literal 889 zcmV-<1BU#GP)Tk+t*sYd7snFy&5_T- zhl5@B(Vlkz9Tg=}AsC>yu}L)CZP&?YK^d^M-h{Eh#5e3uH;P@Gw!}=Oa^BNe$2LV@ zGdTi#sU<1|1CVoqcr-GB4}+cX`vUMg2VgI&1hOF?cH+?S^CHVs$Pam4Zn!3g@Z|A5 zZ6Sxlf!k*;usu*!jU7W%Y|r=w^3rt-Q8VciPS1ia0)TYwPA&|0max5f4)zKQ(#wmq zo2K4-0O?T4^~)xwO5I&uTIA%sY34afE345oIKZV)$}cYyug70#5Dc(yxm7q)n{}1> zIijPYl%3N;DuO*;FPC6udNeG3_4V};B?!Il?0$g$zK5_JJHgkj(mpEfRQ*~K7=WD9 znEE9J$OYy{-3Y9t;H^IhW10?EO~o>7@Z#ro@5QZmulV6vy^qJ7pkdVxg5f{O613ky zT>4`p3arS|r~Qz>6s;5;vW_YD_Iwju1}e>U*GnF0jzk-d<}c5O@0Yj$ zm|7ka>SUpjkZe26?2KwnH7BWS+VP>H`5YMF#6sc#3PRbmvsHw~v|=r~-_NsBUXfXB zE;x+7r?$9Sc+9sUcQ1JYsFA2NlT>30ZA#P^T5LT$zZ?{Tj$lHYFd784Qi7likW@1Y zZAyVa0KO$RkY&=IRUmZ!``7wFcq2*#f@;p`_bec^F{!3RC2)IPXgG2Or_P#VuA9&Y zNjxtk2_^3tg-?RC*j%`H$p*vLLLNzK+z>z_QXs2Z|49COpJYjZ{|?|M7kHLxA1!;; P00000NkvXXu0mjfC}5U> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/paddyupgrade.png b/Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi/paddyupgrade.png new file mode 100644 index 0000000000000000000000000000000000000000..ad60fd40c055fbf8b6a848c470292050ea59d19a GIT binary patch literal 1230 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 O00001u`m diff --git a/Resources/Textures/Objects/Specific/Mech/ripley_construction.rsi/ripley_harness+o.png b/Resources/Textures/Objects/Specific/Mech/ripley_construction.rsi/ripley_harness+o.png index 9c2eb36cdae70645290f89cfdcf97642092dd563..3ecc6d4edc11e8a42925a6236823f7f534df9072 100644 GIT binary patch delta 3415 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 delta 675 zcmV;U0$ly>8qWogIDZ0xNklitVz<#AtfwiS|c1A=y zH>Y8#9742Qfv!!PG4*lMGWqYixD;le6_7ERTN~@W0#<8W9mSn0pkj_&z!h*MZ{JN| z;Fo6;`m8C zczA!2uzcn@kU4Tp%K$9l*Kc18E67aYyFJGgZiF?*DE%QRAHtnGc3~tvgfo3-(a{mW zm8+LUe<1${kz5LwF7{)7UPo&1rpSFg@k(i4WdOOdVt=uSKp-Ic<#HJV@eoouV0N}> z=IFLup8<3mKyUIe?%um2eC*S|0HFH|z`Zn2w>Sqc$H%ZGz7-$xIV5`ai+DOSRQJ*N zCa7LWu5QDlM~)#HT_g6N##KwBIL|?$@B@#ZJW`(16#xY}IfV$peU~PEdv0kE{E`%W3R25-Y`F}yyDM1H%7NuQhYy9TgAu)l3QhIlNC-21R6aZdmef*&iI zR>HG4G1D{SN!&AlgfN9&e+Byn(5kR60Df2-pd1a*2Kes)e*t(ohjb%(B+38)002ov JPDHLkV1ht|IR5|u diff --git a/Resources/Textures/Objects/Specific/Mech/ripley_construction.rsi/ripley_harness.png b/Resources/Textures/Objects/Specific/Mech/ripley_construction.rsi/ripley_harness.png index de4a5f8a77dc9b5e54baacc1b700732883bbd2fc..81579c003665f72aaf5f37d7adbb83183e41bff8 100644 GIT binary patch delta 3418 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 w+VaDKnOwn2}k zej(~VpcN0*>Y)ce50dIp6cy37i5^3(7O^T3bLf}1qBb5Iu(%0yBLvrZ#!R}KO0v7z zQiQ$`X7+vGnddj}%w~2iR@hbn{x5*gx}d>U`&n4yChiJAO@B)3iXTNXHE8kGS|z6% zZv;~pfI{)ZN053x1hy3KI1t0gt6_wK>n*uj;fIVd$2>-~Mm>nS0365(*e{hzFt@bU z){t!H=QaE*hY(Fypl#cBOiYfOCjV6xSHkSG0xG6*D`VYPz-+avqj;kV*s+FNz!h*M z?>~%T>y|c5O@EJLV|bHAm>~Qy#vJCV$~CnG%F5-kY^Og@ED<(8n{(8dMrI2@*Z-FE z^r9xW*TRZ1w*HW8AHw!Mdoh$8!1?YA zXle1`+V!il-Y_Z?54J+VEfBLE6=ataZG`>ss+_V4R( zGNpY0mVZ=~-?-RwNeb~c0kE{^y3ZPS`tL%t7~GsjEW2CAl+Q`|9Rrvl*xxl8K{S#^=3~&6xGMk! z!H*S9E8xYui15t15_b)tAcU~vuVBvrnicj0z#9u&1z2%_KW2T0bk1d}8UO$Q07*qo IM6N<$f_v9T0ssI2 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/meta.json b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/meta.json new file mode 100644 index 00000000000..2b33ff70b44 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/meta.json @@ -0,0 +1,113 @@ +{ + "copyright" : "Taken from https://github.com/tgstation/tgstation at at https://github.com/tgstation/tgstation/commit/91af16bcbfd2dd363a89d846ae2acd6d655083c2", + "license" : "CC-BY-SA-3.0", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ripleymkii_chassis" + }, + { + "name": "ripleymkii_upgrade_kit" + }, + { + "name": "ripleymkii_upgrade_kit+o" + }, + { + "name": "ripleymkii_harness" + }, + { + "name": "ripleymkii_harness+o" + }, + { + "name": "ripleymkii_r_arm" + }, + { + "name": "ripleymkii_r_arm+o" + }, + { + "name": "ripleymkii_l_arm" + }, + { + "name": "ripleymkii_l_arm+o" + }, + { + "name": "ripleymkii_r_leg" + }, + { + "name": "ripleymkii_r_leg+o" + }, + { + "name": "ripleymkii_l_leg" + }, + { + "name": "ripleymkii_l_leg+o" + }, + { + "name": "ripleymkii0" + }, + { + "name": "ripleymkii1" + }, + { + "name": "ripleymkii2" + }, + { + "name": "ripleymkii3" + }, + { + "name": "ripleymkii4" + }, + { + "name": "ripleymkii5" + }, + { + "name": "ripleymkii6" + }, + { + "name": "ripleymkii7" + }, + { + "name": "ripleymkii8" + }, + { + "name": "ripleymkii9" + }, + { + "name": "ripleymkii10" + }, + { + "name": "ripleymkii11" + }, + { + "name": "ripleymkii12" + }, + { + "name": "ripleymkii13" + }, + { + "name": "ripleymkii14" + }, + { + "name": "ripleymkii15" + }, + { + "name": "ripleymkii16" + }, + { + "name": "ripleymkii17" + }, + { + "name": "ripleymkii18" + }, + { + "name": "ripleymkii19" + }, + { + "name": "ripleymkii20" + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii0.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii0.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c3604def82fc664511053d10ca9e4e8dccb246 GIT binary patch literal 4163 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 N002ovPDHLkV1m~4>H+`& literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii1.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii1.png new file mode 100644 index 0000000000000000000000000000000000000000..11927eabe5ec718fe096cb33782cb8dfb6556089 GIT binary patch literal 1371 zcmV-h1*H0kP)hmNHmSLL0h5^ zYGiAXy4r-GKHyd#{K3@Ph(8a?%7Yrw>RPnz0%}ZKn|urd3n zQCs*s=?J{EwB)fQ0BLDy;jy^5n8(J(Mh1c`E-qR|NKsKCk25m~R~zx|=;+`v9*^_b z+S=-5z`TG&po4)5-_3M3I%)#{#|SQgp@RWg6I<~`A%bZa2Lq@c4tB9uhv1nQuonj= zz=A6S=!sg;?1`WPRC4Y+ zaKnb{Xw#+=HWZo?mzHQ^@)ymVNG$%V1q6ZZ$toYq8G!ayS8t=KsTf_j@Vn;v8X`Ch zbX`Mb(P)$nx8Jsdjz^Bt{@_#O_2yFR%P+BhaA<`J2imCRx#wwNAxUka*V*>lQ{OO- z&*#&?lnTn&hymTgfK)#?c$z1nixB`&u~araJx#f}xvbC4&C$WCd}^>2>p>rgmv@^nf6@1>><4+YIpNK_`3fjRaf0YgF^#UyX$UVi*y|| z=5$-`zxvUX&M@%%`}-~UoB$Rv0s5PonpDrnS=Z;Zva&L+1RL$a`n~FWxSsnjY=|H@ z_CY-U8-4uA5n~UHjg1Kwj~h2$OWobw20k-@#b7W#-YYi1uD#jD|GOaSs`DAkT9g3XklpKk=O-E|l1eJ6T(lr^(`Cj2!eFfuY? z=m13kjK^;5rP`rwMoZoSE8(i-Kvt(yy)9C0q-e9rV6qS}1^Zfqclj^*GL%(QZ##bvvlm@%;8XZ_!!=w&sLa^L0%Cl_>|N6jgu$P%As#t#ZsM8%=ENzUkOn*FU5GLsm^d zdMKkDy{n1X*nQWPfE=ZuPiS0k0(M_uy0yWPfCPW+(Z{)WBKO{N-!+Ql^i7$Q^UX!)0`PPVlFibZhx$s1wz d#arcO|1YT_b5x=T?~woi002ovPDHLkV1oN!nl=Cc literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii10.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii10.png new file mode 100644 index 0000000000000000000000000000000000000000..6a17b5d6bd78a1cf13142ca92660829619b483b4 GIT binary patch literal 1558 zcmV+x2I={UP)MNTUNa`zY}DG>V(l!FFxSu8?~R@fmE4 zK5Esvul3jh_xJZZOaveW1qHmu$H()!V#Nvug7o(GnpOmFI~Pl|_6)_9j-vowvDt|4 zwr$&Z_51z278VxTD_}eT5$LEuQsTpOyt&B$ex29YST`Mv{fp`bBIu(jZVGf>(a*$I ze36J?TE$iYWDf_cShL%E?h-ATbT8|#wVtQ^FuRR4IaC5w2w8!xW89QusDKbb2FT=a z-65L!P!gRu*+ki%7%I)~qmIP^wm(yM2W6MUP>HvRZD1?eqyG|E5<{%z{g=%IQk-|1 z$}jT(85kJg_2kdTd7U^Rf~Y2f4t51gUR@JSG=WSu;scSa1zTd72-FQ+*GpyXS5Hr{ zq%V7x(P!RL`u%(#Jy_C93&y&5f6e+%`Xzge$wquaVM;6$ft=m|jUPXO;^HQ=A<6`% zFwSrN)kLJk+exH)PHONV=s$V;Og3kg&!&GPC?(p(7-;XDIdiG4%||&G&f5t<5F7@O zbt*eddUJEL0~gP{$L7=C^4+v5?+uEIiloB#-(!7k!yviqH&eko?^1Vn4{a{mNU;6> z(08=F>#`#;F;VO2P_uF&z}Sd!!Aby^5VAjd^e}Hi7b5`p{J-g$wYRrZWMm}kU0q$Y zHrYj+>xnL2Y*#itrYcBqU4t=M{T^4-%~$oo z+57!?va(Xg=L+C3 zFE5XZii#L4H#e7xi;G!bF693a9KJ2Hg7_YfhrC{| z(uuONvZ$=A>_!V_&z{Y}>=;c;8Kh;-OH`*GseD!bx88i41G!_y@eo3w zV-IH=KKvl~_^GS9PWcKxf(yP1uH!R-sHiBiitOcwspnhk3qJQsqNAgAo50XL00PD{ ztIy5wMv_54a=G;2X^Wm@ec%3SUggYae_IGNHa6-yKoJ1zp6S(;)-YEO zDgll5qasjMRi*a_0)5~9Z#8@mytLFqpYQbYzUUI@(b@z`PN=5(A7k{rQ1%MThOc7s zW9>8^Kz6w9(a^($nTcwWV;LYZA&D;#0mk#Ku4f7aI;rXh^`Mha--8W&9S#TUkI$R0 z9^(%68gJGxoVcEagkAxo@T*b{kkjd;rlu1-U_M_PO_>tU=d1Ga)qTHd=ws8Te+A=x zA!lJ>Vbt2{XJ24UojUmjwnc{hDn5JGN9)(GVIA-Dk`k}YX1Fh21kcX)=--yBSFal` zjGX|#tJUL^nYqN|i2py?`Z0}0U~42SzQ*r>VF{o|r^h~^B`XJ%6j`7GD6LF-sLZja zY&5a4`ZhRRG`;H&n_tKlNEL3Ugvx$c0;mFpN_r@(T)j6Fv9bEf^pA>w{PaTkq>Q&p z!0HRkP_45Okl?T6yvn^3dFJV7M@;~>MqglI2t$zwSpjjtKuHDw#LYI6T)ldgzWVx0 z9zqDJfT0vjtAr!~Loij2reC@0W*hcbu?TKIc_NIy3Nxhde>gppWd!UJfB*mh07*qo IM6N<$f;H0h0RR91 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii11.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii11.png new file mode 100644 index 0000000000000000000000000000000000000000..0f514a9223ae91e1b60b2b8a4b5a58da2a935e7b GIT binary patch literal 1561 zcmV+!2Il#RP)02{y&8bg6@cRjXWL zk#-g5pgs`NhyKtMEy_Nq$cJ*G*iG{fg0(dgk+n>v#ED?RW?}b=mXnmaTm=N=?fIR{ zd42y}1e<5Od(Qhj=lss^oaa2x`(7vAg~Z$+tzq>4+u`^>>!D;w0s;z2U;GM{9oT1@ zv&w*tzCIKgoxq3@BW$3NqatYW%S-4$`FHer@%-BL9rSDFNRy5Dgu;|qCIZ>rei}P=9L2>= zWJ8n*OktdN{x=hmQcnj_m{L^ZLGqw`dQ3Jg%4gH9aGDe4Vhn8W?Addvwbe`6moM1~ zKoA@Tkaa3Mbb3QWg98`Oyr&n?{<6KaI`?ggjEtbdk3V9)pst@{YBy8<`yWteXBTZQ z+DNed;pq3YGH}(An3$-wxBH1M`xzTCE?WuU5<>PTPafk*=wbu_ukQ~%v$nQ2iin6{ zJrD>`L6VC$*AiX1(xz;>OjVHJz!FS@uHiB=RUkb*o%;Lx>BNbj`8ng;8?@(n>4Pp4 zf%L_%()JzOf__TJ{A~ik5y646ab^%BIXRg$O{3=KbM`GjY0ApVSjS$0>4tfxY_NfGxiR)K6gqD-8Uani>;66Tl)SQ2wl}EVbv& ztPjj-)22=1OmNe^ma$CT4->Cx?oQi&;S% zspqS_} z+=LM5n8VtJPd^DBzYEGo`3gRQ3%&}j<1>NC$Vjq^%;klt^R4v+&%KhUs3_gWKX4C# zfN{<0b0_>E2|%_K1-Ij^+#GVbTzc@d)Mr^gR8`5NtQqa^34zn6PwP5B5dh=9sg;yg zH&+iT0gd*5@_6o~} zuVV7Cb{ZETJ6sQF*u#YBiK>%h86YuX245fojPtFoXY%_ysNzR;(8;UM!3Mq#hlBO` z^A@OM+^$~Z4H}vg*Rzn&D_|6URjLMZI-OKs-^dN-^|sQaN%6eCIyX<<_nQVjHof{+ zFy0rk78Vvp=g<4t7Z{T#PrQw7kwL$TTUxxde*Ie3@jfpt_1J6%`{G6L%uKibZMkO6 zy1~NO3GlmG9iNPhB_>Baf4=oI8jir$NLYN0-vNUXz#g3&{fL&N98gkZfeN6s(&?cx z$DFd!#K!7d=Wx-~z@Ik1kXs;CxR(+t`#}ky3TP_XLmB1jy_1NI)mOTISOny+7s@AP zyjucRUtosXIvW8A{zmqjymulmy|`%D1Ym3Q1s0kx6p4@(5C=4rWB@?iY(vTQ>(}Y) zZw_)3LQn-XrC?emBmo$Lsd6;^%T+hqp#O?RaQn%LF#0OYkiP!`wvLk8ae?Z)00000 LNkvXXu0mjfUoHdK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii12.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii12.png new file mode 100644 index 0000000000000000000000000000000000000000..663d61978cab90bac94b60016fca4852c8473520 GIT binary patch literal 1553 zcmV+s2JZQZP)AoxAg0a_lw6wPR=CVz%Boc^ zu}Hg#b5I`$=|dJxkww`D1^G}e6}xHvL8!Jypt6>!lsNHf;by7#ik6d&xa$U6BspWR0wGF*eF``%3|7Ey@yu>pZ{zo?b}~Rfq$n`;>32gYh8AYoEwSH zU}N-AtJZb1J0x&lU!ToH08&&`#A{Mg60a*(tY9EWPfw3&Mex=OaYV&`QsTDp6rgJ% zHsZT^^JZTCem}3JrKO=2Fdl#ibW|YK^#q;pHXFci@fsKBq}D+{=z)%F`kB~@FA@<< ztAtbl*~7sq*6h3|BFL3`TWODy_r>$v0;`QRIaC5w2wQl;e#~& z@l-l_s+n@!u{8SBMcUaumhD$997DIRM^dGynQdSz*`xmwSQ105<$YJp1k&xJP34z) zfb{qG^LpyH6TBwGM-uIiqywG7lGpB!A&MuHjrc$$Yr&RSCIW~1Z|SA7_N%))SkgD$ z%jiqbHoADJmmaI^p?TvRyuYTTgMQB$W3mySaF`OyL?EvxKocg!Q)1#IHbj}g6vl<; z{xA`#^mGtKC`An(q!7BN*JN{6`E0lyN$D{T#z1>#&6-WEtv<@Td?}Ow1i@hdS*xrGo65@96KsDv_#-Xv zylQi~Tv~g3far37u@U34l>jawWPkMNA>M>8MgZ{n&+D1BwY5=HR21u-ot;#i=Ag1h zqAOS0lufs(3KASxf@#n-Tt=n}WMyU1z`y_!GW=UMi3(-BZD+eqtmC)gth>ssj8}C9lZk6bt!H7J+7vkuj&I0`)F3$ zlXSGHkun!N&u3M8cjy;R)~6S@CV4G{##9Qgeg=o1c%mfe+;0Oc~=(~vQ&C8h2|06hjTV@3D-EKE|JRYSJEm^XJ zcI?=3rv)=-&g9_ohEl;b>>WFHjHad!&@%f!bXYx7g{u6k-g}<|Ib+B35JI414`=H> z{UrGKT~I#CSMU*B@Ktafp9w@qN0U`#uP{PA-&$|*xmOYs6QkP%2JZn7FrHa`?uI`s z0m#PkU_0I^$R~%xp$E@g@Eq%P^|idpnbH2f5IBDPxUK^f0kH0#R!f;pv-O}7&}cs* z0yQ-?dVe6$>*{~d@ICOxQa63I-NXB$OQ5G3QYbB@mKuMF)%U{LE36QF6_X!pyYT?B z)$yQ)9;QrpsY#Aw09Q&XUmyaE=UZLR6bN)s&ClvVC!f9t8~EC6HrAh+Ggm#v?dmn| z)i9j6o`r;70i*D%QVo#ZZl~tvlRRKPUn@{%a`l&oPL@AJw^Pl(M>U%UvOljGLEEmyBzJ5-oZ0{pI4 zk56{?Vv{5O|9sPDG!lWWk+Aq0zXOIOfF7M0_lTCJ98gkZfeN6sGU?$m$DXp$#K!8| zWOLB8&c8zZ!nQ!Fa6ctn_Cpdt6);rNLs{kOy_<-Q)mNr}LAoxAg0a_lw6wPR=CVz%Boc^ zu}Hg#b5I`$=|dJxkww`D1^G}e6}xHvL8!Jypt6>!lsNHf;by7#ik6d&xa$U6BspWR0wGF*eF``%3|7Ey@yu>pZ{zo?b}~Rfq$n`;>32gYh8AYoEwSH zU}N-AtJZb1J0x&lU!ToH08&&`#A{Mg60a*(tY9EWPfw3&Mex=OaYV&`QsTDp6rgJ% zHsZT^^JZTCem}3JrKO=2Fdl#ibW|YK^#q;pHXFci@fsKBq}D+{=z)%F`kB~@FA@<< ztAtbl*~7sq*6h3|BFL3`TWODy_r>$v0;`QRIaC5w2wQl;e#~& z@l-l_s+n@!u{8SBMcUaumhD$997DIRM^dGynQdSz*`xmwSQ105<$YJp1k&xJP34z) zfb{qG^LpyH6TBwGM-uIiqywG7lGpB!A&MuHjrc$$Yr&RSCIW~1Z|SA7_N%))SkgD$ z%jiqbHoADJmmaI^p?TvRyuYTTgMQB$W3mySaF`OyL?EvxKocg!Q)1#IHbj}g6vl<; z{xA`#^mGtKC`An(q!7BN*JN{6`E0lyN$D{T#z1>#&6-WEtv<@Td?}Ow1i@hdS*xrGo65@96KsDv_#-Xv zylQi~Tv~g3far37u@U34l>jawWPkMNA>M>8MgZ{n&+D1BwY5=HR21u-ot;#i=Ag1h zqAOS0lufs(3KASxf@#n-Tt=n}WMyU1z`y_!GW=UMi3(-BZD+eqtmC)gth>ssj8}C9lZk6bt!H7J+7vkuj&I0`)F3$ zlXSGHkun!N&u3M8cjy;R)~6S@CV4G{##9Qgeg=o1c%mfe+;0Oc~=(~vQ&C8h2|06hjTV@3D-EKE|JRYSJEm^XJ zcI?=3rv)=-&g9_ohEl;b>>WFHjHad!&@%f!bXYx7g{u6k-g}<|Ib+B35JI414`=H> z{UrGKT~I#CSMU*B@Ktafp9w@qN0U`#uP{PA-&$|*xmOYs6QkP%2JZn7FrHa`?uI`s z0m#PkU_0I^$R~%xp$E@g@Eq%P^|idpnbH2f5IBDPxUK^f0kH0#R!f;pv-O}7&}cs* z0yQ-?dVe6$>*{~d@ICOxQa63I-NXB$OQ5G3QYbB@mKuMF)%U{LE36QF6_X!pyYT?B z)$yQ)9;QrpsY#Aw09Q&XUmyaE=UZLR6bN)s&ClvVC!f9t8~EC6HrAh+Ggm#v?dmn| z)i9j6o`r;70i*D%QVo#ZZl~tvlRRKPUn@{%a`l&oPL@AJw^Pl(M>U%UvOljGLEEmyBzJ5-oZ0{pI4 zk56{?Vv{5O|9sPDG!lWWk+Aq0zXOIOfF7M0_lTCJ98gkZfeN6sGU?$m$DXp$#K!8| zWOLB8&c8zZ!nQ!Fa6ctn_Cpdt6);rNLs{kOy_<-Q)mNr}LAoxAg0a_lw6wPR=CVz%Boc^ zu}Hg#b5I`$=|dJxkww`D1^G}e6}xHvL8!Jypt6>!lsNHf;by7#ik6d&xa$U6BspWR0wGF*eF``%3|7Ey@yu>pZ{zo?b}~Rfq$n`;>32gYh8AYoEwSH zU}N-AtJZb1J0x&lU!ToH08&&`#A{Mg60a*(tY9EWPfw3&Mex=OaYV&`QsTDp6rgJ% zHsZT^^JZTCem}3JrKO=2Fdl#ibW|YK^#q;pHXFci@fsKBq}D+{=z)%F`kB~@FA@<< ztAtbl*~7sq*6h3|BFL3`TWODy_r>$v0;`QRIaC5w2wQl;e#~& z@l-l_s+n@!u{8SBMcUaumhD$997DIRM^dGynQdSz*`xmwSQ105<$YJp1k&xJP34z) zfb{qG^LpyH6TBwGM-uIiqywG7lGpB!A&MuHjrc$$Yr&RSCIW~1Z|SA7_N%))SkgD$ z%jiqbHoADJmmaI^p?TvRyuYTTgMQB$W3mySaF`OyL?EvxKocg!Q)1#IHbj}g6vl<; z{xA`#^mGtKC`An(q!7BN*JN{6`E0lyN$D{T#z1>#&6-WEtv<@Td?}Ow1i@hdS*xrGo65@96KsDv_#-Xv zylQi~Tv~g3far37u@U34l>jawWPkMNA>M>8MgZ{n&+D1BwY5=HR21u-ot;#i=Ag1h zqAOS0lufs(3KASxf@#n-Tt=n}WMyU1z`y_!GW=UMi3(-BZD+eqtmC)gth>ssj8}C9lZk6bt!H7J+7vkuj&I0`)F3$ zlXSGHkun!N&u3M8cjy;R)~6S@CV4G{##9Qgeg=o1c%mfe+;0Oc~=(~vQ&C8h2|06hjTV@3D-EKE|JRYSJEm^XJ zcI?=3rv)=-&g9_ohEl;b>>WFHjHad!&@%f!bXYx7g{u6k-g}<|Ib+B35JI414`=H> z{UrGKT~I#CSMU*B@Ktafp9w@qN0U`#uP{PA-&$|*xmOYs6QkP%2JZn7FrHa`?uI`s z0m#PkU_0I^$R~%xp$E@g@Eq%P^|idpnbH2f5IBDPxUK^f0kH0#R!f;pv-O}7&}cs* z0yQ-?dVe6$>*{~d@ICOxQa63I-NXB$OQ5G3QYbB@mKuMF)%U{LE36QF6_X!pyYT?B z)$yQ)9;QrpsY#Aw09Q&XUmyaE=UZLR6bN)s&ClvVC!f9t8~EC6HrAh+Ggm#v?dmn| z)i9j6o`r;70i*D%QVo#ZZl~tvlRRKPUn@{%a`l&oPL@AJw^Pl(M>U%UvOljGLEEmyBzJ5-oZ0{pI4 zk56{?Vv{5O|9sPDG!lWWk+Aq0zXOIOfF7M0_lTCJ98gkZfeN6sGU?$m$DXp$#K!8| zWOLB8&c8zZ!nQ!Fa6ctn_Cpdt6);rNLs{kOy_<-Q)mNr}LP)#w$y5XqO=AUXOVk7# zX(Lcan~KE1E$SWR5X%{lj+z1M!7$GvX44P<3!YG~(X=UxA1-U&$^5K`dayG^wBtwz(B z6>%9gpUfHMKx%5Ljns2j8dW{JovvN`livph2I#SkW%T{fAZ2Cdm}KYXXLwFzfHiCG zrk<}(YD?E+Hp43`D=w1*Kx1Pgw|RMa+}73Afq@?{%H8t5YV4Q#>=pzH`eGhU}R=~IzMjsiNot>qLi3ueG-3t@r9EfmQ zVaos_fPxX_<>j^vz<9C@^!E0eft@0fwg%1ToP#1TXwN#T=g#t2EOvw2zGZ#Ky4*Cr9N)QyzR18hbioTQ0P6@gjBCu4fuW%xuALEj ztz0;GHa=QLCr_QAU4hrg<4L2Y_YQJ@|L9+oHQY*#Z|S7IA4sr z!?=x=0}wJsj~3CdU3(7}mllrvrXri3o~E?4H101fEYSXv3~C)Fx_Wh5mx-CO;Pd%3 ztd~$I#95FX63>E$!$@VoDf;SfuG8_SDNY(QIk2tjIr{XoPk0P{jNf!%wS{qT9Dax> zQ5KW~MMXunz200nt0lEM%T|D37DoaA*b8^3Oox3$|i0aR60X*l}} zAMmL(`U=;RrfG^8`&-{;G&eU-y+7(3ox*AiGSGFoT-?X?jBH%IG@;>c!0{|js0=v4 z?ba`t@r%5`!r|X3KR=JhcLf^s^S&kiu^Coh!PxgQmy(h~Q&SPv1xG=_I!b6K(Zu9r zm<}9xoBKE!j~ofwWD3k2^l1e*(xF9ln*W%>mR1 z>i`N!DWX6IkXl*kPLX3wm(fJVs%xzOEgks3;pl*Tgh&mgHJ*rxATm~6r|2CWF#dKS zeUe5Y-~IX?I`l!aW-SBsFeeUJbrbzJx~(K=Uw-Koen;&DIF6HLK;|K9)D=FgE7&kP zVatF~7z;`w0HNHBiLki1$SrP7EJ6TTz@h{%9_wzfIUoY?QdczndVdwD%Ed5O|eGfcX3^V2MY&J){KMDa*Zmx?nl>Gn#j7CD>qU9O7d~1c* znfko%9w*O#?(d6&S*nKbv9VE;EGhxna7LJ9=U01Pp;q5FDtP9-i7dywh-Rn@_7NSi z5%^IM+EQ0n7drtQLxBoZSy@T#?d?=jyn}u^cb0kK@GTy@mi12A>@>U_Ik|?p=pZ<3 zySuyD7YKzRhTaM-<}vK=@8{luu%SR59UV4YJlh{HqLZgi&>rub#NO@|4({lE0FEeabS|6Tc&0!;{5tHifz=Vg;p6ZlWV$1aD5wMglbm5W>xW!Z>bQ)JU*smAJAal6@(XET zFhHd{SM^VIoKU=oF24c#PxrBku6+gLy*J307JsuDFe5>oKsw!%0YrEZoyu3UPE=NNTu7Ni+G{ol_ zgc0z+{nk4i2-RT|f-naUvO}MIY_dVM@P**wUk|SQa{>;BgRCUH!oo*65a7evPEJl% zI?@_>nnea(*uWME#Ph#y0)X+^XP(n{^bD_4Qc_g#(w$H7{PY>WNd{e~)2UkUpAry< z*RK7=^EbS;^jT9gkKaA$r_#Y~%oiR=bYuC7nE+lp;|qoP=`%lS_#QBBCYej1$IiPb z-{q&kg;d289kfg4y00kzdQ3jncB4QDN63}yRxr9W*p01;bj@5Q8wC?Jk(f>hl z6ObOtC|7Sh5*@4U9VcM?+XeUpMsXhb*3+zz!VWS?z-qhJ|3zFrimk$Vpangbf9ar6@S=>h+#}33IU@sHk4EVhq&3|(c$HBg``%2k00000NkvXX Hu0mjf`k=I7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii17.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii17.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c545341cbc81c6dac73fc115f53aab19ce4027 GIT binary patch literal 1502 zcmV<41tI#0P)wJfu;oiHKg=*qSHZ%9k`J3;YGc#+a+o1S_I1OW9cFy*1)~#sW0HjgS;SZ{5|9h1N zo|%F&YJI(6Q~;5Yks(Htl9FiCrh6zkc?*AccXv~I+I=)Oeu?7a5)HC}xoKX5OzsXR z^DbY$LN{*wp-oOshB#hcUbYzm09962@|c>M%41bk6+7Fz*G1FQ)67dqNMIhw;fUvP zW+uSnwrvk6-NeL1Mk^uyZmO@ZXP)2h=drrFIurr@0s_Gt2yD-Mh<9ZsIG2tw2LiLR zvotg`q-3D$^ZBT}yjN1a?l0AIc&nVxgbLVkOcuy6b8|E0=k25) zyUsFiaq$+9?MtF#ZFai26zp8xT*@F|=yr5;uq_Za1|K4|nq?dI^z?AE_Kvs;NCnknQ>DJnLd(qocnn zyK;jD1kAg~==FMO^X4rmF3sovP3>%IYKo$wqIf<(KTij==$|3A+u;eAu}^m zL%ocQ3>(e}Jqii|{q7}|bpAyr3n^%H(GbA%&%H=re)R?OFb97%fRz!>VdLn-WH=-A zC~yF1J-{S;7`+bOk&Fq|E+eCZoaC-^XX%mb9O~=urGi~6@-3~W6fY>tcYyc_8=^~6 zQZ)S;A?;60OpqP$Cnu+goR6!>(7)h`meG&~oN}O-O7;jCQ#k(;4M}j0I`I1^sQKgx zzOZm#T)TFK!r5m8`uct$x7$rEEiEiiTwF|bb#*+4^OyIy=<5?6b_nBegdmW2Ns^cM zpftSqXntyL$KaIS$jFfhRV48jQb-+t>Ic7)xb z2tk;GhqWUge`L@>0m7EY<5Bj7b7h|ch>ngXGf7@f&ZF!IRgB(_iHT7%GBxsQmTQoO z4s;PfIQ#1c02rSsdRA2Q41dSQ#wzCpyPo3t=`&u#8e|;~hf2YJ3P2jXdUfRtf5ZJc zeOg<`<2Uzvsi6OH=1U$(%39g73;?&C{)WQ*^qC*D=)0l}#U$s_(PQT_C_BSTy%*vX zPs$)&axQFz*cU#zt?l{+Nob*r2Qw9nnHk$j(=-(b`di3QATUR5KZ`~upW;CVx;C4Q z=Xjn0!Qqi1P5(Z$ybJVXw~Gtr;xHGO&-Xi}rKK`|pSwbw_n!nGn?CglM$mFCA|isu z$Nj7e8|mp=X-z+CEsTx%=+L1mp5p*He%uoxv(}3j&dbVN>g+#o;QiYVprqslgCf3< zef}A3gdnRAIGnC!0N9yOU`VkG`J$1PZnbmp1pFFg@boGxD^ZwzT@)(1QbxXu#2C$ z8$tq*0*F#58vf;qlTDLXtrhk5Uf?5Gc7$FRU1g>74`8p2-}oX;Gynhq07*qoM6N<$ Ef>A}k@&Et; literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii18.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii18.png new file mode 100644 index 0000000000000000000000000000000000000000..9a99bfcc32ef19486043eabc16ed82a5c799afcd GIT binary patch literal 1508 zcmVSvH*Wl?jgOB9I9^;_v>5^bm6et87#|a{f$hnUa8_o5bLkj!ATT{W zP5u4-N(Q<c8>D$@)QDXZ9l54%?JSUoSbJB0(EsBLvla@ zC|DwZnurArS(^iCZf<7iL4bd2{QU;U2n0W@Nd$m~s6V0p(lJVkZ(08U1VGqywY9ZW zSXj7Z$bVD7Xq16t=fV_?-CpGHI59teR}|0t`uda{bU|9dxLjz@I?4+OD z&oXa*{x**-3!-CfcDlH*+_}2BltIAIZEbC3TOcF`AELCHWgB*Oc5>}N*ifL7k`fMJ z$5T%FzVQ_8b-zOnM+jAXa){>#dj6(}u1YHVU?1JOHBXgQM_9J=m-E!r)MP_qLqoqS zyD~uo0_N;7dc9uSym6B82@5)#7m+1Xh-kQzpnT}0QfPY9WLgKTngvWERK zI5=Q9BlIXJ1oYWUDrozQPUg_E(Ro7vFTMB*ee>nATIERfRkCNex(4)Ws zp!EQg>|yjecv&|+ly!Vba98egJhq=ZOOK_dQFl)lWoIqPH#VJ8Jka1!AKwAuM~9O{ zm&C9~&DZJK&FvO%OF7QIVm4!OO_V;49%7o)dBLqnB}ERDRH z5Lmi=`D0F2M)z94q=6n}?>g(>IRSeZz) z{B8GJ^hH%QkKaA$rR<(3nJ;-DDQjiRG639m`Wp)K(`SCt9QTA6Hj|u7M^BtfqSPcW zbzKNoJSl^6$+@rE)MVp^ZEXugoJqJ?{$}o^ZxVY$EHucf)TV_ z3knLNk&#i>g^k3-t+cA2)fR?_eRS|(InQx`96RO-kXh};3+F{eE_L?r-~Z8_2T)M( zvOy8wN5A@#HbRiq2fUW9WdO)bC@`eRLcVC^PPfV&JORH389cp;iVBtPO35}D!2d~W z1|VxFM|t$FMN-DByWs%zf4cymgi#t_{%53_A%z~+WB_K})&4iy%|KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000D)NklzI82@D*gJfwoRUvUP7|EYYK+=n_GAs>2BI?OYrH8gqkG&O^ zAOsI#g9v-`m_qBJ?8%eL20OScgNwOz5cc9^&=BeDz`Ded28pb*hvdD?pEpSs+V7Id zoA-X-?|t9*e%~7oee6-dZ)A8c06-910D$X;?s*jO8|HcDG4uTEhVJQw&)J=^Ce5dV zohJ=~*uu*4xX~SJ+u@OB2x1Ev-b?2TVx5U;CdHYZA0N!Z=bxbyoBAo{7ArO)8gb|# zYIaV{1=AoTI1FGC971%MEMM#RMn?K;0u3>9iMNI`JBMDR$8R_IG z1o0!2Ksq^!qjw)M8A;&s;tUzyi)X(~;46R762aX)mlOzM3n)sK-L!XP%Jc0V(#cUY zZ|~q68Kz^tkzq7%?;H^k#2SDa>{`M+hUJ%22u{woPyFQ}{(g6lT%nH1NCK~geE`7p z*bvUIy3PSm=hI_DI8lJt!alyuETO8%*vyCVP4a;SH@jNveGCJkFtp2VT51<(h(+V5 zDl*QmKEXFKjNrq2%Nh;CIKR51H9%5e#%#Q=vrhq0tF3Jnz)sH;06_5JJ+yxxIL6Lz z!AL>9vytZxiN9{>9?q;-j}uFjWhYd$`n%QrzUR3nkusY(wSiC=|D5epg{1`ADyLc$ zjVvZr?DNkc#g{NW7I35h08W$}NaA;B>R$r@ZgdUV)f%?8Rm`W$4r~D6?8QfHA={3^ z*0zemx>bJ9uRdXVY{)TYx2_*p+;k`YvQ+%mSfECX`W zZGj;>c~veWSE!?=PGRl)TNKvY?VD73FYJNZF#+1lhaGo>?sMHS-)>b!#?*wDEya%$ zO8_JsAIu_Olsf;rIVZOx(&^kRSE$ol5NYGRu(|7o?uo=U=)JAb$zde6L7fLeVMiGI zSs)aKB(6~$7B*Ev(in&&4_f8Gsp*+*W-PJ^*ZV*}%kW+ZqKsHHj_j%opyrTZa|0U0 zzKDPzwx}cfeZQ*6Ml2eKAj%fu`cDb`AI7ndocnFo-sxEH`eC>dAfH#UXdIJ~1RcM; zIP2@&-jV@0Fsh1-`FLal#G?-aqRAW z=w8WImd6d!H0)>jm!fOjOjIqmeuK%*`BxwT>P)J?vBNXgD zVVbi_(neoT7mOZ2PEL*u)O}4Z)jqtNx_eIY2=ZO`)X=GK`l+zsI+JZ|?r&a$jnPMq z+TxYCjd*!^*<}g<($dnxV{vgYkByCu3LlOp_D0hd6_1se$$MBM54c&KtOB_R{5CD0JOKVayv~=N9f|kKQ+hK5acjO z>KZZ&hr?{Rd#{*hVccze0fB>SPEGdu}hi~xX)C9|2C8OqJgWqp2ro(@#xQ`;cXrAsr)CT^;N zkz6nhI#vKt4?!Wpej6{Wj9}0y`_#6NhF@f?oH8rW8Pq3bx(@INAITLKO$LjZ}^Wi4$zf?m6 zQ*K|Wc?;rSD!}q}Bdwlfi(E!hjE<|^PJXGQ7 zqrsmF^f@Pcg=NE6oZO~tXKm-`?x3ZyFY>s+=P&vFkRziY=%^%~Ert2(S1?*_-az$n?-*)%qGo;O$|GEJK|7xVl+|8wfRe>-{6MD(v< z1TAY>Sy?nS6=h#wY}rymDS1*YOio7V;K5f}$9;a}NWf;3>WdfTd-wYEZ_EArU&}mz z`ug1_M?Amx{=2jufvqv%wR{}|KxWE;ONuN|0hCsDx>M$uQ#P8|SbbAfE2Do#|A(v@ zfb>vCIeOO;v9bDQ6o4G1D4&!u(*Uf#z;tSZEdU{Z`l)BQcOnly@X)#gfUVINSlEP4 zK{!@G9I&Az0|4S=OD78p3-ra8pYtY!pbFTOf@u}U0APqnm80ojt~%LL{wo&2=_hZ5 e(HC!(ll{K|V{j=~SNH({0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000D|Nkl%W+RtxI0N zuKud(Rn_+@93GKpexH%%y#N4FY61Xm8oKA1-)FFT>>jIs)6hNL@Hwk7C#6g(&|YZ} zr6!gZM~%*2OAe1TLzJ3G^IobiN_9s})+vrPeta;4A>R~LywlGxJAZ0%L?Z@mj&5V2X-FcB^YRJYw~0 z-|v7w7&3vTd9NuAfQs!x#-v9izgdDPH6gb3NikY69UZu7=$_g6QzOmG^d+hKXe0&z zs8kh*QWLAWl4CSheNj>%&Y!}H=~#rsV_`i>pVxE^TRSRhDli_7qf%9nN(@7kzBoFN zN(|%Z;}?vF;Km*jzo`Bn2#H<5S(a3kX|n?Wh1sT~h!6fhXUf{o7~TySRr#3hM1Z zUfU@CrlET{ma(447pRx*qoUQ{sqRl*`0q3b$VDvCZ(DfjeJb1 zc*r+}Bwxhjh~Jh1063}MLY98Qo&Ey=;8xd=U9Pnmv~0r$0M1%`MCP)sQ`p*3A*`F} z_u~31CP(^hdsf-nQPB-MyIeCkHusrS0CU+a-j>VMOHpbihm6PXb}vF zH|0Tg$O+ zl@p4lR&o>au7zR8F|QpQAb+o-kr>9qak_tXdH$$z>y-?^hT)Vt>cG zBcMoKsUe^bNb$iROj{b!`p|-yXk%^dTI>%6H8BVkVyvYo5GbvoNe#GLQYA$Nw@X?6 z^$QS&)E$Lb9`-rrP62 zO>==VYoo6(L`EkN9v&V9YP>vYyJJ<8{Y)MDR@yXVQsp8Yw#JR<>#OPEzai1eJzO z@)~T6K5Ep)uKI!kPfbl(OavfhWo10Z#>VnkP*A`?kn!sf?iHWA17{4CMCNMcv0#yiE0qlud&;p4d17vcl^(3vm zCyCCU>!ww)ceBqil|2L%02!>o2DXwt_Fn=^VzU1_feTCS($Gjn;~u?K(hrd7>1iI% z{d7jp9?gfqLd4&Qb2j1wk*o!Kzx_51{j+A|SBn+Fp}-I)!DuMr^Z85qyd$3uIzQoT zTSqSGr57UP{zbPDA1S{P^9Ao87D?Q643{olMk`jVV#B>RMU$}X>;G9Z5^D!~aoBN=-K z=S7!5_qQZaazX>O{Sc+kg|b&zLHH^rA8V^|0fLtbpH~TM6ICb2FhF8L5?>$!jPtGb znLM5=RR6s?=;YGpU;|%^#lrf7X&cos9#&6vkG4lOvOGjVpJaHMFyj736IrcR>h3Q(HE;KtY2M8G%+>FaaR z&Yjy?$9sO@fHPw*YK@E40-;=L1j;_)XJO#rq=UtpmLLy-ts z0dYV>Nd^GK&9;z?j*ik7Uw+O_2tgIll!6&3Aql_`OqHYQzg%^*&HG=m2yQ<)5k_B} cs!;a-06V$B-j;6t*8l(j07*qoM6N<$f4+xuoumqdnR=CVT!m6!W zKoNFR=cKmiN`Lf0^J`J|heEcM%a6KADi^4>Mqsj*i4-sqZMfN>dv%r*&AMLXLx{KM zcP{7U{kRA=&&Hm^^PKZLzw_}v?|Yqe0}_AxG!1L$pDT|4a~@45Bp{%Wyxix=Uwy!| zXO&SK{d^)aI)N!urr1DTx5ZNKv-wnAQ^hNSFMlkD4t`%xtqwP3xu>$-hQGs95_65u zU}N-AtJZh5-xhdiXvkqA04Xgk3HEJ3jq)pS^L|6W@ z*@*AXojZ9A27|nom6h2mU_1a3=%~QL)CcK!N4o)hkk=VA;)%i+bv?uc22BLS7l{a_ zRcsYN_HeL@HM^=a7b$=4U97*_eNMH&ZevXjl|U7uR$#}i@l<4}fDl0j$mB@VVOsFO zLOOA>oe~r7qkLs|`ErQuKT4WKiE70eY+x(dqyG|E5<{%jLzm11GMu-V$}jT(86FV`0K+7uvi7ULKT^_{JS*vQ-)G!&lsyZ>N0Fxh zRlppGjrc^vlvpMLMFSz4Idc}xnUlzdC=-~%xTO0x6OlmhckVeRAHurYGum`1pKbq6 zrHnW?W1zi@7cZf+X9HAp{+yiv1i@hd!J~ytJ32ZXxOkR6vW%+y`)Qr`b#l34sqDRX zS>MG>Cx|THQjtwA8I^Ei_;&Xmeyv<$$o;*{MGyQy-{0!2dF=V5vefn8yg!< z_)GwY*g*N$u3f8oev0+cJuNvonKQwJzfiD3-4AoQ|56PR1jif%gJ=Z0sXV1QyYHDh9e69cvyR8%lnad9zi-@cvoY~P>M;JJqhARxdI2qe&V5!uVi zT+aU^ID9)7Mescy5BYpPr4tnv7E)zp-bE-<#Lf#WDl=d($rr} zWIrx0PPYk--UA?DJhS>-4}U@ekPj;&?Rd>wOm4SZ51y0#IP3Kdb-c=%(f+0oICkuq zt^*VSupXFSM>(xa^q>;ZXg?_ewY9Z+e<0B78@|)heW!*VrYuNRlRSd~Qd1W41tP$BzSZ?iq0kko{YgFO z6wvoz17C;3!TO_1m#N42vU*i_Xc$gh&q6}4fKm8WsRqdDbW(f!2_CRO;4CF2CGhz= zZ;86^w~c;m2K29Byf5S|CMJfuyMyctjCu1C$FMCj?pJYFSAaHe-oQHE=X>_}Y&PS4 z@gn%DRUZA@a{c;E=rqJcJNb0YfR6R*6aghG423O}}#0%{K0@ViDYa@8m2nbuA61EJcQsmWRT;FKSG+yH zb2%^X$3?JtHufBz=bYd9osai<-|M7Xkfgg4HLSsZdK~}fJerJ4KtLh+dCybL!TqK^ ztBly_=i`yl3B<<6+Cby)ile;eR?xxP1H2;mvd44j==X=I$>E|L*Ce(p`#VIXF#~)C z8>5d}wcZ$-L87zonW*JoN0{8(s!8ix95^JEuM&tEnh z@!h#|C$E7(fLE{AYp;Ou07Rgp0`t=!rn4>02Jn7fr%XvA3SHIpAQR{}5fEP_BA8aO zRRGz;!7A454qUuSD`wuy`fDARRSWDk*5ptLR3T~wcHEgnMTQCp5oCZ&PBa{+c@NE} zbLX3>%rliXcrH_ScVq@WOiiX)YQ-6BU@O_9{}NadL#(xf*USX6oOhVYFY^Ey8XDsD z{I6&Ay+z(+DldyVUki=`xOpHO8T;UHGS^;jP;}~J(Ppt zqsUW$Dqs%8Mtq`SN-PtBqP`$ao0d#7X3SzklnG2>T-x!QiO6QJDxc~(CLeL}`mD>omKOX;q)`qS*($mwm?rznh&LCqWMyHhk zE+J%p>eLC|gf2z^@T=@3v#zc#ii?Y5JroMjrc4)AG!k98(xq&|rYcBqUH)!uuG6!K3f&9D|=+j-FMEsPF{ZRsu6~TeAZ9xPhJ3E^+ zO{2E93-%VEG&MCftfN<8x;3p!zsJ>d^HqJU{wOWXe1uLlHB#>KC;6=A;68nC#FpOy z>Q7-rDh&Mk`g#*S6Tl%hQ2xTgLe=v&)<^cVxpU`oCYbOS3s$N7VJ7!qsv&~ln1evz zB7M1c4-(QaL#?f?g2n6f>Gx4>ZLN;a6~JLhNeNX}Rx(&|aWPd@Rk6O@_a_~3-_HaP z5a0*|66m{#?B!%H^P-hmU-x;d|hvRc`uX zkB|37mq3f^(V8rWI{EcI*udA}aIpT^lBMb~?pCkr77fFR>sd(X6)+0FD%Aivola_Q zKF0&*_g|va)D%8nUs9^>`|Tqin|}Q(81D-?i;0P$j*bBP0%P{e+ zwv@4s_xbMKKAX*0U%UvuW{q3_w%oXJ^H^c*1o&O89-o4O6(&dg|M8BGXd(hzBVqA1 zeg}+606n@e`2j6cIiRG-0u?}MWzwT%jy+|giH+44pYd}-f7tw@wm_@`znTUMu z3qu%-6$X%?918Sxz+Sa+S+hygk2j zIWOra#dL92~J)BHPKtLfm+0RpT%>mP# zRYq;}^@+&n1g1=xVgrr3Ba*V8%cYvyDjpGh*%MiG=mb+{U&W*|s^f4^x&@FRgiY8oD(jniC2y?@zk z#J8fNf=8dv$75MpnLPu>1rULb49rh?m`=5~8Ndg4oIX94C~!sB{Y+rML_mD85y7;I zEd$s+9IRs9UDf$3lsoGl)?e$os7heBv2G5TKo-JgV8`vTRA|V65WxGYX4Dsacp?t($;S?*{1k7vhGq8hOV8`#S3QGW?68$+yBLs!iN7CCP-rC<61GCVxY zwO~su69F`nq{>>aU@(-@m)$GrbI)%2{o)`! zSlLe*Xg&&^0%QSwAU5I?4pU;82o(1FX~v8=nmIF(4Ur}=g>gyOuO=duo?aqVb96og z^(WtNCYw&>v-RJpv?$ue7%1<;g^TIJ1uqp|x@ac=L2wvAaJ10f?d|OjTs%u2TS`^c z`)O_Q8x$24NoDW9$NGlW5sGczMy2n(OMQJo+E%`WVEe<-?`c)wsv{*OMeFHNCA#Ei zY{a-^C4fr^yKiYZ#*@&+2moHSJK0%xcQ-{wMzS6V1ZYE=i?%frUB29{Y=WjNNN`{Y zra{+m8JRMWlaoUuBO`SD_|N=*-nZ9j-*V}Lpou_E_6xLg*JmL=rDJ}KKxjm8U~E|s z!bnd~Cr#7n?Aden5+F6z)zz${R$#h0xm&--Rd@4MeWdXaElhiaT3VYaEAuH{tFGCv z&yCvhH$eRo3_5 zL2&ee&v%}_+_wiC($GU49UX$jV|@I*R9joC<8ubESX^98<>loJR#a3(+qZ9LJ=60i zHMs9%0tg6j1Of@vT}0+G(wFi72oB$l1tEO5+f5#iN9jcQ`T4YW@7}Qzq^72FaQQ;1 z;2P#moH#)bEE=Je&MVZUj#P%GfUcF=-exbj*ixC{G;~(2pHF_J~zUjkO1VP@=!TmFD@dN%cTd; z%6yXbgAMgO%9_#smJm33@}#Z<6ag?Em|IU-t&8=b63}QrDFStMb$Wdu&<{3zr{O*D z(h4_yvB$&nqD!Dh8~h_$p@zxxQdB2TXMmLC z`Fw#0FwVESp2_d;rMe&0K_{<12OIc091hkWU$Rsk;~w>?Zr9M9xSoZCo&lrqr&2YL z)9IwPw$t2TUhf5(Jv)Kd*A|zk`+n=_W7Dg@g7LkOwTOra>gw{bFEHlJNgTtr$hfcK z&Q33F+O(c^e9tQ@JvN*1Uc3liP~g_zmh0AS950NW0Dr61@yW}}H96w{Pj`GmlM&b& z35&1s9WX8d)acx_`?WOXfRthv$N*9+ogQxIm{T^I*jRn>jGr6$!{!&Z1d@eYDdBcM zE&*f#O(ivyQLf$_iP%_urTZsEKz@25eUiqTC1CXhX1LPX2uSc(3SZ^gi9GZ4vy&zO zTcaSi1F lSFs3gKRFRbUxgXg_dnU~lAyMnKurJu002ovPDHLkV1m;A==1;p literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii7.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii7.png new file mode 100644 index 0000000000000000000000000000000000000000..3681585d8e77e58242116c0b596ff2dc9f2ccd44 GIT binary patch literal 1541 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 VHNA?#tCRo$002ovPDHLkV1kOc;dlT5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_harness+o.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_harness+o.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecc6d4edc11e8a42925a6236823f7f534df9072 GIT binary patch literal 3438 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 T=+izf00000NkvXXu0mjflf-G@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_l_arm+o.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_l_arm+o.png new file mode 100644 index 0000000000000000000000000000000000000000..a511f8f54289fc18fc29c5a1ebe2d6b9189a544e GIT binary patch literal 352 zcmV-m0iXVfP)kIyKI z)Y1?$fIQD95X440fa=G}NlFs{svWCVZy>UtK%1ledLEY62Y@!$^B@L*HQa2rwA<~) z25<%d!Tff+lB5_wSARYqIf?l3xGV8B48xFyVW6ftk(4F?w7;qbhdH~u9Xh!BWlvJ%*7c6N&SZ^oH*%T_iGpaK3Dz%UFxjrD!MQ3e1@l0=-2 zxZ*&0fQmi<<$#j} z&r^welQy0JeSp>3WSdH~9M-z*f7zX0=9_QUYj%#!5s21T0Iuu8uapYFt?zbva6BC#ai=2N@D>1*S1Sf+n#PhF)f!Mr zV-S%_b$}28=ko;$`4ag470P9ueV>?9SUL+~E~El@o)5M?WA`8kV80h%eI`J=-2%&+ zzr@?!Mh*bl8zrM?x325Vfyj3D9Pugsd-O}2EdaK`a{-t zu138n&jC!16OTj3t4A2zgi-)7IZk>s@$sJ!V_d_c0iLuDb>b3o3Z4J}002ovPDHLk FV1oaJj;8Z%TY9iU+zTz9KF7qUbSjKDSd;8nv?>B z5V%~fP{@}c2yRd=o9ui#nZe3k3aKCk;QIkM&YbPTFoeTF?)B0D?RE=nd-37#_FFXo zC~q8$qTHrwG6iDUSvz7YW?qE9HfaESeR7SWNDTm=0Vq9BfieIde9#}VymM>Ro9Yz6 z;8^ikbo})QgOgAR00zfOk1PKD6QYk}ICFqxi+#77%vUT7kcDXg4WI#DWz2qF1e?_8 P00000NkvXXu0mjf+}@I) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_arm+o.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_arm+o.png new file mode 100644 index 0000000000000000000000000000000000000000..0733c1cd5c4e4d9e500194ca43b94d716bf19ca5 GIT binary patch literal 367 zcmV-#0g(QQP)v`zr+9eAMe#R{J8!Dz_KiS*6O-$i2!ta9bC+p z+*eh__b7^*^{)e*PnT8@1Q>?lgRvNZE;5hfm{Sl8E}*1`&XF z<{|((Ze@>wHphHOmNt>+X(6L4J@5D_+;ZKH_+ zQ1nGna8K`o9)rj^K!)q}ij7C3K4e)2Hw{G+AamdMAxRR|19+YXX`1qy2!P`_Y_7MS zGDp(NvXlX^ZTqce07L-tJb(BCQm-@=0k}7QrT@oIsR1wm2EYJ(sw@6Qk!s?&@*n^J N002ovPDHLkV1g*&mz4kj literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_arm.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..b3897f098573c59a834ef6230f7dbfd1c6b2bdcf GIT binary patch literal 380 zcmV-?0fYXDP)e*!Cs~~Y zNBswGoq~IyQzaC#wp|@=-hKEW>10ls=w2fA}v01NOx0UXES-&)(Y zlTiSsPmjD=Z*|`^jeaLdLTFtL@cs2OiK2+(IKIgk1~4V&X`1R3MomEGZ;VwET0`d# z0Z5r$4>1M^U?_74z{IW0d9`|_!{LLD$4?&ZH#{#fUo4ga0IvZbM6=n8HkPOBp%iXP z!1sM(X4>!H;Wc0YiN2~T-OIOtjsZFc#BjHJ)5i1pGZjTaop$vYpajG`3`5GYO!Y)T z5Kx}y$Wj=9=Xu)P>{gkxXmwqW1K_%DFUU7KS7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_leg+o.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_r_leg+o.png new file mode 100644 index 0000000000000000000000000000000000000000..0c75e70f8336280c9bf91b91129fb461a85035a1 GIT binary patch literal 382 zcmV-^0fGLBP)E4bzjH{f^D*o`3E0VNl@XvxOx9(-h>J7%ltDrpnsMI&;S}h184vZ zpaC?1bbwmj%J%c^`_8Bo0DAFWIrjQ@Kh`P%2*dE#wNe4l{&uTFlWD;D=b0@jvqE|Y zaQShgNrqwY`Sj$B;y9-D+bS!9kOqLSzwbZLv-d=%Y0_pBQO!D}<#J7qb5#1Ck{Q6| z-EN0$+va>Qc&rw{b+5?xgD?4LJX8w+fAjWdSV62G>_7*iC}LYG8^XUzIzW;n9EJZP zRt|vH3kx7@iPAOP2e>%DWZ#8uu5Wn=iy))}q-jd?#f*m#LKiTU0^+-r{0YTIh-b+2 c%d?{T4@|Bg{AU%gZxZ${HYV?{};J h&l)-a2k@r=J^(b`hJRp-b#4Fv002ovPDHLkV1jOtpE&>k literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_upgrade_kit+o.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_upgrade_kit+o.png new file mode 100644 index 0000000000000000000000000000000000000000..831e56c56578cef2eff33fd09e4734fad9cfcd2d GIT binary patch literal 2962 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 IM6N<$f=kzWt^fc4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_upgrade_kit.png b/Resources/Textures/Objects/Specific/Mech/ripleymkii_construction.rsi/ripleymkii_upgrade_kit.png new file mode 100644 index 0000000000000000000000000000000000000000..81fdea7e5b91b94cce01b8429b80bdb79398694b GIT binary patch literal 4020 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 Date: Sat, 21 Sep 2024 13:28:03 +0300 Subject: [PATCH 03/30] mech weapons --- .../Specific/Mech/Weapons/Gun/combat.yml | 304 ++++++++++++++++++ .../Specific/Mech/Weapons/Gun/industrial.yml | 23 ++ .../Specific/Mech/Weapons/Gun/special.yml | 55 ++++ .../Specific/Mech/Weapons/Melee/combat.yml | 20 ++ .../Mech/Weapons/Melee/industrial.yml | 51 +++ Resources/Prototypes/tags.yml | 10 + 6 files changed, 463 insertions(+) create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/industrial.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/special.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml create mode 100644 Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/industrial.yml diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml new file mode 100644 index 00000000000..5fadd8f71ae --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml @@ -0,0 +1,304 @@ +- type: entity + id: WeaponMechCombatPulseRifle + name: eZ-14 mk2 Heavy pulse rifle + description: Fires a heavy pulse laser. + suffix: Mech Weapon, Gun, Combat, Pulse + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_pulse + - type: Gun + fireRate: 1.5 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser3.ogg + - type: HitscanBatteryAmmoProvider + proto: Pulse + fireCost: 40 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatImmolationGun + name: ZFI Immolation Beam Gun + description: A gun for battlemechs, firing high-temperature beams. + suffix: Mech Weapon, Gun, Combat, Laser + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_laser + - type: Gun + fireRate: 0.6 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg + - type: HitscanBatteryAmmoProvider + proto: RedHeavyLaser + fireCost: 99 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatSolarisLaser + name: CH-LC "Solaris" laser cannon + description: An experimental combat mounted laser cannon that causes more damage, but also has a greater cooldown than a "Firedart". + suffix: Mech Weapon, Gun, Combat, Laser + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_laser + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg + - type: HitscanBatteryAmmoProvider + proto: RedMediumLaser + fireCost: 59 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatFiredartLaser + name: CH-PS "Firedart" Laser + description: The standard combat armament of the mechs is a combat mounted laser. + suffix: Mech Weapon, Gun, Combat, Laser + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_laser + - type: Gun + fireRate: 0.8 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg + - type: HitscanBatteryAmmoProvider + proto: RedLaser + fireCost: 39 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatTeslaCannon + name: P-X Tesla Cannon + description: A weapon for combat mechs, firing energy balls, based on the principle of an experimental Tesla engine. + suffix: Mech Weapon, Gun, Combat, Tesla + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_wholegen + - type: Gun + projectileSpeed: 1 + projectileSpeedModified: 5 + fireRate: 0.4 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Effects/Lightning/lightningshock.ogg + params: + variation: 0.2 + - type: ProjectileBatteryAmmoProvider + proto: TeslaGunBullet + fireCost: 99 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatDisabler + name: CH-PD Disabler + description: A non-lethal mounted stun gun that allows you to immobilize intruders. + suffix: Mech Weapon, Gun, Combat, Disabler + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_disabler + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/taser2.ogg + - type: ProjectileBatteryAmmoProvider + proto: BulletDisabler + fireCost: 29 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatTaser + name: PBT "Pacifier" Mounted Taser + description: A mounted non-lethal taser that allows you to stun intruders. + suffix: Mech Weapon, Gun, Combat, Disabler, admeme + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_taser + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/taser2.ogg + - type: ProjectileBatteryAmmoProvider + proto: BulletTaser + fireCost: 19 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatShotgun + name: LBX AC 10 "Scattershot" + description: A mounted non-lethal taser that allows you to stun intruders. + suffix: Mech Weapon, Gun, Combat, Shotgun + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_scatter + - type: Gun + fireRate: 0.5 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/shotgun.ogg + - type: ProjectileBatteryAmmoProvider + proto: ShellShotgun + fireCost: 99 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatShotgunIncendiary + name: FNX-99 "Hades" Carbine + description: Mounted carbine, firing incendiary cartridges. + suffix: Mech Weapon, Gun, Combat, Shotgun, Incendiary + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_carbine + - type: Gun + fireRate: 1.2 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/shotgun.ogg + - type: ProjectileBatteryAmmoProvider + proto: ShellShotgunIncendiary + fireCost: 99 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatUltraRifle + name: Ultra AC-2 + description: Mounted carbine, firing incendiary cartridges. + suffix: Mech Weapon, Gun, Combat, Rifle + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_uac2 + - type: Gun + fireRate: 3 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/shotgun.ogg + - type: ProjectileBatteryAmmoProvider + proto: CartridgeLightRifle + fireCost: 15 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatMissileRack8 + name: SRM-8 Light Missile Rack + description: Launches low-explosive breaching missiles designed to explode only when striking a sturdy target. + suffix: Mech Weapon, Gun, Combat, Light Missile + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_missilerack + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/rpgfire.ogg + - type: ProjectileBatteryAmmoProvider + proto: BulletWeakRocket + fireCost: 25 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatMissileRack6 + name: BRM-6 Missile Rack + description: Tubes must be reloaded from the outside. + suffix: Mech Weapon, Gun, Combat, Missile + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_missilerack_six + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/rpgfire.ogg + - type: ProjectileBatteryAmmoProvider + proto: GrenadeBlast + fireCost: 100 + - type: Appearance + - type: AmmoCounter + +- type: entity + id: WeaponMechCombatFlashbangLauncher + name: SGL-6 Flashbang Launcher + description: Launches low-explosive breaching missiles designed to explode only when striking a sturdy target. + suffix: Mech Weapon, Gun, Combat, Flashbang + parent: [ BaseMechWeaponRange, CombatMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_grenadelnchr + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg + soundEmpty: + path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg + - type: ProjectileBatteryAmmoProvider + proto: GrenadeFlash + fireCost: 30 + - type: Appearance + - type: AmmoCounter \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/industrial.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/industrial.yml new file mode 100644 index 00000000000..aedf9473691 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/industrial.yml @@ -0,0 +1,23 @@ +- type: entity + id: WeaponMechIndustrialKineticAccelerator + name: exosuit proto-kinetic accelerator + description: Fires normal-damage kinetic bolts at a short range. + suffix: Mech Weapon, Gun, Industrial, Kinetic Accelerator + parent: [ BaseMechWeaponRange, IndustrialMechEquipment ] + components: + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_kineticgun + - type: Gun + fireRate: 1 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg + - type: ProjectileBatteryAmmoProvider + proto: BulletKineticShuttle + fireCost: 50 + - type: Appearance + - type: AmmoCounter +# TODO: Plasma Cutter \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/special.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/special.yml new file mode 100644 index 00000000000..ccc3146a63e --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/special.yml @@ -0,0 +1,55 @@ +- type: entity + id: WeaponMechSpecialMousetrapMortar + parent: [ BaseMechWeaponRange, SpecialMechEquipment ] + suffix: Mech Weapon, Gun, Special, Mortar + name: mousetrap mortar + description: Mounted mousetrap launcher. + components: + - type: Sprite + state: mecha_mousetrapmrtr + - type: Gun + minAngle: 24 + maxAngle: 45 + angleIncrease: 4 + angleDecay: 16 + fireRate: 0.5 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg + soundEmpty: + path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg + - type: AmmoCounter + - type: ProjectileBatteryAmmoProvider + proto: MousetrapArmed + fireCost: 100 + - type: Appearance + +- type: entity + id: WeaponMechSpecialBananaMortar + parent: [ BaseMechWeaponRange, SpecialMechEquipment ] + suffix: Mech Weapon, Gun, Special, Mortar + name: banana mortar + description: Mounted banana peel launcher. + components: + - type: Sprite + state: mecha_bananamrtr + - type: Gun + minAngle: 24 + maxAngle: 25 + angleIncrease: 4 + angleDecay: 16 + fireRate: 0.5 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg + soundEmpty: + path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg + - type: AmmoCounter + - type: ProjectileBatteryAmmoProvider + proto: TrashBananaPeel + fireCost: 100 + - type: Appearance \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml new file mode 100644 index 00000000000..85410ded6dd --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/combat.yml @@ -0,0 +1,20 @@ +- type: entity + id: WeaponMechChainSword + parent: [ BaseMechWeaponMelee, CombatMechEquipment ] + name: exosuit chainsword + suffix: Mech Weapon, Melee, Combat + description: Equipment for combat exosuits. This is the mechanical chainsword that'll pierce the heavens! + components: + - type: Sprite + state: mecha_chainsword + - type: MeleeWeapon + autoAttack: true + angle: 0 + wideAnimationRotation: -90 + soundHit: + path: "/Audio/Weapons/chainsaw.ogg" + attackRate: 3.5 + damage: + types: + Structural: 35 + Piercing: 15 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/industrial.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/industrial.yml new file mode 100644 index 00000000000..7d1b3256121 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Melee/industrial.yml @@ -0,0 +1,51 @@ +- type: entity + id: WeaponMechMelleDrill + parent: BaseMechWeaponMelee + name: exosuit drill + suffix: Mech Weapon, Melee, Industrial + description: Equipment for mining exosuits. This is the drill that'll pierce the rocks! + components: + - type: Sprite + state: mecha_drill + - type: Tag + tags: + - Pickaxe + - IndustrialMech + - type: MeleeWeapon + autoAttack: true + angle: 0 + wideAnimationRotation: -90 + soundHit: + path: "/Audio/Items/drill_hit.ogg" + attackRate: 3.5 + damage: + groups: + Brute: 9 + types: + Structural: 40 # ~10 seconds for solid wall / ~21 secods for reinforced wall + +- type: entity + id: WeaponMechMelleDrillDiamond + parent: BaseMechWeaponMelee + name: diamond-tipped exosuit drill + suffix: Mech Weapon, Melee, Industrial + description: Equipment for mining exosuits. This is an upgraded version of the drill that'll pierce the rocks! + components: + - type: Sprite + state: mecha_diamond_drill + - type: Tag + tags: + - Pickaxe + - IndustrialMech + - type: MeleeWeapon + autoAttack: true + angle: 0 + wideAnimationRotation: -90 + soundHit: + path: "/Audio/Items/drill_hit.ogg" + attackRate: 4 + damage: + groups: + Brute: 18 + types: + Structural: 60 # ~3 seconds for solid wall / 9 seconds for reinforced wall \ No newline at end of file diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index cc81a2ed64b..a84586e36d9 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1133,6 +1133,16 @@ - type: Tag id: SmallMech +- type: Tag + id: IndustrialMech + +- type: Tag + id: CombatMech +# TODO: Make medical mech + +- type: Tag + id: SpecialMech + - type: Tag id: Smokable From 8f55434b76af57d01253b1da319c58dda2cc4b7a Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 13:29:12 +0300 Subject: [PATCH 04/30] syndi mechs to nuke ops uplink --- .../Locale/en-US/store/uplink-catalog.ftl | 6 ++++ .../Catalog/Fills/Crates/syndicate.yml | 30 ++++++++++++++++ .../Prototypes/Catalog/uplink_catalog.yml | 34 ++++++++++++++++++- .../Entities/Markers/Spawners/mechs.yml | 29 ++++++++++++++++ .../Entities/Objects/Specific/Mech/mechs.yml | 24 +++++++++++++ 5 files changed, 122 insertions(+), 1 deletion(-) diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 67d221d9b61..7d0f7d57911 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -130,6 +130,12 @@ uplink-reinforcement-radio-desc = Radio in a reinforcement agent of extremely q uplink-reinforcement-radio-cyborg-assault-name = Syndicate Assault Cyborg Teleporter uplink-reinforcement-radio-cyborg-assault-desc = A lean, mean killing machine with access to an Energy Sword, LMG, Cryptographic Sequencer, and a Pinpointer. +uplink-bundele-mech-heavy-name = Heavy Mech teleporter +uplink-bundele-mech-heavy-desc = Contains a set of heavy armored Cybersan mech with integrated chainsword, Ultra AC-2, LBX AC 10 "Scattershot", BRM-6 Missile Rack and P-X Tesla Cannon + +uplink-bundele-mech-assault-name = Assault Mech teleporter +uplink-bundele-mech-assault-desc = Contains a set of lightly armored Cybersan mech with integrated chainsword, LBX AC 10 "Scattershot", SRM-8 Light Missile Rack and P-X Tesla Cannon. + uplink-stealth-box-name = Stealth Box uplink-stealth-box-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now! diff --git a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml index 3f9e909c809..e032d0b995b 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml @@ -30,3 +30,33 @@ components: - type: SurplusBundle totalPrice: 125 + +- type: entity + id: CrateCybersunDarkGygaxBundle + suffix: Filled + parent: CrateSyndicate + name: Cybersun gygax bundle + description: Contains a set of Cybersan light armored mechs. + components: + - type: StorageFill + contents: + - id: MechGygaxSyndieFilled + - id: DoubleEmergencyOxygenTankFilled + - id: DoubleEmergencyNitrogenTankFilled + - id: ToolboxSyndicateFilled + - id: PlushieNuke + +- type: entity + id: CrateCybersunMaulerBundle + suffix: Filled + parent: CrateSyndicate + name: Cybersun mauler bundle + description: Contains a set of Cybersan heavy armored mechs. + components: + - type: StorageFill + contents: + - id: MechMaulerSyndieFilled + - id: DoubleEmergencyOxygenTankFilled + - id: DoubleEmergencyNitrogenTankFilled + - id: ToolboxSyndicateFilled + - id: PlushieNuke \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index bdd27e83a89..3e2dba180bd 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -630,7 +630,39 @@ cost: Telecrystal: 5 categories: - - UplinkUtility + - UplinkDisruption + +- type: listing + id: UplinkDarkGygax + name: uplink-bundele-mech-assault-name + description: uplink-bundele-mech-assault-desc + icon: { sprite: /Textures/Objects/Specific/Mech/mecha.rsi, state: darkgygax } + productEntity: CrateCybersunDarkGygaxBundle + cost: + Telecrystal: 100 + categories: + - UplinkAllies + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink + +- type: listing + id: UplinkMauler + name: uplink-bundele-mech-heavy-name + description: uplink-bundele-mech-heavy-desc + icon: { sprite: /Textures/Objects/Specific/Mech/mecha.rsi, state: mauler } + productEntity: CrateCybersunMaulerBundle + cost: + Telecrystal: 150 + categories: + - UplinkAllies + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink # Implants - type: listing diff --git a/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml b/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml index e20259fb8b3..c59c1d2fcef 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml @@ -123,6 +123,21 @@ prototypes: - MechGygaxSyndieBattery +- type: entity + name: Dark Gygax Spawner + suffix: Filled + id: SpawnMechGygaxSyndieFilled + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: darkgygax + - type: ConditionalSpawner + prototypes: + - MechGygaxSyndieFilled + - type: entity name: Mauler Spawner id: SpawnMechMaulerSyndie @@ -137,3 +152,17 @@ prototypes: - MechMaulerSyndieBattery +- type: entity + name: Mauler Spawner + suffix: Filled + id: SpawnMechMaulerSyndieFilled + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: mauler + - type: ConditionalSpawner + prototypes: + - MechMaulerSyndieFilled \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index a48b65b167c..0efa74775c3 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -713,6 +713,18 @@ mech-battery-slot: - PowerCellHyper +- type: entity + id: MechGygaxSyndieFilled + parent: MechGygaxSyndieBattery + suffix: Battery, Filled + components: + - type: Mech + startingEquipment: + - WeaponMechChainSword + - WeaponMechCombatShotgun + - WeaponMechCombatMissileRack8 + - WeaponMechCombatTeslaCannon + # Mauler - type: entity id: MechMaulerSyndie @@ -769,3 +781,15 @@ mech-battery-slot: - PowerCellHyper +- type: entity + id: MechMaulerSyndieFilled + parent: MechMaulerSyndieBattery + suffix: Battery, Filled + components: + - type: Mech + startingEquipment: + - WeaponMechChainSword + - WeaponMechCombatUltraRifle + - WeaponMechCombatShotgun + - WeaponMechCombatMissileRack6 + - WeaponMechCombatTeslaCannon \ No newline at end of file From 32295e3a28ad2aa8509e39ba23fc0f72d4e7b0cd Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 13:31:12 +0300 Subject: [PATCH 05/30] some loadouts to Nanotrasen mechs --- .../Entities/Objects/Specific/Mech/mechs.yml | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 0efa74775c3..9a61920f203 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -325,7 +325,18 @@ - PowerCellHigh - type: entity - parent: BaseMech + parent: MechHonkerBattery + id: MechHonkerFilled + suffix: Battery, Filled + components: + - type: Mech + startingEquipment: + - WeaponMechSpecialBananaMortar + - WeaponMechSpecialMousetrapMortar + - MechEquipmentHorn + +# HAMTR +- type: entity parent: [ BaseMech, SmallMech ] id: MechHamtr name: HAMTR @@ -599,6 +610,18 @@ mech-battery-slot: - PowerCellHyper +- type: entity + id: MechMarauderFilled + parent: MechMarauderBattery + suffix: Battery, Filled + components: + - type: Mech + startingEquipment: + - WeaponMechChainSword + - WeaponMechCombatPulseRifle + - WeaponMechCombatUltraRifle + - WeaponMechCombatMissileRack8 + # Seraph - type: entity id: MechSeraph @@ -655,6 +678,19 @@ mech-battery-slot: - PowerCellAntiqueProto +- type: entity + id: MechSeraphFilled + parent: MechSeraphBattery + suffix: Battery, Filled + components: + - type: Mech + startingEquipment: + - WeaponMechChainSword + - WeaponMechCombatPulseRifle + - WeaponMechCombatShotgun + - WeaponMechCombatMissileRack6 + - WeaponMechCombatUltraRifle + # Syndicate Combat Mech # Dark Gygax From 0b92bfd7470bc143b67ce41b52a10d11ac1b06f5 Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 13:32:16 +0300 Subject: [PATCH 06/30] spawn mark filled mechs --- .../Entities/Markers/Spawners/mechs.yml | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml b/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml index c59c1d2fcef..699ed8903f1 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/mechs.yml @@ -39,6 +39,22 @@ - type: ConditionalSpawner prototypes: - MechHonkerBattery + +- type: entity + name: H.O.N.K. Spawner + suffix: Filled + id: SpawnMechHonkerFilled + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: honker + - type: ConditionalSpawner + prototypes: + - MechHonkerFilled + - type: entity name: Clarke Spawner id: SpawnMechClarke @@ -95,6 +111,21 @@ prototypes: - MechMarauderBattery +- type: entity + name: Marauder Spawner + suffix: Filled + id: SpawnMechMarauderFilled + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: marauder + - type: ConditionalSpawner + prototypes: + - MechMarauderFilled + - type: entity name: Seraph Spawner id: SpawnMechSeraph @@ -109,6 +140,21 @@ prototypes: - MechSeraphBattery +- type: entity + name: Seraph Spawner + suffix: Filled + id: SpawnMechSeraphFilled + parent: MarkerBase + components: + - type: Sprite + layers: + - state: green + - sprite: Objects/Specific/Mech/mecha.rsi + state: seraph + - type: ConditionalSpawner + prototypes: + - MechSeraphFilled + - type: entity name: Dark Gygax Spawner id: SpawnMechGygaxSyndie From 219eb54951e44309251ae142c3a13ed11920abb2 Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 13:33:53 +0300 Subject: [PATCH 07/30] construction graphs --- .../Electronics/exosuit_components.yml | 104 ++++ .../Objects/Devices/Electronics/mech.yml | 146 +++++- .../Specific/Mech/mech_construction.yml | 495 ++++++++++++++++++ .../Graphs/mechs/clarke_construction.yml | 156 ++++++ .../Graphs/mechs/durand_construction.yml | 180 +++++++ .../Graphs/mechs/gygax_construction.yml | 180 +++++++ .../Graphs/mechs/ripleymkii_construction.yml | 138 +++++ Resources/Prototypes/tags.yml | 88 ++++ 8 files changed, 1484 insertions(+), 3 deletions(-) create mode 100644 Resources/Prototypes/Entities/Objects/Devices/Electronics/exosuit_components.yml create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/mechs/clarke_construction.yml create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/mechs/durand_construction.yml create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/mechs/gygax_construction.yml create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/mechs/ripleymkii_construction.yml diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/exosuit_components.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/exosuit_components.yml new file mode 100644 index 00000000000..16e593a1f8b --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/exosuit_components.yml @@ -0,0 +1,104 @@ +- type: entity + id: BaseExosuitParts + parent: BaseItem + name: base components + abstract: true + components: + - type: Item + storedRotation: -90 + size: Ginormous + - type: Sprite + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_camera + - type: StaticPrice + price: 100 + - type: PhysicalComposition + materialComposition: + Steel: 200 + +- type: entity + id: DurandArmorPlate + parent: BaseExosuitParts + name: durand armor plates + description: Armor plates made of plasteel for Durand exosuit. + components: + - type: Item + storedRotation: 0 + - type: Sprite + sprite: Objects/Specific/Mech/durand_construction.rsi + state: durand_armor + - type: Tag + tags: + - DurandArmor + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: GygaxArmorPlate + parent: BaseExosuitParts + name: gygax armor plates + description: Armor plates made of steel for Gygax exosuit. + components: + - type: Item + storedRotation: 0 + - type: Sprite + sprite: Objects/Specific/Mech/gygax_construction.rsi + state: gygax_armor + - type: Tag + tags: + - GygaxArmor + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: RipleyUpgradeKit + parent: BaseExosuitParts + name: exosuit upgrade kit + description: This kit allows you to assemble an exosuit Ripley MK-II. + components: + - type: Item + storedRotation: 0 + - type: Sprite + state: ripleyupgrade + - type: Tag + tags: + - RipleyMKIIUpgradeKit + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: MechAirTank + parent: BaseExosuitParts + name: exosuit air tank + description: A special air canister capable of holding a large amount of air. + components: + - type: Item + storedRotation: 0 + - type: Sprite + state: mecha_air_tank + - type: Tag + tags: + - MechAirTank + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: MechThruster + parent: BaseExosuitParts + name: exosuit thruster + description: A thruster with which the exosuit can safely move in the absence of gravity. + components: + - type: Item + storedRotation: 0 + - type: Sprite + state: mecha_bin + - type: Tag + tags: + - MechThruster + - type: GuideHelp + guides: + - Robotics \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/mech.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/mech.yml index f224c1c2bf9..a3c45f5f44f 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/mech.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/mech.yml @@ -4,7 +4,7 @@ id: RipleyCentralElectronics parent: BaseElectronics name: ripley central control module - description: The electrical control center for the ripley mech. + description: The electrical control center for the Ripley mech. components: - type: Item storedRotation: 0 @@ -22,7 +22,7 @@ id: RipleyPeripheralsElectronics parent: BaseElectronics name: ripley peripherals control module - description: The electrical peripherals control for the ripley mech. + description: The electrical peripherals control for the Ripley mech. components: - type: Sprite sprite: Objects/Misc/module.rsi @@ -78,7 +78,7 @@ components: - type: Sprite sprite: Objects/Misc/module.rsi - state: id_mod + state: mcontroller - type: Tag tags: - HonkerTargetingControlModule @@ -121,3 +121,143 @@ - type: GuideHelp guides: - Robotics + +# Clarke + +- type: entity + id: ClarkeCentralElectronics + parent: BaseElectronics + name: clarke central control module + description: The electrical control center for the Clarke mech. + components: + - type: Item + storedRotation: 0 + - type: Sprite + sprite: Objects/Misc/module.rsi + state: mainboard + - type: Tag + tags: + - ClarkeCentralControlModule + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: ClarkePeripheralsElectronics + parent: BaseElectronics + name: clarke peripherals control module + description: The electrical peripherals control for the Clarke mech. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: id_mod + - type: Tag + tags: + - ClarkePeripheralsControlModule + - type: GuideHelp + guides: + - Robotics + +# Gygax + +- type: entity + id: GygaxCentralElectronics + parent: BaseElectronics + name: gygax central control module + description: The electrical control center for the Gygax mech. + components: + - type: Item + storedRotation: 0 + - type: Sprite + sprite: Objects/Misc/module.rsi + state: mainboard + - type: Tag + tags: + - GygaxCentralControlModule + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: GygaxPeripheralsElectronics + parent: BaseElectronics + name: gygax peripherals control module + description: The electrical peripherals control for the Gygax mech. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: id_mod + - type: Tag + tags: + - GygaxPeripheralsControlModule + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: GygaxTargetingElectronics + parent: BaseElectronics + name: gygax weapon control and targeting module + description: The electrical targeting control for the Gygax mech. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: mcontroller + - type: Tag + tags: + - GygaxTargetingControlModule + - type: GuideHelp + guides: + - Robotics + +# Durand + +- type: entity + id: DurandCentralElectronics + parent: BaseElectronics + name: durand central control module + description: The electrical control center for the Durand mech. + components: + - type: Item + storedRotation: 0 + - type: Sprite + sprite: Objects/Misc/module.rsi + state: mainboard + - type: Tag + tags: + - DurandCentralControlModule + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: DurandPeripheralsElectronics + parent: BaseElectronics + name: durand peripherals control module + description: The electrical peripherals control for the Durand mech. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: id_mod + - type: Tag + tags: + - DurandPeripheralsControlModule + - type: GuideHelp + guides: + - Robotics + +- type: entity + id: DurandTargetingElectronics + parent: BaseElectronics + name: durand weapon control and targeting module + description: The electrical targeting control for the Durand mech. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: mcontroller + - type: Tag + tags: + - DurandTargetingControlModule + - type: GuideHelp + guides: + - Robotics \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mech_construction.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mech_construction.yml index c40073c659d..41c5f28ba02 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mech_construction.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mech_construction.yml @@ -26,6 +26,424 @@ guides: - Robotics +# Clarke + +- type: entity + id: BaseClarkePart + parent: BaseMechPart + abstract: true + components: + - type: Sprite + drawdepth: Items + noRot: false + sprite: Objects/Specific/Mech/clarke_construction.rsi + +- type: entity + id: BaseClarkePartItem + parent: BaseClarkePart + abstract: true + components: + - type: Item + size: Ginormous + +- type: entity + parent: BaseClarkePart + id: ClarkeHarness + name: clarke harness + description: The core of the Clarke. + components: + - type: Appearance + - type: ItemMapper + mapLayers: + clarke_head+o: + whitelist: + tags: + - ClarkeHead + clarke_r_arm+o: + whitelist: + tags: + - ClarkeLArm + clarke_l_arm+o: + whitelist: + tags: + - ClarkeRArm + clarke_treads+o: + whitelist: + tags: + - ClarkeTreads + sprite: Objects/Specific/Mech/clarke_construction.rsi + - type: ContainerContainer + containers: + mech-assembly-container: !type:Container + - type: MechAssembly + finishedPrototype: ClarkeChassis + requiredParts: + ClarkeHead: false + ClarkeLArm: false + ClarkeRArm: false + ClarkeTreads: false + - type: Sprite + state: clarke_harness+o + noRot: true + +- type: entity + parent: BaseClarkePartItem + id: ClarkeHead + name: clarke head + description: The head of the Clarke. It belongs on the chassis of the mech. + components: + - type: Sprite + state: clarke_head + - type: Tag + tags: + - ClarkeHead + +- type: entity + parent: BaseClarkePartItem + id: ClarkeRArm + name: clarke right arm + description: The right arm of the Clarke. It belongs on the chassis of the mech. + components: + - type: Sprite + state: clarke_l_arm + - type: Tag + tags: + - ClarkeRArm + +- type: entity + parent: BaseClarkePartItem + id: ClarkeLArm + name: clarke left arm + description: The left arm of the Clarke. It belongs on the chassis of the mech. + components: + - type: Sprite + state: clarke_r_arm + - type: Tag + tags: + - ClarkeLArm + +- type: entity + parent: BaseClarkePartItem + id: ClarkeTreads + name: clarke treads + description: The treads of the Clarke. It belongs on the chassis of the mech. + components: + - type: Sprite + state: clarke_treads + - type: Tag + tags: + - ClarkeTreads + +- type: entity + id: ClarkeChassis + parent: BaseClarkePart + name: calrke chassis + description: An in-progress construction of the Clarke mech. + components: + - type: Appearance + - type: ContainerContainer + containers: + battery-container: !type:Container + - type: MechAssemblyVisuals + statePrefix: clarke + - type: Sprite + noRot: true + state: clarke0 + - type: Construction + graph: Clarke + node: start + defaultTarget: clarke + +# Durand + +- type: entity + id: BaseDurandPart + parent: BaseMechPart + abstract: true + components: + - type: Sprite + drawdepth: Items + noRot: false + sprite: Objects/Specific/Mech/durand_construction.rsi + +- type: entity + id: BaseDurandPartItem + parent: BaseDurandPart + abstract: true + components: + - type: Item + size: Ginormous + +- type: entity + parent: BaseDurandPart + id: DurandHarness + name: durand harness + description: The core of the Durand. + components: + - type: Appearance + - type: ItemMapper + mapLayers: + durand_head+o: + whitelist: + tags: + - DurandHead + durand_l_arm+o: + whitelist: + tags: + - DurandLArm + durand_r_arm+o: + whitelist: + tags: + - DurandRArm + durand_l_leg+o: + whitelist: + tags: + - DurandLLeg + durand_r_leg+o: + whitelist: + tags: + - DurandRLeg + sprite: Objects/Specific/Mech/durand_construction.rsi + - type: ContainerContainer + containers: + mech-assembly-container: !type:Container + - type: MechAssembly + finishedPrototype: DurandChassis + requiredParts: + DurandHead: false + DurandLArm: false + DurandRArm: false + DurandLLeg: false + DurandRLeg: false + - type: Sprite + state: durand_harness+o + noRot: true + +- type: entity + parent: BaseDurandPartItem + id: DurandHead + name: durand head + description: The head of the Durand. It belongs on the chassis of the mech. + components: + - type: Sprite + state: durand_head + - type: Tag + tags: + - DurandHead + +- type: entity + parent: BaseDurandPartItem + id: DurandLArm + name: durand left arm + description: The left arm of the Durand. It belongs on the chassis of the mech. + components: + - type: Sprite + state: durand_l_arm + - type: Tag + tags: + - DurandLArm + +- type: entity + parent: BaseDurandPartItem + id: DurandLLeg + name: durand left leg + description: The left leg of the Durand. It belongs on the chassis of the mech. + components: + - type: Sprite + state: durand_l_leg + - type: Tag + tags: + - DurandLLeg + +- type: entity + parent: BaseDurandPartItem + id: DurandRLeg + name: durand right leg + description: The right leg of the Durand. It belongs on the chassis of the mech. + components: + - type: Sprite + state: durand_r_leg + - type: Tag + tags: + - DurandRLeg + +- type: entity + parent: BaseDurandPartItem + id: DurandRArm + name: durand right arm + description: The right arm of the Durand. It belongs on the chassis of the mech. + components: + - type: Sprite + state: durand_r_arm + - type: Tag + tags: + - DurandRArm + +- type: entity + id: DurandChassis + parent: BaseDurandPart + name: durand chassis + description: An in-progress construction of the Durand mech. + components: + - type: Appearance + - type: ContainerContainer + containers: + battery-container: !type:Container + - type: MechAssemblyVisuals + statePrefix: durand + - type: Sprite + noRot: true + state: durand0 + - type: Construction + graph: Durand + node: start + defaultTarget: durand + +# Gygax + +- type: entity + id: BaseGygaxPart + parent: BaseMechPart + abstract: true + components: + - type: Sprite + drawdepth: Items + noRot: false + sprite: Objects/Specific/Mech/gygax_construction.rsi + +- type: entity + id: BaseGygaxPartItem + parent: BaseGygaxPart + abstract: true + components: + - type: Item + size: Ginormous + +- type: entity + parent: BaseGygaxPart + id: GygaxHarness + name: gygax harness + description: The core of the Gygax. + components: + - type: Appearance + - type: ItemMapper + mapLayers: + gygax_head+o: + whitelist: + tags: + - GygaxHead + gygax_l_arm+o: + whitelist: + tags: + - GygaxLArm + gygax_r_arm+o: + whitelist: + tags: + - GygaxRArm + gygax_l_leg+o: + whitelist: + tags: + - GygaxLLeg + gygax_r_leg+o: + whitelist: + tags: + - GygaxRLeg + sprite: Objects/Specific/Mech/gygax_construction.rsi + - type: ContainerContainer + containers: + mech-assembly-container: !type:Container + - type: MechAssembly + finishedPrototype: GygaxChassis + requiredParts: + GygaxHead: false + GygaxLArm: false + GygaxRArm: false + GygaxLLeg: false + GygaxRLeg: false + - type: Sprite + state: gygax_harness+o + noRot: true + +- type: entity + parent: BaseGygaxPartItem + id: GygaxHead + name: gygax head + description: The head of the Gygax. It belongs on the chassis of the mech. + components: + - type: Sprite + state: gygax_head + - type: Tag + tags: + - GygaxHead + +- type: entity + parent: BaseGygaxPartItem + id: GygaxLArm + name: gygax left arm + description: The left arm of the Gygax. It belongs on the chassis of the mech. + components: + - type: Sprite + state: gygax_l_arm + - type: Tag + tags: + - GygaxLArm + +- type: entity + parent: BaseGygaxPartItem + id: GygaxLLeg + name: gygax left leg + description: The left leg of the Gygax. It belongs on the chassis of the mech. + components: + - type: Sprite + state: gygax_l_leg + - type: Tag + tags: + - GygaxLLeg + +- type: entity + parent: BaseGygaxPartItem + id: GygaxRLeg + name: gygax right leg + description: The right leg of the Gygax. It belongs on the chassis of the mech. + components: + - type: Sprite + state: gygax_r_leg + - type: Tag + tags: + - GygaxRLeg + +- type: entity + parent: BaseGygaxPartItem + id: GygaxRArm + name: gygax right arm + description: The right arm of the Gygax. It belongs on the chassis of the mech. + components: + - type: Sprite + state: gygax_r_arm + - type: Tag + tags: + - GygaxRArm + +- type: entity + id: GygaxChassis + parent: BaseGygaxPart + name: gygax chassis + description: An in-progress construction of the Gygax mech. + components: + - type: Appearance + - type: ContainerContainer + containers: + battery-container: !type:Container + - type: MechAssemblyVisuals + statePrefix: gygax + - type: Sprite + noRot: true + state: gygax0 + - type: Construction + graph: Gygax + node: start + defaultTarget: gygax + # Ripley APLU - type: entity @@ -154,6 +572,83 @@ node: start defaultTarget: ripley +# Ripley MK-II + +- type: entity + id: BaseRipleyMKIIPart + parent: BaseMechPart + abstract: true + components: + - type: Sprite + drawdepth: Items + noRot: false + sprite: Objects/Specific/Mech/ripleymkii_construction.rsi + +- type: entity + parent: BaseRipleyMKIIPart + id: RipleyMKIIHarness + name: ripley MK-II harness + description: The core of the Ripley MK-II. + components: + - type: Appearance + - type: ItemMapper + mapLayers: + ripleymkii_upgrade_kit+o: + whitelist: + tags: + - RipleyMKIIUpgradeKit + ripleymkii_l_arm+o: + whitelist: + tags: + - RipleyLArm + ripleymkii_r_arm+o: + whitelist: + tags: + - RipleyRArm + ripleymkii_l_leg+o: + whitelist: + tags: + - RipleyLLeg + ripleymkii_r_leg+o: + whitelist: + tags: + - RipleyRLeg + sprite: Objects/Specific/Mech/ripleymkii_construction.rsi + - type: ContainerContainer + containers: + mech-assembly-container: !type:Container + - type: MechAssembly + finishedPrototype: RipleyMKIIChassis + requiredParts: + RipleyMKIIUpgradeKit: false + RipleyLArm: false + RipleyRArm: false + RipleyLLeg: false + RipleyRLeg: false + - type: Sprite + state: ripleymkii_harness+o + noRot: true + +- type: entity + id: RipleyMKIIChassis + parent: BaseRipleyMKIIPart + name: ripley MK-II chassis + description: An in-progress construction of the Ripley MK-II mech. + components: + - type: Appearance + - type: ContainerContainer + containers: + battery-container: !type:Container + - type: MechAssemblyVisuals + statePrefix: ripleymkii + - type: Sprite + noRot: true + state: ripleymkii0 + - type: Construction + graph: RipleyMKII + node: start + defaultTarget: ripleymkii + # H.O.N.K. - type: entity diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/mechs/clarke_construction.yml b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/clarke_construction.yml new file mode 100644 index 00000000000..00d2e164ab3 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/clarke_construction.yml @@ -0,0 +1,156 @@ +- type: constructionGraph + id: Clarke + start: start + graph: + - node: start + edges: + - to: clarke + steps: + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 1 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 2 + + - material: Cable + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 3 + + - tool: Cutting + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 4 + + - tag: ClarkeCentralControlModule + name: clarke central control module + icon: + sprite: "Objects/Misc/module.rsi" + state: "mainboard" + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 5 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 6 + + - tag: ClarkePeripheralsControlModule + name: clarke peripherals control module + icon: + sprite: "Objects/Misc/module.rsi" + state: id_mod + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 7 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 8 + + - tag: CapacitorStockPart + name: capacitor + icon: + sprite: Objects/Misc/stock_parts.rsi + state: capacitor + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 9 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 10 + + - component: PowerCell + name: power cell + store: battery-container + icon: + sprite: Objects/Power/power_cells.rsi + state: small + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 11 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 12 + + - material: Steel + amount: 5 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 14 + + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 15 + + - tool: Welding + doAfter: 1 + + - material: Gold + amount: 5 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 16 + + - tool: Anchoring + doAfter: 1 + + - tag: MechAirTank + name: exosuit air tank + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_air_tank + + - tool: Anchoring + doAfter: 1 + + - tag: MechThruster + name: exosuit thruster + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_bin + + - tool: Anchoring + doAfter: 1 + + - tool: Welding + doAfter: 1 + + - node: clarke + actions: + - !type:BuildMech + mechPrototype: MechClarke \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/mechs/durand_construction.yml b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/durand_construction.yml new file mode 100644 index 00000000000..a1e58b8c89a --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/durand_construction.yml @@ -0,0 +1,180 @@ +- type: constructionGraph + id: Durand + start: start + graph: + - node: start + edges: + - to: durand + steps: + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 1 + + - tool: Screwing + doAfter: 1 + + - material: Cable + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 2 + + - tool: Cutting + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 3 + + - tag: DurandCentralControlModule + name: durand central control module + icon: + sprite: "Objects/Misc/module.rsi" + state: "mainboard" + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 4 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 5 + + - tag: DurandPeripheralsControlModule + name: durand peripherals control module + icon: + sprite: "Objects/Misc/module.rsi" + state: id_mod + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 6 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 7 + + - tag: DurandTargetingControlModule + name: durand weapon control and targeting module + icon: + sprite: "Objects/Misc/module.rsi" + state: mcontroller + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 8 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 9 + + - tag: CapacitorStockPart + name: capacitor + icon: + sprite: Objects/Misc/stock_parts.rsi + state: capacitor + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 10 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 11 + + - component: PowerCell + name: power cell + store: battery-container + icon: + sprite: Objects/Power/power_cells.rsi + state: small + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 12 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 13 + + - material: Steel + amount: 5 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 14 + + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 15 + + - tool: Welding + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 16 + + - tag: MechAirTank + name: exosuit air tank + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_air_tank + + - tool: Anchoring + doAfter: 1 + + - tag: MechThruster + name: exosuit thruster + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_bin + + - tool: Anchoring + doAfter: 1 + + - tag: DurandArmor + name: durand armor plates + icon: + sprite: "Objects/Specific/Mech/durand_construction.rsi" + state: durand_armor + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 17 + + - tool: Anchoring + doAfter: 2 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 18 + + - tool: Welding + doAfter: 1 + + - node: durand + actions: + - !type:BuildMech + mechPrototype: MechDurand \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/mechs/gygax_construction.yml b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/gygax_construction.yml new file mode 100644 index 00000000000..19eb2da6c97 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/gygax_construction.yml @@ -0,0 +1,180 @@ +- type: constructionGraph + id: Gygax + start: start + graph: + - node: start + edges: + - to: gygax + steps: + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 1 + + - tool: Screwing + doAfter: 1 + + - material: Cable + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 2 + + - tool: Cutting + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 3 + + - tag: GygaxCentralControlModule + name: gygax central control module + icon: + sprite: "Objects/Misc/module.rsi" + state: "mainboard" + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 4 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 5 + + - tag: GygaxPeripheralsControlModule + name: gygax peripherals control module + icon: + sprite: "Objects/Misc/module.rsi" + state: id_mod + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 6 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 7 + + - tag: GygaxTargetingControlModule + name: gygax weapon control and targeting module + icon: + sprite: "Objects/Misc/module.rsi" + state: mcontroller + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 8 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 9 + + - tag: CapacitorStockPart + name: capacitor + icon: + sprite: Objects/Misc/stock_parts.rsi + state: capacitor + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 10 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 11 + + - component: PowerCell + name: power cell + store: battery-container + icon: + sprite: Objects/Power/power_cells.rsi + state: small + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 12 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 13 + + - material: Steel + amount: 5 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 16 + + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 17 + + - tool: Welding + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 18 + + - tag: MechAirTank + name: exosuit air tank + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_air_tank + + - tool: Anchoring + doAfter: 1 + + - tag: MechThruster + name: exosuit thruster + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_bin + + - tool: Anchoring + doAfter: 1 + + - tag: GygaxArmor + name: gygax armor plates + icon: + sprite: "Objects/Specific/Mech/gygax_construction.rsi" + state: gygax_armor + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 19 + + - tool: Anchoring + doAfter: 2 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 20 + + - tool: Welding + doAfter: 1 + + - node: gygax + actions: + - !type:BuildMech + mechPrototype: MechGygax \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/mechs/ripleymkii_construction.yml b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/ripleymkii_construction.yml new file mode 100644 index 00000000000..5649912709e --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/mechs/ripleymkii_construction.yml @@ -0,0 +1,138 @@ +- type: constructionGraph + id: RipleyMKII + start: start + graph: + - node: start + edges: + - to: ripleymkii + steps: + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 1 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 2 + + - material: Cable + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 3 + + - tool: Cutting + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 4 + + - tag: RipleyCentralControlModule + name: ripley central control module + icon: + sprite: "Objects/Misc/module.rsi" + state: "mainboard" + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 5 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 6 + + - tag: RipleyPeripheralsControlModule + name: ripley peripherals control module + icon: + sprite: "Objects/Misc/module.rsi" + state: id_mod + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 7 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 8 + + - component: PowerCell + name: power cell + store: battery-container + icon: + sprite: Objects/Power/power_cells.rsi + state: small + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 9 + + - tool: Screwing + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 12 + + - material: Steel + amount: 5 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 15 + + - tool: Anchoring + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 16 + + - tool: Welding + doAfter: 1 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 17 + + - tag: MechAirTank + name: exosuit air tank + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_air_tank + + - tool: Anchoring + doAfter: 1 + + - material: Plasteel + amount: 10 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 19 + + - tool: Anchoring + doAfter: 2 + completed: + - !type:VisualizerDataInt + key: "enum.MechAssemblyVisuals.State" + data: 20 + + - tool: Welding + doAfter: 1 + + - node: ripleymkii + actions: + - !type:BuildMech + mechPrototype: MechRipley2 \ No newline at end of file diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index a84586e36d9..4b734b815e0 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -377,6 +377,24 @@ - type: Tag id: CigPack +- type: Tag + id: ClarkeCentralControlModule + +- type: Tag + id: ClarkePeripheralsControlModule + +- type: Tag + id: ClarkeHead + +- type: Tag + id: ClarkeLArm + +- type: Tag + id: ClarkeRArm + +- type: Tag + id: ClarkeTreads + - type: Tag id: Cleaver @@ -539,6 +557,33 @@ - type: Tag id: Duck +- type: Tag + id: DurandArmor + +- type: Tag + id: DurandCentralControlModule + +- type: Tag + id: DurandPeripheralsControlModule + +- type: Tag + id: DurandTargetingControlModule + +- type: Tag + id: DurandHead + +- type: Tag + id: DurandLArm + +- type: Tag + id: DurandLLeg + +- type: Tag + id: DurandRArm + +- type: Tag + id: DurandRLeg + - type: Tag id: Ectoplasm @@ -641,6 +686,33 @@ - type: Tag id: Grenade +- type: Tag + id: GygaxArmor + +- type: Tag + id: GygaxCentralControlModule + +- type: Tag + id: GygaxPeripheralsControlModule + +- type: Tag + id: GygaxTargetingControlModule + +- type: Tag + id: GygaxHead + +- type: Tag + id: GygaxLArm + +- type: Tag + id: GygaxLLeg + +- type: Tag + id: GygaxRArm + +- type: Tag + id: GygaxRLeg + - type: Tag id: HudMedical @@ -877,6 +949,15 @@ - type: Tag id: Meat +- type: Tag + id: MechAirTank + +- type: Tag + id: MechThruster + +- type: Tag + id: Medal + - type: Tag id: Medkit @@ -1073,9 +1154,16 @@ - type: Tag id: RipleyLLeg +- type: Tag + id: RipleyMKIIUpgradeKit + - type: Tag id: RipleyRLeg + +- type: Tag + id: RipleyRArm + - type: Tag id: RipleyRArm From bb0bb09b63d02d974ae8fed3b32e3bdc42dfcb73 Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 13:34:41 +0300 Subject: [PATCH 08/30] researchable mechs --- .../Locale/en-US/lathe/lathe-categories.ftl | 16 +- .../Locale/en-US/research/technologies.ftl | 6 + .../Entities/Structures/Machines/lathe.yml | 54 +++ .../Prototypes/Recipes/Lathes/categories.yml | 59 ++- .../Prototypes/Recipes/Lathes/electronics.yml | 449 +++++++++++++++++- .../Prototypes/Recipes/Lathes/mech_parts.yml | 319 +++++++++++-- .../Prototypes/Recipes/Lathes/security.yml | 130 ++++- Resources/Prototypes/Research/arsenal.yml | 69 +++ .../Prototypes/Research/civilianservices.yml | 13 + Resources/Prototypes/Research/industrial.yml | 45 +- 10 files changed, 1108 insertions(+), 52 deletions(-) diff --git a/Resources/Locale/en-US/lathe/lathe-categories.ftl b/Resources/Locale/en-US/lathe/lathe-categories.ftl index a7261c2b511..c2c0fa2b896 100644 --- a/Resources/Locale/en-US/lathe/lathe-categories.ftl +++ b/Resources/Locale/en-US/lathe/lathe-categories.ftl @@ -1,8 +1,22 @@ lathe-category-ammo = Ammo lathe-category-circuitry = Circuitry lathe-category-lights = Lights -lathe-category-mechs = Mechs lathe-category-parts = Parts lathe-category-robotics = Robotics lathe-category-tools = Tools lathe-category-weapons = Weapons + +lathe-category-food = Food +lathe-category-chemicals = Chemicals +lathe-category-materials = Materials + +lathe-category-mechs-vim = Vim +lathe-category-mechs-honker = H.O.N.K. +lathe-category-mechs-hamptr = H.A.M.P.T.R. +lathe-category-mechs-ripley = Riley +lathe-category-mechs-ripleymkii = Riley MK-II +lathe-category-mechs-clarke = Clarke +lathe-category-mechs-gygax = Gygax +lathe-category-mechs-durand = Durand +lathe-category-mechs-equipment = Mech equipment +lathe-category-mechs-weapons = Mech weapons diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 96cb2039116..bd45581a7eb 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -14,6 +14,10 @@ research-technology-power-generation = Power Generation research-technology-atmospheric-tech = Atmospherics research-technology-shuttlecraft = Shuttlecraft research-technology-ripley-aplu = Ripley APLU +research-technology-ripley-mkii = Ripley MK-II +research-technology-clarke = Clarke +research-technology-gygax = Gygax +research-technology-durand = Durand research-technology-advanced-atmospherics = Advanced Atmospherics research-technology-advanced-tools = Advanced Tools research-technology-mechanized-salvaging = Mechanized Salvaging @@ -36,6 +40,7 @@ research-technology-portable-microfusion-weaponry = Portable Microfusion Weaponr research-technology-experimental-battery-ammo = Experimental Battery Ammo research-technology-basic-shuttle-armament = Shuttle basic armament research-technology-advanced-shuttle-weapon = Advanced shuttle weapons +research-technology-explosive-mech-ammunition = Explosive Mech Ammunition research-technology-basic-robotics = Basic Robotics research-technology-basic-anomalous-research = Basic Anomalous Research @@ -67,6 +72,7 @@ research-technology-robotic-cleanliness = Robotic Cleanliness research-technology-advanced-cleaning = Advanced Cleaning research-technology-meat-manipulation = Meat Manipulation research-technology-honk-mech = H.O.N.K. Mech +research-technology-honk-weapons = Bananium Weapons research-technology-advanced-spray = Advanced Spray research-technology-bluespace-cargo-transport = Bluespace Cargo Transport research-technology-quantum-fiber-weaving = Quantum Fiber Weaving diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 19ab6fcdf1d..21cc2081be0 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -477,6 +477,14 @@ - HonkerCentralElectronics - HonkerPeripheralsElectronics - HonkerTargetingElectronics + - GygaxCentralElectronics + - GygaxPeripheralsElectronics + - GygaxTargetingElectronics + - DurandCentralElectronics + - DurandPeripheralsElectronics + - DurandTargetingElectronics + - ClarkeCentralElectronics + - ClarkePeripheralsElectronics - HamtrCentralElectronics - HamtrPeripheralsElectronics - PortableGeneratorPacmanMachineCircuitboard @@ -594,6 +602,8 @@ - RightLegBorgService - HeadBorgService - TorsoBorgService + - MechAirTank + - MechThruster dynamicRecipes: - ProximitySensor - BorgModuleLightReplacer @@ -619,6 +629,8 @@ - RipleyRArm - RipleyLLeg - RipleyRLeg + - RipleyMKIIHarness + - RipleyUpgradeKit - MechEquipmentGrabber - HonkerHarness - HonkerLArm @@ -637,6 +649,39 @@ - JetpackBlue - JetpackMini # End Nyano additions + - ClarkeHarness + - ClarkeHead + - ClarkeLArm + - ClarkeRArm + - ClarkeTreads + - DurandHarness + - DurandArmor + - DurandHead + - DurandLArm + - DurandLLeg + - DurandRArm + - DurandRLeg + - GygaxHarness + - GygaxArmor + - GygaxHead + - GygaxLArm + - GygaxLLeg + - GygaxRArm + - GygaxRLeg + - MechEquipmentDrill + - MechEquipmentDrillDiamond + - MechEquipmentKineticAccelerator + - type: EmagLatheRecipes + emagDynamicRecipes: + - WeaponMechCombatImmolationGun + - WeaponMechCombatSolarisLaser + - WeaponMechCombatFiredartLaser + - WeaponMechCombatUltraRifle + - WeaponMechCombatShotgun + - WeaponMechCombatShotgunIncendiary + - WeaponMechCombatDisabler + - WeaponMechCombatFlashbangLauncher + - WeaponMechCombatMissileRack8 - type: MaterialStorage whitelist: tags: @@ -830,6 +875,15 @@ - MagazineBoxSpecialUranium - MagazineBoxSpecialMindbreaker # End of modified code + - WeaponMechCombatImmolationGun + - WeaponMechCombatSolarisLaser + - WeaponMechCombatFiredartLaser + - WeaponMechCombatUltraRifle + - WeaponMechCombatShotgun + - WeaponMechCombatShotgunIncendiary + - WeaponMechCombatDisabler + - WeaponMechCombatFlashbangLauncher + - WeaponMechCombatMissileRack8 - type: MaterialStorage whitelist: tags: diff --git a/Resources/Prototypes/Recipes/Lathes/categories.yml b/Resources/Prototypes/Recipes/Lathes/categories.yml index 8faa67af1b3..249f27880f3 100644 --- a/Resources/Prototypes/Recipes/Lathes/categories.yml +++ b/Resources/Prototypes/Recipes/Lathes/categories.yml @@ -10,10 +10,6 @@ id: Lights name: lathe-category-lights -- type: latheCategory - id: Mech - name: lathe-category-mechs - - type: latheCategory id: Parts name: lathe-category-parts @@ -29,3 +25,58 @@ - type: latheCategory id: Weapons name: lathe-category-weapons + +# Biogen + +- type: latheCategory + id: Food + name: lathe-category-food + +- type: latheCategory + id: Chemicals + name: lathe-category-chemicals + +- type: latheCategory + id: Materials + name: lathe-category-materials + +# Exosuit +- type: latheCategory + id: Vim + name: lathe-category-mechs-vim + +- type: latheCategory + id: Honker + name: lathe-category-mechs-honker + +- type: latheCategory + id: Hamptr + name: lathe-category-mechs-hamptr + +- type: latheCategory + id: Ripley + name: lathe-category-mechs-ripley + +- type: latheCategory + id: RipleyMKII + name: lathe-category-mechs-ripleymkii + +- type: latheCategory + id: Clarke + name: lathe-category-mechs-clarke + +- type: latheCategory + id: Gygax + name: lathe-category-mechs-gygax + +- type: latheCategory + id: Durand + name: lathe-category-mechs-durand + +- type: latheCategory + id: MechEquipment + name: lathe-category-mechs-equipment + +- type: latheCategory + id: MechWeapons + name: lathe-category-mechs-weapons diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 12b5bedf107..f3e51f0b662 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -743,6 +743,453 @@ Gold: 100 - type: latheRecipe + abstract: true + parent: BaseCircuitboardRecipe + id: BaseSilverCircuitboardRecipe + materials: + Steel: 100 + Glass: 500 + Silver: 100 + +- type: latheRecipe + abstract: true + parent: BaseCircuitboardRecipe + id: BaseBananiumCircuitboardRecipe + materials: + Steel: 100 + Glass: 500 + Bananium: 100 + +# Recipes + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: FirelockElectronics + result: FirelockElectronics + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: MailingUnitElectronics + result: MailingUnitElectronics + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: CellRechargerCircuitboard + result: CellRechargerCircuitboard + +- type: latheRecipe + parent: CellRechargerCircuitboard + id: BorgChargerCircuitboard + result: BorgChargerCircuitboard + +- type: latheRecipe + parent: CellRechargerCircuitboard + id: WeaponCapacitorRechargerCircuitboard + result: WeaponCapacitorRechargerCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: TurboItemRechargerCircuitboard + result: TurboItemRechargerCircuitboard + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: DoorElectronics + result: DoorElectronics + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: AirAlarmElectronics + result: AirAlarmElectronics + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: StationMapElectronics + result: StationMapCircuitboard + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: IntercomElectronics + result: IntercomElectronics + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: FireAlarmElectronics + result: FireAlarmElectronics + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: SignalTimerElectronics + result: SignalTimerElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: CloningPodMachineCircuitboard + result: CloningPodMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ThermomachineFreezerMachineCircuitBoard + result: ThermomachineFreezerMachineCircuitBoard + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: HellfireFreezerMachineCircuitBoard + result: HellfireFreezerMachineCircuitBoard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: CondenserMachineCircuitBoard + result: CondenserMachineCircuitBoard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: PortableScrubberMachineCircuitBoard + result: PortableScrubberMachineCircuitBoard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: SpaceHeaterMachineCircuitBoard + result: SpaceHeaterMachineCircuitBoard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: MedicalScannerMachineCircuitboard + result: MedicalScannerMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: CryoPodMachineCircuitboard + result: CryoPodMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ChemMasterMachineCircuitboard + result: ChemMasterMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ChemDispenserMachineCircuitboard + result: ChemDispenserMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: BiomassReclaimerMachineCircuitboard + result: BiomassReclaimerMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: BiofabricatorMachineCircuitboard + result: BiofabricatorMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: HydroponicsTrayMachineCircuitboard + result: HydroponicsTrayMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: AutolatheMachineCircuitboard + result: AutolatheMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ProtolatheMachineCircuitboard + result: ProtolatheMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: AutolatheHyperConvectionMachineCircuitboard + result: AutolatheHyperConvectionMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ProtolatheHyperConvectionMachineCircuitboard + result: ProtolatheHyperConvectionMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: CircuitImprinterMachineCircuitboard + result: CircuitImprinterMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: CircuitImprinterHyperConvectionMachineCircuitboard + result: CircuitImprinterHyperConvectionMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ExosuitFabricatorMachineCircuitboard + result: ExosuitFabricatorMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: UniformPrinterMachineCircuitboard + result: UniformPrinterMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: BiogeneratorMachineCircuitboard + result: BiogeneratorMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: VaccinatorMachineCircuitboard + result: VaccinatorMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: DiagnoserMachineCircuitboard + result: DiagnoserMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ArtifactAnalyzerMachineCircuitboard + result: ArtifactAnalyzerMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ArtifactCrusherMachineCircuitboard + result: ArtifactCrusherMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: AnomalyVesselCircuitboard + result: AnomalyVesselCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: AnomalyVesselExperimentalCircuitboard + result: AnomalyVesselExperimentalCircuitboard + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: AnomalySynchronizerCircuitboard + result: AnomalySynchronizerCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: APECircuitboard + result: APECircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ReagentGrinderMachineCircuitboard + result: ReagentGrinderMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: HotplateMachineCircuitboard + result: HotplateMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: AnalysisComputerCircuitboard + result: AnalysisComputerCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: TechDiskComputerCircuitboard + result: TechDiskComputerCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ShuttleConsoleCircuitboard + result: ShuttleConsoleCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: RadarConsoleCircuitboard + result: RadarConsoleCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: DawInstrumentMachineCircuitboard + result: DawInstrumentMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: StasisBedMachineCircuitboard + result: StasisBedMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ElectrolysisUnitMachineCircuitboard + result: ElectrolysisUnitMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: CentrifugeMachineCircuitboard + result: CentrifugeMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: OreProcessorMachineCircuitboard + result: OreProcessorMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: OreProcessorIndustrialMachineCircuitboard + result: OreProcessorIndustrialMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: SalvageMagnetMachineCircuitboard + result: SalvageMagnetMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: RipleyCentralElectronics + result: RipleyCentralElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: RipleyPeripheralsElectronics + result: RipleyPeripheralsElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ClarkeCentralElectronics + result: ClarkeCentralElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ClarkePeripheralsElectronics + result: ClarkePeripheralsElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: GygaxCentralElectronics + result: GygaxCentralElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: GygaxPeripheralsElectronics + result: GygaxPeripheralsElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: GygaxTargetingElectronics + result: GygaxTargetingElectronics + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: DurandCentralElectronics + result: DurandCentralElectronics + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: DurandPeripheralsElectronics + result: DurandPeripheralsElectronics + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: DurandTargetingElectronics + result: DurandTargetingElectronics + +- type: latheRecipe + parent: BaseBananiumCircuitboardRecipe + id: HonkerCentralElectronics + result: HonkerCentralElectronics + +- type: latheRecipe + parent: BaseBananiumCircuitboardRecipe + id: HonkerPeripheralsElectronics + result: HonkerPeripheralsElectronics + +- type: latheRecipe + parent: BaseBananiumCircuitboardRecipe + id: HonkerTargetingElectronics + result: HonkerTargetingElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: HamtrCentralElectronics + result: HamtrCentralElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: HamtrPeripheralsElectronics + result: HamtrPeripheralsElectronics + +# Power +- type: latheRecipe + parent: BaseCheapCircuitboardRecipe + id: APCElectronics + result: APCElectronics + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: SubstationMachineCircuitboard + result: SubstationMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: WallmountSubstationElectronics + result: WallmountSubstationElectronics + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: SMESMachineCircuitboard + result: SMESMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: PortableGeneratorPacmanMachineCircuitboard + result: PortableGeneratorPacmanMachineCircuitboard + +- type: latheRecipe + parent: PortableGeneratorPacmanMachineCircuitboard + id: PortableGeneratorSuperPacmanMachineCircuitboard + result: PortableGeneratorSuperPacmanMachineCircuitboard + +- type: latheRecipe + parent: PortableGeneratorPacmanMachineCircuitboard + id: PortableGeneratorJrPacmanMachineCircuitboard + result: PortableGeneratorJrPacmanMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: SolarControlComputerCircuitboard + result: SolarControlComputerCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: SolarTrackerElectronics + result: SolarTrackerElectronics + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: PowerComputerCircuitboard + result: PowerComputerCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: CloningConsoleComputerCircuitboard + result: CloningConsoleComputerCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: MicrowaveMachineCircuitboard + result: MicrowaveMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ElectricGrillMachineCircuitboard + result: ElectricGrillMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: FatExtractorMachineCircuitboard + result: FatExtractorMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: FlatpackerMachineCircuitboard + result: FlatpackerMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe id: SheetifierMachineCircuitboard result: SheetifierMachineCircuitboard category: Circuitry @@ -974,7 +1421,7 @@ Steel: 100 Glass: 900 Gold: 100 - + - type: latheRecipe id: JukeboxCircuitBoard result: JukeboxCircuitBoard diff --git a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml index 4f9f84d0dc8..943ce85715b 100644 --- a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml +++ b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml @@ -1,8 +1,180 @@ +# Clarke +- type: latheRecipe + id: ClarkeHarness + result: ClarkeHarness + category: Clarke + completetime: 10 + materials: + Steel: 2000 + Glass: 1500 + +- type: latheRecipe + id: ClarkeHead + result: ClarkeHead + category: Clarke + completetime: 10 + materials: + Steel: 1550 + Glass: 950 + +- type: latheRecipe + id: ClarkeLArm + result: ClarkeLArm + category: Clarke + completetime: 10 + materials: + Steel: 900 + Glass: 800 + +- type: latheRecipe + id: ClarkeRArm + result: ClarkeRArm + category: Clarke + completetime: 10 + materials: + Steel: 900 + Glass: 800 + +- type: latheRecipe + id: ClarkeTreads + result: ClarkeTreads + category: Clarke + completetime: 10 + materials: + Steel: 950 + +# Durand +- type: latheRecipe + id: DurandHarness + result: DurandHarness + category: Durand + completetime: 10 + materials: + Steel: 2500 + Glass: 2000 + Silver: 1500 + +- type: latheRecipe + id: DurandArmor + result: DurandArmorPlate + category: Durand + completetime: 10 + materials: + Steel: 3000 + Silver: 900 + +- type: latheRecipe + id: DurandHead + result: DurandHead + category: Durand + completetime: 10 + materials: + Steel: 1500 + Glass: 800 + Silver: 250 + Diamond: 100 + +- type: latheRecipe + id: DurandLArm + result: DurandLArm + category: Durand + completetime: 10 + materials: + Steel: 1100 + Silver: 250 + +- type: latheRecipe + id: DurandLLeg + result: DurandLLeg + category: Durand + completetime: 10 + materials: + Steel: 1100 + Silver: 250 + +- type: latheRecipe + id: DurandRLeg + result: DurandRLeg + category: Durand + completetime: 10 + materials: + Steel: 1100 + Silver: 250 + +- type: latheRecipe + id: DurandRArm + result: DurandRArm + category: Durand + completetime: 10 + materials: + Steel: 1100 + Silver: 250 + +# Gygax +- type: latheRecipe + id: GygaxHarness + result: GygaxHarness + category: Gygax + completetime: 10 + materials: + Steel: 2500 + Glass: 2000 + +- type: latheRecipe + id: GygaxArmor + result: GygaxArmorPlate + category: Gygax + completetime: 10 + materials: + Steel: 3000 + +- type: latheRecipe + id: GygaxHead + result: GygaxHead + category: Gygax + completetime: 10 + materials: + Steel: 1500 + Glass: 250 + Diamond: 100 + +- type: latheRecipe + id: GygaxLArm + result: GygaxLArm + category: Gygax + completetime: 10 + materials: + Steel: 1100 + +- type: latheRecipe + id: GygaxLLeg + result: GygaxLLeg + category: Gygax + completetime: 10 + materials: + Steel: 1100 + +- type: latheRecipe + id: GygaxRLeg + result: GygaxRLeg + category: Gygax + completetime: 10 + materials: + Steel: 1100 + +- type: latheRecipe + id: GygaxRArm + result: GygaxRArm + category: Gygax + completetime: 10 + materials: + Steel: 1100 + # Ripley - type: latheRecipe id: RipleyHarness result: RipleyHarness - category: Mech + category: Ripley completetime: 10 materials: Steel: 1500 @@ -11,7 +183,7 @@ - type: latheRecipe id: RipleyLArm result: RipleyLArm - category: Mech + category: Ripley completetime: 10 materials: Steel: 1000 @@ -20,7 +192,7 @@ - type: latheRecipe id: RipleyLLeg result: RipleyLLeg - category: Mech + category: Ripley completetime: 10 materials: Steel: 1000 @@ -29,7 +201,7 @@ - type: latheRecipe id: RipleyRLeg result: RipleyRLeg - category: Mech + category: Ripley completetime: 10 materials: Steel: 1000 @@ -38,26 +210,35 @@ - type: latheRecipe id: RipleyRArm result: RipleyRArm - category: Mech + category: Ripley completetime: 10 materials: Steel: 1000 Glass: 750 +# Ripley MK-II - type: latheRecipe - id: MechEquipmentGrabber - result: MechEquipmentGrabber - category: Mech + id: RipleyMKIIHarness + result: RipleyMKIIHarness + category: RipleyMKII + completetime: 10 + materials: + Steel: 1500 + Glass: 1200 + +- type: latheRecipe + id: RipleyUpgradeKit + result: RipleyUpgradeKit + category: RipleyMKII completetime: 10 materials: Steel: 500 - Plastic: 200 # H.O.N.K. - type: latheRecipe id: HonkerHarness result: HonkerHarness - category: Mech + category: Honker completetime: 10 materials: Steel: 3000 @@ -67,7 +248,7 @@ - type: latheRecipe id: HonkerLArm result: HonkerLArm - category: Mech + category: Honker completetime: 10 materials: Steel: 3000 @@ -77,7 +258,7 @@ - type: latheRecipe id: HonkerLLeg result: HonkerLLeg - category: Mech + category: Honker completetime: 10 materials: Steel: 3000 @@ -87,7 +268,7 @@ - type: latheRecipe id: HonkerRLeg result: HonkerRLeg - category: Mech + category: Honker completetime: 10 materials: Steel: 3000 @@ -97,27 +278,18 @@ - type: latheRecipe id: HonkerRArm result: HonkerRArm - category: Mech + category: Honker completetime: 10 materials: Steel: 3000 Glass: 1200 Bananium: 500 -- type: latheRecipe - id: MechEquipmentHorn - result: MechEquipmentHorn - category: Mech - completetime: 10 - materials: - Steel: 500 - Bananium: 200 - # HAMTR - type: latheRecipe id: HamtrHarness result: HamtrHarness - category: Mech + category: Hamptr completetime: 10 materials: Steel: 1200 @@ -126,7 +298,7 @@ - type: latheRecipe id: HamtrLArm result: HamtrLArm - category: Mech + category: Hamptr completetime: 10 materials: Steel: 800 @@ -135,7 +307,7 @@ - type: latheRecipe id: HamtrLLeg result: HamtrLLeg - category: Mech + category: Hamptr completetime: 10 materials: Steel: 800 @@ -144,7 +316,7 @@ - type: latheRecipe id: HamtrRLeg result: HamtrRLeg - category: Mech + category: Hamptr completetime: 10 materials: Steel: 800 @@ -153,27 +325,104 @@ - type: latheRecipe id: HamtrRArm result: HamtrRArm - category: Mech + category: Hamptr completetime: 10 materials: Steel: 800 Glass: 600 +# Vim +- type: latheRecipe + id: VimHarness + result: VimHarness + category: Vim + completetime: 5 + materials: + Steel: 500 + Glass: 200 + + +# Equipment +- type: latheRecipe + id: MechEquipmentDrill + result: WeaponMechMelleDrill + category: MechEquipment + completetime: 10 + materials: + Steel: 1000 + Glass: 250 + +- type: latheRecipe + id: MechEquipmentDrillDiamond + result: WeaponMechMelleDrillDiamond + category: MechEquipment + completetime: 10 + materials: + Steel: 1000 + Plastic: 150 + Silver: 350 + Diamond: 150 + +- type: latheRecipe + id: MechEquipmentGrabber + result: MechEquipmentGrabber + category: MechEquipment + completetime: 10 + materials: + Steel: 500 + Plastic: 200 + - type: latheRecipe id: MechEquipmentGrabberSmall result: MechEquipmentGrabberSmall - category: Mech + category: MechEquipment completetime: 10 materials: Steel: 400 Plastic: 100 -# Vim - type: latheRecipe - id: VimHarness - result: VimHarness - category: Mech - completetime: 5 + id: MechEquipmentHorn + result: MechEquipmentHorn + category: MechEquipment + completetime: 10 materials: Steel: 500 - Glass: 200 + Bananium: 200 + +- type: latheRecipe + id: MechEquipmentHonkerBananaMortar + result: WeaponMechSpecialBananaMortar + category: MechEquipment + completetime: 10 + materials: + Steel: 1150 + Bananium: 800 + +- type: latheRecipe + id: MechEquipmentHonkerMousetrapMortar + result: WeaponMechSpecialMousetrapMortar + category: MechEquipment + completetime: 10 + materials: + Steel: 1200 + Bananium: 300 + +# Misc +- type: latheRecipe + id: MechAirTank + result: MechAirTank + category: MechEquipment + completetime: 10 + materials: + Steel: 1000 + Glass: 150 + +- type: latheRecipe + id: MechThruster + result: MechThruster + category: MechEquipment + completetime: 10 + materials: + Steel: 1000 + Glass: 150 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 08e11e4ff82..3d91bb970ec 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -38,7 +38,7 @@ materials: Steel: 250 Plastic: 100 - + - type: latheRecipe id: WeaponLaserCarbine result: WeaponLaserCarbine @@ -621,7 +621,7 @@ Steel: 1000 Glass: 500 Plastic: 500 - + - type: latheRecipe id: MagazineGrenadeEmpty result: MagazineGrenadeEmpty @@ -629,7 +629,7 @@ materials: Steel: 150 Plastic: 50 - + - type: latheRecipe id: GrenadeEMP result: GrenadeEMP @@ -638,7 +638,7 @@ Steel: 150 Plastic: 100 Glass: 20 - + - type: latheRecipe id: GrenadeBlast result: GrenadeBlast @@ -647,13 +647,125 @@ Steel: 150 Plastic: 100 Gold: 50 - + - type: latheRecipe id: GrenadeFlash result: GrenadeFlash completetime: 3 materials: - Steel: 150 - Plastic: 100 - Glass: 20 - \ No newline at end of file + Steel: 150 + Plastic: 100 + Glass: 20 + +- type: latheRecipe + id: PortableRecharger + result: PortableRecharger + completetime: 15 + materials: + Steel: 2000 + Uranium: 2000 + Plastic: 1000 + Plasma: 500 + Glass: 500 + +# Mech Weapons +- type: latheRecipe + id: WeaponMechCombatImmolationGun + result: WeaponMechCombatImmolationGun + category: MechWeapons + completetime: 10 + materials: + Steel: 2800 + Plastic: 1000 + Plasma: 750 + Glass: 500 + +- type: latheRecipe + id: WeaponMechCombatSolarisLaser + result: WeaponMechCombatSolarisLaser + category: MechWeapons + completetime: 10 + materials: + Steel: 1650 + Plastic: 300 + Plasma: 250 + Glass: 200 + +- type: latheRecipe + id: WeaponMechCombatFiredartLaser + result: WeaponMechCombatFiredartLaser + category: MechWeapons + completetime: 10 + materials: + Steel: 1200 + Plastic: 200 + Plasma: 150 + Glass: 50 + +- type: latheRecipe + id: WeaponMechCombatUltraRifle + result: WeaponMechCombatUltraRifle + category: MechWeapons + completetime: 10 + materials: + Steel: 1000 + Plastic: 200 + +- type: latheRecipe + id: WeaponMechCombatShotgun + result: WeaponMechCombatShotgun + category: MechWeapons + completetime: 10 + materials: + Steel: 1600 + Plastic: 550 + +- type: latheRecipe + id: WeaponMechCombatShotgunIncendiary + result: WeaponMechCombatShotgunIncendiary + category: MechWeapons + completetime: 10 + materials: + Steel: 1500 + Plastic: 800 + Plasma: 300 + +- type: latheRecipe + id: WeaponMechCombatDisabler + result: WeaponMechCombatDisabler + category: MechWeapons + completetime: 10 + materials: + Steel: 750 + Glass: 250 + Plastic: 300 + +- type: latheRecipe + id: WeaponMechCombatFlashbangLauncher + result: WeaponMechCombatFlashbangLauncher + category: MechWeapons + completetime: 10 + materials: + Steel: 1200 + Glass: 300 + Plastic: 450 + +- type: latheRecipe + id: WeaponMechCombatMissileRack8 + result: WeaponMechCombatMissileRack8 + category: MechWeapons + completetime: 10 + materials: + Steel: 2500 + Glass: 1500 + Plastic: 750 + +- type: latheRecipe + id: MechEquipmentKineticAccelerator + result: WeaponMechIndustrialKineticAccelerator + category: MechEquipment + completetime: 10 + materials: + Steel: 1500 + Glass: 750 + Silver: 150 diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 7432d4225f2..c03b6c6ebaf 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -12,6 +12,7 @@ recipeUnlocks: - WeaponProtoKineticAccelerator - ShuttleGunKineticCircuitboard + - MechEquipmentKineticAccelerator # These are roundstart but not replenishable for salvage - type: technology @@ -49,6 +50,7 @@ cost: 7500 recipeUnlocks: - WeaponLaserCarbine + - WeaponMechCombatFiredartLaser - type: technology id: NonlethalAmmunition @@ -73,6 +75,7 @@ - CartridgeSpecialRubber - MagazineBoxSpecialRubber # End of modified code + - WeaponMechCombatDisabler - type: technology id: UraniumMunitions @@ -145,6 +148,7 @@ cost: 10000 recipeUnlocks: - WeaponLaserCannon + - WeaponMechCombatSolarisLaser - type: technology id: WaveParticleHarnessing @@ -179,6 +183,30 @@ technologyPrerequisites: - SalvageWeapons +- type: technology + id: Gygax + name: research-technology-gygax + icon: + sprite: Objects/Specific/Mech/mecha.rsi + state: gygax + discipline: Arsenal + tier: 2 + cost: 12000 + recipeUnlocks: + - GygaxHarness + - GygaxArmor + - GygaxHead + - GygaxLArm + - GygaxLLeg + - GygaxRArm + - GygaxRLeg + - GygaxCentralElectronics + - GygaxPeripheralsElectronics + - GygaxTargetingElectronics + - WeaponMechCombatUltraRifle + technologyPrerequisites: + - Ripley2 + # Tier 3 - type: technology @@ -192,6 +220,22 @@ cost: 15000 recipeUnlocks: - WeaponAdvancedLaser + - PortableRecharger + - WeaponMechCombatImmolationGun + +- type: technology + id: ExplosiveMechAmmunition + name: research-technology-explosive-mech-ammunition + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_missilerack + discipline: Arsenal + tier: 3 + cost: 15000 + recipeUnlocks: + - WeaponMechCombatMissileRack8 + technologyPrerequisites: + - ExplosiveTechnology - type: technology id: ExperimentalBatteryAmmo @@ -220,3 +264,28 @@ - ShuttleGunDusterCircuitboard technologyPrerequisites: - BasicShuttleArmament + +- type: technology + id: Durand + name: research-technology-durand + icon: + sprite: Objects/Specific/Mech/mecha.rsi + state: durand + discipline: Arsenal + tier: 3 + cost: 16000 + recipeUnlocks: + - DurandHarness + - DurandArmor + - DurandHead + - DurandLArm + - DurandLLeg + - DurandRArm + - DurandRLeg + - DurandCentralElectronics + - DurandPeripheralsElectronics + - DurandTargetingElectronics + - WeaponMechCombatShotgun + - WeaponMechCombatShotgunIncendiary + technologyPrerequisites: + - Gygax \ No newline at end of file diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index 0a9f74b86d6..22ded2ffb23 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -178,6 +178,19 @@ - HonkerTargetingElectronics - MechEquipmentHorn +- type: technology + id: HONKWeapons + name: research-technology-honk-weapons + icon: + sprite: Objects/Specific/Mech/mecha_equipment.rsi + state: mecha_bananamrtr + discipline: CivilianServices + tier: 2 + cost: 6000 + recipeUnlocks: + - MechEquipmentHonkerBananaMortar + - MechEquipmentHonkerMousetrapMortar + - type: technology id: AdvancedSpray name: research-technology-advanced-spray diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index 3cee547c06f..bdc4b27dbc2 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -11,6 +11,8 @@ cost: 7500 recipeUnlocks: - MiningDrill + - MechEquipmentDrill + - MineralScannerEmpty - BorgModuleMining - OreProcessorIndustrialMachineCircuitboard - OreBagOfHolding @@ -189,8 +191,47 @@ tier: 2 cost: 10000 recipeUnlocks: - - BorgModulePka - - BorgModuleJetpack + - BorgModulePka + - BorgModuleJetpack + - OreBagOfHolding + - MiningDrillDiamond + - AdvancedMineralScannerEmpty + - MechEquipmentDrillDiamond + +- type: technology + id: Ripley2 + name: research-technology-ripley-mkii + icon: + sprite: Objects/Specific/Mech/mecha.rsi + state: ripleymkii + discipline: Industrial + tier: 2 + cost: 8000 + recipeUnlocks: + - RipleyMKIIHarness + - RipleyUpgradeKit + technologyPrerequisites: + - RipleyAPLU + +- type: technology + id: Clarke + name: research-technology-clarke + icon: + sprite: Objects/Specific/Mech/mecha.rsi + state: clarke + discipline: Industrial + tier: 2 + cost: 10000 + recipeUnlocks: + - ClarkeHarness + - ClarkeHead + - ClarkeLArm + - ClarkeRArm + - ClarkeTreads + - ClarkeCentralElectronics + - ClarkePeripheralsElectronics + technologyPrerequisites: + - Ripley2 # Tier 3 From e84d75a7a1a4f5a3f5db9f55aaa5e2b91a904d63 Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 14:39:39 +0300 Subject: [PATCH 09/30] i forgor --- Resources/Prototypes/Entities/Structures/Machines/lathe.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 21cc2081be0..df89084c769 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -671,6 +671,8 @@ - MechEquipmentDrill - MechEquipmentDrillDiamond - MechEquipmentKineticAccelerator + - MechEquipmentHonkerBananaMortar + - MechEquipmentHonkerMousetrapMortar - type: EmagLatheRecipes emagDynamicRecipes: - WeaponMechCombatImmolationGun From 73d8a292349a4452107500ce441e8b348b9020fb Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 14:53:53 +0300 Subject: [PATCH 10/30] locale changes --- Resources/Locale/en-US/store/uplink-catalog.ftl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 7d0f7d57911..a24c24d01fa 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -131,10 +131,10 @@ uplink-reinforcement-radio-cyborg-assault-name = Syndicate Assault Cyborg Telepo uplink-reinforcement-radio-cyborg-assault-desc = A lean, mean killing machine with access to an Energy Sword, LMG, Cryptographic Sequencer, and a Pinpointer. uplink-bundele-mech-heavy-name = Heavy Mech teleporter -uplink-bundele-mech-heavy-desc = Contains a set of heavy armored Cybersan mech with integrated chainsword, Ultra AC-2, LBX AC 10 "Scattershot", BRM-6 Missile Rack and P-X Tesla Cannon +uplink-bundele-mech-heavy-desc = Contains Cybersan heavy armored mech with integrated chainsword, Ultra AC-2, LBX AC 10 "Scattershot", BRM-6 Missile Rack and P-X Tesla Cannon. uplink-bundele-mech-assault-name = Assault Mech teleporter -uplink-bundele-mech-assault-desc = Contains a set of lightly armored Cybersan mech with integrated chainsword, LBX AC 10 "Scattershot", SRM-8 Light Missile Rack and P-X Tesla Cannon. +uplink-bundele-mech-assault-desc = Contains Cybersan lightly armored mech with integrated chainsword, LBX AC 10 "Scattershot", SRM-8 Light Missile Rack and P-X Tesla Cannon. uplink-stealth-box-name = Stealth Box uplink-stealth-box-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now! From 528f30cbe649551dc28c0a69af86b145e5ced496 Mon Sep 17 00:00:00 2001 From: NULL882 Date: Sat, 21 Sep 2024 14:59:30 +0300 Subject: [PATCH 11/30] aaa --- Resources/Locale/en-US/store/uplink-catalog.ftl | 8 ++++---- Resources/Prototypes/Catalog/uplink_catalog.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index a24c24d01fa..3c076adbf2e 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -130,11 +130,11 @@ uplink-reinforcement-radio-desc = Radio in a reinforcement agent of extremely q uplink-reinforcement-radio-cyborg-assault-name = Syndicate Assault Cyborg Teleporter uplink-reinforcement-radio-cyborg-assault-desc = A lean, mean killing machine with access to an Energy Sword, LMG, Cryptographic Sequencer, and a Pinpointer. -uplink-bundele-mech-heavy-name = Heavy Mech teleporter -uplink-bundele-mech-heavy-desc = Contains Cybersan heavy armored mech with integrated chainsword, Ultra AC-2, LBX AC 10 "Scattershot", BRM-6 Missile Rack and P-X Tesla Cannon. +uplink-mech-teleporter-heavy-name = Heavy Mech teleporter +uplink-mech-teleporter-heavy-desc = Contains Cybersan heavy armored mech with integrated chainsword, Ultra AC-2, LBX AC 10 "Scattershot", BRM-6 Missile Rack and P-X Tesla Cannon. -uplink-bundele-mech-assault-name = Assault Mech teleporter -uplink-bundele-mech-assault-desc = Contains Cybersan lightly armored mech with integrated chainsword, LBX AC 10 "Scattershot", SRM-8 Light Missile Rack and P-X Tesla Cannon. +uplink-mech-teleporter-assault-name = Assault Mech teleporter +uplink-mech-teleporter-assault-desc = Contains Cybersan lightly armored mech with integrated chainsword, LBX AC 10 "Scattershot", SRM-8 Light Missile Rack and P-X Tesla Cannon. uplink-stealth-box-name = Stealth Box uplink-stealth-box-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now! diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 3e2dba180bd..3de079dc57f 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -634,8 +634,8 @@ - type: listing id: UplinkDarkGygax - name: uplink-bundele-mech-assault-name - description: uplink-bundele-mech-assault-desc + name: uplink-mech-teleporter-assault-name + description: uplink-mech-teleporter-assault-desc icon: { sprite: /Textures/Objects/Specific/Mech/mecha.rsi, state: darkgygax } productEntity: CrateCybersunDarkGygaxBundle cost: @@ -650,8 +650,8 @@ - type: listing id: UplinkMauler - name: uplink-bundele-mech-heavy-name - description: uplink-bundele-mech-heavy-desc + name: uplink-mech-teleporter-heavy-name + description: uplink-mech-teleporter-heavy-desc icon: { sprite: /Textures/Objects/Specific/Mech/mecha.rsi, state: mauler } productEntity: CrateCybersunMaulerBundle cost: From 19892a46518f8688847b40b4e6371744b3259f39 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:27:40 -0400 Subject: [PATCH 12/30] code cleanup --- .../Weapons/Ranged/Systems/GunSystem.cs | 2 -- .../Equipment/EntitySystems/MechGunSystem.cs | 25 ++++++------------- .../Weapons/Ranged/Systems/GunSystem.cs | 2 -- .../Mech/Components/MechComponent.cs | 5 ++-- .../Mech/EntitySystems/SharedMechSystem.cs | 1 + .../Weapons/Ranged/Systems/SharedGunSystem.cs | 12 ++++----- 6 files changed, 15 insertions(+), 32 deletions(-) diff --git a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs index 6407a403669..283e443a410 100644 --- a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs @@ -146,9 +146,7 @@ public override void Update(float frameTime) var entity = entityNull.Value; if (TryComp(entity, out var mechPilot)) - { entity = mechPilot.Mech; - } if (!TryGetGun(entity, out var gunUid, out var gun)) { diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs index 8ed55e7462a..c0ee9179c64 100644 --- a/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs @@ -3,15 +3,11 @@ using Content.Server.Power.EntitySystems; using Content.Shared.Mech.Components; using Content.Shared.Mech.Equipment.Components; -using Content.Shared.Throwing; using Content.Shared.Weapons.Ranged.Systems; -using Robust.Shared.Random; namespace Content.Server.Mech.Equipment.EntitySystems; public sealed class MechGunSystem : EntitySystem { - [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly ThrowingSystem _throwing = default!; [Dependency] private readonly MechSystem _mech = default!; [Dependency] private readonly BatterySystem _battery = default!; @@ -23,30 +19,23 @@ public override void Initialize() private void MechGunShot(EntityUid uid, MechEquipmentComponent component, ref GunShotEvent args) { - if (!component.EquipmentOwner.HasValue) + if (!component.EquipmentOwner.HasValue + || !HasComp(component.EquipmentOwner.Value) + || !TryComp(uid, out var battery)) return; - if (!TryComp(component.EquipmentOwner.Value, out var mech)) - return; - - if (TryComp(uid, out var battery)) - { - ChargeGunBattery(uid, battery); - return; - } + ChargeGunBattery(uid, battery); } private void ChargeGunBattery(EntityUid uid, BatteryComponent component) { - if (!TryComp(uid, out var mechEquipment) || !mechEquipment.EquipmentOwner.HasValue) - return; - - if (!TryComp(mechEquipment.EquipmentOwner.Value, out var mech)) + if (!TryComp(uid, out var mechEquipment) + || mechEquipment.EquipmentOwner is null + || !TryComp(mechEquipment.EquipmentOwner.Value, out var mech)) return; var maxCharge = component.MaxCharge; var currentCharge = component.CurrentCharge; - var chargeDelta = maxCharge - currentCharge; // TODO: The battery charge of the mech would be spent directly when fired. diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 5a23ffb33f3..fbc46f59179 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -2,7 +2,6 @@ using System.Numerics; using Content.Server.Cargo.Systems; using Content.Server.Interaction; -using Content.Server.Mech.Equipment.Components; using Content.Server.Power.EntitySystems; using Content.Server.Stunnable; using Content.Server.Weapons.Ranged.Components; @@ -12,7 +11,6 @@ using Content.Shared.Database; using Content.Shared.Effects; using Content.Shared.Interaction.Components; -using Content.Shared.Mech.Equipment.Components; using Content.Shared.Projectiles; using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Ranged; diff --git a/Content.Shared/Mech/Components/MechComponent.cs b/Content.Shared/Mech/Components/MechComponent.cs index ce7026796b8..6fa7c78a256 100644 --- a/Content.Shared/Mech/Components/MechComponent.cs +++ b/Content.Shared/Mech/Components/MechComponent.cs @@ -14,10 +14,9 @@ namespace Content.Shared.Mech.Components; public sealed partial class MechComponent : Component { ///

- /// Whether or not an emag disables it. + /// Whether or not an emag disables it. /// - [DataField("breakOnEmag")] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public bool BreakOnEmag = true; /// diff --git a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs index 345eae0ae1f..09eaa332571 100644 --- a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs +++ b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs @@ -456,6 +456,7 @@ private void OnEmagged(EntityUid uid, MechComponent component, ref GotEmaggedEve { if (!component.BreakOnEmag) return; + args.Handled = true; component.EquipmentWhitelist = null; Dirty(uid, component); diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 01c36f427db..d25c9b4b7aa 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -157,10 +157,8 @@ private void OnStopShootRequest(RequestStopShootEvent ev, EntitySessionEventArgs if (TryComp(user.Value, out var mechPilot)) user = mechPilot.Mech; - if (!TryGetGun(user.Value, out var ent, out var gun)) - return; - - if (ent != gunUid) + if (!TryGetGun(user.Value, out var ent, out var gun) + || ent != gunUid) return; StopShooting(gunUid, gun); @@ -179,9 +177,9 @@ public bool TryGetGun(EntityUid entity, out EntityUid gunEntity, [NotNullWhen(tr gunEntity = default; gunComp = null; - if (TryComp(entity, out var mech) && - mech.CurrentSelectedEquipment.HasValue && - TryComp(mech.CurrentSelectedEquipment.Value, out var mechGun)) + if (TryComp(entity, out var mech) + && mech.CurrentSelectedEquipment.HasValue + && TryComp(mech.CurrentSelectedEquipment.Value, out var mechGun)) { gunEntity = mech.CurrentSelectedEquipment.Value; gunComp = mechGun; From 81bac404b6e2030ab78730c1c9bba5e7e38b247d Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:33:42 -0400 Subject: [PATCH 13/30] Yml trolling --- .../Prototypes/Recipes/Lathes/electronics.yml | 396 +----------------- 1 file changed, 7 insertions(+), 389 deletions(-) diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index f3e51f0b662..f4dbfb8434f 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -527,15 +527,7 @@ Glass: 900 Gold: 100 -- type: latheRecipe - id: RipleyPeripheralsElectronics - result: RipleyPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Gold: 100 + - type: latheRecipe id: HonkerCentralElectronics @@ -760,287 +752,14 @@ Glass: 500 Bananium: 100 -# Recipes - -- type: latheRecipe - parent: BaseCheapElectronicsRecipe - id: FirelockElectronics - result: FirelockElectronics - -- type: latheRecipe - parent: BaseElectronicsRecipe - id: MailingUnitElectronics - result: MailingUnitElectronics - -- type: latheRecipe - parent: BaseCheapElectronicsRecipe - id: CellRechargerCircuitboard - result: CellRechargerCircuitboard - -- type: latheRecipe - parent: CellRechargerCircuitboard - id: BorgChargerCircuitboard - result: BorgChargerCircuitboard - -- type: latheRecipe - parent: CellRechargerCircuitboard - id: WeaponCapacitorRechargerCircuitboard - result: WeaponCapacitorRechargerCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: TurboItemRechargerCircuitboard - result: TurboItemRechargerCircuitboard - -- type: latheRecipe - parent: BaseCheapElectronicsRecipe - id: DoorElectronics - result: DoorElectronics - -- type: latheRecipe - parent: BaseElectronicsRecipe - id: AirAlarmElectronics - result: AirAlarmElectronics - -- type: latheRecipe - parent: BaseCheapElectronicsRecipe - id: StationMapElectronics - result: StationMapCircuitboard - -- type: latheRecipe - parent: BaseElectronicsRecipe - id: IntercomElectronics - result: IntercomElectronics - -- type: latheRecipe - parent: BaseElectronicsRecipe - id: FireAlarmElectronics - result: FireAlarmElectronics - -- type: latheRecipe - parent: BaseCheapElectronicsRecipe - id: SignalTimerElectronics - result: SignalTimerElectronics - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: CloningPodMachineCircuitboard - result: CloningPodMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ThermomachineFreezerMachineCircuitBoard - result: ThermomachineFreezerMachineCircuitBoard - -- type: latheRecipe - parent: BaseSilverCircuitboardRecipe - id: HellfireFreezerMachineCircuitBoard - result: HellfireFreezerMachineCircuitBoard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: CondenserMachineCircuitBoard - result: CondenserMachineCircuitBoard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: PortableScrubberMachineCircuitBoard - result: PortableScrubberMachineCircuitBoard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: SpaceHeaterMachineCircuitBoard - result: SpaceHeaterMachineCircuitBoard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: MedicalScannerMachineCircuitboard - result: MedicalScannerMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: CryoPodMachineCircuitboard - result: CryoPodMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ChemMasterMachineCircuitboard - result: ChemMasterMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ChemDispenserMachineCircuitboard - result: ChemDispenserMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: BiomassReclaimerMachineCircuitboard - result: BiomassReclaimerMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: BiofabricatorMachineCircuitboard - result: BiofabricatorMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: HydroponicsTrayMachineCircuitboard - result: HydroponicsTrayMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: AutolatheMachineCircuitboard - result: AutolatheMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: ProtolatheMachineCircuitboard - result: ProtolatheMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: AutolatheHyperConvectionMachineCircuitboard - result: AutolatheHyperConvectionMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ProtolatheHyperConvectionMachineCircuitboard - result: ProtolatheHyperConvectionMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: CircuitImprinterMachineCircuitboard - result: CircuitImprinterMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: CircuitImprinterHyperConvectionMachineCircuitboard - result: CircuitImprinterHyperConvectionMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: ExosuitFabricatorMachineCircuitboard - result: ExosuitFabricatorMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: UniformPrinterMachineCircuitboard - result: UniformPrinterMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: BiogeneratorMachineCircuitboard - result: BiogeneratorMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: VaccinatorMachineCircuitboard - result: VaccinatorMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: DiagnoserMachineCircuitboard - result: DiagnoserMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ArtifactAnalyzerMachineCircuitboard - result: ArtifactAnalyzerMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ArtifactCrusherMachineCircuitboard - result: ArtifactCrusherMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: AnomalyVesselCircuitboard - result: AnomalyVesselCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: AnomalyVesselExperimentalCircuitboard - result: AnomalyVesselExperimentalCircuitboard - -- type: latheRecipe - parent: BaseSilverCircuitboardRecipe - id: AnomalySynchronizerCircuitboard - result: AnomalySynchronizerCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: APECircuitboard - result: APECircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: ReagentGrinderMachineCircuitboard - result: ReagentGrinderMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: HotplateMachineCircuitboard - result: HotplateMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: AnalysisComputerCircuitboard - result: AnalysisComputerCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: TechDiskComputerCircuitboard - result: TechDiskComputerCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ShuttleConsoleCircuitboard - result: ShuttleConsoleCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: RadarConsoleCircuitboard - result: RadarConsoleCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: DawInstrumentMachineCircuitboard - result: DawInstrumentMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: StasisBedMachineCircuitboard - result: StasisBedMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: ElectrolysisUnitMachineCircuitboard - result: ElectrolysisUnitMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: CentrifugeMachineCircuitboard - result: CentrifugeMachineCircuitboard - - type: latheRecipe + abstract: true parent: BaseCircuitboardRecipe - id: OreProcessorMachineCircuitboard - result: OreProcessorMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: OreProcessorIndustrialMachineCircuitboard - result: OreProcessorIndustrialMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: SalvageMagnetMachineCircuitboard - result: SalvageMagnetMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: RipleyCentralElectronics - result: RipleyCentralElectronics + id: BaseGoldCircuitboardRecipe + materials: + steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe parent: BaseGoldCircuitboardRecipe @@ -1087,107 +806,6 @@ id: DurandTargetingElectronics result: DurandTargetingElectronics -- type: latheRecipe - parent: BaseBananiumCircuitboardRecipe - id: HonkerCentralElectronics - result: HonkerCentralElectronics - -- type: latheRecipe - parent: BaseBananiumCircuitboardRecipe - id: HonkerPeripheralsElectronics - result: HonkerPeripheralsElectronics - -- type: latheRecipe - parent: BaseBananiumCircuitboardRecipe - id: HonkerTargetingElectronics - result: HonkerTargetingElectronics - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: HamtrCentralElectronics - result: HamtrCentralElectronics - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: HamtrPeripheralsElectronics - result: HamtrPeripheralsElectronics - -# Power -- type: latheRecipe - parent: BaseCheapCircuitboardRecipe - id: APCElectronics - result: APCElectronics - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: SubstationMachineCircuitboard - result: SubstationMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: WallmountSubstationElectronics - result: WallmountSubstationElectronics - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: SMESMachineCircuitboard - result: SMESMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: PortableGeneratorPacmanMachineCircuitboard - result: PortableGeneratorPacmanMachineCircuitboard - -- type: latheRecipe - parent: PortableGeneratorPacmanMachineCircuitboard - id: PortableGeneratorSuperPacmanMachineCircuitboard - result: PortableGeneratorSuperPacmanMachineCircuitboard - -- type: latheRecipe - parent: PortableGeneratorPacmanMachineCircuitboard - id: PortableGeneratorJrPacmanMachineCircuitboard - result: PortableGeneratorJrPacmanMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: SolarControlComputerCircuitboard - result: SolarControlComputerCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: SolarTrackerElectronics - result: SolarTrackerElectronics - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: PowerComputerCircuitboard - result: PowerComputerCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: CloningConsoleComputerCircuitboard - result: CloningConsoleComputerCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: MicrowaveMachineCircuitboard - result: MicrowaveMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: ElectricGrillMachineCircuitboard - result: ElectricGrillMachineCircuitboard - -- type: latheRecipe - parent: BaseCircuitboardRecipe - id: FatExtractorMachineCircuitboard - result: FatExtractorMachineCircuitboard - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: FlatpackerMachineCircuitboard - result: FlatpackerMachineCircuitboard - - type: latheRecipe parent: BaseCircuitboardRecipe id: SheetifierMachineCircuitboard From c68f9e387b5c6f9a2d97767dbd053ef5fb562ed7 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:37:23 -0400 Subject: [PATCH 14/30] Update MechGunSystem.cs --- .../Mech/Equipment/EntitySystems/MechGunSystem.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs index c0ee9179c64..31b73fa9ad4 100644 --- a/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGunSystem.cs @@ -34,15 +34,11 @@ private void ChargeGunBattery(EntityUid uid, BatteryComponent component) || !TryComp(mechEquipment.EquipmentOwner.Value, out var mech)) return; - var maxCharge = component.MaxCharge; - var currentCharge = component.CurrentCharge; - var chargeDelta = maxCharge - currentCharge; - + var chargeDelta = component.MaxCharge - component.CurrentCharge; // TODO: The battery charge of the mech would be spent directly when fired. - if (chargeDelta <= 0 || mech.Energy - chargeDelta < 0) - return; - - if (!_mech.TryChangeEnergy(mechEquipment.EquipmentOwner.Value, -chargeDelta, mech)) + if (chargeDelta <= 0 + || mech.Energy - chargeDelta < 0 + || !_mech.TryChangeEnergy(mechEquipment.EquipmentOwner.Value, -chargeDelta, mech)) return; _battery.SetCharge(uid, component.MaxCharge, component); From bf3ab97c935da9d7cabf83957bd03503f18002a2 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:38:02 -0400 Subject: [PATCH 15/30] Update tags.yml --- Resources/Prototypes/tags.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 4b734b815e0..05ff36e3a66 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1160,10 +1160,6 @@ - type: Tag id: RipleyRLeg - -- type: Tag - id: RipleyRArm - - type: Tag id: RipleyRArm From 11f619bc076ec987774d29898f6c23b18312d1d0 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:39:32 -0400 Subject: [PATCH 16/30] More fixes --- Content.Client/Mech/Ui/MechMenu.xaml.cs | 16 ++++++++++++---- Resources/Locale/en-US/mech/mech.ftl | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Content.Client/Mech/Ui/MechMenu.xaml.cs b/Content.Client/Mech/Ui/MechMenu.xaml.cs index 8d1d9360318..9f47be82f23 100644 --- a/Content.Client/Mech/Ui/MechMenu.xaml.cs +++ b/Content.Client/Mech/Ui/MechMenu.xaml.cs @@ -33,11 +33,19 @@ public void UpdateMechStats() var integrityPercent = mechComp.Integrity / mechComp.MaxIntegrity; IntegrityDisplayBar.Value = integrityPercent.Float(); - IntegrityDisplay.Text = Loc.GetString("mech-integrity-display", ("amount", (integrityPercent*100).Int())); + IntegrityDisplay.Text = Loc.GetString("mech-integrity-display", ("amount", (integrityPercent * 100).Int())); - var energyPercent = mechComp.Energy / mechComp.MaxEnergy; - EnergyDisplayBar.Value = energyPercent.Float(); - EnergyDisplay.Text = Loc.GetString("mech-energy-display", ("amount", (energyPercent*100).Int())); + if (mechComp.MaxEnergy != 0f) + { + var energyPercent = mechComp.Energy / mechComp.MaxEnergy; + EnergyDisplayBar.Value = energyPercent.Float(); + EnergyDisplay.Text = Loc.GetString("mech-energy-display", ("amount", (energyPercent * 100).Int())); + } + else + { + EnergyDisplayBar.Value = 0f; + EnergyDisplay.Text = Loc.GetString("mech-energy-missing"); + } SlotDisplay.Text = Loc.GetString("mech-slot-display", ("amount", mechComp.MaxEquipmentAmount - mechComp.EquipmentContainer.ContainedEntities.Count)); diff --git a/Resources/Locale/en-US/mech/mech.ftl b/Resources/Locale/en-US/mech/mech.ftl index 19f570a2a10..9d4f7ef0e07 100644 --- a/Resources/Locale/en-US/mech/mech.ftl +++ b/Resources/Locale/en-US/mech/mech.ftl @@ -13,6 +13,7 @@ mech-menu-title = mech control panel mech-integrity-display = Integrity: {$amount}% mech-energy-display = Energy: {$amount}% +mech-energy-missing = Energy: MISSING mech-slot-display = Open Slots: {$amount} mech-no-enter = You cannot pilot this. From 9e5c53a98fb12f7a06b89031dfcaf9e52edfd85b Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:43:41 -0400 Subject: [PATCH 17/30] Update mechs.yml --- Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 9a61920f203..d04610bcd5e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -696,7 +696,7 @@ # Dark Gygax - type: entity id: MechGygaxSyndie - parent: [ BaseMech, CombatMech, BaseSyndicateContraband ] + parent: [ BaseMech, CombatMech ] name: Dark Gygax description: A modified Gygax used for nefarious purposes. On the back of the armor plate there is an inscription "Cybersun Inc." components: @@ -764,7 +764,7 @@ # Mauler - type: entity id: MechMaulerSyndie - parent: [ BaseMech, CombatMech, BaseSyndicateContraband ] + parent: [ BaseMech, CombatMech ] name: Mauler description: A modified Marauder used by the Syndicate that's not as maneuverable as the Dark Gygax, but it makes up for that in armor and sheer firepower. On the back of the armor plate there is an inscription "Cybersun Inc." components: From f958564b49e5413f54d87eb6ae97e6154f3b64ad Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:47:05 -0400 Subject: [PATCH 18/30] Update mechs.yml --- Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index d04610bcd5e..61f3b3b9952 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -289,7 +289,7 @@ # H.O.N.K. - type: entity - parent: [ BaseMech, SpecialMech, BaseCivilianContraband ] + parent: [ BaseMech, SpecialMech ] id: MechHonker name: H.O.N.K. description: "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!" From 1e4d7b31f01ceedd82f662ce3db624d0d865fcf4 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:50:00 -0400 Subject: [PATCH 19/30] Fix Mech Heavy Attack --- .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index fd77ad31a45..88f1257d5bf 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -15,6 +15,7 @@ using Content.Shared.Interaction; using Content.Shared.Inventory; using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Mech.Components; using Content.Shared.Physics; using Content.Shared.Popups; using Content.Shared.Weapons.Melee.Components; @@ -185,16 +186,11 @@ private void OnLightAttack(LightAttackEvent msg, EntitySessionEventArgs args) private void OnHeavyAttack(HeavyAttackEvent msg, EntitySessionEventArgs args) { - if (args.SenderSession.AttachedEntity == null) - { - return; - } - - if (!TryGetWeapon(args.SenderSession.AttachedEntity.Value, out var weaponUid, out var weapon) || - weaponUid != GetEntity(msg.Weapon)) - { + if (args.SenderSession.AttachedEntity == null + || HasComp(args.SenderSession.AttachedEntity) + || !TryGetWeapon(args.SenderSession.AttachedEntity.Value, out var weaponUid, out var weapon) + || weaponUid != GetEntity(msg.Weapon)) return; - } AttemptAttack(args.SenderSession.AttachedEntity.Value, weaponUid, weapon, msg, args.SenderSession); } From 53b33f7071cb8aa35462a8dac78cc59692bc0cd0 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:55:01 -0400 Subject: [PATCH 20/30] Update mechs.yml --- .../Prototypes/Entities/Objects/Specific/Mech/mechs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 61f3b3b9952..58b427a80ce 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -149,7 +149,7 @@ # Ripley MK-I - type: entity id: MechRipley - parent: [ BaseMech, IndustrialMech, BaseCargoContraband ] + parent: [ BaseMech, IndustrialMech ] name: Ripley APLU description: Versatile and lightly armored, the Ripley is useful for almost any heavy work scenario. The "APLU" stands for Autonomous Power Loading Unit. components: @@ -194,7 +194,7 @@ # Ripley MK-II - type: entity id: MechRipley2 - parent: [ BaseMech, IndustrialMech, BaseCargoContraband ] + parent: [ BaseMech, IndustrialMech ] name: Ripley APLU MK-II description: The "MK-II" has a pressurized cabin for space operations, but the added weight has slowed it down. components: @@ -242,7 +242,7 @@ # Clarke - type: entity id: MechClarke - parent: [ BaseMech, IndustrialMech, BaseCargoContraband ] + parent: [ BaseMech, IndustrialMech ] name: Clarke description: A fast-moving mech for space travel. It has built-in trusts. components: From 0ad9342dcb6fa03b326e53ffdef093b43392049d Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 22:59:21 -0400 Subject: [PATCH 21/30] Update mechs.yml --- Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 58b427a80ce..45c37095427 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -557,7 +557,7 @@ # Marauder - type: entity id: MechMarauder - parent: [ BaseMech, CombatMech, BaseCentcommContraband ] + parent: [ BaseMech, CombatMech ] name: Marauder description: Looks like we're all saved. # ERT mech components: @@ -625,7 +625,7 @@ # Seraph - type: entity id: MechSeraph - parent: [ BaseMech, CombatMech, BaseCentcommContraband ] + parent: [ BaseMech, CombatMech ] name: Seraph description: That's the last thing you'll see. # Death Squad mech components: From 2038238781ad999b034f06627083d01fb67e0379 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 23:04:39 -0400 Subject: [PATCH 22/30] DIE --- Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 45c37095427..b0440b73bc5 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -453,7 +453,7 @@ # Gygax - type: entity id: MechGygax - parent: [ BaseMech, CombatMech, BaseRestrictedContraband ] + parent: [ BaseMech, CombatMech ] name: Gygax description: While lightly armored, the Gygax has incredible mobility thanks to its ability that lets it smash through walls at high speeds. components: @@ -500,7 +500,7 @@ # Durand - type: entity id: MechDurand - parent: [ BaseMech, CombatMech, BaseRestrictedContraband ] + parent: [ BaseMech, CombatMech ] name: Durand description: A slow but beefy combat exosuit that is extra scary in confined spaces due to its punches. Xenos hate it! components: From bbd7b3204e9e8007b25d4e61790e93a47b6f9a41 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 23:13:10 -0400 Subject: [PATCH 23/30] Update mecha_equipment.yml --- .../Entities/Objects/Specific/Mech/mecha_equipment.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml index 8ba9d961f4a..030c8efeb6e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mecha_equipment.yml @@ -90,9 +90,6 @@ maxContents: 4 grabDelay: 3 grabEnergyDelta: -20 - - type: Tag - tags: - - SmallMech - type: UIFragment ui: !type:MechGrabberUi - type: ContainerContainer From c908b035037ae39ceaa35e25190a62f40bcf4a09 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 23:19:23 -0400 Subject: [PATCH 24/30] Update electronics.yml --- Resources/Prototypes/Recipes/Lathes/electronics.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index f4dbfb8434f..9f885e77c68 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -734,6 +734,15 @@ Glass: 900 Gold: 100 +- type: latheRecipe + abstract: true + parent: BaseElectronicsRecipe + id: BaseCircuitboardRecipe + completetime: 4 + materials: + Steel: 100 + Glass: 500 + - type: latheRecipe abstract: true parent: BaseCircuitboardRecipe From 3b47fe233a05ccb4954942366030669f813f8254 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 23:25:04 -0400 Subject: [PATCH 25/30] Update electronics.yml --- .../Prototypes/Recipes/Lathes/electronics.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 9f885e77c68..0e8d6e99e91 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -734,6 +734,23 @@ Glass: 900 Gold: 100 +- type: latheRecipe + abstract: true + id: BaseElectronicsRecipe + category: Circuitry + completetime: 2 + materials: + Steel: 100 + Plastic: 300 + +- type: latheRecipe + abstract: true + parent: BaseElectronicsRecipe + id: BaseCheapElectronicsRecipe + materials: + Steel: 50 + Plastic: 50 + - type: latheRecipe abstract: true parent: BaseElectronicsRecipe From 9c0c04b58382883113cfd041ae684d7a9e17d767 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 23:37:48 -0400 Subject: [PATCH 26/30] aaaaaaaaaaaaaaaaaaa --- .../Prototypes/Catalog/uplink_catalog.yml | 6 +- .../Prototypes/Recipes/Lathes/electronics.yml | 139 ++++++++++++------ .../Prototypes/Recipes/Lathes/mech_parts.yml | 3 - .../Prototypes/Recipes/Lathes/security.yml | 11 -- 4 files changed, 97 insertions(+), 62 deletions(-) diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 3de079dc57f..16864e7f184 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -630,7 +630,7 @@ cost: Telecrystal: 5 categories: - - UplinkDisruption + - UplinkWeapons - type: listing id: UplinkDarkGygax @@ -641,7 +641,7 @@ cost: Telecrystal: 100 categories: - - UplinkAllies + - UplinkUtility conditions: - !type:StoreWhitelistCondition whitelist: @@ -657,7 +657,7 @@ cost: Telecrystal: 150 categories: - - UplinkAllies + - UplinkUtility conditions: - !type:StoreWhitelistCondition whitelist: diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 0e8d6e99e91..0a69c8d2cd6 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -735,102 +735,151 @@ Gold: 100 - type: latheRecipe - abstract: true - id: BaseElectronicsRecipe + id: RipleyPeripheralsElectronics + result: RipleyPeripheralsElectronics category: Circuitry - completetime: 2 + completetime: 4 materials: Steel: 100 - Plastic: 300 - -- type: latheRecipe - abstract: true - parent: BaseElectronicsRecipe - id: BaseCheapElectronicsRecipe - materials: - Steel: 50 - Plastic: 50 + Glass: 900 + Gold: 100 - type: latheRecipe - abstract: true - parent: BaseElectronicsRecipe - id: BaseCircuitboardRecipe + id: RipleyCentralElectronics + result: RipleyCentralElectronics + category: Circuitry completetime: 4 materials: Steel: 100 Glass: 500 + Gold: 100 - type: latheRecipe - abstract: true - parent: BaseCircuitboardRecipe - id: BaseSilverCircuitboardRecipe + id: RipleyPeripheralsElectronics + result: RipleyPeripheralsElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 - Silver: 100 + Gold: 100 - type: latheRecipe - abstract: true - parent: BaseCircuitboardRecipe - id: BaseBananiumCircuitboardRecipe + id: ClarkeCentralElectronics + result: ClarkeCentralElectronics materials: Steel: 100 Glass: 500 - Bananium: 100 - -- type: latheRecipe - abstract: true - parent: BaseCircuitboardRecipe - id: BaseGoldCircuitboardRecipe - materials: - steel: 100 - Glass: 500 Gold: 100 - type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: RipleyPeripheralsElectronics - result: RipleyPeripheralsElectronics - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe - id: ClarkeCentralElectronics - result: ClarkeCentralElectronics - -- type: latheRecipe - parent: BaseGoldCircuitboardRecipe id: ClarkePeripheralsElectronics result: ClarkePeripheralsElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe - parent: BaseGoldCircuitboardRecipe id: GygaxCentralElectronics result: GygaxCentralElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe - parent: BaseGoldCircuitboardRecipe id: GygaxPeripheralsElectronics result: GygaxPeripheralsElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe - parent: BaseGoldCircuitboardRecipe id: GygaxTargetingElectronics result: GygaxTargetingElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe parent: BaseSilverCircuitboardRecipe id: DurandCentralElectronics result: DurandCentralElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe parent: BaseSilverCircuitboardRecipe id: DurandPeripheralsElectronics result: DurandPeripheralsElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe parent: BaseSilverCircuitboardRecipe id: DurandTargetingElectronics result: DurandTargetingElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 + +- type: latheRecipe + id: HonkerCentralElectronics + result: HonkerCentralElectronics + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 900 + Bananium: 100 + +- type: latheRecipe + id: HonkerPeripheralsElectronics + result: HonkerPeripheralsElectronics + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 900 + Bananium: 100 + +- type: latheRecipe + id: HonkerTargetingElectronics + result: HonkerTargetingElectronics + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 900 + Bananium: 100 + +- type: latheRecipe + id: HamtrCentralElectronics + result: HamtrCentralElectronics + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 900 + Gold: 100 + +- type: latheRecipe + id: HamtrPeripheralsElectronics + result: HamtrPeripheralsElectronics + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 900 + Gold: 100 - type: latheRecipe parent: BaseCircuitboardRecipe diff --git a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml index 943ce85715b..dc4f7008594 100644 --- a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml +++ b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml @@ -72,7 +72,6 @@ Steel: 1500 Glass: 800 Silver: 250 - Diamond: 100 - type: latheRecipe id: DurandLArm @@ -136,7 +135,6 @@ materials: Steel: 1500 Glass: 250 - Diamond: 100 - type: latheRecipe id: GygaxLArm @@ -361,7 +359,6 @@ Steel: 1000 Plastic: 150 Silver: 350 - Diamond: 150 - type: latheRecipe id: MechEquipmentGrabber diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 3d91bb970ec..f78d0f2467c 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -657,17 +657,6 @@ Plastic: 100 Glass: 20 -- type: latheRecipe - id: PortableRecharger - result: PortableRecharger - completetime: 15 - materials: - Steel: 2000 - Uranium: 2000 - Plastic: 1000 - Plasma: 500 - Glass: 500 - # Mech Weapons - type: latheRecipe id: WeaponMechCombatImmolationGun From 8e349b5cd6746f472a8c46f3761626473d6aefb9 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 23:49:28 -0400 Subject: [PATCH 27/30] Update electronics.yml --- .../Prototypes/Recipes/Lathes/electronics.yml | 224 ++++++------------ 1 file changed, 76 insertions(+), 148 deletions(-) diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 0a69c8d2cd6..007cb1c877d 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -517,6 +517,16 @@ Glass: 900 Gold: 100 +- type: latheRecipe + id: RipleyPeripheralsElectronics + result: RipleyPeripheralsElectronics + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 900 + Gold: 100 + - type: latheRecipe id: RipleyCentralElectronics result: RipleyCentralElectronics @@ -524,10 +534,75 @@ completetime: 4 materials: Steel: 100 - Glass: 900 + Glass: 500 + Gold: 100 + +- type: latheRecipe + id: ClarkeCentralElectronics + result: ClarkeCentralElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 + +- type: latheRecipe + id: ClarkePeripheralsElectronics + result: ClarkePeripheralsElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 + +- type: latheRecipe + id: GygaxCentralElectronics + result: GygaxCentralElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 + +- type: latheRecipe + id: GygaxPeripheralsElectronics + result: GygaxPeripheralsElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 + +- type: latheRecipe + id: GygaxTargetingElectronics + result: GygaxTargetingElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: DurandCentralElectronics + result: DurandCentralElectronics + materials: + Steel: 100 + Glass: 500 Gold: 100 +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: DurandPeripheralsElectronics + result: DurandPeripheralsElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: DurandTargetingElectronics + result: DurandTargetingElectronics + materials: + Steel: 100 + Glass: 500 + Gold: 100 - type: latheRecipe id: HonkerCentralElectronics @@ -734,153 +809,6 @@ Glass: 900 Gold: 100 -- type: latheRecipe - id: RipleyPeripheralsElectronics - result: RipleyPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Gold: 100 - -- type: latheRecipe - id: RipleyCentralElectronics - result: RipleyCentralElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: RipleyPeripheralsElectronics - result: RipleyPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ClarkeCentralElectronics - result: ClarkeCentralElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ClarkePeripheralsElectronics - result: ClarkePeripheralsElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: GygaxCentralElectronics - result: GygaxCentralElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: GygaxPeripheralsElectronics - result: GygaxPeripheralsElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: GygaxTargetingElectronics - result: GygaxTargetingElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - parent: BaseSilverCircuitboardRecipe - id: DurandCentralElectronics - result: DurandCentralElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - parent: BaseSilverCircuitboardRecipe - id: DurandPeripheralsElectronics - result: DurandPeripheralsElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - parent: BaseSilverCircuitboardRecipe - id: DurandTargetingElectronics - result: DurandTargetingElectronics - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: HonkerCentralElectronics - result: HonkerCentralElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Bananium: 100 - -- type: latheRecipe - id: HonkerPeripheralsElectronics - result: HonkerPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Bananium: 100 - -- type: latheRecipe - id: HonkerTargetingElectronics - result: HonkerTargetingElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Bananium: 100 - -- type: latheRecipe - id: HamtrCentralElectronics - result: HamtrCentralElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Gold: 100 - -- type: latheRecipe - id: HamtrPeripheralsElectronics - result: HamtrPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Gold: 100 - - type: latheRecipe parent: BaseCircuitboardRecipe id: SheetifierMachineCircuitboard From 4b8e81535ffedf63c300277fb9b454e394aa5bf7 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 6 Oct 2024 23:56:50 -0400 Subject: [PATCH 28/30] Update electronics.yml --- .../Prototypes/Recipes/Lathes/electronics.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 007cb1c877d..68d418c8cdb 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -540,6 +540,8 @@ - type: latheRecipe id: ClarkeCentralElectronics result: ClarkeCentralElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 @@ -548,6 +550,8 @@ - type: latheRecipe id: ClarkePeripheralsElectronics result: ClarkePeripheralsElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 @@ -556,6 +560,8 @@ - type: latheRecipe id: GygaxCentralElectronics result: GygaxCentralElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 @@ -564,6 +570,8 @@ - type: latheRecipe id: GygaxPeripheralsElectronics result: GygaxPeripheralsElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 @@ -572,33 +580,38 @@ - type: latheRecipe id: GygaxTargetingElectronics result: GygaxTargetingElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 Gold: 100 - type: latheRecipe - parent: BaseSilverCircuitboardRecipe id: DurandCentralElectronics result: DurandCentralElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 Gold: 100 - type: latheRecipe - parent: BaseSilverCircuitboardRecipe id: DurandPeripheralsElectronics result: DurandPeripheralsElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 Gold: 100 - type: latheRecipe - parent: BaseSilverCircuitboardRecipe id: DurandTargetingElectronics result: DurandTargetingElectronics + category: Circuitry + completetime: 4 materials: Steel: 100 Glass: 500 From 0e173c4433215beb6639e216ae46514607946e28 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 7 Oct 2024 00:04:47 -0400 Subject: [PATCH 29/30] Update electronics.yml --- Resources/Prototypes/Recipes/Lathes/electronics.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 68d418c8cdb..771f3d47fb7 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -823,7 +823,6 @@ Gold: 100 - type: latheRecipe - parent: BaseCircuitboardRecipe id: SheetifierMachineCircuitboard result: SheetifierMachineCircuitboard category: Circuitry From 12a53c18199f454292b6217f8e09cb6580bb50c3 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 7 Oct 2024 00:11:09 -0400 Subject: [PATCH 30/30] aaaaaa --- .../Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml | 1 - Resources/Prototypes/Research/arsenal.yml | 1 - Resources/Prototypes/Research/industrial.yml | 3 --- 3 files changed, 5 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml index 5fadd8f71ae..9ed2f5f8bd8 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml @@ -102,7 +102,6 @@ state: mecha_wholegen - type: Gun projectileSpeed: 1 - projectileSpeedModified: 5 fireRate: 0.4 selectedMode: SemiAuto availableModes: diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index c03b6c6ebaf..f39fb32acb2 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -220,7 +220,6 @@ cost: 15000 recipeUnlocks: - WeaponAdvancedLaser - - PortableRecharger - WeaponMechCombatImmolationGun - type: technology diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index bdc4b27dbc2..6b554de9bab 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -12,7 +12,6 @@ recipeUnlocks: - MiningDrill - MechEquipmentDrill - - MineralScannerEmpty - BorgModuleMining - OreProcessorIndustrialMachineCircuitboard - OreBagOfHolding @@ -194,8 +193,6 @@ - BorgModulePka - BorgModuleJetpack - OreBagOfHolding - - MiningDrillDiamond - - AdvancedMineralScannerEmpty - MechEquipmentDrillDiamond - type: technology