From 356edec0243f11d4f6d3b914aa8ed12e627f8b2a Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 25 Nov 2023 11:43:18 -0500 Subject: [PATCH 01/85] Noodle Begins --- .../Nyanotrasen/Lamiae/ClientLamiaeSystem.cs | 36 ++ .../Nyanotrasen/Lamiae/LamiaSystem.cs | 151 ++++++++ .../Nyanotrasen/Lamiae/LamiaComponent.cs | 14 + .../Lamiae/LamiaSegmentComponent.cs | 18 + .../Nyanotrasen/Lamiae/SharedLamiaeSystem.cs | 11 + .../Mobs/Customization/Markings/lamia.yml | 8 + .../Entities/Mobs/Player/lamia.yml | 36 ++ .../Entities/Mobs/Species/lamia.yml | 339 ++++++++++++++++++ .../Objects/Specific/Species/lamia.yml | 78 ++++ .../Prototypes/Nyanotrasen/Species/lamia.yml | 38 ++ .../equipped-OUTERCLOTHING-LamiaSegment.png | Bin 0 -> 921 bytes .../lamia_masking_helpers.rsi/female_full.png | Bin 0 -> 673 bytes .../lamia_masking_helpers.rsi/female_none.png | Bin 0 -> 632 bytes .../lamia_masking_helpers.rsi/female_top.png | Bin 0 -> 673 bytes .../lamia_masking_helpers.rsi/meta.json | 1 + .../lamia_masking_helpers.rsi/none.png | Bin 0 -> 4982 bytes .../Mobs/Species/lamia.rsi/bottom.png | Bin 0 -> 1227 bytes .../Mobs/Species/lamia.rsi/meta.json | 36 ++ .../Mobs/Species/lamia.rsi/placeholder.png | Bin 0 -> 815 bytes .../Mobs/Species/lamia.rsi/tip.png | Bin 0 -> 674 bytes .../Mobs/Species/lamia.rsi/torso_f.png | Bin 0 -> 8155 bytes .../Mobs/Species/lamia.rsi/torso_m.png | Bin 0 -> 8155 bytes .../Mobs/Species/lamia.rsi/underscales.png | Bin 0 -> 621 bytes .../Mobs/Species/lamia.rsi/verbiconfangs.png | Bin 0 -> 710 bytes error.txt | Bin 0 -> 1500238 bytes 25 files changed, 766 insertions(+) create mode 100644 Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs create mode 100644 Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs create mode 100644 Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs create mode 100644 Content.Shared/Nyanotrasen/Lamiae/SharedLamiaeSystem.cs create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml create mode 100644 Resources/Prototypes/Nyanotrasen/Species/lamia.yml create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-LamiaSegment.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_full.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_none.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_top.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/meta.json create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/none.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/bottom.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/tip.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/verbiconfangs.png create mode 100644 error.txt diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs new file mode 100644 index 0000000000..924978dc9d --- /dev/null +++ b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs @@ -0,0 +1,36 @@ +using Content.Shared.Nyanotrasen.Lamiae; +using Content.Shared.Humanoid; +using Robust.Shared.GameObjects; +using Robust.Shared.GameStates; +using Robust.Client.GameObjects; +namespace Content.Client.Nyanotrasen.Lamiae; + +public sealed class LamiaSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnSegmentSpawned); + } + + public void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) + { + component.Lamia = args.Lamia; + + if (!TryComp(uid, out var sprite)) + return; + + if (TryComp(args.Lamia, out var humanoid)) + { + foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) + { + if (marking.MarkingId != "LamiaBottom") + continue; + + var color = marking.MarkingColors[0]; + sprite.LayerSetColor(0, color); + } + } + } +} diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs new file mode 100644 index 0000000000..63837f60e2 --- /dev/null +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -0,0 +1,151 @@ +using Robust.Shared.Physics; +using Content.Shared.Damage; +using Content.Shared.Humanoid; +using Content.Server.Humanoid; +using Content.Server.Access.Systems; +using Robust.Server.GameObjects; +using Robust.Shared.Prototypes; +using Robust.Shared.Containers; +using Robust.Shared.Map; +using Robust.Shared.Physics.Systems; +using Robust.Shared.Physics.Components; +using Robust.Shared.Maths; +using System.Numerics; +using Content.Shared.Nyanotrasen.Lamiae; + +namespace Content.Shared.Nyanotrasen.Lamiae +{ + public sealed partial class LamiaSystem : EntitySystem + { + [Dependency] private readonly SharedJointSystem _jointSystem = default!; + [Dependency] private readonly IPrototypeManager _prototypes = default!; + [Dependency] private readonly IdCardSystem _idCardSystem = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + + Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); + public override void Update(float frameTime) + { + base.Update(frameTime); + foreach (var segment in _segments) + { + var segmentUid = segment.segment.Owner; + var attachedUid = segment.segment.AttachedToUid; + if (!Exists(segmentUid) || !Exists(attachedUid) + || MetaData(segmentUid).EntityLifeStage > EntityLifeStage.MapInitialized + || MetaData(attachedUid).EntityLifeStage > EntityLifeStage.MapInitialized + || Transform(segmentUid).MapID == MapId.Nullspace + || Transform(attachedUid).MapID == MapId.Nullspace) + continue; + + EnsureComp(segmentUid); + EnsureComp(attachedUid); // Hello I hate tests + + var ev = new SegmentSpawnedEvent(segment.lamia); + RaiseLocalEvent(segmentUid, ev, false); + + if (segment.segment.SegmentNumber == 1) + { + Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates; + var revoluteJoint = _jointSystem.CreateWeldJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); + revoluteJoint.CollideConnected = false; + } + if (segment.segment.SegmentNumber < 32) + Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0f, 0.15f)); + else + Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, 0.1f)); + + var joint = _jointSystem.CreateDistanceJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); + joint.CollideConnected = false; + joint.Stiffness = 0.2f; + } + _segments.Clear(); + } + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnJointRemoved); + SubscribeLocalEvent(OnRemovedFromContainer); + SubscribeLocalEvent(HandleSegmentDamage); + } + + private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) + { + SpawnSegments(uid, component); + } + + private void OnShutdown(EntityUid uid, LamiaComponent component, ComponentShutdown args) + { + foreach (var segment in component.Segments) + { + QueueDel(segment); + } + + component.Segments.Clear(); + } + + private void OnJointRemoved(EntityUid uid, LamiaComponent component, JointRemovedEvent args) + { + if (!component.Segments.Contains(args.OtherBody.Owner)) + return; + + foreach (var segment in component.Segments) + QueueDel(segment); + + component.Segments.Clear(); + } + + private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, EntGotRemovedFromContainerMessage args) + { + if (component.Segments.Count != 0) + { + foreach (var segment in component.Segments) + QueueDel(segment); + component.Segments.Clear(); + } + + SpawnSegments(uid, component); + } + + private void HandleSegmentDamage(EntityUid uid, LamiaSegmentComponent component, DamageModifyEvent args) + { + args.Damage.DamageDict["Radiation"] = Shared.FixedPoint.FixedPoint2.Zero; + _damageableSystem.TryChangeDamage(component.Lamia, args.Damage); + + args.Damage *= 0; + } + + private void SpawnSegments(EntityUid uid, LamiaComponent component) + { + int i = 1; + var addTo = uid; + while (i < component.NumberOfSegments + 1) + { + var segment = AddSegment(addTo, uid, component, i); + addTo = segment; + i++; + } + } + + private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lamiaComponent, int segmentNumber) + { + LamiaSegmentComponent segmentComponent = new(); + segmentComponent.AttachedToUid = uid; + EntityUid segment; + if (segmentNumber == 1) + segment = EntityManager.SpawnEntity("LamiaInitialSegment", Transform(uid).Coordinates); + else if (segmentNumber == lamiaComponent.NumberOfSegments) + segment = EntityManager.SpawnEntity("LamiaSegmentEnd", Transform(uid).Coordinates); + else + segment = EntityManager.SpawnEntity("LamiaSegment", Transform(uid).Coordinates); + + segmentComponent.Owner = segment; + segmentComponent.SegmentNumber = segmentNumber; + EntityManager.AddComponent(segment, segmentComponent, true); + _segments.Enqueue((segmentComponent, lamia)); + lamiaComponent.Segments.Add(segmentComponent.Owner); + return segment; + } + } +} diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs new file mode 100644 index 0000000000..0d022e4cda --- /dev/null +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Shared.Nyanotrasen.Lamiae +{ + /// + /// Controls initialization of the multisegmented lamia species. + /// + [RegisterComponent] + public sealed partial class LamiaComponent : Component + { + public List Segments = new(); + + [DataField("numberOfSegments")] + public int NumberOfSegments = 32; + } +} diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs new file mode 100644 index 0000000000..c33ec31d84 --- /dev/null +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Nyanotrasen.Lamiae +{ + /// + /// Lamia segment + /// + [RegisterComponent] + [NetworkedComponent] + public sealed partial class LamiaSegmentComponent : Component + { + public EntityUid AttachedToUid = default!; + + public bool SexChanged = false; + public EntityUid Lamia = default!; + public int SegmentNumber = default!; + } +} diff --git a/Content.Shared/Nyanotrasen/Lamiae/SharedLamiaeSystem.cs b/Content.Shared/Nyanotrasen/Lamiae/SharedLamiaeSystem.cs new file mode 100644 index 0000000000..01eb1909a0 --- /dev/null +++ b/Content.Shared/Nyanotrasen/Lamiae/SharedLamiaeSystem.cs @@ -0,0 +1,11 @@ +namespace Content.Shared.Nyanotrasen.Lamiae; + +public sealed class SegmentSpawnedEvent : EntityEventArgs +{ + public EntityUid Lamia = default!; + + public SegmentSpawnedEvent(EntityUid lamia) + { + Lamia = lamia; + } +} diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml new file mode 100644 index 0000000000..21438d7a8c --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml @@ -0,0 +1,8 @@ +- type: marking + id: LamiaBottom + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Lamia] + sprites: + - sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: bottom diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml new file mode 100644 index 0000000000..031ae52ddc --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml @@ -0,0 +1,36 @@ +- type: entity + save: false + name: Lamia + parent: MobLamiaBase + id: MobLamia + description: A miserable pile of scales. + components: + - type: CombatMode + - type: InteractionPopup + successChance: 1 + interactSuccessString: hugging-success-generic + interactSuccessSound: /Audio/Effects/thudswoosh.ogg + messagePerceivedByOthers: hugging-success-generic-others + - type: Mind + showExamineInfo: true + - type: Input + context: "human" + - type: MobMover + - type: InputMover + - type: Respirator + damage: + types: + Asphyxiation: 1.5 + damageRecovery: + types: + Asphyxiation: -1.5 + - type: Alerts + - type: Actions + - type: Eye + - type: CameraRecoil + - type: Examiner + - type: CanHostGuardian + - type: NpcFactionMember + factions: + - NanoTrasen + - type: PotentialPsionic diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml new file mode 100644 index 0000000000..9e67d1b4b1 --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -0,0 +1,339 @@ +- type: entity + save: false + name: Lamia + parent: BaseMobHuman + id: MobLamiaBase + abstract: true + description: A miserable pile of scales. + components: + - type: Flashable + - type: Polymorphable + - type: Identity + - type: Hands + - type: HumanoidAppearance + species: Lamia + - type: MovementSpeedModifier + baseWalkSpeed : 4 + baseSprintSpeed : 6 + - type: MovedByPressure + - type: Barotrauma + damage: + types: + Blunt: 0.075 #per second, scales with pressure and other constants. + - type: DamageOnHighSpeedImpact + damage: + types: + Blunt: 5 + soundHit: + path: /Audio/Effects/hit_kick.ogg + - type: Hunger + - type: Thirst + - type: IdExaminable + - type: HealthExaminable + examinableTypes: + - Blunt + - Slash + - Piercing + - Heat + - Shock + - type: Stamina + - type: Blindable + - type: Clickable + - type: InteractionOutline + - type: Icon + sprite: Mobs/Species/Human/parts.rsi + state: full + - type: Physics + bodyType: KinematicController + - type: Tag + tags: + - CanPilot + - DoorBumpOpener + - ShoesRequiredStepTriggerImmune + - type: Sprite + netsync: false + noRot: true + drawdepth: Mobs + scale: 1, 1 + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + color: "#e8b59b" + sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: torso_m + - map: [ "enum.HumanoidVisualLayers.Head" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: head_m + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + color: "#008800" + sprite: Mobs/Customization/eyes.rsi + state: eyes + - map: [ "enum.HumanoidVisualLayers.RArm" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: r_arm + - map: [ "enum.HumanoidVisualLayers.LArm" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: l_arm + - shader: StencilMask + map: [ "enum.HumanoidVisualLayers.StencilMask" ] + sprite: Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi + state: female_full + visible: false + - map: [ "jumpsuit" ] + shader: StencilDraw + - map: [ "enum.HumanoidVisualLayers.LHand" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: l_hand + - map: [ "enum.HumanoidVisualLayers.RHand" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: r_hand + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "id" ] + - map: [ "gloves" ] + - map: [ "ears" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] + sprite: Mobs/Customization/masking_helpers.rsi + state: none + visible: false + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - map: [ "belt2" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + state: bald + sprite: Mobs/Customization/human_hair.rsi + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + sprite: Mobs/Customization/masking_helpers.rsi + state: none + visible: false + - sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: underscales + - type: Body + template: LamiaTemplate + preset: LamiaPreset + - type: AtmosExposed + - type: Flammable + fireSpread: true + canResistFire: true + damage: + types: + Heat: 1 #per second, scales with number of fire 'stacks' + - type: Damageable + damageContainer: Biological + damageModifierSet: Scale + - type: Temperature + heatDamageThreshold: 400 + coldDamageThreshold: 285 + currentTemperature: 310.15 + specificHeat: 46 + coldDamage: + types: + Cold : 0.2 #per second, scales with temperature & other constants + heatDamage: + types: + Heat : 0.1 #per second, scales with temperature & other constants + - type: LizardAccent + - type: NoSlip + - type: ThermalRegulator + metabolismHeat: 800 + radiatedHeat: 100 + implicitHeatRegulation: 500 + sweatHeatRegulation: 2000 + shiveringHeatRegulation: 2000 + normalBodyTemperature: 310.15 + thermalRegulationTemperatureThreshold: 25 + - type: Internals + - type: MobState + thresholds: + 0: Alive + 100: Critical + 200: Dead + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.7 + 80: 0.5 + - type: Appearance + visuals: + - type: RotationVisualizer + - type: BuckleVisualizer + - type: CreamPiedVisualizer + state: creampie_human + - type: DamageVisuals + thresholds: [ 20, 40, 100 ] + targetLayers: + - "enum.HumanoidVisualLayers.Chest" + - "enum.HumanoidVisualLayers.Head" + - "enum.HumanoidVisualLayers.LArm" + - "enum.HumanoidVisualLayers.RArm" + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#FF0000" + Burn: + sprite: Mobs/Effects/burn_damage.rsi + - type: FireVisuals + sprite: Mobs/Effects/onfire.rsi + normalState: Generic_mob_burning + alternateState: Standing + fireStackAlternateState: 3 + - type: CombatMode + - type: Climbing + - type: Cuffable + - type: AnimationPlayer + - type: MeleeWeapon + soundHit: + collection: Punch + range: 0.8 + damage: + types: + Blunt: 5 + - type: Pullable + - type: DoAfter + - type: CreamPied + - type: Stripping + - type: Strippable + - type: UserInterface + interfaces: + - key: enum.StrippingUiKey.Key + type: StrippableBoundUserInterface + - type: Puller + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 2000 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + - type: Lamia + - type: Inventory + templateId: human + - type: StatusEffects + allowed: + - Stun + - SlowedDown + - Stutter + - SeeingRainbows + - Electrocution + - Drunk + - SlurredSpeech + - PressureImmunity + - Muted + - KnockedDown + - ForcedSleep + - TemporaryBlindness + - Pacified + - PsionicsDisabled + - PsionicallyInsulated + - type: Speech + speechSounds: Alto + - type: Vocal + - type: Emoting + - type: Grammar + attributes: + proper: true + - type: StandingState + - type: Fingerprint + - type: MobPrice + price: 1500 # Kidnapping a living person and selling them for cred is a good move. + deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less. + - type: Perishable + +- type: entity + save: false + name: Lamia Dummy + parent: MobHumanDummy + id: MobLamiaDummy + description: A dummy lamia meant to be used in character setup. + components: + - type: Sprite + netsync: false + noRot: true + drawdepth: Mobs + scale: 1, 1 + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + color: "#e8b59b" + sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: torso_m + - map: [ "enum.HumanoidVisualLayers.Head" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: head_m + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + color: "#008800" + sprite: Mobs/Customization/eyes.rsi + state: eyes + - map: [ "enum.HumanoidVisualLayers.RArm" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: r_arm + - map: [ "enum.HumanoidVisualLayers.LArm" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: l_arm + - shader: StencilMask + map: [ "enum.HumanoidVisualLayers.StencilMask" ] + sprite: Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi + state: female_full + visible: false + - map: [ "jumpsuit" ] + shader: StencilDraw + - map: [ "enum.HumanoidVisualLayers.LHand" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: l_hand + - map: [ "enum.HumanoidVisualLayers.RHand" ] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: r_hand + - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - map: [ "id" ] + - map: [ "gloves" ] + - map: [ "ears" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + state: bald + sprite: Mobs/Customization/human_hair.rsi + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + sprite: Mobs/Customization/masking_helpers.rsi + state: none + visible: false + - map: [ "enum.HumanoidVisualLayers.Tail" ] + sprite: Mobs/Customization/masking_helpers.rsi + state: none + visible: false + - sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: underscales + - type: Inventory + templateId: lamia diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml new file mode 100644 index 0000000000..a4408122cc --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -0,0 +1,78 @@ +- type: entity + id: LamiaInitialSegment + noSpawn: true + components: + - type: Physics + bodyType: KinematicController + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.25 + density: 80 + restitution: 0.0 + mask: + - MobMask + + - type: Transform + anchored: false + - type: Tag + tags: + - HideContextMenu + +- type: entity + id: LamiaSegment + parent: LamiaInitialSegment + name: lamia segment + noSpawn: true + description: A tail segment, hopefully attached to a lamia. + components: + - type: Sprite + layers: + - map: [0] + sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: placeholder + - type: Clickable + - type: Tag + tags: + - DoorBumpOpener + - type: ExplosionResistance #This looks stupid but remember that bombs are likely to damage every segment, we want them to be decent but not instagib the poor lamia.s + damageCoefficient: 0.2 + - type: Physics + bodyType: KinematicController + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.25 + density: 80 + restitution: 0.0 + mask: + - MobMask + +- type: entity + id: LamiaSegmentEnd + parent: LamiaSegment + name: lamia tail tip + noSpawn: true + description: The end of a lamia's tail. + components: + - type: Sprite + layers: + - map: [0] + sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: tip + - type: Physics + bodyType: KinematicController + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.25 + density: 80 + restitution: 0.0 + mask: + - MobMask diff --git a/Resources/Prototypes/Nyanotrasen/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Species/lamia.yml new file mode 100644 index 0000000000..14c5a80c12 --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Species/lamia.yml @@ -0,0 +1,38 @@ +- type: species + id: Lamia + name: Lamia + roundStart: true + prototype: MobLamia + dollPrototype: MobLamiaDummy + sprites: MobLamiaSprites + markingLimits: MobLamiaMarkingLimits + skinColoration: HumanToned + maleFirstNames: names_cyno_male + femaleFirstNames: names_cyno_female + lastNames: names_cyno_last + sexes: + - Female + +- type: markingPoints + id: MobLamiaMarkingLimits + points: + Hair: + points: 1 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [ LamiaBottom ] + +- type: speciesBaseSprites + id: MobLamiaSprites + sprites: + Head: MobHumanHead + Hair: MobHumanoidAnyMarking + Chest: MobHumanTorso + Eyes: MobHumanoidEyes + LArm: MobHumanLArm + RArm: MobHumanRArm + LHand: MobHumanLHand + RHand: MobHumanRHand + Tail: MobHumanoidAnyMarking diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-LamiaSegment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-LamiaSegment.png new file mode 100644 index 0000000000000000000000000000000000000000..475a45bf9d9ea540225379c0e5d4d62507063db3 GIT binary patch literal 921 zcmV;K17`e*P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd00F&8L_t(o zN9~hcD+Ey($NvnIm(jAC3CkqOOExaV4RNm&Nx3HZ25wx)g|DEb_D+f9!Y5d9LkbaU zlZN#&leLpwv>9Wc(@eQg&Rn>1e)V+z^ZcLYJm)zx5C{YUfj}S-{Cf(#m77UPay|JY zF~1C}QC9=%)doG6=^PK6;WHwL}+=Yf=D2L+{FPc`1uyu;TCKcwQ z$vkaNL;T7@N{zxa@6o-nR-x;9hMB*>-N1ZnhkKK_z<8t#v4SvcwFZ^m1k(8lgscZl zx+!cVU(wLqhK0*Bu6GxD>#xw}Q$r(IZjK`PF5{@B80)K#EJ#z1JgT8uUbq_|XuLCt zQ`DD!py|ZM=tMOO(v%~QYJw1`fupp|PI>!QgsaXFw$`3lkft1YR1*a5Z-D*)y4&8j z8x-La+l685DV5CY%cL>c}*5j~)%+dJZrAngg)*TutEA*lSL<_HIi7a$lAsSU`u=5M|EE5$?y}qXGg9rPM zu4?YyypC^Olfnw$I>~;MCVh~N|IYE@tKPBAf6o84thzGiXhVaC&1s&?YWEc8-P^)@ z?)MSFuqmOBiXRzH*7NvtqV(uv^K-1zS?5U_US3)Gh+|_!M)K0$$ctAxmUk>(wJdnw zgpUzV_Z*GX4v+ji?@#N)Ir}!9DV^2qks#wA+~ue{-(y0ckoIM*eSPn8e;_UzN-{&JV;ZgyP$+1fdF z44JRADw$TT$X?><>&pI&T~>%!rEBV&_dp@Z64!_l=ltB<)VvY~=c3fa zlGGH1^30M91$R&1fbd2>aiF3~PZ!6Kid%1QIr23q@Gv-j`CqSRe?fp%d+yGvh8z*0 z4W>Xv4cvl){`3CV*4(%-u{L(5+=5?+3d8=hun0IXFoFr7l4?o*Ap7~3PjN1>JsD?c z_`N=$y1b&AN8M@n+5=^r$9~u^_$95-z`(=-CIZ6PyDm7tnxVDjDA0TcPgg&ebxsLQ E0NM-^IRF3v literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_none.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_none.png new file mode 100644 index 0000000000000000000000000000000000000000..895e0b5a132f96c00be90cae95641ba50a0a2a8e GIT binary patch literal 632 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJZrAngg)*TutEA*lSL<_HIi7a$lAsSU`u=5M|EE5$?y}qXGg9rPM zu4?YyypC^Olfnw$I>~;MCVh~N|IYE@tKPBAf6o84thzGiXhVaC&1s&?YWEc8-P^)@ z?)MSFuqmOBiXRzH*7NvtqV(uv^K-1zS?5U_US3)Gh+|_!M)K0$$ctAxmUk>(wJdnw zgpUzV_Z*GX4v+ji?@#N)Ir}!9DV^2qks#wA+~ue{-(y0ckoIM*eSPn8e;_UzN-{&JV;ZgyP$+1fdF z44JRADw$TT$X?><>&pI&T~mdK II;Vst0E=Mz#{d8T literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_top.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_top.png new file mode 100644 index 0000000000000000000000000000000000000000..71bc96fe209d8cc815f51ac3fc889217ee0c67bd GIT binary patch literal 673 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 S2+nN~Bng`xS~_#_s{aAL;cf>2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/bottom.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..bf711ef304464a8c45b8fba87d3b34ce08999281 GIT binary patch literal 1227 zcmV;+1T_1JP)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TBG{N9>XdFwmAx<_wJJj=q>dJsB7=~dOhG7_nVHoCrLfo|jCNvri@_iqc zWdQ)9_E%R|jmC7(L`+1KrV&C+C8)mdLn#FS!yt@J`dUWi{b&kUmSr-jMghoWtTRGN37r&>(rElfDbUYYXT>zv` zmja`@G)z{&PXJFfb(xdPV=>XBdWI7=~dOhG7_nVHk$_r_ugb zczb*M{mRP9=JD|{Y}+0dB*KM>N~MBYtv2!R102U8&+||$79;&wUtdS3)7jhD*m#>} zE43~_L}k}?mFIbAHk+_*8=mI@KxCnE8pKtFf=OsLn@~#C9mlEf?(SBE5NC0=5(7X) z1=n>|)Bxk0mi2)Eoz_x7w7;eM+!S*g!fUb{mq~5VT&rAI>EKIRj zocL3~)Tg<*xz^(1;^U~c)Te-L+fKXPu9K74h p5mAFi$gG3$e2St$L|Z!7{{{}G*oQsXOUVEL002ovPDHLkV1ipdIH>>t literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json new file mode 100644 index 0000000000..ebfd0e2dc7 --- /dev/null +++ b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Archer2150#2528 using assets from Rane. Fangs by discord user @Hyenh6078", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "placeholder" + }, + { + "name": "bottom", + "directions": 4 + }, + { + "name": "tip" + }, + { + "name": "verbiconfangs" + }, + { + "name": "underscales", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..e0cb4814daf69c8d4488c2563bc810ab2b73b82e GIT binary patch literal 815 zcmV+~1JL}5P)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TEX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TTOp@q11ES=LF zpqJ=H)VU7M3OYOI5;;ms4v?{H3+eW|s8G=17o7Y*2!!{@4>8*Yg;w}5l*6k~+edZByo zVT{=VxN`DV+yZ4;?w)&VEv&UKuj{%qH;+AmBuP+J6#$^F>xD){+&KOln5L0Px# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png new file mode 100644 index 0000000000000000000000000000000000000000..f818a478944e6aafe10e6febbd232745c1ccb64e GIT binary patch literal 8155 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 bc>MY>_x1eBbC)sO`*o+QX{eE>b~X4vQ3J`u literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png new file mode 100644 index 0000000000000000000000000000000000000000..f818a478944e6aafe10e6febbd232745c1ccb64e GIT binary patch literal 8155 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 bc>MY>_x1eBbC)sO`*o+QX{eE>b~X4vQ3J`u literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png new file mode 100644 index 0000000000000000000000000000000000000000..edc457a79b7e3bbb117a90a32d9016829319a14e GIT binary patch literal 621 zcmV-z0+RiSP)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TFiG>?GT@Au4+FX^000000Ki>5B8z(O@855&wNR~WugIcO%Itll2_3+; zZL{~0Mgk&>BtQcGCjsHnwXW-T6xLcVIRXIy0001PXZSWZ<92vv&(OQTUd9{2%$~ys zknu`1v!?`%7LWi5kboKcIDOAU`EX>4Tx04R}tkv&MmKpe$iQ%gmv4(%Y~kfG{gK~%(1s#pXIrLEAagUO{ILX(Ch z#l=x@EjakGSaoo5*44pP5ClI!9G#pLU8KbSC509-9vt`M-Mz=%J3weum}+*71FB{j z=|o)2ga5(rZq4H4gqswK1A!OY{ul;=yFjyU+uz5w-8=#O&%l+|_E#Ig%qQvf zwiZ1C`nQ3L>$WEE0hc?#z>_W+k|X(P3dJJuen#Jv2g0{N&#K#7Yagc%K$f~%x&aOj zfsqnruX((?yR)}{&$Rmc0bv|+px1XgZU6uP24YJ`L;$(~0001^G^@%0000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2j&MA6)yp%*g)a{006>CL_t(o!|jy85yT(}MKJ}K z-t8d8aHJU0z~2)yhQVxHvp3!;6X65;l_*J)ByqIX001I_)*9Z>6A=J-rl+bfR23ou zA|ey%*P?);cx$D6f=KZW~Zl%odwzYTx%u&CLfL#}Ovl zL{AGv@sajdADDR}4@BR+fk&Qsd=m`s=H6)Dp#AOfLrk4lFZ%15N6mV+(E>A1o%@|1 sn0f6{TG@f+$81I5jh8e@k|g;%AKqC_gmCBwWdHyG07*qoM6N<$g2eMRN&o-= literal 0 HcmV?d00001 diff --git a/error.txt b/error.txt new file mode 100644 index 0000000000000000000000000000000000000000..753ecc761e3f1b8cbccfc3db43bcb9de8d280f56 GIT binary patch literal 1500238 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�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∨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 Date: Sat, 25 Nov 2023 23:14:01 -0500 Subject: [PATCH 02/85] Starting the process of moving this code to Shared & Client --- .../Nyanotrasen/Lamiae/ClientLamiaeSystem.cs | 24 +++++++++---------- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 10 ++------ .../Objects/Specific/Species/lamia.yml | 16 ++++++++----- 3 files changed, 24 insertions(+), 26 deletions(-) rename {Content.Server => Content.Shared}/Nyanotrasen/Lamiae/LamiaSystem.cs (94%) diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs index 924978dc9d..135d44db1e 100644 --- a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs +++ b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs @@ -5,23 +5,17 @@ using Robust.Client.GameObjects; namespace Content.Client.Nyanotrasen.Lamiae; -public sealed class LamiaSystem : EntitySystem +public sealed class LamiaVisualizerSystem : SharedLamiaSystem { - public override void Initialize() + public void UpdateAppearance(EntityUid uid, LamiaSegmentComponent? lamia = null) { - base.Initialize(); - - SubscribeLocalEvent(OnSegmentSpawned); - } - - public void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) - { - component.Lamia = args.Lamia; + if (!Resolve(uid, ref lamia)) + return; if (!TryComp(uid, out var sprite)) return; - if (TryComp(args.Lamia, out var humanoid)) + if (TryComp(lamia, out var humanoid)) { foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) { @@ -29,8 +23,14 @@ public void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Seg continue; var color = marking.MarkingColors[0]; - sprite.LayerSetColor(0, color); + sprite.LayerSetColor("enum.LamiaSegmentVisualLayers.Base", color); } } } } + +public enum LamiaVisualLayers +{ + Base, + Armor, +} diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs similarity index 94% rename from Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs rename to Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs index 63837f60e2..79b913d8d9 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -1,9 +1,7 @@ using Robust.Shared.Physics; using Content.Shared.Damage; using Content.Shared.Humanoid; -using Content.Server.Humanoid; -using Content.Server.Access.Systems; -using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Containers; using Robust.Shared.Map; @@ -15,11 +13,10 @@ namespace Content.Shared.Nyanotrasen.Lamiae { - public sealed partial class LamiaSystem : EntitySystem + public partial class SharedLamiaSystem : EntitySystem { [Dependency] private readonly SharedJointSystem _jointSystem = default!; [Dependency] private readonly IPrototypeManager _prototypes = default!; - [Dependency] private readonly IdCardSystem _idCardSystem = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); @@ -40,9 +37,6 @@ public override void Update(float frameTime) EnsureComp(segmentUid); EnsureComp(attachedUid); // Hello I hate tests - var ev = new SegmentSpawnedEvent(segment.lamia); - RaiseLocalEvent(segmentUid, ev, false); - if (segment.segment.SegmentNumber == 1) { Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates; diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index a4408122cc..f4b5d6fc3b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -29,10 +29,12 @@ description: A tail segment, hopefully attached to a lamia. components: - type: Sprite + sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - map: [0] - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: placeholder + - state: placeholder + map: ["enum.LamiaSegmentVisualLayers.Base"] + - map: ["enum.LamiaSegmentVisualLayers.Armor"] + visible: false - type: Clickable - type: Tag tags: @@ -60,10 +62,12 @@ description: The end of a lamia's tail. components: - type: Sprite + sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - map: [0] - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: tip + - state: tip + map: ["enum.LamiaSegmentVisualLayers.Base"] + - map: ["enum.LamiaSegmentVisualLayers.Armor"] + visible: false - type: Physics bodyType: KinematicController - type: Fixtures From c647da97d6e4ca01d93ffe8e026eb5977228b1b9 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 26 Nov 2023 02:07:02 -0500 Subject: [PATCH 03/85] Adding lamia unique melee --- .../Nyanotrasen/Entities/Mobs/Species/lamia.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 9e67d1b4b1..92e149be17 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -200,7 +200,19 @@ range: 0.8 damage: types: - Blunt: 5 + Piercing: 1 + Poison: 2 + Asphyxiation: 2 + ignoreResistances: true + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: SpaceDrugs + Quantity: 60 + - type: MeleeChemicalInjector + solution: melee + transferAmount: 3 - type: Pullable - type: DoAfter - type: CreamPied From 30aa81d1521ed4fbf95ade855ce1f2292337ecf4 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 26 Nov 2023 02:09:08 -0500 Subject: [PATCH 04/85] Update lamia.yml --- .../Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 92e149be17..7b1fe952e1 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -196,8 +196,9 @@ - type: AnimationPlayer - type: MeleeWeapon soundHit: - collection: Punch + path: /Audio/Items/hypospray.ogg range: 0.8 + animation: WeaponArcBite damage: types: Piercing: 1 From 6ed9df640b20a58487f1c29afef96f257b20eb59 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 26 Nov 2023 19:46:35 -0500 Subject: [PATCH 05/85] Making a pass at their YAML --- .../Entities/Mobs/Species/lamia.yml | 100 ++++-------------- 1 file changed, 21 insertions(+), 79 deletions(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 7b1fe952e1..608f8b9176 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -1,10 +1,10 @@ - type: entity save: false name: Lamia - parent: BaseMobHuman + parent: BaseMobHuman #parenting human so I can remove most of these components id: MobLamiaBase abstract: true - description: A miserable pile of scales. + description: A miserable pile of scales. #TODO: Add a better description components: - type: Flashable - type: Polymorphable @@ -16,16 +16,6 @@ baseWalkSpeed : 4 baseSprintSpeed : 6 - type: MovedByPressure - - type: Barotrauma - damage: - types: - Blunt: 0.075 #per second, scales with pressure and other constants. - - type: DamageOnHighSpeedImpact - damage: - types: - Blunt: 5 - soundHit: - path: /Audio/Effects/hit_kick.ogg - type: Hunger - type: Thirst - type: IdExaminable @@ -55,7 +45,7 @@ noRot: true drawdepth: Mobs scale: 1, 1 - layers: + layers: #TODO: manually fix these layers - map: [ "enum.HumanoidVisualLayers.Chest" ] color: "#e8b59b" sprite: Nyanotrasen/Mobs/Species/lamia.rsi @@ -125,47 +115,23 @@ - type: Body template: LamiaTemplate preset: LamiaPreset - - type: AtmosExposed - - type: Flammable - fireSpread: true - canResistFire: true - damage: - types: - Heat: 1 #per second, scales with number of fire 'stacks' - type: Damageable damageContainer: Biological - damageModifierSet: Scale - - type: Temperature - heatDamageThreshold: 400 - coldDamageThreshold: 285 - currentTemperature: 310.15 - specificHeat: 46 - coldDamage: - types: - Cold : 0.2 #per second, scales with temperature & other constants - heatDamage: - types: - Heat : 0.1 #per second, scales with temperature & other constants - - type: LizardAccent + damageModifierSet: Scale #TODO: make a new damage modifier set - type: NoSlip - - type: ThermalRegulator - metabolismHeat: 800 - radiatedHeat: 100 - implicitHeatRegulation: 500 - sweatHeatRegulation: 2000 - shiveringHeatRegulation: 2000 - normalBodyTemperature: 310.15 - thermalRegulationTemperatureThreshold: 25 - type: Internals - type: MobState thresholds: 0: Alive - 100: Critical - 200: Dead - - type: SlowOnDamage - speedModifierThresholds: - 60: 0.7 - 80: 0.5 + 200: Critical #these values aren't final' + 300: Dead #these values aren't final' + - type: SlowOnDamage + speedModifierThresholds: #these values aren't final, adjust accordingly with thresholds above' + 60: 0.9 + 80: 0.8 + 100: 0.7 + 120: 0.6 + 140: 0.5 - type: Appearance visuals: - type: RotationVisualizer @@ -173,7 +139,7 @@ - type: CreamPiedVisualizer state: creampie_human - type: DamageVisuals - thresholds: [ 20, 40, 100 ] + thresholds: [ 60, 120, 200 ] #these values aren't final, adjust accordingly with thresholds above' targetLayers: - "enum.HumanoidVisualLayers.Chest" - "enum.HumanoidVisualLayers.Head" @@ -194,9 +160,9 @@ - type: Climbing - type: Cuffable - type: AnimationPlayer - - type: MeleeWeapon + - type: MeleeWeapon #This damage is most likely final soundHit: - path: /Audio/Items/hypospray.ogg + path: /Audio/Items/hypospray.ogg #this sound is not final, but is a pretty good placeholder so we might keep it range: 0.8 animation: WeaponArcBite damage: @@ -204,25 +170,21 @@ Piercing: 1 Poison: 2 Asphyxiation: 2 - ignoreResistances: true + ignoreResistances: true #We're basically going for a biological hypospray, but ideally I only want the piercing to ignore resistances - type: SolutionContainerManager solutions: melee: reagents: - - ReagentId: SpaceDrugs + - ReagentId: SpaceDrugs #The poison is not final Quantity: 60 - type: MeleeChemicalInjector solution: melee - transferAmount: 3 + transferAmount: 3 #amount to inject is not final - type: Pullable - type: DoAfter - type: CreamPied - type: Stripping - type: Strippable - - type: UserInterface - interfaces: - - key: enum.StrippingUiKey.Key - type: StrippableBoundUserInterface - type: Puller - type: Fixtures fixtures: # TODO: This needs a second fixture just for mob collisions. @@ -230,7 +192,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 2000 + density: 2000 #Density is not final, adjust accordingly if the number of tail segments is reduced or increased restitution: 0.0 mask: - MobMask @@ -238,24 +200,7 @@ - MobLayer - type: Lamia - type: Inventory - templateId: human - - type: StatusEffects - allowed: - - Stun - - SlowedDown - - Stutter - - SeeingRainbows - - Electrocution - - Drunk - - SlurredSpeech - - PressureImmunity - - Muted - - KnockedDown - - ForcedSleep - - TemporaryBlindness - - Pacified - - PsionicsDisabled - - PsionicallyInsulated + templateId: human #need to make a Lamia template, no shoes - type: Speech speechSounds: Alto - type: Vocal @@ -265,9 +210,6 @@ proper: true - type: StandingState - type: Fingerprint - - type: MobPrice - price: 1500 # Kidnapping a living person and selling them for cred is a good move. - deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less. - type: Perishable - type: entity From 950b7b3c331efeae7adc4e2d823591f328028128 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 26 Nov 2023 21:04:40 -0500 Subject: [PATCH 06/85] More lamia updating --- .../Entities/Mobs/Species/lamia.yml | 25 +++- .../lamia_inventory_template.yml | 109 ++++++++++++++++++ 2 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 608f8b9176..d3aff3c07b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -19,6 +19,9 @@ - type: Hunger - type: Thirst - type: IdExaminable + - type: Inventory + speciesId: lamia + templateId: lamia - type: HealthExaminable examinableTypes: - Blunt @@ -30,6 +33,15 @@ - type: Blindable - type: Clickable - type: InteractionOutline + - type: InteractionPopup + successChance: 0.5 + interactSuccessString: petting-success-lamia + interactFailureString: petting-failure-lamia + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Mobs/Animals/purr.ogg #placeholder sound + interactFailureSound: + path: /Audio/Mobs/Animals/hiss.ogg #placeholder sound - type: Icon sprite: Mobs/Species/Human/parts.rsi state: full @@ -174,9 +186,13 @@ - type: SolutionContainerManager solutions: melee: - reagents: - - ReagentId: SpaceDrugs #The poison is not final - Quantity: 60 + maxVol: 30 + - type: SolutionRegeneration + solution: melee + generated: + reagents: + - ReagentId: SpaceDrugs + Quantity: 1 - type: MeleeChemicalInjector solution: melee transferAmount: 3 #amount to inject is not final @@ -211,6 +227,9 @@ - type: StandingState - type: Fingerprint - type: Perishable + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepLamia - type: entity save: false diff --git a/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml b/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml new file mode 100644 index 0000000000..223c592dac --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml @@ -0,0 +1,109 @@ +- type: inventoryTemplate + id: lamia + slots: + - name: jumpsuit + slotTexture: uniform + slotFlags: INNERCLOTHING + stripTime: 6 + uiWindowPos: 0,2 + strippingWindowPos: 0,2 + displayName: Jumpsuit + - name: outerClothing + slotTexture: suit + slotFlags: OUTERCLOTHING + slotGroup: MainHotbar + stripTime: 6 + uiWindowPos: 1,2 + strippingWindowPos: 1,2 + displayName: Suit + - name: gloves + slotTexture: gloves + slotFlags: GLOVES + uiWindowPos: 2,2 + strippingWindowPos: 2,2 + displayName: Gloves + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,1 + strippingWindowPos: 0,1 + displayName: Neck + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,1 + strippingWindowPos: 1,1 + displayName: Mask + - name: eyes + slotTexture: glasses + slotFlags: EYES + stripTime: 3 + uiWindowPos: 0,0 + strippingWindowPos: 0,0 + displayName: Eyes + - name: ears + slotTexture: ears + slotFlags: EARS + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,0 + displayName: Ears + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,0 + strippingWindowPos: 1,0 + displayName: Head + - name: pocket1 + slotTexture: pocket + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + dependsOn: jumpsuit + displayName: Pocket 2 + stripHidden: true + - name: suitstorage + slotTexture: suit_storage + slotFlags: SUITSTORAGE + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,5 + dependsOn: outerClothing + displayName: Suit Storage + - name: id + slotTexture: id + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: belt + slotTexture: belt + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: back + slotTexture: back + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back From c2f4756052aa6c75319443cb42f4caeff0842d16 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Tue, 12 Dec 2023 14:46:30 -0500 Subject: [PATCH 07/85] LamiaSystem is returning to the server again --- .../Nyanotrasen/Lamiae/ClientLamiaeSystem.cs | 36 ------------------- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 36 +++++++++++++++---- 2 files changed, 29 insertions(+), 43 deletions(-) delete mode 100644 Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs rename {Content.Shared => Content.Server}/Nyanotrasen/Lamiae/LamiaSystem.cs (85%) diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs deleted file mode 100644 index 135d44db1e..0000000000 --- a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Content.Shared.Nyanotrasen.Lamiae; -using Content.Shared.Humanoid; -using Robust.Shared.GameObjects; -using Robust.Shared.GameStates; -using Robust.Client.GameObjects; -namespace Content.Client.Nyanotrasen.Lamiae; - -public sealed class LamiaVisualizerSystem : SharedLamiaSystem -{ - public void UpdateAppearance(EntityUid uid, LamiaSegmentComponent? lamia = null) - { - if (!Resolve(uid, ref lamia)) - return; - - if (!TryComp(uid, out var sprite)) - return; - - if (TryComp(lamia, out var humanoid)) - { - foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) - { - if (marking.MarkingId != "LamiaBottom") - continue; - - var color = marking.MarkingColors[0]; - sprite.LayerSetColor("enum.LamiaSegmentVisualLayers.Base", color); - } - } - } -} - -public enum LamiaVisualLayers -{ - Base, - Armor, -} diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs similarity index 85% rename from Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs rename to Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 79b913d8d9..fb4263eab5 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -1,23 +1,32 @@ using Robust.Shared.Physics; -using Content.Shared.Damage; +using Content.Server.Damage; +using Content.Server.Humanoid; +using Robust.Server.GameObjects; using Content.Shared.Humanoid; -using Robust.Shared.GameObjects; +using Robust.Server.Prototypes; +using Robust.Server.Containers; +using System.Numerics; +using Content.Server.Nyanotrasen.Lamiae; +using Content.Shared.Nyanotrasen.Lamiae; +using Robust.Shared.Physics; +using Content.Shared.Damage; +using Content.Server.Humanoid; +using Content.Server.Access.Systems; +using Robust.Server.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics.Systems; using Robust.Shared.Physics.Components; -using Robust.Shared.Maths; -using System.Numerics; -using Content.Shared.Nyanotrasen.Lamiae; -namespace Content.Shared.Nyanotrasen.Lamiae +namespace Content.Server.Nyanotrasen.Lamiae { - public partial class SharedLamiaSystem : EntitySystem + public partial class LamiaSystem : EntitySystem { [Dependency] private readonly SharedJointSystem _jointSystem = default!; [Dependency] private readonly IPrototypeManager _prototypes = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); public override void Update(float frameTime) @@ -37,6 +46,9 @@ public override void Update(float frameTime) EnsureComp(segmentUid); EnsureComp(attachedUid); // Hello I hate tests + var ev = new SegmentSpawnedEvent(segment.lamia); + RaiseLocalEvent(segmentUid, ev, false); + if (segment.segment.SegmentNumber == 1) { Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates; @@ -64,6 +76,16 @@ public override void Initialize() SubscribeLocalEvent(HandleSegmentDamage); } + private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) + { + component.Lamia = args.Lamia; + + if (TryComp(args.Lamia, out var segmentcolor)) + { + _appearance.SetData(uid, LamiaSegmentVisuals.Color, segmentcolor); + } + } + private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { SpawnSegments(uid, component); From 89a311ea1fae4c1d8727ff0a4b820c2f5434d6d2 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 15 Dec 2023 17:01:42 -0500 Subject: [PATCH 08/85] More in progress stuff --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 5 ++++- .../Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index fb4263eab5..ebd1ed9e69 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -88,7 +88,10 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { - SpawnSegments(uid, component); + if (AppearanceSystem.TryGetData<) + { + SpawnSegments(uid, component); + } } private void OnShutdown(EntityUid uid, LamiaComponent component, ComponentShutdown args) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index f4b5d6fc3b..7cda0ded11 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -34,7 +34,9 @@ - state: placeholder map: ["enum.LamiaSegmentVisualLayers.Base"] - map: ["enum.LamiaSegmentVisualLayers.Armor"] - visible: false + path: + state: segment + visible: true - type: Clickable - type: Tag tags: From 9234a361ceef4fa1a3ff7c0e69912ac4050cb54f Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 15 Dec 2023 18:00:51 -0500 Subject: [PATCH 09/85] Create LamiaSegmentVisuals.cs --- .../Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs new file mode 100644 index 0000000000..2aebfa41c0 --- /dev/null +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs @@ -0,0 +1,23 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Nyanotrasen.Lamiae +{ + [Serializable, NetSerializable] + public enum LamiaSegmentVisualLayers + { + Base, + } + + [Serializable, NetSerializable] + public enum SegmentBaseVisualLayer + { + Color, + } + + [Serializable, NetSerializable] + public enum SegmentArmorVisualLayer + { + Hardsuit, + NoHardsuit, + } +} From 05edd445f7e77f499fcc0259a1a57547fcd8e25b Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 15 Dec 2023 18:06:46 -0500 Subject: [PATCH 10/85] Update visualizer --- .../Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs | 1 + .../Entities/Objects/Specific/Species/lamia.yml | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs index 2aebfa41c0..86c21d895c 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs @@ -6,6 +6,7 @@ namespace Content.Shared.Nyanotrasen.Lamiae public enum LamiaSegmentVisualLayers { Base, + Armor, } [Serializable, NetSerializable] diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 7cda0ded11..994f5285ba 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -54,7 +54,16 @@ density: 80 restitution: 0.0 mask: - - MobMask + - MobMask' + - type: GenericVisualizer + visuals: + enum.LamiaSegmentVisualLayers.Base: + baseLayer: + Color: {color: } + enum.LamiaSegmentVisualLayers.Armor: + armorLayer: + Hardsuit: {path: } + NoHardsuit: {path: } - type: entity id: LamiaSegmentEnd @@ -69,6 +78,7 @@ - state: tip map: ["enum.LamiaSegmentVisualLayers.Base"] - map: ["enum.LamiaSegmentVisualLayers.Armor"] + state: segmenttip visible: false - type: Physics bodyType: KinematicController From 9b29ee04bb3100cd09bf0c746bf98f6c0129c2c5 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 15 Dec 2023 18:07:02 -0500 Subject: [PATCH 11/85] Update lamia.yml --- .../Entities/Objects/Specific/Species/lamia.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 994f5285ba..e2967ae6c0 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -92,3 +92,12 @@ restitution: 0.0 mask: - MobMask + - type: GenericVisualizer + visuals: + enum.LamiaSegmentVisualLayers.Base: + baseLayer: + Color: {color: } + enum.LamiaSegmentVisualLayers.Armor: + armorLayer: + Hardsuit: {path: } + NoHardsuit: {path: } From 294edd367d9ac90daaddf264977dbd8a35d7193c Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 17 Dec 2023 15:45:01 -0500 Subject: [PATCH 12/85] Revert "Update lamia.yml" This reverts commit 83214b3a2afd0840fed79c95d4ff26f9093883da. --- .../Entities/Objects/Specific/Species/lamia.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index e2967ae6c0..994f5285ba 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -92,12 +92,3 @@ restitution: 0.0 mask: - MobMask - - type: GenericVisualizer - visuals: - enum.LamiaSegmentVisualLayers.Base: - baseLayer: - Color: {color: } - enum.LamiaSegmentVisualLayers.Armor: - armorLayer: - Hardsuit: {path: } - NoHardsuit: {path: } From e166895d8de585a5117c5ced53d4612da7811ce1 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 17 Dec 2023 15:45:05 -0500 Subject: [PATCH 13/85] Revert "Update visualizer" This reverts commit 1f49a80ade092b7984553027ff20eaf72dba9ce9. --- .../Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs | 1 - .../Entities/Objects/Specific/Species/lamia.yml | 12 +----------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs index 86c21d895c..2aebfa41c0 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs @@ -6,7 +6,6 @@ namespace Content.Shared.Nyanotrasen.Lamiae public enum LamiaSegmentVisualLayers { Base, - Armor, } [Serializable, NetSerializable] diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 994f5285ba..7cda0ded11 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -54,16 +54,7 @@ density: 80 restitution: 0.0 mask: - - MobMask' - - type: GenericVisualizer - visuals: - enum.LamiaSegmentVisualLayers.Base: - baseLayer: - Color: {color: } - enum.LamiaSegmentVisualLayers.Armor: - armorLayer: - Hardsuit: {path: } - NoHardsuit: {path: } + - MobMask - type: entity id: LamiaSegmentEnd @@ -78,7 +69,6 @@ - state: tip map: ["enum.LamiaSegmentVisualLayers.Base"] - map: ["enum.LamiaSegmentVisualLayers.Armor"] - state: segmenttip visible: false - type: Physics bodyType: KinematicController From c5bc6e8478494e72e8d29a697a2d0afcbea3addb Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 17 Dec 2023 15:45:09 -0500 Subject: [PATCH 14/85] Revert "Create LamiaSegmentVisuals.cs" This reverts commit 46c7c6e3b50cc698cf12344ebc47bb5d69ccb7fd. --- .../Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs deleted file mode 100644 index 2aebfa41c0..0000000000 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Robust.Shared.Serialization; - -namespace Content.Shared.Nyanotrasen.Lamiae -{ - [Serializable, NetSerializable] - public enum LamiaSegmentVisualLayers - { - Base, - } - - [Serializable, NetSerializable] - public enum SegmentBaseVisualLayer - { - Color, - } - - [Serializable, NetSerializable] - public enum SegmentArmorVisualLayer - { - Hardsuit, - NoHardsuit, - } -} From 2f67851f2d00fe2e651960ece22fa51449b7fe31 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 17 Dec 2023 15:45:12 -0500 Subject: [PATCH 15/85] Revert "More in progress stuff" This reverts commit 60759e2656feb64c0c7443a11943fadc46163561. --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 5 +---- .../Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml | 4 +--- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index ebd1ed9e69..fb4263eab5 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -88,10 +88,7 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { - if (AppearanceSystem.TryGetData<) - { - SpawnSegments(uid, component); - } + SpawnSegments(uid, component); } private void OnShutdown(EntityUid uid, LamiaComponent component, ComponentShutdown args) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 7cda0ded11..f4b5d6fc3b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -34,9 +34,7 @@ - state: placeholder map: ["enum.LamiaSegmentVisualLayers.Base"] - map: ["enum.LamiaSegmentVisualLayers.Armor"] - path: - state: segment - visible: true + visible: false - type: Clickable - type: Tag tags: From 00a826c0aadac7c39361e300d28935efd0f6df11 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 17 Dec 2023 15:45:15 -0500 Subject: [PATCH 16/85] Revert "LamiaSystem is returning to the server again" This reverts commit c484b58cb30edb9bf64d5b2722bbce6546657e55. --- .../Nyanotrasen/Lamiae/ClientLamiaeSystem.cs | 36 +++++++++++++++++++ .../Nyanotrasen/Lamiae/LamiaSystem.cs | 36 ++++--------------- 2 files changed, 43 insertions(+), 29 deletions(-) create mode 100644 Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs rename {Content.Server => Content.Shared}/Nyanotrasen/Lamiae/LamiaSystem.cs (85%) diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs new file mode 100644 index 0000000000..135d44db1e --- /dev/null +++ b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs @@ -0,0 +1,36 @@ +using Content.Shared.Nyanotrasen.Lamiae; +using Content.Shared.Humanoid; +using Robust.Shared.GameObjects; +using Robust.Shared.GameStates; +using Robust.Client.GameObjects; +namespace Content.Client.Nyanotrasen.Lamiae; + +public sealed class LamiaVisualizerSystem : SharedLamiaSystem +{ + public void UpdateAppearance(EntityUid uid, LamiaSegmentComponent? lamia = null) + { + if (!Resolve(uid, ref lamia)) + return; + + if (!TryComp(uid, out var sprite)) + return; + + if (TryComp(lamia, out var humanoid)) + { + foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) + { + if (marking.MarkingId != "LamiaBottom") + continue; + + var color = marking.MarkingColors[0]; + sprite.LayerSetColor("enum.LamiaSegmentVisualLayers.Base", color); + } + } + } +} + +public enum LamiaVisualLayers +{ + Base, + Armor, +} diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs similarity index 85% rename from Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs rename to Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs index fb4263eab5..79b913d8d9 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -1,32 +1,23 @@ using Robust.Shared.Physics; -using Content.Server.Damage; -using Content.Server.Humanoid; -using Robust.Server.GameObjects; -using Content.Shared.Humanoid; -using Robust.Server.Prototypes; -using Robust.Server.Containers; -using System.Numerics; -using Content.Server.Nyanotrasen.Lamiae; -using Content.Shared.Nyanotrasen.Lamiae; -using Robust.Shared.Physics; using Content.Shared.Damage; -using Content.Server.Humanoid; -using Content.Server.Access.Systems; -using Robust.Server.GameObjects; +using Content.Shared.Humanoid; +using Robust.Shared.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics.Systems; using Robust.Shared.Physics.Components; +using Robust.Shared.Maths; +using System.Numerics; +using Content.Shared.Nyanotrasen.Lamiae; -namespace Content.Server.Nyanotrasen.Lamiae +namespace Content.Shared.Nyanotrasen.Lamiae { - public partial class LamiaSystem : EntitySystem + public partial class SharedLamiaSystem : EntitySystem { [Dependency] private readonly SharedJointSystem _jointSystem = default!; [Dependency] private readonly IPrototypeManager _prototypes = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); public override void Update(float frameTime) @@ -46,9 +37,6 @@ public override void Update(float frameTime) EnsureComp(segmentUid); EnsureComp(attachedUid); // Hello I hate tests - var ev = new SegmentSpawnedEvent(segment.lamia); - RaiseLocalEvent(segmentUid, ev, false); - if (segment.segment.SegmentNumber == 1) { Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates; @@ -76,16 +64,6 @@ public override void Initialize() SubscribeLocalEvent(HandleSegmentDamage); } - private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) - { - component.Lamia = args.Lamia; - - if (TryComp(args.Lamia, out var segmentcolor)) - { - _appearance.SetData(uid, LamiaSegmentVisuals.Color, segmentcolor); - } - } - private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { SpawnSegments(uid, component); From 14ebfad8a65b8c14fb0c027fb8cc67df8afe0586 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 17 Dec 2023 15:47:58 -0500 Subject: [PATCH 17/85] Reverting to the last state where we could spawn a Lamia --- .../Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index d3aff3c07b..94e7c4a4d1 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -215,8 +215,6 @@ layer: - MobLayer - type: Lamia - - type: Inventory - templateId: human #need to make a Lamia template, no shoes - type: Speech speechSounds: Alto - type: Vocal From 53f50ddc45c8ec44b10ff8f222134f62bbc2c4e5 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 17 Dec 2023 16:18:50 -0500 Subject: [PATCH 18/85] We can now spawn the noodles again --- .../Nyanotrasen/Lamiae/ClientLamiaeSystem.cs | 24 +++++++++--------- .../Objects/Specific/Species/lamia.yml | 6 ----- error.txt | Bin 1500238 -> 0 bytes 3 files changed, 12 insertions(+), 18 deletions(-) delete mode 100644 error.txt diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs index 135d44db1e..924978dc9d 100644 --- a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs +++ b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs @@ -5,17 +5,23 @@ using Robust.Client.GameObjects; namespace Content.Client.Nyanotrasen.Lamiae; -public sealed class LamiaVisualizerSystem : SharedLamiaSystem +public sealed class LamiaSystem : EntitySystem { - public void UpdateAppearance(EntityUid uid, LamiaSegmentComponent? lamia = null) + public override void Initialize() { - if (!Resolve(uid, ref lamia)) - return; + base.Initialize(); + + SubscribeLocalEvent(OnSegmentSpawned); + } + + public void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) + { + component.Lamia = args.Lamia; if (!TryComp(uid, out var sprite)) return; - if (TryComp(lamia, out var humanoid)) + if (TryComp(args.Lamia, out var humanoid)) { foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) { @@ -23,14 +29,8 @@ public void UpdateAppearance(EntityUid uid, LamiaSegmentComponent? lamia = null) continue; var color = marking.MarkingColors[0]; - sprite.LayerSetColor("enum.LamiaSegmentVisualLayers.Base", color); + sprite.LayerSetColor(0, color); } } } } - -public enum LamiaVisualLayers -{ - Base, - Armor, -} diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index f4b5d6fc3b..01b84c0172 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -32,9 +32,6 @@ sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - state: placeholder - map: ["enum.LamiaSegmentVisualLayers.Base"] - - map: ["enum.LamiaSegmentVisualLayers.Armor"] - visible: false - type: Clickable - type: Tag tags: @@ -65,9 +62,6 @@ sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - state: tip - map: ["enum.LamiaSegmentVisualLayers.Base"] - - map: ["enum.LamiaSegmentVisualLayers.Armor"] - visible: false - type: Physics bodyType: KinematicController - type: Fixtures diff --git a/error.txt b/error.txt deleted file mode 100644 index 753ecc761e3f1b8cbccfc3db43bcb9de8d280f56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1500238 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�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∨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 Date: Tue, 19 Dec 2023 13:49:16 -0500 Subject: [PATCH 19/85] Update reptilian.yml --- .../Mobs/Customization/Markings/reptilian.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml index d1ed51013a..2238671ea0 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml @@ -2,7 +2,7 @@ id: LizardFrillsAquatic bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Lamia] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_aquatic @@ -11,7 +11,7 @@ id: LizardFrillsShort bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Lamia] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_short @@ -20,7 +20,7 @@ id: LizardFrillsSimple bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Lamia] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_simple @@ -29,7 +29,7 @@ id: LizardFrillsDivinity bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Lamia] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_divinity @@ -38,7 +38,7 @@ id: LizardFrillsBig bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Lamia] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_big @@ -47,7 +47,7 @@ id: LizardFrillsAxolotl bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Lamia] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_axolotl @@ -56,7 +56,7 @@ id: LizardFrillsHood bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Lamia] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_hood_primary From 2ec632a145f4ce8c9ce0f52c674846f8be8f5529 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 20 Dec 2023 16:49:02 -0500 Subject: [PATCH 20/85] We were missing the SegmentSpawnedEvent --- Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs index 79b913d8d9..585725e9b1 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -37,6 +37,9 @@ public override void Update(float frameTime) EnsureComp(segmentUid); EnsureComp(attachedUid); // Hello I hate tests + var ev = new SegmentSpawnedEvent(segment.lamia); + RaiseLocalEvent(segmentUid, ev, false); + if (segment.segment.SegmentNumber == 1) { Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates; From bc8e48c5baed76874daa5b223c992113558e2436 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 20 Dec 2023 21:20:26 -0500 Subject: [PATCH 21/85] Update lamia.yml --- .../Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 01b84c0172..2bba21eaf7 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -31,7 +31,8 @@ - type: Sprite sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - state: placeholder + - map: [ "enum.HumanoidVisualLayers.Tail" ] + state: placeholder - type: Clickable - type: Tag tags: @@ -61,7 +62,8 @@ - type: Sprite sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - state: tip + - map: [ "enum.HumanoidVisualLayers.Tail" ] + state: tip - type: Physics bodyType: KinematicController - type: Fixtures From 94ea027a0292215c2a2aa51f784f3cf30302db3b Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 20 Dec 2023 23:39:12 -0500 Subject: [PATCH 22/85] Now requires engine changes. --- .../Nyanotrasen/Lamiae/ClientLamiaeSystem.cs | 15 +++++---------- .../Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs | 11 +++++++++++ .../Entities/Objects/Specific/Species/lamia.yml | 6 ++++-- 3 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs index 924978dc9d..6402a5fc12 100644 --- a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs +++ b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs @@ -21,16 +21,11 @@ public void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Seg if (!TryComp(uid, out var sprite)) return; - if (TryComp(args.Lamia, out var humanoid)) - { - foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) - { - if (marking.MarkingId != "LamiaBottom") - continue; + if (!TryComp(args.Lamia, out var parent)) + return; - var color = marking.MarkingColors[0]; - sprite.LayerSetColor(0, color); - } - } + parent.LayerMapTryGet(HumanoidVisualLayers.Tail, out var tailLayer); + var color = parent.LayerGetColor(tailLayer + 1); + sprite.LayerSetColor(LamiaSegmentVisualLayers.Tail, color); } } diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs new file mode 100644 index 0000000000..b66c203d62 --- /dev/null +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs @@ -0,0 +1,11 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Nyanotrasen.Lamiae +{ + [Serializable, NetSerializable] + public enum LamiaSegmentVisualLayers + { + Null, + Tail, + } +} diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 2bba21eaf7..b6f27ef48b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -31,7 +31,8 @@ - type: Sprite sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "enum.LamiaSegmentVisualLayers.Null" ] + - map: [ "enum.LamiaSegmentVisualLayers.Tail" ] state: placeholder - type: Clickable - type: Tag @@ -62,7 +63,8 @@ - type: Sprite sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "enum.LamiaSegmentVisualLayers.Null" ] + - map: [ "enum.LamiaSegmentVisualLayers.Tail" ] state: tip - type: Physics bodyType: KinematicController From 878b155f7afbc2161666b295ba53da488137fbbc Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 23 Dec 2023 15:58:26 -0500 Subject: [PATCH 23/85] Markings but not colors --- .../Nyanotrasen/Lamiae/ClientLamiaeSystem.cs | 31 ------------------ .../Nyanotrasen/Lamiae/LamiaSystem.cs | 29 ++++++++++++++-- .../Lamiae/LamiaSegmentComponent.cs | 2 ++ .../Objects/Specific/Species/lamia.yml | 7 +++- error.txt | Bin 0 -> 1698876 bytes 5 files changed, 35 insertions(+), 34 deletions(-) delete mode 100644 Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs rename {Content.Shared => Content.Server}/Nyanotrasen/Lamiae/LamiaSystem.cs (83%) create mode 100644 error.txt diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs deleted file mode 100644 index 6402a5fc12..0000000000 --- a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaeSystem.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Content.Shared.Nyanotrasen.Lamiae; -using Content.Shared.Humanoid; -using Robust.Shared.GameObjects; -using Robust.Shared.GameStates; -using Robust.Client.GameObjects; -namespace Content.Client.Nyanotrasen.Lamiae; - -public sealed class LamiaSystem : EntitySystem -{ - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnSegmentSpawned); - } - - public void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) - { - component.Lamia = args.Lamia; - - if (!TryComp(uid, out var sprite)) - return; - - if (!TryComp(args.Lamia, out var parent)) - return; - - parent.LayerMapTryGet(HumanoidVisualLayers.Tail, out var tailLayer); - var color = parent.LayerGetColor(tailLayer + 1); - sprite.LayerSetColor(LamiaSegmentVisualLayers.Tail, color); - } -} diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs similarity index 83% rename from Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs rename to Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 585725e9b1..4177dc48af 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -1,7 +1,11 @@ using Robust.Shared.Physics; +using Robust.Shared.Utility; using Content.Shared.Damage; using Content.Shared.Humanoid; -using Robust.Shared.GameObjects; +using Content.Shared.Humanoid.Markings; +using Content.Shared.Humanoid.Prototypes; +using Content.Server.Humanoid; +using Robust.Server.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Containers; using Robust.Shared.Map; @@ -11,12 +15,14 @@ using System.Numerics; using Content.Shared.Nyanotrasen.Lamiae; -namespace Content.Shared.Nyanotrasen.Lamiae +namespace Content.Server.Nyanotrasen.Lamiae { public partial class SharedLamiaSystem : EntitySystem { [Dependency] private readonly SharedJointSystem _jointSystem = default!; [Dependency] private readonly IPrototypeManager _prototypes = default!; + [Dependency] private readonly MarkingManager _markingManager = default!; + [Dependency] private readonly HumanoidAppearanceSystem _humanoid = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); @@ -64,9 +70,28 @@ public override void Initialize() SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnJointRemoved); SubscribeLocalEvent(OnRemovedFromContainer); + SubscribeLocalEvent(OnSegmentSpawned); SubscribeLocalEvent(HandleSegmentDamage); } + private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) + { + component.Lamia = args.Lamia; + var segmentId = component.segmentId; + + if (TryComp(args.Lamia, out var humanoid)) + { + foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) + { + if (!(humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings))) + continue; + + string segmentmarking = $"{marking}-{segmentId}"; + _humanoid.SetMarkingId(uid, MarkingCategories.Tail, 0, segmentmarking); + } + } + } + private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { SpawnSegments(uid, component); diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs index c33ec31d84..5b81f0abb7 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs @@ -14,5 +14,7 @@ public sealed partial class LamiaSegmentComponent : Component public bool SexChanged = false; public EntityUid Lamia = default!; public int SegmentNumber = default!; + [DataField("segmentId")] + public string? segmentId; } } diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index b6f27ef48b..15b8cdd583 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -14,12 +14,13 @@ restitution: 0.0 mask: - MobMask - - type: Transform anchored: false - type: Tag tags: - HideContextMenu + - type: LamiaSegment + segmentId: initial - type: entity id: LamiaSegment @@ -52,6 +53,8 @@ restitution: 0.0 mask: - MobMask + - type: LamiaSegment + segmentId: segment - type: entity id: LamiaSegmentEnd @@ -66,6 +69,8 @@ - map: [ "enum.LamiaSegmentVisualLayers.Null" ] - map: [ "enum.LamiaSegmentVisualLayers.Tail" ] state: tip + - type: LamiaSegment + segmentId: tip - type: Physics bodyType: KinematicController - type: Fixtures diff --git a/error.txt b/error.txt new file mode 100644 index 0000000000000000000000000000000000000000..d62f8b58d6ac72df47bc0f13a75a03537e825419 GIT binary patch literal 1698876 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

^3sYO|h}I@ho56 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 cj=~W{rRO06Bqk(c{dD**=UUa@t?;`4KiLd Date: Sun, 24 Dec 2023 01:04:42 -0500 Subject: [PATCH 24/85] This is the closest we have so far And it still doesn't work right --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 4177dc48af..aee4092dbb 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -81,13 +81,15 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se if (TryComp(args.Lamia, out var humanoid)) { - foreach (var marking in humanoid.MarkingSet.GetForwardEnumerator()) + foreach (var Marking in humanoid.MarkingSet.GetForwardEnumerator()) { if (!(humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings))) continue; - string segmentmarking = $"{marking}-{segmentId}"; - _humanoid.SetMarkingId(uid, MarkingCategories.Tail, 0, segmentmarking); + var markingId = Marking.MarkingId; + string segmentmarking = $"{markingId}-{segmentId}"; + var color = Marking.MarkingColors[0]; + _humanoid.AddMarking(uid, segmentmarking, color); } } } From 27015d4596f6ed9bd8c5781f8287e95ce34f75e0 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Thu, 28 Dec 2023 11:48:34 -0500 Subject: [PATCH 25/85] Marking parity! --- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 10 ++-- .../Customization/Markings/lamiasegment.yml | 17 +++++++ .../Objects/Specific/Species/lamia.yml | 40 +++------------- .../Prototypes/Nyanotrasen/Species/lamia.yml | 48 +++++++++++++++++++ 4 files changed, 77 insertions(+), 38 deletions(-) create mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index aee4092dbb..150aa7233d 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -77,18 +77,20 @@ public override void Initialize() private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) { component.Lamia = args.Lamia; - var segmentId = component.segmentId; + if (!TryComp(uid, out var species)) + return; if (TryComp(args.Lamia, out var humanoid)) { - foreach (var Marking in humanoid.MarkingSet.GetForwardEnumerator()) + foreach (var markings in humanoid.MarkingSet.GetForwardEnumerator(MarkingCategories.Tail)) { if (!(humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings))) continue; - var markingId = Marking.MarkingId; + var segmentId = species.Species; + var markingId = markings.MarkingId; string segmentmarking = $"{markingId}-{segmentId}"; - var color = Marking.MarkingColors[0]; + var color = markings.MarkingColors[0]; _humanoid.AddMarking(uid, segmentmarking, color); } } diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml new file mode 100644 index 0000000000..358e2e27f4 --- /dev/null +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml @@ -0,0 +1,17 @@ +- type: marking + id: LamiaBottom-LamiaSegment + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [LamiaSegment] + sprites: + - sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: placeholder + +- type: marking + id: LamiaBottom-LamiaSegmentEnd + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [LamiaSegment] + sprites: + - sprite: Nyanotrasen/Mobs/Species/lamia.rsi + state: placeholder diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 15b8cdd583..53fc8a4630 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -19,8 +19,6 @@ - type: Tag tags: - HideContextMenu - - type: LamiaSegment - segmentId: initial - type: entity id: LamiaSegment @@ -32,29 +30,15 @@ - type: Sprite sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - map: [ "enum.LamiaSegmentVisualLayers.Null" ] - - map: [ "enum.LamiaSegmentVisualLayers.Tail" ] - state: placeholder + - map: [ "enum.HumanoidVisualLayers.Tail" ] - type: Clickable - type: Tag tags: - DoorBumpOpener - type: ExplosionResistance #This looks stupid but remember that bombs are likely to damage every segment, we want them to be decent but not instagib the poor lamia.s damageCoefficient: 0.2 - - type: Physics - bodyType: KinematicController - - type: Fixtures - fixtures: # TODO: This needs a second fixture just for mob collisions. - fix1: - shape: - !type:PhysShapeCircle - radius: 0.25 - density: 80 - restitution: 0.0 - mask: - - MobMask - - type: LamiaSegment - segmentId: segment + - type: HumanoidAppearance + species: LamiaSegment - type: entity id: LamiaSegmentEnd @@ -66,20 +50,8 @@ - type: Sprite sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - - map: [ "enum.LamiaSegmentVisualLayers.Null" ] - - map: [ "enum.LamiaSegmentVisualLayers.Tail" ] - state: tip + - map: [ "enum.HumanoidVisualLayers.Tail" ] - type: LamiaSegment segmentId: tip - - type: Physics - bodyType: KinematicController - - type: Fixtures - fixtures: # TODO: This needs a second fixture just for mob collisions. - fix1: - shape: - !type:PhysShapeCircle - radius: 0.25 - density: 80 - restitution: 0.0 - mask: - - MobMask + - type: HumanoidAppearance + species: LamiaSegmentEnd diff --git a/Resources/Prototypes/Nyanotrasen/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Species/lamia.yml index 14c5a80c12..4ebbf14034 100644 --- a/Resources/Prototypes/Nyanotrasen/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Species/lamia.yml @@ -13,6 +13,30 @@ sexes: - Female +- type: species + id: LamiaSegment + name: LamiaSegment + roundStart: false + prototype: LamiaSegment + dollPrototype: MobLamiaDummy + sprites: MobLamiaSegmentSprites + markingLimits: MobLamiaSegmentMarkingLimits + skinColoration: HumanToned + sexes: + - Female + +- type: species + id: LamiaSegmentEnd + name: LamiaSegmentEnd + roundStart: false + prototype: LamiaSegmentEnd + dollPrototype: MobLamiaDummy + sprites: MobLamiaSegmentEndSprites + markingLimits: MobLamiaSegmentEndMarkingLimits + skinColoration: HumanToned + sexes: + - Female + - type: markingPoints id: MobLamiaMarkingLimits points: @@ -24,6 +48,20 @@ required: true defaultMarkings: [ LamiaBottom ] +- type: markingPoints + id: MobLamiaSegmentMarkingLimits + points: + Tail: + points: 1 + required: false + +- type: markingPoints + id: MobLamiaSegmentEndMarkingLimits + points: + Tail: + points: 1 + required: false + - type: speciesBaseSprites id: MobLamiaSprites sprites: @@ -36,3 +74,13 @@ LHand: MobHumanLHand RHand: MobHumanRHand Tail: MobHumanoidAnyMarking + +- type: speciesBaseSprites + id: MobLamiaSegmentSprites + sprites: + Tail: MobHumanoidAnyMarking + +- type: speciesBaseSprites + id: MobLamiaSegmentEndSprites + sprites: + Tail: MobHumanoidAnyMarking From ab78fcd804f85404cf2cf2c9bb1d87bf526f91ad Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Thu, 28 Dec 2023 13:17:45 -0500 Subject: [PATCH 26/85] Update LamiaSystem.cs --- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 150aa7233d..98ba5d47b9 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -77,21 +77,19 @@ public override void Initialize() private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) { component.Lamia = args.Lamia; - if (!TryComp(uid, out var species)) - return; - if (TryComp(args.Lamia, out var humanoid)) + if (!TryComp(uid, out var species)) return; + if (!TryComp(args.Lamia, out var humanoid)) return; + + if (humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings)) { - foreach (var markings in humanoid.MarkingSet.GetForwardEnumerator(MarkingCategories.Tail)) + foreach (var markings in tailMarkings) { - if (!(humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings))) - continue; - - var segmentId = species.Species; - var markingId = markings.MarkingId; - string segmentmarking = $"{markingId}-{segmentId}"; - var color = markings.MarkingColors[0]; - _humanoid.AddMarking(uid, segmentmarking, color); + var segmentId = species.Species; + var markingId = markings.MarkingId; + string segmentmarking = $"{markingId}-{segmentId}"; + var color = markings.MarkingColors[0]; + _humanoid.AddMarking(uid, segmentmarking, color); } } } From c359dab2239343d55c38629542969be852ae2e2d Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Thu, 28 Dec 2023 16:09:50 -0500 Subject: [PATCH 27/85] Blacklisting Lamia from Storage Containers They're too chunky --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 98ba5d47b9..f65eef6dea 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Humanoid.Markings; using Content.Shared.Humanoid.Prototypes; using Content.Server.Humanoid; +using Content.Shared.Storage.Components; using Robust.Server.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Containers; @@ -72,6 +73,8 @@ public override void Initialize() SubscribeLocalEvent(OnRemovedFromContainer); SubscribeLocalEvent(OnSegmentSpawned); SubscribeLocalEvent(HandleSegmentDamage); + SubscribeLocalEvent(OnLamiaStorageInsertAttempt); + SubscribeLocalEvent(OnSegmentStorageInsertAttempt); } private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) @@ -171,5 +174,15 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami lamiaComponent.Segments.Add(segmentComponent.Owner); return segment; } + + private void OnLamiaStorageInsertAttempt(EntityUid uid, LamiaComponent comp, ref InsertIntoEntityStorageAttemptEvent args) + { + args.Cancelled = true; + } + + private void OnSegmentStorageInsertAttempt(EntityUid uid, LamiaSegmentComponent comp, ref InsertIntoEntityStorageAttemptEvent args) + { + args.Cancelled = true; + } } } From 4a81c2a975d2f002f88c11115b2dae33c249c090 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 28 Jan 2024 20:46:48 -0500 Subject: [PATCH 28/85] I promise you debug this isn't abandoned --- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 3 +- .../Mobs/Customization/Markings/lamia.yml | 8 +++- .../Customization/Markings/lamiasegment.yml | 16 +++++-- .../lamia_tails.rsi/body3tone1.png | Bin 0 -> 625 bytes .../lamia_tails.rsi/body3tone2.png | Bin 0 -> 699 bytes .../lamia_tails.rsi/body3tone3.png | Bin 0 -> 648 bytes .../lamia_tails.rsi/bottom3tone1.png | Bin 0 -> 692 bytes .../lamia_tails.rsi/bottom3tone2.png | Bin 0 -> 779 bytes .../lamia_tails.rsi/bottom3tone3.png | Bin 0 -> 871 bytes .../Customization/lamia_tails.rsi/meta.json | 41 ++++++++++++++++++ .../lamia_tails.rsi/tip3tone1.png | Bin 0 -> 611 bytes .../lamia_tails.rsi/tip3tone2.png | Bin 0 -> 551 bytes .../lamia_tails.rsi/tip3tone3.png | Bin 0 -> 567 bytes 13 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone1.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone2.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone3.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone1.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone2.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone3.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/meta.json create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone1.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone2.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone3.png diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index f65eef6dea..7b6ec3c007 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -91,8 +91,7 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se var segmentId = species.Species; var markingId = markings.MarkingId; string segmentmarking = $"{markingId}-{segmentId}"; - var color = markings.MarkingColors[0]; - _humanoid.AddMarking(uid, segmentmarking, color); + _humanoid.AddMarking(uid, segmentmarking, markings.MarkingColors); } } } diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml index 21438d7a8c..16f88a0c5e 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml @@ -4,5 +4,9 @@ markingCategory: Tail speciesRestriction: [Lamia] sprites: - - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: bottom + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: bottom3tone1 + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: bottom3tone2 + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: bottom3tone3 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml index 358e2e27f4..c6271da70c 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml @@ -4,8 +4,12 @@ markingCategory: Tail speciesRestriction: [LamiaSegment] sprites: - - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: placeholder + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: body3tone1 + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: body3tone2 + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: body3tone3 - type: marking id: LamiaBottom-LamiaSegmentEnd @@ -13,5 +17,9 @@ markingCategory: Tail speciesRestriction: [LamiaSegment] sprites: - - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: placeholder + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: body3tone1 + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: body3tone2 + - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + state: body3tone3 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone1.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone1.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9c6f02cc6656475f0c242c84e3bd3a1b4fac76 GIT binary patch literal 625 zcmV-%0*?KOP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd005OqL_t(o zNA1ut4gw(%1yJlDnU-*rwc5%Hc$xJKdKnL(2Uw3nXi14Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOaH+x6y4h*!`M{1brwAP*c-;-h9 z5F+jEO6dY3mdsl(ViPdRM_tO*a*DAU=iH5MJPh$cBZpetR!#LY%z-hUAE1W9qLJna h5HyKzPyQze@dBI!rV*$>*oy!F002ovPDHLkV1o9TJ~RLT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone3.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone3.png new file mode 100644 index 0000000000000000000000000000000000000000..826c099ab85a872ccdfab67c7ebb2fea5134dddc GIT binary patch literal 648 zcmV;30(bq1P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOL_t(o zN9~Zo4Z<)CMWdb>q(d+SQWoIA5FLjFa$^Wa;G6?+yX!n4?g i|0`5H@{#KSQu+YA(0uP8fCR1p00004Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd007uYL_t(| zUhU954uU`shGDj%q=AyCJy+l;mfk>5p||i3Ce~ho17HmopdjmPoC1ve1<}O3PcqpZ znCyO84*&oF00000000000000000000008(8M%PYRmRa47k|fFCnR89e6a+yY$MHtn zmcg*r+GAOkdu<0rQMC926h$%V0m3jm8DkFGwv2gzl`Q9~s?z6|ZocoY<)XW`i*cDG zPp)k*$#j!tJ1du5m`Yviy0%^AW_0{3+4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd00A#aL_t(| zUhUbzaf2`rKv75|Zh#g-3Df|0ZqPxlP=RMCf)Ypz^rLt+Xl6%a;mEOZl>B$u^fKCy>1Bx-!r6Pg{(28UCbyU0b~HYZ8yX1N3@+6uKsJ*kUX>*}vs=eyxe4?DY{k zb{Bmy*>`(;&wYM2e?7mCYsVf!E*84rLl^pny*`fa1ppG2WnVLKPdYMWB7gt@002ov JPDHLkV1mjcW(@!U literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone3.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone3.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f6dee64750bdd4305577e16ebec43be9b6e94f GIT binary patch literal 871 zcmV-t1DO1YP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd00E0hL_t(| zUhUe^ZG$in24J91jL@epQRSuT0I)@s9Wq3B;T3pbk1WtJQmD@yk>lpTS1_%r|C6F~ zuSd?t<|Ro200000000000Pt7Ubv;Z`8dKEBI0hL4aA|a9S*C8>1+Q@ymqxc{*ImIU zz^v_!hqFTKw7RbQkQVLcsm>+?X&!+S$0eb4D(1#M^3akV0l#iD=8Z4r72?8|Y-(=T zZQ_SCC*XnOlF&MpEX%}2yZN?lRX0R)13oz}39VDf^StMwB|QRu-Db?uK947S(U~ua zN;(Z%niKHOaY<;MO5gV{(xTlw)!AeWW_OR{CX0?-`hS^49>%qPbKsJwOrK}kX?NG@ zMR{8Q0000000000000}Qs_OcAy!)xFP5hF3^Kj?6+As{SJQVGHGc^4|<}WfAKT&iW z`prWo5!1c-__=8vt4wc3+%fSR#wPW1|K4OSQX?|=zdfy;@&!#*{c+6ip;G_=002ovPDHLkV1h}dl_LNE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/meta.json b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/meta.json new file mode 100644 index 0000000000..5374b72d74 --- /dev/null +++ b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/meta.json @@ -0,0 +1,41 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Archer2150#2528 using assets from Rane. Fangs by discord user @Hyenh6078", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bottom3tone1", + "directions": 4 + }, + { + "name": "bottom3tone2", + "directions": 4 + }, + { + "name": "bottom3tone3", + "directions": 4 + }, + { + "name": "body3tone1" + }, + { + "name": "body3tone2" + }, + { + "name": "body3tone3" + }, + { + "name": "tip3tone1" + }, + { + "name": "tip3tone2" + }, + { + "name": "tip3tone3" + } + ] +} diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone1.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone1.png new file mode 100644 index 0000000000000000000000000000000000000000..b9c86c5b99195d2c00a454d13c1750b6276d0eff GIT binary patch literal 611 zcmV-p0-XJcP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd004(cL_t(o zNA1qB4Z|Q11yD%snv#v!#I+mO8Nia61OfX{Qm3@!_(x!+NMQN3CS+IM x`wdx_LcP~ni$}@Jq?97YxFf4yJ^B+uyaBXSJZ4)qq96bO002ovPDHLkV1h-i6)6A! literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone2.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone2.png new file mode 100644 index 0000000000000000000000000000000000000000..7a37e083a7f34a3c3a721d2e342191811c0381cc GIT binary patch literal 551 zcmV+?0@(eDP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd002u#L_t(o zNA1tO4FDksfKhZtMqvzg)?lbES15&d#rG1zPXR#y0002sYc2CJcOO|UW>(&H?0G!A p&35$6C8|0ivb`_9u6~Z65SbXM5{4Y!WwZbQ002ovPDHLkV1jV&^$!35 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone3.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone3.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9abed6ab4cb8cdbc4fe4432d89eb2647878dcd GIT binary patch literal 567 zcmV-70?7S|P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd003J_L_t(o zNA1qB4uBvGgkjtusjrLAps#C_vLVDS#svoB@_)&tcUuDh00000e_Q+xQ`Kx{yU&M| z(k3E@&mq$flv1Rf^Ik7&j8VORr`9Shxy3xa_s1rMZ~>5(A>$F Date: Tue, 13 Feb 2024 21:04:59 -0500 Subject: [PATCH 29/85] I finally return to this after a hiatus to finish Harpies --- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 22 ++++++++++++++----- .../Nyanotrasen/Lamiae/LamiaComponent.cs | 5 ++++- .../Lamiae/LamiaSegmentComponent.cs | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 7b6ec3c007..35f8d20228 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -53,7 +53,7 @@ public override void Update(float frameTime) var revoluteJoint = _jointSystem.CreateWeldJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); revoluteJoint.CollideConnected = false; } - if (segment.segment.SegmentNumber < 32) + if (segment.segment.SegmentNumber < 18) Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0f, 0.15f)); else Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, 0.1f)); @@ -72,11 +72,20 @@ public override void Initialize() SubscribeLocalEvent(OnJointRemoved); SubscribeLocalEvent(OnRemovedFromContainer); SubscribeLocalEvent(OnSegmentSpawned); + SubscribeLocalEvent(HandleDamageTransfer); SubscribeLocalEvent(HandleSegmentDamage); SubscribeLocalEvent(OnLamiaStorageInsertAttempt); SubscribeLocalEvent(OnSegmentStorageInsertAttempt); } + ///

+ /// Handles transfering marking selections to the tail segments. Every tail marking must be repeated 3 times in order for this script to work. + /// + /// + /// + /// + // TODO: Please for the love of god don't make me write a test to validate that every marking also has its matching segment states. + // Future contributors will just find out when their game crashes because they didn't make a marking-segment & marking-tip. private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) { component.Lamia = args.Lamia; @@ -136,10 +145,12 @@ private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, Ent private void HandleSegmentDamage(EntityUid uid, LamiaSegmentComponent component, DamageModifyEvent args) { - args.Damage.DamageDict["Radiation"] = Shared.FixedPoint.FixedPoint2.Zero; - _damageableSystem.TryChangeDamage(component.Lamia, args.Damage); - - args.Damage *= 0; + args.Damage = args.Damage / component.DamageModifyFactor / 5; + } + private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component, DamageChangedEvent args) + { + if (args.DamageDelta == null) return; + _damageableSystem.TryChangeDamage(component.Lamia, args.DamageDelta); } private void SpawnSegments(EntityUid uid, LamiaComponent component) @@ -158,6 +169,7 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami { LamiaSegmentComponent segmentComponent = new(); segmentComponent.AttachedToUid = uid; + segmentComponent.DamageModifyFactor = lamiaComponent.NumberOfSegments; EntityUid segment; if (segmentNumber == 1) segment = EntityManager.SpawnEntity("LamiaInitialSegment", Transform(uid).Coordinates); diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs index 0d022e4cda..5bbaefac91 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs @@ -6,9 +6,12 @@ namespace Content.Shared.Nyanotrasen.Lamiae [RegisterComponent] public sealed partial class LamiaComponent : Component { + /// + /// A list of each UID attached to the Lamia, in order of spawn + /// public List Segments = new(); [DataField("numberOfSegments")] - public int NumberOfSegments = 32; + public int NumberOfSegments = 18; } } diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs index 5b81f0abb7..a40962a6d5 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs @@ -10,7 +10,7 @@ namespace Content.Shared.Nyanotrasen.Lamiae public sealed partial class LamiaSegmentComponent : Component { public EntityUid AttachedToUid = default!; - + public int DamageModifyFactor = default!; public bool SexChanged = false; public EntityUid Lamia = default!; public int SegmentNumber = default!; From f368ad9f69dc356de77b12190d1c6afa0b84d89a Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 00:14:29 -0500 Subject: [PATCH 30/85] Hardsuit Sprite Transfer --- .../Nyanotrasen/Lamiae/ClientLamiaVisuals.cs | 30 ++++++++++++ .../Lamiae/LamiaSegmentVisualsComponent.cs | 5 ++ .../Nyanotrasen/Lamiae/LamiaSystem.cs | 45 +++++++++++++++--- .../Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs | 3 +- Resources/Prototypes/DeltaV/tags.yml | 2 + .../OuterClothing/base_clothingouter.yml | 1 + .../Objects/Specific/Species/lamia.yml | 12 ++++- .../lamia_inventory_template.yml | 3 ++ .../Hardsuits/basic.rsi/meta.json | 10 +++- .../Hardsuits/basic.rsi/segment.png | Bin 0 -> 591 bytes .../OuterClothing/Hardsuits/basic.rsi/tip.png | Bin 0 -> 572 bytes .../equipped-OUTERCLOTHING-LamiaSegment.png | Bin 921 -> 0 bytes .../Hardsuits/syndicate.rsi/meta.json | 10 +++- .../Hardsuits/syndicate.rsi/segment.png | Bin 0 -> 591 bytes .../Hardsuits/syndicate.rsi/tip.png | Bin 0 -> 572 bytes 15 files changed, 107 insertions(+), 14 deletions(-) create mode 100644 Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs create mode 100644 Content.Client/Nyanotrasen/Lamiae/LamiaSegmentVisualsComponent.cs create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/tip.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-LamiaSegment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/tip.png diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs new file mode 100644 index 0000000000..32d700ff81 --- /dev/null +++ b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs @@ -0,0 +1,30 @@ +using Robust.Client.GameObjects; +using Content.Shared.Nyanotrasen.Lamiae; + +namespace Content.Client.Nyanotrasen.Lamiae; + +public sealed class ClientLamiaVisualSystem : VisualizerSystem +{ + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAppearanceChange); + } + private void OnAppearanceChange(EntityUid uid, LamiaSegmentComponent component, ref AppearanceChangeEvent args) + { + if (args.Sprite == null) return; + + if (AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.Armor, out var worn) + && AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.ArmorRsi, out var path)) + { + var valid = !string.IsNullOrWhiteSpace(path); + if (valid) + { + args.Sprite.LayerSetRSI(LamiaSegmentVisualLayers.Armor, path); + } + args.Sprite.LayerSetVisible(LamiaSegmentVisualLayers.Armor, worn); + } + } +} diff --git a/Content.Client/Nyanotrasen/Lamiae/LamiaSegmentVisualsComponent.cs b/Content.Client/Nyanotrasen/Lamiae/LamiaSegmentVisualsComponent.cs new file mode 100644 index 0000000000..d9ae96881d --- /dev/null +++ b/Content.Client/Nyanotrasen/Lamiae/LamiaSegmentVisualsComponent.cs @@ -0,0 +1,5 @@ +namespace Content.Client.Nyanotrasen.Lamiae; + +[RegisterComponent] +public sealed partial class LamiaSegmentVisualsComponent : Component +{} diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 35f8d20228..257b97e23c 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -1,30 +1,32 @@ using Robust.Shared.Physics; -using Robust.Shared.Utility; using Content.Shared.Damage; +using Content.Shared.Clothing.Components; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Markings; -using Content.Shared.Humanoid.Prototypes; using Content.Server.Humanoid; +using Content.Shared.Inventory.Events; +using Content.Shared.Tag; using Content.Shared.Storage.Components; -using Robust.Server.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics.Systems; using Robust.Shared.Physics.Components; -using Robust.Shared.Maths; using System.Numerics; using Content.Shared.Nyanotrasen.Lamiae; namespace Content.Server.Nyanotrasen.Lamiae { - public partial class SharedLamiaSystem : EntitySystem + public sealed partial class LamiaSystem : EntitySystem { [Dependency] private readonly SharedJointSystem _jointSystem = default!; - [Dependency] private readonly IPrototypeManager _prototypes = default!; - [Dependency] private readonly MarkingManager _markingManager = default!; [Dependency] private readonly HumanoidAppearanceSystem _humanoid = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + + [ValidatePrototypeId] + private const string LamiaHardsuitTag = "AllowLamiaHardsuit"; Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); public override void Update(float frameTime) @@ -76,6 +78,8 @@ public override void Initialize() SubscribeLocalEvent(HandleSegmentDamage); SubscribeLocalEvent(OnLamiaStorageInsertAttempt); SubscribeLocalEvent(OnSegmentStorageInsertAttempt); + SubscribeLocalEvent(OnDidEquipEvent); + SubscribeLocalEvent(OnDidUnequipEvent); } /// @@ -195,5 +199,32 @@ private void OnSegmentStorageInsertAttempt(EntityUid uid, LamiaSegmentComponent { args.Cancelled = true; } + + private void OnDidEquipEvent(EntityUid equipee, LamiaComponent component, DidEquipEvent args) + { + if (!TryComp(args.Equipment, out var clothing)) return; + if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, LamiaHardsuitTag)) + { + foreach (var uid in component.Segments) + { + if (!TryComp(uid, out var appearance)) return; + _appearance.SetData(uid, LamiaSegmentVisualLayers.Armor, true, appearance); + if (clothing.RsiPath == null) return; + _appearance.SetData(uid, LamiaSegmentVisualLayers.ArmorRsi, clothing.RsiPath, appearance); + } + } + } + + private void OnDidUnequipEvent(EntityUid equipee, LamiaComponent component, DidUnequipEvent args) + { + if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, LamiaHardsuitTag)) + { + foreach (var uid in component.Segments) + { + if (!TryComp(uid, out var appearance)) return; + _appearance.SetData(uid, LamiaSegmentVisualLayers.Armor, false, appearance); + } + } + } } } diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs index b66c203d62..4636cd031a 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs @@ -5,7 +5,8 @@ namespace Content.Shared.Nyanotrasen.Lamiae [Serializable, NetSerializable] public enum LamiaSegmentVisualLayers { - Null, Tail, + Armor, + ArmorRsi, } } diff --git a/Resources/Prototypes/DeltaV/tags.yml b/Resources/Prototypes/DeltaV/tags.yml index 6a1efcfa69..cf4e1b646b 100644 --- a/Resources/Prototypes/DeltaV/tags.yml +++ b/Resources/Prototypes/DeltaV/tags.yml @@ -1,4 +1,6 @@ ## This is for Nyano and Delta V tags +- type: Tag + id: AllowLamiaHardsuit - type: Tag id: BeltSlotNotBelt #not a 'belt' diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 13524efa9e..fb7a34e9ee 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -93,6 +93,7 @@ - Hardsuit - WhitelistChameleon - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - AllowLamiaHardsuit - type: entity abstract: true diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 53fc8a4630..7edefa72eb 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -2,6 +2,7 @@ id: LamiaInitialSegment noSpawn: true components: + - type: Appearance - type: Physics bodyType: KinematicController - type: Fixtures @@ -16,6 +17,7 @@ - MobMask - type: Transform anchored: false + - type: LamiaSegmentVisuals - type: Tag tags: - HideContextMenu @@ -31,12 +33,14 @@ sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "enum.LamiaSegmentVisualLayers.Armor" ] + sprite: Clothing/OuterClothing/Hardsuits/basic.rsi + state: segment + visible: false - type: Clickable - type: Tag tags: - DoorBumpOpener - - type: ExplosionResistance #This looks stupid but remember that bombs are likely to damage every segment, we want them to be decent but not instagib the poor lamia.s - damageCoefficient: 0.2 - type: HumanoidAppearance species: LamiaSegment @@ -51,6 +55,10 @@ sprite: Nyanotrasen/Mobs/Species/lamia.rsi layers: - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "enum.LamiaSegmentVisualLayers.Armor" ] + sprite: Clothing/OuterClothing/Hardsuits/basic.rsi + state: segment + visible: false - type: LamiaSegment segmentId: tip - type: HumanoidAppearance diff --git a/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml b/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml index 223c592dac..e227443c68 100644 --- a/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml +++ b/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml @@ -16,6 +16,9 @@ uiWindowPos: 1,2 strippingWindowPos: 1,2 displayName: Suit + whitelist: + tags: + - AllowLamiaHardsuit - name: gloves slotTexture: gloves slotFlags: GLOVES diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json index 88e5b353cb..3ab0593f55 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json @@ -23,8 +23,14 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 + "name": "inhand-right", + "directions": 4 + }, + { + "name": "segment" + }, + { + "name": "tip" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..b57f188445a4b4cb0fa98add87e09c407702d813 GIT binary patch literal 591 zcmV-V04Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd0047IL_t(o zNA1)x3cw%?1<;knoMC?NqDy#qi002ovPDHLkV1me&4WR%4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/tip.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/tip.png new file mode 100644 index 0000000000000000000000000000000000000000..aea8d36818c618598e2dcf0a910038e3c9861ce1 GIT binary patch literal 572 zcmV-C0>k}@P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd003Y~L_t(o zNA1%w3V<*Sh2iL|_rG6G(N3|2CkQQKi{kQs5E>FlveW^3m-pA@9rCnv<(9BiuZ#ZE1fSl5Yu|EqI3j0000< KMNUMnLSTZ}k_1x# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-LamiaSegment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-LamiaSegment.png deleted file mode 100644 index 475a45bf9d9ea540225379c0e5d4d62507063db3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921 zcmV;K17`e*P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd00F&8L_t(o zN9~hcD+Ey($NvnIm(jAC3CkqOOExaV4RNm&Nx3HZ25wx)g|DEb_D+f9!Y5d9LkbaU zlZN#&leLpwv>9Wc(@eQg&Rn>1e)V+z^ZcLYJm)zx5C{YUfj}S-{Cf(#m77UPay|JY zF~1C}QC9=%)doG6=^PK6;WHwL}+=Yf=D2L+{FPc`1uyu;TCKcwQ z$vkaNL;T7@N{zxa@6o-nR-x;9hMB*>-N1ZnhkKK_z<8t#v4SvcwFZ^m1k(8lgscZl zx+!cVU(wLqhK0*Bu6GxD>#xw}Q$r(IZjK`PF5{@B80)K#EJ#z1JgT8uUbq_|XuLCt zQ`DD!py|ZM=tMOO(v%~QYJw1`fupp|PI>!QgsaXFw$`3lkft1YR1*a5Z-D*)y4&8j z8x-La+l685DV5CY%cL>4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd0047IL_t(o zNA1)x3cw%?1<;knoMC?NqDy#qi002ovPDHLkV1me&4WR%4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/tip.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/tip.png new file mode 100644 index 0000000000000000000000000000000000000000..aea8d36818c618598e2dcf0a910038e3c9861ce1 GIT binary patch literal 572 zcmV-C0>k}@P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd003Y~L_t(o zNA1%w3V<*Sh2iL|_rG6G(N3|2CkQQKi{kQs5E>FlveW^3m-pA@9rCnv<(9BiuZ#ZE1fSl5Yu|EqI3j0000< KMNUMnLSTZ}k_1x# literal 0 HcmV?d00001 From 45505f6c174d0757cef7bf2808b276d7bbbfa1b8 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 00:22:53 -0500 Subject: [PATCH 31/85] prevent snakes from wearing pants --- Content.Shared/Roles/StartingGearPrototype.cs | 3 ++- .../InventoryTemplates/lamia_inventory_template.yml | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Content.Shared/Roles/StartingGearPrototype.cs b/Content.Shared/Roles/StartingGearPrototype.cs index 1e7881113f..322d42fe5b 100644 --- a/Content.Shared/Roles/StartingGearPrototype.cs +++ b/Content.Shared/Roles/StartingGearPrototype.cs @@ -34,7 +34,8 @@ public string GetGear(string slot, HumanoidCharacterProfile? profile) if (profile != null) { if (slot == "jumpsuit" && profile.Clothing == ClothingPreference.Jumpskirt && !string.IsNullOrEmpty(InnerClothingSkirt) - || slot == "jumpsuit" && profile.Species == "Harpy" && !string.IsNullOrEmpty(InnerClothingSkirt)) //DeltaV adds this line to prevent Harpies from starting with jumpsuits + || slot == "jumpsuit" && profile.Species == "Harpy" && !string.IsNullOrEmpty(InnerClothingSkirt) + || slot == "jumpsuit" && profile.Species == "Lamia" && !string.IsNullOrEmpty(InnerClothingSkirt)) //DeltaV adds checks for Harpy & Lamia to prevent wearing jumpsuits return InnerClothingSkirt; if (slot == "back" && profile.Backpack == BackpackPreference.Satchel && !string.IsNullOrEmpty(Satchel)) return Satchel; diff --git a/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml b/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml index e227443c68..ce477b46f4 100644 --- a/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml +++ b/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml @@ -8,6 +8,9 @@ uiWindowPos: 0,2 strippingWindowPos: 0,2 displayName: Jumpsuit + whitelist: + tags: + - Skirt - name: outerClothing slotTexture: suit slotFlags: OUTERCLOTHING From b0b5ef715b68634e33f7f0eeb6ef01f024c650bf Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 00:25:13 -0500 Subject: [PATCH 32/85] Masking helpers are no longer needed, 1984 anytaur mask --- .../Nyanotrasen/Entities/Mobs/Species/lamia.yml | 5 ----- .../lamia_masking_helpers.rsi/female_full.png | Bin 673 -> 0 bytes .../lamia_masking_helpers.rsi/female_none.png | Bin 632 -> 0 bytes .../lamia_masking_helpers.rsi/female_top.png | Bin 673 -> 0 bytes .../lamia_masking_helpers.rsi/meta.json | 1 - .../lamia_masking_helpers.rsi/none.png | Bin 4982 -> 0 bytes 6 files changed, 6 deletions(-) delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_full.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_none.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_top.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/meta.json delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/none.png diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 94e7c4a4d1..13c43ba250 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -78,11 +78,6 @@ color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi state: l_arm - - shader: StencilMask - map: [ "enum.HumanoidVisualLayers.StencilMask" ] - sprite: Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi - state: female_full - visible: false - map: [ "jumpsuit" ] shader: StencilDraw - map: [ "enum.HumanoidVisualLayers.LHand" ] diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_full.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_full.png deleted file mode 100644 index fe08c5697b8dbc178c24240d06768805be6f02cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJZrAngg)*TutEA*lSL<_HIi7a$lAsSU`u=5M|EE5$?y}qXGg9rPM zu4?YyypC^Olfnw$I>~;MCVh~N|IYE@tKPBAf6o84thzGiXhVaC&1s&?YWEc8-P^)@ z?)MSFuqmOBiXRzH*7NvtqV(uv^K-1zS?5U_US3)Gh+|_!M)K0$$ctAxmUk>(wJdnw zgpUzV_Z*GX4v+ji?@#N)Ir}!9DV^2qks#wA+~ue{-(y0ckoIM*eSPn8e;_UzN-{&JV;ZgyP$+1fdF z44JRADw$TT$X?><>&pI&T~>%!rEBV&_dp@Z64!_l=ltB<)VvY~=c3fa zlGGH1^30M91$R&1fbd2>aiF3~PZ!6Kid%1QIr23q@Gv-j`CqSRe?fp%d+yGvh8z*0 z4W>Xv4cvl){`3CV*4(%-u{L(5+=5?+3d8=hun0IXFoFr7l4?o*Ap7~3PjN1>JsD?c z_`N=$y1b&AN8M@n+5=^r$9~u^_$95-z`(=-CIZ6PyDm7tnxVDjDA0TcPgg&ebxsLQ E0NM-^IRF3v diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_none.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_none.png deleted file mode 100644 index 895e0b5a132f96c00be90cae95641ba50a0a2a8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU~I{Bb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJZrAngg)*TutEA*lSL<_HIi7a$lAsSU`u=5M|EE5$?y}qXGg9rPM zu4?YyypC^Olfnw$I>~;MCVh~N|IYE@tKPBAf6o84thzGiXhVaC&1s&?YWEc8-P^)@ z?)MSFuqmOBiXRzH*7NvtqV(uv^K-1zS?5U_US3)Gh+|_!M)K0$$ctAxmUk>(wJdnw zgpUzV_Z*GX4v+ji?@#N)Ir}!9DV^2qks#wA+~ue{-(y0ckoIM*eSPn8e;_UzN-{&JV;ZgyP$+1fdF z44JRADw$TT$X?><>&pI&T~mdK II;Vst0E=Mz#{d8T diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_top.png b/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi/female_top.png deleted file mode 100644 index 71bc96fe209d8cc815f51ac3fc889217ee0c67bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 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 S2+nN~Bng`xS~_#_s{aAL;cf>2 From 360c745e0d50aafc343c1b739279550585c50d22 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 00:33:43 -0500 Subject: [PATCH 33/85] Lamia can no longer hurt themselves --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 9 +++++++++ .../Entities/Objects/Specific/Species/lamia.yml | 1 + 2 files changed, 10 insertions(+) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 257b97e23c..55f28d3e03 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -80,6 +80,7 @@ public override void Initialize() SubscribeLocalEvent(OnSegmentStorageInsertAttempt); SubscribeLocalEvent(OnDidEquipEvent); SubscribeLocalEvent(OnDidUnequipEvent); + SubscribeLocalEvent(OnHitSelf); } /// @@ -157,6 +158,14 @@ private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component _damageableSystem.TryChangeDamage(component.Lamia, args.DamageDelta); } + private void OnHitSelf(EntityUid uid, LamiaSegmentComponent component, ref BeforeDamageChangedEvent args) + { + if (args.Origin == component.Lamia) + { + args.Cancelled = true; + } + } + private void SpawnSegments(EntityUid uid, LamiaComponent component) { int i = 1; diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 7edefa72eb..59502dd471 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -2,6 +2,7 @@ id: LamiaInitialSegment noSpawn: true components: + - type: Damageable - type: Appearance - type: Physics bodyType: KinematicController From 2198c3174cb80ac9474069208824e2e2d3143a0f Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 00:52:36 -0500 Subject: [PATCH 34/85] Lamia can now shoot over tail --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 55f28d3e03..0fd1fd35c5 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Humanoid; using Content.Shared.Inventory.Events; using Content.Shared.Tag; +using Content.Shared.Standing; using Content.Shared.Storage.Components; using Robust.Shared.Prototypes; using Robust.Shared.Containers; @@ -24,6 +25,7 @@ public sealed partial class LamiaSystem : EntitySystem [Dependency] private readonly DamageableSystem _damageableSystem = default!; [Dependency] private readonly TagSystem _tagSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly StandingStateSystem _standing = default!; [ValidatePrototypeId] private const string LamiaHardsuitTag = "AllowLamiaHardsuit"; @@ -81,6 +83,7 @@ public override void Initialize() SubscribeLocalEvent(OnDidEquipEvent); SubscribeLocalEvent(OnDidUnequipEvent); SubscribeLocalEvent(OnHitSelf); + SubscribeLocalEvent(TailCantStand); } /// @@ -94,6 +97,7 @@ public override void Initialize() private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) { component.Lamia = args.Lamia; + _standing.Down(uid); if (!TryComp(uid, out var species)) return; if (!TryComp(args.Lamia, out var humanoid)) return; @@ -166,6 +170,11 @@ private void OnHitSelf(EntityUid uid, LamiaSegmentComponent component, ref Befor } } + private void TailCantStand(EntityUid uid, LamiaSegmentComponent component, StandAttemptEvent args) + { + args.Cancelled = true; + } + private void SpawnSegments(EntityUid uid, LamiaComponent component) { int i = 1; From ce8efc6f09558e19abcf213aa9aaf618d25977f8 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 01:13:13 -0500 Subject: [PATCH 35/85] Update LamiaSystem.cs --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 0fd1fd35c5..219f3b21c6 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -172,7 +172,7 @@ private void OnHitSelf(EntityUid uid, LamiaSegmentComponent component, ref Befor private void TailCantStand(EntityUid uid, LamiaSegmentComponent component, StandAttemptEvent args) { - args.Cancelled = true; + args.Cancel(); } private void SpawnSegments(EntityUid uid, LamiaComponent component) From 32499ecbc2dd72aae84cfab8978cd36804cc85e7 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 01:36:10 -0500 Subject: [PATCH 36/85] Update lamia.yml --- .../Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 59502dd471..37c3e1eb70 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -3,7 +3,11 @@ noSpawn: true components: - type: Damageable + - type: StandingState - type: Appearance + - type: Clickable + - type: InteractionOutline + - type: PsionicInsulation #Not a brain, target the lamia instead - type: Physics bodyType: KinematicController - type: Fixtures @@ -16,6 +20,8 @@ restitution: 0.0 mask: - MobMask + layer: + - MobLayer - type: Transform anchored: false - type: LamiaSegmentVisuals From c8b33fbd06b6f80894a2fc691989e6d1fe00850c Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 14 Feb 2024 03:05:31 -0500 Subject: [PATCH 37/85] Yee --- .../Nyanotrasen/Entities/Mobs/Player/lamia.yml | 2 +- .../Nyanotrasen/Entities/Mobs/Species/lamia.yml | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml index 031ae52ddc..41a8f746b1 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml @@ -1,6 +1,6 @@ - type: entity save: false - name: Lamia + name: Urist McNoodle parent: MobLamiaBase id: MobLamia description: A miserable pile of scales. diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 13c43ba250..53bb435205 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -97,9 +97,6 @@ - map: [ "gloves" ] - map: [ "ears" ] - map: [ "enum.HumanoidVisualLayers.Tail" ] - sprite: Mobs/Customization/masking_helpers.rsi - state: none - visible: false - map: [ "outerClothing" ] - map: [ "eyes" ] - map: [ "belt" ] @@ -114,11 +111,6 @@ - map: [ "pocket1" ] - map: [ "pocket2" ] - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - sprite: Mobs/Customization/masking_helpers.rsi - state: none - visible: false - - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: underscales - type: Body template: LamiaTemplate preset: LamiaPreset @@ -128,6 +120,7 @@ - type: NoSlip - type: Internals - type: MobState + - type: MobThresholds thresholds: 0: Alive 200: Critical #these values aren't final' @@ -223,6 +216,14 @@ - type: FootstepModifier footstepSoundCollection: collection: FootstepLamia + - type: Bloodstream + bloodMaxVolume: 60000 + bloodlossDamage: + types: + Bloodloss: 1 + bloodlossHealDamage: + types: + Bloodloss: -1 - type: entity save: false From c97e0001ee452be92e8380006c8917e00d16f222 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 16 Feb 2024 18:13:05 -0500 Subject: [PATCH 38/85] New working version --- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 9 ++- .../Nyanotrasen/Lamiae/LamiaComponent.cs | 2 +- .../Lamiae/LamiaSegmentComponent.cs | 1 + .../Entities/Mobs/Species/lamia.yml | 16 +---- .../Objects/Specific/Species/lamia.yml | 1 + .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 924 bytes .../Hardsuits/atmospherics.rsi/meta.json | 21 ++++-- .../Hardsuits/atmospherics.rsi/segment.png | Bin 0 -> 482 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2095 bytes .../Hardsuits/basic.rsi/meta.json | 67 +++++++++--------- .../Hardsuits/basic.rsi/segment.png | Bin 591 -> 396 bytes .../OuterClothing/Hardsuits/basic.rsi/tip.png | Bin 572 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 968 bytes .../Hardsuits/capspace.rsi/meta.json | 21 ++++-- .../Hardsuits/capspace.rsi/segment.png | Bin 0 -> 467 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1116 bytes .../Hardsuits/cybersun.rsi/meta.json | 21 ++++-- .../Hardsuits/cybersun.rsi/segment.png | Bin 0 -> 479 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1991 bytes .../Hardsuits/engineering-white.rsi/meta.json | 21 ++++-- .../engineering-white.rsi/segment.png | Bin 0 -> 476 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1908 bytes .../Hardsuits/engineering.rsi/meta.json | 21 ++++-- .../Hardsuits/engineering.rsi/segment.png | Bin 0 -> 457 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 3521 bytes .../Hardsuits/luxury.rsi/meta.json | 21 ++++-- .../Hardsuits/luxury.rsi/segment.png | Bin 0 -> 537 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1668 bytes .../Hardsuits/medical.rsi/meta.json | 21 ++++-- .../Hardsuits/medical.rsi/segment.png | Bin 0 -> 452 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2249 bytes .../Hardsuits/paramed.rsi/meta.json | 21 ++++-- .../Hardsuits/paramed.rsi/segment.png | Bin 0 -> 442 bytes .../rd.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1025 bytes .../OuterClothing/Hardsuits/rd.rsi/meta.json | 53 ++++++++------ .../Hardsuits/rd.rsi/segment.png | Bin 0 -> 446 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2000 bytes .../Hardsuits/salvage.rsi/meta.json | 21 ++++-- .../Hardsuits/salvage.rsi/segment.png | Bin 0 -> 460 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1039 bytes .../Hardsuits/syndicate.rsi/meta.json | 19 ++--- .../Hardsuits/syndicate.rsi/segment.png | Bin 591 -> 947 bytes .../Hardsuits/syndicate.rsi/tip.png | Bin 572 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1037 bytes .../Hardsuits/syndiecommander.rsi/meta.json | 21 ++++-- .../Hardsuits/syndiecommander.rsi/segment.png | Bin 0 -> 947 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 934 bytes .../Hardsuits/syndieelite.rsi/meta.json | 55 +++++++------- .../Hardsuits/syndieelite.rsi/segment.png | Bin 0 -> 420 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1157 bytes .../Hardsuits/syndiemedic.rsi/meta.json | 9 ++- .../Hardsuits/syndiemedic.rsi/segment.png | Bin 0 -> 576 bytes 52 files changed, 261 insertions(+), 181 deletions(-) create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/tip.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/tip.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 219f3b21c6..467d2f2eac 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -57,7 +57,7 @@ public override void Update(float frameTime) var revoluteJoint = _jointSystem.CreateWeldJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); revoluteJoint.CollideConnected = false; } - if (segment.segment.SegmentNumber < 18) + if (segment.segment.SegmentNumber < segment.segment.MaxSegments) Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0f, 0.15f)); else Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, 0.1f)); @@ -87,13 +87,13 @@ public override void Initialize() } /// - /// Handles transfering marking selections to the tail segments. Every tail marking must be repeated 3 times in order for this script to work. + /// Handles transfering marking selections to the tail segments. Every tail marking must be repeated 2 times in order for this script to work. /// /// /// /// // TODO: Please for the love of god don't make me write a test to validate that every marking also has its matching segment states. - // Future contributors will just find out when their game crashes because they didn't make a marking-segment & marking-tip. + // Future contributors will just find out when their game crashes because they didn't make a marking-segment. private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) { component.Lamia = args.Lamia; @@ -191,12 +191,11 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami { LamiaSegmentComponent segmentComponent = new(); segmentComponent.AttachedToUid = uid; + segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; segmentComponent.DamageModifyFactor = lamiaComponent.NumberOfSegments; EntityUid segment; if (segmentNumber == 1) segment = EntityManager.SpawnEntity("LamiaInitialSegment", Transform(uid).Coordinates); - else if (segmentNumber == lamiaComponent.NumberOfSegments) - segment = EntityManager.SpawnEntity("LamiaSegmentEnd", Transform(uid).Coordinates); else segment = EntityManager.SpawnEntity("LamiaSegment", Transform(uid).Coordinates); diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs index 5bbaefac91..2ef372c10d 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs @@ -12,6 +12,6 @@ public sealed partial class LamiaComponent : Component public List Segments = new(); [DataField("numberOfSegments")] - public int NumberOfSegments = 18; + public int NumberOfSegments = 30; } } diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs index a40962a6d5..7605f9039c 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs @@ -14,6 +14,7 @@ public sealed partial class LamiaSegmentComponent : Component public bool SexChanged = false; public EntityUid Lamia = default!; public int SegmentNumber = default!; + public int MaxSegments = default!; [DataField("segmentId")] public string? segmentId; } diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 53bb435205..5fcd28e2d0 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -78,8 +78,8 @@ color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi state: l_arm + - map: [ "enum.HumanoidVisualLayers.Tail" ] - map: [ "jumpsuit" ] - shader: StencilDraw - map: [ "enum.HumanoidVisualLayers.LHand" ] color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi @@ -96,7 +96,6 @@ - map: [ "id" ] - map: [ "gloves" ] - map: [ "ears" ] - - map: [ "enum.HumanoidVisualLayers.Tail" ] - map: [ "outerClothing" ] - map: [ "eyes" ] - map: [ "belt" ] @@ -258,11 +257,6 @@ color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi state: l_arm - - shader: StencilMask - map: [ "enum.HumanoidVisualLayers.StencilMask" ] - sprite: Nyanotrasen/Mobs/Customization/lamia_masking_helpers.rsi - state: female_full - visible: false - map: [ "jumpsuit" ] shader: StencilDraw - map: [ "enum.HumanoidVisualLayers.LHand" ] @@ -294,14 +288,6 @@ - map: [ "pocket1" ] - map: [ "pocket2" ] - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - sprite: Mobs/Customization/masking_helpers.rsi - state: none - visible: false - map: [ "enum.HumanoidVisualLayers.Tail" ] - sprite: Mobs/Customization/masking_helpers.rsi - state: none - visible: false - - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: underscales - type: Inventory templateId: lamia diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml index 37c3e1eb70..7af53abc7b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml @@ -38,6 +38,7 @@ components: - type: Sprite sprite: Nyanotrasen/Mobs/Species/lamia.rsi + drawdepth: SmallMobs layers: - map: [ "enum.HumanoidVisualLayers.Tail" ] - map: [ "enum.LamiaSegmentVisualLayers.Armor" ] diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..f9c943fe7b1ba6ff255865abc99b16cffa8739b6 GIT binary patch literal 924 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 Ze*tm1Ghqf)!mj`T002ovPDHLkV1kXR3R?gG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json index 3ab0593f55..f7d387421d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json @@ -1,36 +1,37 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a. Further modifications and derivate works (inhand-left and inhand-right) under same license, derivative monkey made by brainfood1183 (github) for ss14", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a. Further modifications and derivate works (inhand-left and inhand-right) under same license, derivative monkey made by brainfood1183 (github) for ss14, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "segment" - }, - { - "name": "tip" - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png index b57f188445a4b4cb0fa98add87e09c407702d813..91747f2ee639ffafa7f0bf9dbf7048db0935647b 100644 GIT binary patch delta 370 zcmV-&0ge981dIcaBYyx1a7bBm000XU000XU0RWnu7ytkPK1oDDR9J=WmN9OFFcgNr zRNWm<>1N4e4&jZZ$LPYA6XY5UEImdS7Q_&70=%(gNhZSy=+HU}Emds^DU096`_2Ep zXZ(;i(=_qOczS5{1dsp{Kmter2_OL^fCKVOKG0xlhzvN z98$`e=5u}DM?nOCg7f*jlTzZGLu>s@_nMTF2#Xqx7+RFbgTwo zt;Jf)IF2Z#0Bab>5da|s0Bzf1t&IW*J_A)%z1$b`#g{<*+EoFvEW6fqeE=AS0i_f| z2!s$Qr5J_*fV!>^S(aTxeWU(_#u%EW*#YmynAdx)X_^n<%@}k2eh%{d1PAPi1LL8m QkN^Mx07*qoM6N<$f~3o*l>h($ delta 567 zcmV-70?7T01J4AIBYy#cX+uL$Nkc;*P;zf(X>4Tx04UFukxeK>Q5?m828~3DSx6Rd zffXerONN>hH4SP83-7%#V`|=;>AjJSrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q` zYLr{I`|I3$PWPS*frG4RxpnWNE@v*(0{C(ZhkBpoucaaxTQv| zH+?FL|BdG4vTH((COm59or3U^@bFq8uXsl|WUlB*;ZxyWM=mIQuXLltFN)JX2UKRr znT?GLhlI6s1sfG?t~i$PkZ@PhvL!zdFL6@wx?(H4YX00)y|8K7o|{p+%uXUqGEEc> zgHD0CP!1K~z{r?bI;}z#t3-(6n=VrQZJ>p27~2Ht^lr z`ZGwE{~#DJXcW{$L_|bHvPvnNoB3139Li`5MoMgg^wYg4z3z%}D08|@E!`=5`i{K? z`UYlE12AfUZs4qSNBW=E+7Zuj6eyp=-Cw`rm_r%K>;knoMC?NqDy#qi002ovPDHLk FV1h}w3|s&J diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/tip.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/tip.png deleted file mode 100644 index aea8d36818c618598e2dcf0a910038e3c9861ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd003Y~L_t(o zNA1%w3V<*Sh2iL|_rG6G(N3|2CkQQKi{kQs5E>FlveW^3m-pA@9rCnv<(9BiuZ#ZE1fSl5Yu|EqI3j0000< KMNUMnLSTZ}k_1x# diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1327db341ef0341ac89277f70096cdc401f6a7 GIT binary patch literal 968 zcmV;(12_DMP)Px#1ZP1_K>z@;j|==^1poj5KTu3mMHVzhI%k0`OkUHSHXR)u10pmW8yo-5Tc&s) zb4(!)4h|ze6$~{8ELLuCVFOV{0vHq)$32;bRa{vGi!vFvd!vV){sAK>D0`W;iK~z{r z?N)1(;vf*@v8W5itZV-NZ@unuAVWa!s_v^@r3u|L9Ucjc+x`h*}Z zzTZ0^B3mv7KXZWYzL5OoI=$UOPbnfGrZjU9-JMP+*Xz4Mg1-MLyF*xy2l!rZcOkjt ziF3qVP<97(=P&UB1FKg9F%D-K#EU#i`HDo{`FM`co1}a*xWwM3J_9R96tdaz~WA|T{#+Jh};OoDg0)7u;XIbEa& znGNMD*zufX5^*)l&dkkc|uqUc-(%weZDgTQCV3erCe1`8HBAjom1(=r&a zkDl)s@^L-pL&xYiJ}#7>y@?xCc7l)hUO5X%tOm*f)&MJTyWOx7FARbXp?g4QkO~Y6 zrfO;s9487tbWu6L7(iWNuyPE_b-)18M}BL2k~Kg;5d(BVnI5SWnIl}3Ax!KuUmTR_ zQC8Jg`<~k#{5S{Q;i^oJxo!>I@m2q1|eW1hu5m{fD2y2k;;a84$B?eGSzu|5l zVGZs91_1}G5(7{>1Q@_U3E&>MKUYEtqBBT-$r-Q8D+7)o zFF3rFAglpu15^)hdw?p&v54AX?(vdw74fgc0G1!DR}rU-HDH0Ib)GTl9?A{C5F{Jvr97ToHCSWYLm#bAGS1U+yE!ZOm82|9*n|)Sl8G22wGQ(+CMlG qjq!ET6dGfmt5*SpzvLfdw(Soqb^mz&hw%Xb0000Xq=P) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json index 7f50fdcf08..56b23c00af 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Made by Emisse for SS14", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Emisse for SS14, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a4dbb38287bea806df67c8a87d228928fbd14c GIT binary patch literal 467 zcmV;^0WAKBP)R{#n?0Vn_kpa2wr0#E?Jwrt?h`Q_r{@nh%{1_6`l6adRKu^oq<-GlTiTKno^ zJpikc?-lw0ybZo%QxGwrtp#9}%KBsmK=I!mnE;aN6BT#o1-{HK$=T8NFc}r5?)qO78%G?Ntf8EgQJDz3NH&EbO-Kfiv5yhVy4B&o9rVnJj+fyTSkf002ov JPDHLkV1n01$@l;O literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..5da5227444ec420eb05257fd9e3d00fc57b1f1e2 GIT binary patch literal 1116 zcmV-i1f%Px#1ZP1_K>z@;j|==^1poj5U{Fj{MKUrnCMG5n6cjc#HXR)u0RI5B9u5G2Kme9Y zC@3h`I42$+9zQ=n0Aeu!$72r<4*;uG0DeDiAtiq|IzmE1LqkJI0s>+K1AiwgT^t{6 zAte9+0B{u-H8nLmJ39aX046j9M*si-AaqhrQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC0 z|NsC0|NsC009;%f?EnA(32;bRa{vG}(*OW9(*X=2Lw5iG16fH#K~z{r?UwC&;vf)( z$rw>27L74rHO>9sJi_fFA=yv7GQTfGB85NQdL+ zg8#0B`LraYBep~i;OFm_gmmCN;j?(W6r6HjB8$gC2|&_;ilV^pBS+>sQmM)kZ;~AG ziU4^!XvD@#2GN*(v0We?c3YSpn^W}2oXw>y`F31I?g^7HFk z?Fpng8b$hSs6+)N8L8tkjR4&UD)Id{yh{?zl0bK%TM$ajZ?(8jgb6?ZsQM;uHC9Pj z$MI3t3VN7OfqB5U93KJpB&o+D)p#k>TeqJRtizPgXQ<%$37i`V5g@J63KyWXvCHf?6hw3O?>2Ewg|ZwgLcoLdF&#_yElP2zVuc*9Ktl2SDOa0Nfn77qANw8SD9@ z55U}y06bzctTHmv2Yyt>j{u;lYnrA*#(ER7egt$xUxSD`j-|@@5zu@5pso2iKLPX| zf5Z0tjGqFK;>Dl0wBgSIf1zK%9FXnGOQnhb6@a$8I)JQ%=3k`kdj=ph@NWnrB=Nv2 z$=|E+w7x4M98rkWp2tvSBG8;((&A+t=X>%1gywE*W4uHl%lt>}IK$f%V1Gw=4y6DP{ zyFQC67e0U+!6)b@^a&KiQp8K4wA#VINa47UlvXR9ir{7r90<&xf4+0h3?!b2@Sm~t zue&<{2jBo4fCF#<4!{980Km5u)_s5KKke0+gc;7Fzoku z?e`V}us#E`jPpFV*8UW>9q@(|)!#ineG}Y0K8?FD`~;Xge*n+sPE9PKX4{?7Jz z^I9HEY0krU01C~;!<*GDumS)mm&;Ndwptz#$1$Z+2>`7%?RI+%am*Tk*XeZT`dXiX zD2k}HKWCmK2>`|z0D>SONfK%|Hvq(OWNT~R0b@+0lzJ|z{wcK9G@H#WrBt`oYR&bv zzJ^MvZkA;yT5F6kGgE6#mSrbOsjjUrB4V9snj#{Rh+L&{g V_@tr*5fA_X002ovPDHLkV1i!G%?tnl literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..cc30d8c7d20cc4e581be8dfcce0b3237a79544fe GIT binary patch literal 1991 zcmV;&2RQhNP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2V6-+K~#8N?V4+d zRaF$n&%J&KADBJVY0w-Wg<+r=6WDwx>_Z}b5C+Lg(+YbyqGIxBFXj)^X4A-h1}BbI&ch_YaqS_CEXW|5|IW z{W@#ME^cmhiWzY?En1We;HE{3k^$VbXi+kNn-(of25{4&h4oJGz-_ydq}x9J%xP>q z=p0$p6q6SzjN3RmSy?&3nf2(ylCL^b?Y+wv{QQ38%5UWXkWYB1+8H$Lb|I-8J5rR^ zA9>1oPdybjUoiPm9zI~El;^^4WdIs(Z9VRc99=2--`g)a^_$iRF)4Y#d+Jd?pGe1V zD&G_SKm*MF>dEBUlfTOIiKa$L!E2kh2r;Qb-&3FeNv4O$#1HqW-QRo4gIxHnJb-cc z%h99Kusok?li#g3_w$}9=RNg!&L>QM0H0uMSEBh`__I!e=2$WtWxV0~H49gGDU*;w zCnL(u$ubOTHKL5UQ26eJj!ynhJ1HbTpS3@({2p8n z0Lp*m@PS_BRqh}J8sPGU^X^lZ7i?JnhNm=^S7T7_cfC6fxeqzQ|9|E8FxO2}Q2vh= z{@h94lsg-&hJY%Dg_&U)YbcEes1dZBx>|2)^$hu6F2jK3m9$~khth6p2y`xAHZQL2 z4!otm(`)8Qr(^pt=iDEEdiCIMOEf!6md%rPf`&j=1DG>u&BS9){k}2soNW%!dKf{G z%f`q*|M>aE0F5aFRCXD_&#%xSnF&?~pwWtoQO>ceU7Hc0y`a_y^uUknL8bAR#y${iX=jJ;7`t)|+IL@UjSDnpoZ53hgf?QnQ25Nw^vQe_> zQ3L1>Pz~T#w}RD12PdkmtPOy5 zA=}aLfsB2&p!y?EIq#_#1#H_5%WrJ}MUV#+3cBw%&j-06lmQrL**t*vg@9k_o*3b} zN$|!6W$sgVeDO)Wj6v;bJ&uCLqbDTA2)N+nX*GGD1mV{uc>ODD#q%(}rb|~Xmv>CU zw*2UBZGe039+9M{D~1ddLS}viD*}QfPM?$E@WYSIc{c$3r0hObX=G4t@_H(?oAC-_Z8`6=qb1L5HO+cXd+6* z{m2)8+Bu-u5PBc*e?!RtZd$Y`8Nf}879|6?Y0;u&05>gKgx(4IKaBFpn$Og^hQM-x zhRw`70WOkNXR1SWYN*N@tl(Up>Arwej0h+WM@sn)I5hyHvVgEMSQ~(bIg10n#+oT- zaq|O7RH$9tBFd$>VsHYVEHPwE$tvM78(15FKqY5xT%NB!e1_6*@|1HVRZoz@2teC# zz@_K^%NNg!EXcHWL%o!zWVIfS_Cvsk#9{=pNgBdjrLTC># z10Pc!952QgFsR%Mk`~GX;Dj3){+iJwL)5!Z5S0f2#yv)We9xDMr3dH@jT9Hs1K>sm zz+D3GK0yc%2(=I3w#UjL*Dfd^1U;cp57<3ze ze>(WL)npvb0M8Fj4t->@o4Xc^#|>AkuNU&ZZFPBx3a0~+;zjRteSK!$q4!k=JQA#) zGRN8bW?KZSKnh$&FhST_hXSA%j$NE8&ryK3_0v0?a3jO%M8cbt{W1o@+5^}EtD9|G z(!bk<1#@C7-#aR@Epctr{Fw7;L+qJ-U(3Y_*8X@r?%Z`lgItQ3Ro7)4SqW0G36)zJ zK==P_H@S?&k^{II^6c#S^2`Qh{);a~Y5*`}Rava=&^Mj0zxuKl4`^?1mz1-C-Xddf z0D_DVXaG}rwwoHCClJbtK$%{cSiNauIfOrxY@gsG)kGasj_=$c0P* zxk7uuzNfzxWoU%Plz@8xveUU Ze*nFAI!&egNY(%V002ovPDHLkV1fw%v>pHe literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json index ef5e62cca4..0c75fe63b5 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..2217a8685712c7747e80e089d4d7e365a3434cab GIT binary patch literal 476 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..0272ceb588b6761a540e1d991f484bf9dff6f3f6 GIT binary patch literal 3521 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 b&PtjWXUU}2fwph900000NkvXXu0mjftp4pK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..87737253834a173ac99112af8c1dd8d8b3204e9b GIT binary patch literal 1668 zcmV-~27CF5P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1{q02K~#8N?V3?& z97Pz%=W2avBsM`2lD5XANlL1iQuLudC~DL`C>PO}3TnlahKp2DYAp@5q-ZIMiaAoO zSbeUTppd9(K_4QBiUl<^NfS$LBBCTU(7vcS?>D(`nQrfHXYOwAK=%jB%+BuZ|NFlA zc6O6*RYXKYL_|bHM8yA;Sf&l6zrR0~>1uj_y;CG|9dVKt4m`76ojU!M zZoz-tR^KWEP8@qxjgF3L$4qegz{zvEPs?%6_2k;74autNOm8{pa@<8f?}A~b zl3euO?JwyR$9Vzgw=7Luc8*Z!qSUwXx>!y3%S)NvE3W&v?zKSth{gs(E zC+2-m)S=;qD%DW8O84RH+$DAPw~Lv*Ww;+pfq5NM9}*WAReQSq;9!rZf9m{&rQ6eO zw)H9-R<{7Dg~RLb-{nQ$yai<8Av4Z=_LdHaWJ@v6<$U@qeqF!(sE)3^S?z!Om>w%c zKkq?SQkm(VSDsgoY~7>#`7+?ckwdC~@9VnHxZDzj5TyUb_rI&VHeFwozEuDaZ@P9- zB|lyjm;s50E~)81tF;lu1mN*o8&)i?{OcdTeh{wufySNr;YbSc*t*>@n->gHE_Lp3 z3M1Cvva=xPP5kLUvBdgh-m`h+ z3G&PZS#W??(bm@1k_W)A57=O8Lsd^J{0jHG^;p052tSzwPKd>TN=)UVefY85z;7Xv=;fIA;J04R2(7 zcWm=E_Wk!~7!Z7%HEp0}pK+NS7n}lslL+$ipyQd-A})dmwpvalgkFtuDWrf8XFsP(snx8G~o2l7xWlx zxM_9h&I^7Uiq$U2STVvRY{yM1tsfB)5fKp)5fSlU!1?uYaB%R7*HGx}>@4f6XhrPc z-{c6(zrSeN2ijall@ierO}{O+Rbj#U{{iNOrA|)^^yBfk?w13!yJokwCRYf`AbsN~K5w z5+*nge3XH<1fM>(f!Jz;^@5R1oln&beUsT+uE?*sL=^v?S%3eOVZ}C0sJV$xv2TGu5aDXR8*6QkqJ`qb}3+7D3Yn zU{YKv(#`>pSq941FFe^-(F}O){a){T0AMV%0APUW=o`tdv{-XlW?%4UL45O+dM>eC zArjkMCcyecijGndChFAeah?=339B@2VirJ2e}cgG0AwS$e4b-vtO!z@|9oJVjxJ%Nuwah}i2F zNw%8Vl8wC4F=xJ}rbgA)*6ML!)|qjRNm-iOV7W4Y4sQm~W!<^Ydz9VIeRR z0s~-v36c%T1OkCrxdI@1U}Iy!0g&0xMfamybt|8%mMZ|XRE1&Sc<%25Bnt`(K(-p3 zAOClH<*3n#UFP?KLFBS4&{)K95~##Nw(>X-gmMJ{=d(en9He?paPrw?WvoP;Ku8e4 z6oGP9Xib~IZHfqQN9Su(d=0 O0000y3Cdw1YOXe&U=t(_l?8F|D_6Sz1)f|EyqLiXuEdg+KbH6V(qLWv<1HE1k z0M~VK90!0#yHBIt2f%S0{I>hCzY5?N*;Kt+3c7G8=9of#1^z+vpSO?C!1q{&!(rh2 z698XIDOyhtJL_S09~wX@6%@a`IOAjX2|(J4?FG`2_J3f#UMC8<=!%0-K`6(eoMwu%oX%UU6q)G7{uh-h0r u6-Pu8BGS#L;<9NX(iM?JJ{9-lwCoFsugh~6=0ODj0000giuIKkVhcIl8^)t5U7M?2r*BSi9}=pwY9!Z z-GcO}P*La+sv_94YjB|}DxyLU)k0fqiy&>~NTETAA_}sTKq>BS|J(1JnQ!i$-~HYD z{pQ|tWmJQfJWmSy&5Px#!iz5%8ql6UE>_P zD%`vszqQW8Cq}SYFUZk{hK8E^@{$OIAbG7%P+VZ~akd$KF*(lN-F@z5&(^fG5bz!R zUy_5?r4Y%fDQ2{R9vMX-gehyKsj0p}u|7c?%zgPX9*;#JC@=pU0yi*&i0i0))zvX7 zfsjBV;fSmR5R`IxGG5vi<1qKLudzNcrt6v0w>C|7XL6&X1Ndqpk(kWe>W;;ldviA) zz3S)Z$DXupNo0mm`RobXP|XSAwo_~-)5F8V-fdklX(M)Rw2zOUKamv>nuG|jw?DcO z*)m`uFMZ+vzku`^?Hz>QL6efB0|1vg%Z0)mNgo0LG%U-=hO@b;bg^1V5=qpB5Xqp_ zAZP$!Y%pj|LZzb{n0PBO9eK96K|Ib1f#pnmHkXe}RBIvJ+axlHj7P$8IEGeI zL>ID>m%4IKnaN=is2ktDTN3P#XqG>}XIDU@&o5w6>zf<=aKl`e3RWQm3a z>BL%@29~K+I18<)P_2iVc%%YrX%g`=wMMU1ScxTK5K=%&NCoS_2vUTlS}PWo75!0& zO1C5yA{%IVgFwm4P>u!`QxOr83`nk}(vc#>R(>5U0apM(3Yi=ePNsxYXyEUqBgIR^ zbXW!}Agdxc>$2(+uYgy$mQJaVS!$#!L@Fs0ZwQw_MIyZd#>W=xl_C`bv>aR^TM@SC zT1mwK|0^NGax8j|5Ynj?dW(Ruv?zx4tgksOU(B)=;o1KSzS8+RoL{Vl)ksfhWnzvB zhO`G865k2_iKfCl2=#XKiv7(v1i{4D%;c_>5e@4MY%J@t!kunY-mE29JI3ngX^sc z^C}g@)L`x8U|@dB1n;4j@C~^u8QLF01sV>1ZM!opJg^>B|Lc|-9Q=TSt z-gVIHH~Dpd$Q>wkywUB_`PsPw(RH9R;VAHKlLHVO_uN?;V^e@_LVbuHm$$VQ0=It% zf92BOwo3Tm(@6(lhgVO5wNnn#UICno;vkaR<|f;Y+2QZRw>7k9?FfJ_ zy@*)tVjeg{{rqOd{dsr9f7c|)DzDkZLm#TycWNkh^+|jF+eO68n&p{5MC+sF=_LCYE0Mz{yxSn4h|D9MH#N z+o}rIdz9(R2Qf*N$<4zdK(i@8<KorM+)($yhs9?2gPz)ugOVO?1-cRR;DP0{! zaj_!7f(TA(1tlH{g4m%|YSo$p!R7wTaqqpn_q%tO<6@i5hHL8Ps?{}s2G9T+Km%w1 z4WI!u0C21Nfsrhndql>rBrJ>jR0=62)9IAqaJciO z(`ii8_U2Mbq?G^0oRd-qf-pQfp0ZsWV5_C?Q_8G>*|$MJXW}cb zUKwEN`@7uAZlKvo3P?IH2eK5@LF-4$KSqY kzwZGr6~`I;%p>Le0%BEVnx&QzG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..b707f6bf1130fc54869d6d2d1a029c02771b9f50 GIT binary patch literal 1025 zcmV+c1pfPpP)Px#1ZP1_K>z@;j|==^1poj5JWxzjMV69T*wdUTDJecaK3^hdtfy$gy?li?nO09p zZYOst%>Mv{|2d5RIr#s5{Qq9U|F^PoD11?EKK~z{r?Uw73 zn=lN8jSR#g+culL|GV}(wg5pOJDvV&XHRC=MwesBSEc7);+x>#BS?bx9r1JSpOL22 zb=GxTitv$Au5I2A;^@;bTDEaWy-S4EwohZq0&TRI(O+P&V)$Qzej(^D3{Z1qh-l&H zFV{XB1eW`2(9ZJanLu-Q6EmCPW+_iw0#ZmwZOTjl zy)^6z@F#^D0V!a+O@UoXegu)dU1oV{@t-^bQdwu&fg17|7`S{PAV>mpFpx`EnBw-0 zmTd7~3Fr>@QMfPpZBYq6D}hUdNB|f?jZ3zWB7N5XE)gOD`4hm)CYqrD*gy)wCBly2 ze!rg+XokhV>;WMXKs^lnZ46f6iZTsv2$)?!>yj;Cmw_6W2$6v0dpsUmPM2)KIBJdHk{8tCfl^^e#}SA?)yLUxswz@oDvu(-RYig( zskmqdX)wSnAFYCp0@cgc5y;LZAP}$x%x+q%ppVcxr<+mihG_~ty?dI6&p^5buR9BY zQ794Cjubz+}Z(c_;p7$9|w2a0MEA4rIydh`?g;#twTEk`VQZ?uP)u>vn vMj>CKQYHJ&zcDBa|J)E%iZA^4HqYm8_R;BYQ(Knl00000NkvXXu0mjf44})c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json index e482264df5..facdffc28d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json @@ -1,26 +1,33 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..972865cd17c916bd017e9d28d0797c479f358d6e GIT binary patch literal 446 zcmV;v0YUzWP)3e0{8ajj^Gg80^UKpld=z&boxDb8fO&Pa zT4#{5fOs20%3|qj9S2~{hY+ueHfWjAEnw`RGGFxlub6FSQ~@bJE90v8y6;~AmSU4B zlC)o0i=$KHuQvvelj&02^E@b}002aUB<&-PjP>2QT=EP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2W3e_K~#8N?V5XN zmQ@_bfAf-TOOtfY3l4O`W)^OOWe#1Y8EK*IowiD=X<*nA#0bqUm{%eZWJ&#DtF&6R z4TVxrL=@Iu+L5<{D9Zk6|Sk-hD6_WZ`P$L)R3^X`3D^uAwsIL|rH<@^2p&hMP( z@;gZvHq}WyqlZ(*EfNlJ%D6?s0ZtjWNI1YL;}!`AIAz?z*PGzWWjlgj_1z|S4sDbd zCmu+0nq~E&{NQJ22g>+M^JP`>?6&r3!_8kbYl_ne}=^@F`+ zaKGO2%=F&A`K=tFf@%l!Q2;r(g)&ch3|<$`DYv&)Zd4*<}ZK z`IXm=viB=x#c+i<869^k~;0~^SF-dyMm7RO^CN}zFJc% zcYIK4O2$5&LGSzJ_x&EgjGLC$>TP-gP^Y~+pgi6Pa1TR22ZANDa=(Yz(dP1ogaN#d2)Y3>xfA~X9k0TuRG9QH934sQO9NAiO?+5IIoImH~i z(sZ@m{?YHw%d%X5{MN6+7@t2jUHYc>ksW0Lx$W_@&JmHX-x(^ii!0^Ql|SXcvHEu3 z3DJZ)AbmiZT)ujx%>g&2q)Pp-4Q&o^PPc;fQ$XLuR#sdUK1i4Vb)!x@(DR~=eND64 zj0YI)E@|gD=a~jeSUZ5%%MqEQWNl%J`Rd~ls2g?KInH^p0KIDi+w&Bi4uPAN4tDlh z@$8(e;1dOTvZ(Zgsjqmd$dq9H8|9{avm{I2uBw*TK0XokA@I^;S?wagI|P6ZgIC_Q zEt z)?sPqHND)tZt{PSCl2`%?Gzr5js6K*u11x=AS!O8)Uu35gs zWM03&a9DPyWSfNwx>%wqc}&z&VWH7#8(eV0tvb+zHZ-Euwll0FKn-NfLjpM)`(4cd z*<#G870zC3*2t>^ZNN`wSUG^@CoF~0ygM6&Y=AnsxLD)(hz+KM3r?Uq+}hBJW*b;J zfEkr#C_wY>5HSgn6C`I(TXz92IN?SET4>X?1ddiK+pLE`&FbrW7|(xHGsI+Oz5fYg zfpxiC%(#XNPPjD+-9T$gr$u)Tn6f!wvcaWWw>vGZOJe4Z{>Ai!MnEi|1bT0{;Dj3u z3bdgSt+uds!2Ttb&R%N|FbOde(-W-R(g=v>TeD|^ENoh3+8|yw^P1e9 zn;{3wi%ps;)|j7nS942YoB-d&qf1RrQu6|6TfQqx=H?GFbsHyy{TR}l=*kSu#ACUvF z8-$94utT6Dh49qOwl z&_|KmV0{Mj80wB3A-O>`0rz`{SDU`C0CaU^YuHK9?F4=1cJ$%nCNeuQgeFJT32wMG zdNoDl0H99L#R&@abfmfYu0WlDCg9c8k*0_p0MrRUNx{Eiyu#}Qpn8B;Qjk2f in~xU!=(*ljk$(V=dhi#%CuZ9K0000a*3lDdzlZIexK^W^>2t}dN&6-*dcVX%>#C*J)#=sF{!A6US$b6s zxwko;{TChGo-uX%$@AGhcQl2|z3So?hu(AR&QE;dc`i>*cp`JkZX@}=GzOF1+-y

k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1=2l#}zCNVQ-y1IKhTKGF!nkcEfQkB{&$5*ee-CmZt-rVZCh5Aw7;805& z4+BGn1_y@!459M!ZYJhoR<_&ac&)@$#iDE&?yChjS%xVnTIlEonp^IaO7%C%DE(&BKAE&dGn?BfB%njq%?9#p+n=Rxl`i=8s}I z)csQUf|{`$*KBU4O@W1MKdu~?w0rze;s5a`ncA{d4=1nru+Js?-XvcGraFD5kX?Hk zv^`nAsU7C3cy!=}lqKuS>RF2f6$Ck6RKD@HZfw0j-NM=+>dB@9y;B5w^RGJE$Xw`k zV|d-LO?3NonJqD@p*}JXzIH8&ExvGwp?wasNp9B6*L#|0?Q{*ATUhW`mXC4mdQ$^u zUiN)u7OEKx9x@ek@+CsA9N<}@=!kDmGbo2e%5|}9R;<)pIn4kU44;((XiRH0W z9XQz4VDZ9Gc!BV*RVLwE;(O0Fe$#m?o|)V)H+f;fo7=l17i(@gs9YH4qNvFGcIrn% z&9u3beay^$?)mG#&@wG)&q3e2vnZLl@z#L6}NK=1~JgT8uUbq_|XuLCtQ`DD!py|ZM=tMOO(v%~QYJw1`fupp|PI>!Q zgsaXFw$`3lkft1YR1*a5Z-D*)y4&8j8x-La+l685DV5CY%cL>TF0000J zAQ&)c6x2jSL_|cgN-3M0`BTIk%4iElN^FAk)4eFY?uv0JbGl3|-6?zej=cr?24+zM zYJhIwtaV5FpVrzD&v6tepTpf>zv7rf8OiJdwKzoVLlr8l000UA07*qoM6N<$f>O&u AHvj+t diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/tip.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/tip.png deleted file mode 100644 index aea8d36818c618598e2dcf0a910038e3c9861ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd003Y~L_t(o zNA1%w3V<*Sh2iL|_rG6G(N3|2CkQQKi{kQs5E>FlveW^3m-pA@9rCnv<(9BiuZ#ZE1fSl5Yu|EqI3j0000< KMNUMnLSTZ}k_1x# diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..ccf53e302b0bfe745c68d01bf19bd7448cdf3ac5 GIT binary patch literal 1037 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1A1^9%xCNVSDt7~Vvx|=AeT(?m7ceD((wAm`hm*?rr(BQ!EpJBbZ)luJI z4+Fzcd3iSz^Dryh?Q*6fJag1I;aW%JJkV$QkPB`Py69 z>FF5BE6rAt0b2F)-+X=`rBo8+7yO?PVBo!QxDcqCv%n*=n1O-s2naJy)#j6CU|?qQ zba4!caDN+ibJAl4o+%9uMwV*xexFMD^WT1_ZuBuG`J1b1@4Q?UvLVVOH!(WkcmEI3 zAN;Hy3zCmkoNPF}f3l;z)&ZX6fuJKH{p{qKV zG2a7iYl9lOiVF8unL3|~*(EI>G#F%Z3YRO}b1XPw`0K?Y>t7Oq8NK{3wkeeH6$rP5 zGcIE;pRK}Y^KoI2L!#qq<_edCQ%^GezLLhCd&{4NsiKrYZfjWD9#$R3T#Fl3J*R)p zw9o4o&Cfcpqujzl_leVE=BhZ^h&q7@?d+!tF8p1tXvc6l(2BK8<#VKh%H)RXD?b=+ zD%;(ifByMz;nQ}RHr!i+e!G>OGT$UGCEF-qZ)0a`YiqY5hQ~nLaQ>go#s5rx8#U!$ zaZIjMcIdUr$og;l!c}%p#6E!lc5kM$uW$eU{rh(I!Dz-x$p;MYH@kV=DVvbJL1BWO z-Tr<1?CiU2w=qpW{rzjz-+eJ+EFM1}#cpRRVXWUfjg!qqHvUqp#Izsl#55dO_AOei z-Prfs;PCpT|3&Lq>sVP@5A;6Y;5;{3zre+ze%{M&NxMar)0eYbr}@2z{ITivSC$1F znn%qqb9h(_H11gPK(>lGXu@K_0~{xAa?CgWxh8Xo)Ai}Ub$S_EnJpt1WUsMw2%mg- zk{g3^LHn;qY}aKK7&FVI7_-=a7_GNpNf(0H5ACE?(~z;_R~F)w=D)I2w8!yeX- zdk69^GM;$1X4yn8g#?Cf9g718nKq{`7H4gl?0$3)Uz*DvMSasb@82~XH)K73$&G8_ z!a#=4^|PL}Uz8JPjdFYa=JF<|fA60)M-^Y_YPQqWPHC*OW0@CQX3BW5@fok~9gZ&z z&7zEj7m}46!oP%OuFKdjHJj;e!x2x y?e$cX=Ks0n@AV5Zo7ep-XDCdrn|pa%Jp;?}c`5I5GqwY>2!p4qpUXO@geCw00>2&r literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json index 4aa4d60ccb..fc4030c881 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9469334f398230e1d7720c7d507461f1133891 GIT binary patch literal 947 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json index 90e3c14bb5..c573d38e18 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github)", + "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github), lamia & segment by @noctyrnal", "size": { "x": 32, "y": 32 @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..0687aa9d0d799b9133c80c2340ec781d23c73122 GIT binary patch literal 576 zcmV-G0>AxHj0uGb-rPaxaWD{M zu=9%DZU2B5Fa8U{7^|m&%;UhD2VsgZg-$lyp$yYdyQXC(w3QmN#e<9VB)>pqm%P&t z-k0}2yx*6{lYHOjDr4kIyGH;KKm-s0L;w*$1P}p40Dvqilq3m&)zQ&^9+Bnqa|uB7 z))WQ^nmyU?cG_2cYz;Qs4ZsZ1u*94f%G`J8W7k6BK~DN9p0T8hcb3D~ZS+B)T4sYEiF z1fWzZ2~9!Rgl6@a;^HGVW^>g0F)DLo>})sL*=|yq8>8Njk Date: Fri, 16 Feb 2024 22:37:24 -0500 Subject: [PATCH 39/85] damage system refactor --- .../Nyanotrasen/Lamiae/ClientLamiaVisuals.cs | 6 +++ .../Nyanotrasen/Lamiae/LamiaSystem.cs | 35 +++++++++++++++--- .../Nyanotrasen/Lamiae/LamiaComponent.cs | 7 ++++ .../Lamiae/LamiaSegmentComponent.cs | 7 +++- .../Entities/Mobs/Species/lamia.yml | 27 +++++++------- .../brute_damage.rsi/Chest_Brute_120.png | Bin 0 -> 358 bytes .../brute_damage.rsi/Chest_Brute_200.png | Bin 0 -> 755 bytes .../Lamia/brute_damage.rsi/Chest_Brute_60.png | Bin 0 -> 172 bytes .../Lamia/brute_damage.rsi/Head_Brute_120.png | Bin 0 -> 207 bytes .../Lamia/brute_damage.rsi/Head_Brute_200.png | Bin 0 -> 604 bytes .../Lamia/brute_damage.rsi/Head_Brute_60.png | Bin 0 -> 148 bytes .../Lamia/brute_damage.rsi/LArm_Brute_120.png | Bin 0 -> 178 bytes .../Lamia/brute_damage.rsi/LArm_Brute_200.png | Bin 0 -> 363 bytes .../Lamia/brute_damage.rsi/LArm_Brute_60.png | Bin 0 -> 148 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_120.png | Bin 0 -> 5504 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_200.png | Bin 0 -> 518 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_60.png | Bin 0 -> 161 bytes .../Lamia/brute_damage.rsi/RArm_Brute_120.png | Bin 0 -> 5587 bytes .../Lamia/brute_damage.rsi/RArm_Brute_200.png | Bin 0 -> 6173 bytes .../Lamia/brute_damage.rsi/RArm_Brute_60.png | Bin 0 -> 145 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_120.png | Bin 0 -> 5575 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_200.png | Bin 0 -> 465 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_60.png | Bin 0 -> 163 bytes .../Effects/Lamia/brute_damage.rsi/meta.json | 26 +++++++++++++ .../Lamia/burn_damage.rsi/Chest_Burn_120.png | Bin 0 -> 275 bytes .../Lamia/burn_damage.rsi/Chest_Burn_200.png | Bin 0 -> 732 bytes .../Lamia/burn_damage.rsi/Chest_Burn_60.png | Bin 0 -> 135 bytes .../Lamia/burn_damage.rsi/Head_Burn_120.png | Bin 0 -> 163 bytes .../Lamia/burn_damage.rsi/Head_Burn_200.png | Bin 0 -> 299 bytes .../Lamia/burn_damage.rsi/Head_Burn_60.png | Bin 0 -> 135 bytes .../Lamia/burn_damage.rsi/LArm_Burn_120.png | Bin 0 -> 229 bytes .../Lamia/burn_damage.rsi/LArm_Burn_200.png | Bin 0 -> 317 bytes .../Lamia/burn_damage.rsi/LArm_Burn_60.png | Bin 0 -> 146 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_120.png | Bin 0 -> 177 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_200.png | Bin 0 -> 337 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_60.png | Bin 0 -> 127 bytes .../Lamia/burn_damage.rsi/RArm_Burn_120.png | Bin 0 -> 237 bytes .../Lamia/burn_damage.rsi/RArm_Burn_200.png | Bin 0 -> 325 bytes .../Lamia/burn_damage.rsi/RArm_Burn_60.png | Bin 0 -> 167 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_120.png | Bin 0 -> 180 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_200.png | Bin 0 -> 241 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_60.png | Bin 0 -> 137 bytes .../Effects/Lamia/burn_damage.rsi/meta.json | 26 +++++++++++++ 43 files changed, 114 insertions(+), 20 deletions(-) create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/meta.json diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs index 32d700ff81..a9510fe6da 100644 --- a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs +++ b/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs @@ -1,4 +1,5 @@ using Robust.Client.GameObjects; +using System.Numerics; using Content.Shared.Nyanotrasen.Lamiae; namespace Content.Client.Nyanotrasen.Lamiae; @@ -16,6 +17,11 @@ private void OnAppearanceChange(EntityUid uid, LamiaSegmentComponent component, { if (args.Sprite == null) return; + if (AppearanceSystem.TryGetData(uid, ScaleVisuals.Scale, out var scale) && TryComp(uid, out var sprite)) + { + sprite.Scale = (new Vector2(scale, scale)); + } + if (AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.Armor, out var worn) && AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.ArmorRsi, out var path)) { diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 467d2f2eac..ecfc834d2b 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -1,5 +1,6 @@ using Robust.Shared.Physics; using Content.Shared.Damage; +using Content.Shared.Explosion; using Content.Shared.Clothing.Components; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Markings; @@ -8,7 +9,6 @@ using Content.Shared.Tag; using Content.Shared.Standing; using Content.Shared.Storage.Components; -using Robust.Shared.Prototypes; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics.Systems; @@ -58,9 +58,9 @@ public override void Update(float frameTime) revoluteJoint.CollideConnected = false; } if (segment.segment.SegmentNumber < segment.segment.MaxSegments) - Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0f, 0.15f)); + Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); else - Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, 0.1f)); + Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); var joint = _jointSystem.CreateDistanceJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); joint.CollideConnected = false; @@ -84,6 +84,7 @@ public override void Initialize() SubscribeLocalEvent(OnDidUnequipEvent); SubscribeLocalEvent(OnHitSelf); SubscribeLocalEvent(TailCantStand); + SubscribeLocalEvent(OnSnekBoom); } ///

@@ -101,6 +102,9 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se if (!TryComp(uid, out var species)) return; if (!TryComp(args.Lamia, out var humanoid)) return; + if (!TryComp(uid, out var appearance)) return; + + _appearance.SetData(uid, ScaleVisuals.Scale, component.ScaleFactor, appearance); if (humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings)) { @@ -116,6 +120,7 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { + component.DamageModifierConstant = Math.Clamp(component.DamageModifierConstant, 1, component.NumberOfSegments); SpawnSegments(uid, component); } @@ -154,7 +159,7 @@ private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, Ent private void HandleSegmentDamage(EntityUid uid, LamiaSegmentComponent component, DamageModifyEvent args) { - args.Damage = args.Damage / component.DamageModifyFactor / 5; + args.Damage = args.Damage / component.DamageModifyFactor; } private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component, DamageChangedEvent args) { @@ -190,18 +195,33 @@ private void SpawnSegments(EntityUid uid, LamiaComponent component) private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lamiaComponent, int segmentNumber) { LamiaSegmentComponent segmentComponent = new(); + segmentComponent.Lamia = lamia; segmentComponent.AttachedToUid = uid; segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; - segmentComponent.DamageModifyFactor = lamiaComponent.NumberOfSegments; + float taperConstant = segmentComponent.MaxSegments / 2; + float damageModifyCoefficient = lamiaComponent.DamageModifierConstant / lamiaComponent.NumberOfSegments; + segmentComponent.DamageModifyFactor = lamiaComponent.DamageModifierConstant * damageModifyCoefficient; + segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentComponent.MaxSegments / 10); + EntityUid segment; if (segmentNumber == 1) segment = EntityManager.SpawnEntity("LamiaInitialSegment", Transform(uid).Coordinates); else segment = EntityManager.SpawnEntity("LamiaSegment", Transform(uid).Coordinates); + if (segmentNumber >= taperConstant) + { + segmentComponent.OffsetSwitching = 0.15f * MathF.Pow(1.02f, segmentNumber); + segmentComponent.ScaleFactor = MathF.Pow(0.99f, segmentNumber); + } + if (segmentNumber % 2 != 0) + { + segmentComponent.OffsetSwitching *= -1; + } segmentComponent.Owner = segment; segmentComponent.SegmentNumber = segmentNumber; EntityManager.AddComponent(segment, segmentComponent, true); + _segments.Enqueue((segmentComponent, lamia)); lamiaComponent.Segments.Add(segmentComponent.Owner); return segment; @@ -232,6 +252,11 @@ private void OnDidEquipEvent(EntityUid equipee, LamiaComponent component, DidEqu } } + private void OnSnekBoom(EntityUid uid, LamiaSegmentComponent component, ref GetExplosionResistanceEvent args) + { + args.DamageCoefficient = component.ExplosiveModifyFactor; + } + private void OnDidUnequipEvent(EntityUid equipee, LamiaComponent component, DidUnequipEvent args) { if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, LamiaHardsuitTag)) diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs index 2ef372c10d..13904a4202 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs @@ -13,5 +13,12 @@ public sealed partial class LamiaComponent : Component [DataField("numberOfSegments")] public int NumberOfSegments = 30; + + /// + /// Used to derive how much damage should transfer from segments to body. Higher = less damage transfered. + /// Clamped to NumberOfSegments as a maximum value + /// + [DataField("damageModifierConstant")] + public float DamageModifierConstant = 8f; } } diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs index 7605f9039c..5025f5a965 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs @@ -10,8 +10,11 @@ namespace Content.Shared.Nyanotrasen.Lamiae public sealed partial class LamiaSegmentComponent : Component { public EntityUid AttachedToUid = default!; - public int DamageModifyFactor = default!; - public bool SexChanged = false; + public float DamageModifyFactor = default!; + public float OffsetSwitching = 0.15f; + public float ScaleFactor = 1f; + public float DamageModifierCoefficient = default!; + public float ExplosiveModifyFactor = default!; public EntityUid Lamia = default!; public int SegmentNumber = default!; public int MaxSegments = default!; diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index 5fcd28e2d0..da5bca4a84 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -119,6 +119,19 @@ - type: NoSlip - type: Internals - type: MobState + - type: DamageVisuals + thresholds: [ 60, 120, 200 ] #these values aren't final, adjust accordingly with thresholds above' + targetLayers: + - "enum.HumanoidVisualLayers.Chest" + - "enum.HumanoidVisualLayers.Head" + - "enum.HumanoidVisualLayers.LArm" + - "enum.HumanoidVisualLayers.RArm" + damageOverlayGroups: + Brute: + sprite: Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi + color: "#FF0000" + Burn: + sprite: Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi - type: MobThresholds thresholds: 0: Alive @@ -137,19 +150,6 @@ - type: BuckleVisualizer - type: CreamPiedVisualizer state: creampie_human - - type: DamageVisuals - thresholds: [ 60, 120, 200 ] #these values aren't final, adjust accordingly with thresholds above' - targetLayers: - - "enum.HumanoidVisualLayers.Chest" - - "enum.HumanoidVisualLayers.Head" - - "enum.HumanoidVisualLayers.LArm" - - "enum.HumanoidVisualLayers.RArm" - damageOverlayGroups: - Brute: - sprite: Mobs/Effects/brute_damage.rsi - color: "#FF0000" - Burn: - sprite: Mobs/Effects/burn_damage.rsi - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Generic_mob_burning @@ -202,6 +202,7 @@ layer: - MobLayer - type: Lamia + damageModifierConstant: 12 - type: Speech speechSounds: Alto - type: Vocal diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_120.png new file mode 100644 index 0000000000000000000000000000000000000000..404f932b64e8a140622a7bb3263dfdb19b12941d GIT binary patch literal 358 zcmV-s0h#`ZP)wQ0Hp`pO~p-n+XgdSSiI~j6>I%l~QWG1~VI~<6|T^#<(4Wl}afVLKvQe zp#eAsn`sxp*@+k)fEeS}gF^_*7r{RGvRAO*uyQe!)sS=k5vbk=nEkG4c@e68fb{1$ z=iJnFa#Xe7PS@EBXZXegCdu#?%v_>JfNVZ@|lnS$Rx-%zB$XC3j!C7_QE{r0fxp z_Xa%Lh^*cRyv2q{)gvJ74LHAlibBqr@-+bf0N}s*0?!i=k{(iRx-Es!xj?z6_M8k8u(!KyMe!JTF zq$pM*^A9t_jAZ~AhG7_nVVM7uOU+HU+bz-c+uPg4IhTwvRb$madPh5I#`;lu!#vMP z2mv9)!|!`zUdd61Y?Fb!{@_S=M!Z&>V&#+fzeP1~}&uiNzQZLdgI1eP5l1&oa+*qR9h52mvw1>;&gr zv3`*QVvLYdf>K^eiDg;xI@~+t6@(D7*0L;+QUbUy2`MFFjKyOXS5D{L!==&Z*2xzT;>k6+zDV24BdmU)Wydsa? zZnq?aK#VaPK-cvB%I5*+TsrC><2S?OU z9IbI26M)=yy!TK_!FzvN4In+G6o3!MT(8&Do<_4V&bdTRIg4=|lXEV;y6ry2cNy_l zO#bZ1|84pV!!QiPFbu;m48t%C^AFPW8hISY)O8&IVB5CSUQ2(aZuR*9;A3xK+qP_2 z%XrT~8l+jfElxB!z*-Aq47#q%pI5WjGR8FTMm0GAxNlP#V{$~!VB0nrW2&~pj}-3? z@6lRgSrz~|CHh3ybvg1{>!z`qGGJMjY{0f{r)0riXCHuCnwJ0>&>D#nNUL@7K%oPU zRi4_AK!JzF;M;sv z=M9pv4emb+0<-lec&j)lB?Fc12?*7mo47oC-TPNYA2a$a(@QvB{<z@qLn`LHy=BdJSb>Kj;L30P zJI&cYWnNBE^eD*);W=BaEc7Y;L(+7nn$=s&-po7v`rPvlk6fqhw;dgG9&Ekl{m@wY z;_+9-Gu0Mzo))vO`aOMzxHixJxG2Ay&Ia0MKpPks4t##IPjXkOe1O-zUWZq?2VP!$ z{V|Yff6k##NBi%U^?twTwfg0km`!aD-pl~2fAfyl(4|h3<@jtK5Z}|)&t;ucLK6Uw C8dqun literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png new file mode 100644 index 0000000000000000000000000000000000000000..f1de5695c5adc09012210e68ce278db3418f53e0 GIT binary patch literal 604 zcmV-i0;BzjP)0sdQqWRTaRScZHbr~@A0Um}oWUoca+%iB^96{MDiRVG@D`C- zv|4Ew=fUbp^EE_K!iqKVttVrSzYlpLjeT@8%HY ze!s(73n9c?MTjZ@=iCE8mSs2`4&a=7t@SRQV2trX2w#>Zs;WX+mTwhdbpgWSrIc(O zM*zU_ctqEAZ0jNzV|>#ztgdSSfVCE<(}@9yE&^Nge|3j4}RvKKpPC-z|?@$6p?oxx~beYFQzKpQZ_Enxd|2OM{}`@;SWOFU-jB;gZB-JInu3x)WxuR_{B<4%7$)bxV>J|7jIh%J#j8 q%vgKKWYwx`>nF^VwPplK<~(N<2@$UM6E>d>;(EIJxvXARDpvb;L>0H zHwOjQJ#hJVS$;w1Ewg>*42+_DLW~Ry2W)0q-jm4g7Uh($<(RMiuVSXmWTU%&h{fl94CvRRN|6XxsK7@|^s-t|l?3 zY5GY*(=-p0ps!%nusj;yZ|1MS)wm?Ux*2+IuPzCws>(E8Q52@}T&Zfx@9oh_$SXgN zWAgsUGN-EP=++fuyxzn`o-1cH@Jp^f000000002MQ9g_4x^DO1<6E5#mSrh>lW>a! zgb-w&XQ`@6>bl@5v!8+uhKDPU3|NROC006)z`v!x_nOBEXZsPy|002ov JPDHLkV1j2tqGJF6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcf2e505a1897df1f36f5b3f381079d437dfd64 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=(Vi}jAr*7p-q^_7V8FxT(EZo_ zr{bo_6)P8bu!xm2N37T1S0D;hcYkV%+RXgt6-#_Ctg_vDkNJ^q+kUyP~!- q&Sm?$D7OHpjDg|BL2Wq@y`z|ErJ~%-doj#cL0nH)KbLh*2~7b1+AwJV literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png new file mode 100644 index 0000000000000000000000000000000000000000..680ec3009a5017c345f61bb7d2ec136d38c22057 GIT binary patch literal 5504 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 qdkx7Mfj2k;+*3=&m}^= zv{)=eiyd5mvMl+0K2zWK68XH;G!5l>{yE2CyWKJok+qin_f&Sf9XCzG{#zpEcW8j+ za(QpbGSGsdtnW|pLiqTr$^KI;x3B1+R#tSz5$&T$;aKi2&S z#u%P@^PY1~v;%_A?Bm6!wWh=2AbuAZWB7W#{`e=cPVf=XT9ekA(ljL^qG1@skHX)Z zkK>q>Qlyj;i5*;kVHij$MO9TrT5E}%o>EFtUDpva(_=RP0000000000006*ClfLFo zt!Wzea|vD7QB_s{y&sVY5&vdCw>;0IuIs36TUxDFqhg2@V6N$qN7hh(7U_V?>Y#*OX-$Wmy)qu4n;Hr;}v3r;;S0&1MrNNfNx~A7om{6uKUw761SM07*qo IM6N<$f-vysivR!s literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..2670821090fb2abb277f7fdc72ac5351a697be70 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=8J;eVAr*7p-rUH0K!JzFVai|k zL=OHVd`rCK1Cl1}h(561d{Ln$P$3X7XRWo(4s%&@R%()H&TXbmDf_lvS6Y;wmv&mH zFJ1fTeWAYpe;_L5Hn&fH{aRu5mTO_|5yxYN8Z6D%EYY5%?+`x+q`=eF&t;ucLK6UH Czc#Y~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png new file mode 100644 index 0000000000000000000000000000000000000000..f68f0c4f15f84d288af693e957fa8e6a5a67e8de GIT binary patch literal 5587 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png new file mode 100644 index 0000000000000000000000000000000000000000..6b99414d0be62c8814460c118b82a3c7effd6ded GIT binary patch literal 6173 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4a031f15166f01e7cfbdce1b3f580854ff090c GIT binary patch literal 145 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 Hu0mjf9l6Tm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..44aae3c0bfb91ebf9003c1a337b4e3bd96c7f5ec GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=S)MMAAr*7p-aN?JU?9M9AmRVg zB^}xtwnz3WbY$$AJhMI_(rkS;FHj`|!vhzWGwY3IzTUf@dMd&po4Z&y*Lro1s>_ix zyL`ebYp05;O?#Wo1XgMv@X({^YT5IP5|3ZXe6?_947ktdbwGR4;WHNJKngrv{an^L HB{Ts5vF$nj literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json new file mode 100644 index 0000000000..583346556e --- /dev/null +++ b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/Citadel-Station-13/Citadel-Station-13/blob/971ddef989f7f4f365a714ef3d4df5dea2d53d9a/icons/mob/dam_mob.dmi", + "size": {"x": 32, "y": 32}, + "states": [ + {"name": "Head_Brute_60", "directions": 4}, + {"name": "LArm_Brute_60", "directions": 4}, + {"name": "LLeg_Brute_60", "directions": 4}, + {"name": "RArm_Brute_60", "directions": 4}, + {"name": "RLeg_Brute_60", "directions": 4}, + {"name": "Chest_Brute_60", "directions": 4}, + {"name": "Head_Brute_120", "directions": 4}, + {"name": "LArm_Brute_120", "directions": 4}, + {"name": "LLeg_Brute_120", "directions": 4}, + {"name": "RArm_Brute_120", "directions": 4}, + {"name": "RLeg_Brute_120", "directions": 4}, + {"name": "Chest_Brute_120", "directions": 4}, + {"name": "Head_Brute_200", "directions": 4}, + {"name": "LArm_Brute_200", "directions": 4}, + {"name": "LLeg_Brute_200", "directions": 4}, + {"name": "RArm_Brute_200", "directions": 4}, + {"name": "RLeg_Brute_200", "directions": 4}, + {"name": "Chest_Brute_200", "directions": 4} + ] +} diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..5a68c6fd86142ec705e4a3fdfc31362539c99527 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=w>(`OLn`LHy`{+4Y#?&%W7_ls zNtT>_!U`TADnx{BPK#EpK6~z+$lO<#Civv2zMuN$|K}&aZ#kVkYzfrN@Z+G-*N10r zPQSxcdQ~Ru+3c9-b5^fD_KsnX#|Ndf3Vd}V3AH|2H64xAM(E) z=IDLc;`+>e8uO(RgH>~TSG3$c|8~OH?lX@o&sY8tcqXgk{zSFs`N0Yqp!x%ndl`KG VH|^bN+w=^i-_zC4Wt~$(69C9tdyoJC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca0dc67f153aeab95b43905762a2ef11afc6ea5 GIT binary patch literal 732 zcmV<20wev2P)OnB%y`~1$%+~T0GsP;T2?`|QX;pO6*VYtnS+&}qyAtC)}$oMGy*NZpsJM; zS*AfXDaqTL3gs=Z6b_?kr)k5sMJP0fZo7TuTu>cPmA6*6-9{)hhYi~nMLSJP;jr>} z!cPO=zJA8s%ws%TdXE12PrNDDmB+aWdCR2P`KS2N`i}0O-+1xz6=KQEWP5SH0q>sQ z-z{k02Hu)(FMd|webqOd967K|gUa=W*xxPCr(fr&A3CbT1Xe$EP_)zZ`pG;ZTLod6 z2Av$K_n~wK6zw!^%N?<>I12!XY!$?%bAYbXRxa#^_mJy4ZCpABh-?)E04yxdVq5O$ z*@|u>xm05CZ_v*P9JIa_HOSkGuKL#+(OtY+DNXl--v-mXe=x=vV~jDz7-Nhv#{OeL zf1kf=b+2(BOUrDWbUdQYr4l5w@!Ro8d{jBqU#5~z0H8l7Fe(=i z#Es0Hn-l2tE(R&CNy()W^ytAuxVeC!<0+j1>#F}ZicY5fA{LT1`yBF)z4*}Q$iB}5+Ev@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..90d69223b6d72eaa60f7cc6f0db1e382c471f0b7 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=S)MMAAr*7p-rC69V8Fw2Am_ML zPUC{}GA3_0YgM$CJaK&|_G5eWZjlE5Z>2la&&<0WnSJNk?(!_=^~tZp7Mzu`t7$so z2Q&u=K8SOE|JlMZ+!5aw3`tm>CnJl7G|{e*ykymKwM8(KbLh* G2~7afpFL6l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..36b911481623f94d094667de464ded479f148ba2 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=pFCY0Ln`LHy=BPP z;kJ&BIsUy}9Wwk&D+SCiry2x{&U}{n$z+R`(PoA9X-_j31smzu{Y{WOeyObXiP^&n zjjdWndwH+>PoMS1EM}>eQR#LCf8pHSc2UPR`ZjpS+L!&R$uha3Z?Ny*W1nY^O+0)y z(m=ODz~}Q^M2>!(}fN+hJEVT!P^~odTaTfovc7@Kp=42zwnU%c7b!JBOEmt a!9vk$ii)D0!fO`mgSeiqelF{r5}E*XE+$<7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8da637caf5e57123777180ed856099f3d9a25f GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ydl>XLn`LHy=BP97%0H@!2OQn z>ZeM2ijP>7qyld~+gf#1E$=Z?$)Z4uqpQ9#omqF{_de!7Gf%2qKC^^{fkEKGhB%Y| zGklj^&J(sYjFSdhu4C*-xzv1Lpn0hfg@wr5ep!X7#*i zz5DO0d+t1oE#eMJ&97%* b_;E*Ca+c+*#_&@wK?Zud`njxgN@xNAQ7&Fy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc53776594eda8616ae777b1fe7f36586905cd8 GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W)haSW-L^Y)f4*C7XiwucwP zX2%>Zu3*+>J$TBCN32PStBHfr)nnm=OU5^k9&_T>c6=M7?RY88%>K=9nFq;|X=UA! zf2z#g3JH_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8f7bf9cae96ef3cea682d8565b29613da562f1 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k)AG&Ar*7p-t^>UP~>57n6ikK zRhudBM&o%cg;s|df)~Dc+52(=6*^s+^qbdkdR9EAw}p||ZkKg$N?-H$DF9`FU_+bu oFU>OlL(hMFFHxSSC&$3>jAw$4vH_dU0!xs*r>mdKI;Vst065GmP5=M^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..a84ef88da87977eec2d0cbbe110b03200b365640 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=6`n4RAr*7p-g4w^FyLXmz*ca`c=j~M54gKgaE${Gx%7ZK5D%9MEVCuTKAlzN*P<$-+lD5cenb#`^;y~ z@L6w9^wR_y2?7UxKhiK+m;J-VQOQH5_1P2^p@l&+d8(7nie)-%x4-oLbf{8@)});- zQUX8btu%cFlm(JnANJPt&Nebs$0 zW{8^@7$(F&_A`#ZoizK}=gMV=yVo3xvATC|op(cUe%aMowW~+D=HP8 de%W5WQAe(?DWX@r#n>HWgr}>Y%Q~loCIC+AjaUEx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png new file mode 100644 index 0000000000000000000000000000000000000000..70b91d8824484b7eb0d26e2f4a9204086bd1fc89 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Zk{fVAr*7p-U{SoP!MoA=$$1d zEO98{+C{Fe2aRV$D&&9f76d8-f&-lwU;Wv5v@h=TXIGl4mi-{tr2VRY@S^jLA5`0WO!f?qP<$27bx5>-)avwJ(2yP#gb>Bx}@MZYU-^p>aa zADnWV5oiEIgP>*DQihZ$W#2c?-Bb7eU*-Oj h#ez{c=d&^}OjyUi&A=p-f2ASV08dvxmvv4FO#t4~U0nbG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..77e463d02f25c942442c9631580c675c1c40de16 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC3<1aSW-L^Y)fK*C7Lu;~$r| ze~@@L?*Q`-Eh{Tg7lHpgvMvHH1qEMJ?k!!{wIjmi&MO7RLIYplXrcY{Emim1$z?tW zWdR!3@Ve}FXwomAt0^B#E|}k2kfE1y#&;T@N2=WmtMJh5ndT2Q1PfPh4GEk2SABBa z<(cCDr>O1zCh+EpblIgT3ch8zjNh*Bo@$WlF*!E6p;+d5`L1UPmeOiU>-7&=_HBK= zm34(}UQve<_r)&5xHZ~JO6?kxZaoewlL1-{0uAypvqWo>ztlH8y0pN=y#6NRd*kxy z%Ur`&e*3mdKI;Vst0K3J75C8xG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png new file mode 100644 index 0000000000000000000000000000000000000000..96b96b566bfdcc8fe9294152e98b75b18f72bed0 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=d7dtgAr*7p-a5$HV8G*W@eu>x zL!NVwb><#WlsQ#e!sy6-RPDpPo$dY_dzUN)sz0!Jao+V8ZDEqLlTX>4)PH;Vc4KMW zuPZzgcFr|8w|7}Bv(a{DpfaE>EHnS}T)2Gy_H_gE^S5?NFflNwlrwk5$eFx$b^HTT N;pyt{O)K5hU2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..efe3ad8b53949254861fd643dc9be21a0e3ba863 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=)t)YnAr*7p-rUIR;2_bKxN(l| z5h<(QYg|Ikk?me91uf<0r8k`Z9sh3C{#8Kb3=9p%wbyg}&F5%dGwV;jqpD)|F|zag z+KAvsAKH_0Uz;3>b=tTrHRExcy~=h*u!e%GvDF8D^*Pt+R!0BH?38|0|7v&IXWokS YvU{Ah-&>p9ItxFVdQ&MBb@0AKk;DF6Tf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..978e01358f9916f1bafbbe11dc05604611641e98 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=J3L(+Ln`LHy=BOC$UuZG;bYOg zMHW-n$?A&6?BbetAbO|8uBvvcR6&+bv)XI#Z!_0B#c}M}9>oaM%5cCt_I3{t6+f>C z)486vn{)fmB@x>`8?;!r-0^um$MyPe-SnGFl+vP>t;;>OZ{4A(4)NisatAxU&KEgd zW+`___Ry1=m%duPef*bk(iGiC_N*X78Ga;Ae9qFd*4Senrv;tljbpuYZdO{ Date: Fri, 16 Feb 2024 22:53:58 -0500 Subject: [PATCH 40/85] more equation fine tuning --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 7 ++++--- Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs | 7 ------- Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs | 1 + 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index ecfc834d2b..beedfd7253 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -198,10 +198,11 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami segmentComponent.Lamia = lamia; segmentComponent.AttachedToUid = uid; segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; + segmentComponent.DamageModifierConstant = segmentComponent.MaxSegments * 0.4f; float taperConstant = segmentComponent.MaxSegments / 2; - float damageModifyCoefficient = lamiaComponent.DamageModifierConstant / lamiaComponent.NumberOfSegments; - segmentComponent.DamageModifyFactor = lamiaComponent.DamageModifierConstant * damageModifyCoefficient; - segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentComponent.MaxSegments / 10); + float damageModifyCoefficient = segmentComponent.DamageModifierConstant / lamiaComponent.NumberOfSegments; + segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; + segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentComponent.MaxSegments * 0.1f); EntityUid segment; if (segmentNumber == 1) diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs index 13904a4202..2ef372c10d 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs @@ -13,12 +13,5 @@ public sealed partial class LamiaComponent : Component [DataField("numberOfSegments")] public int NumberOfSegments = 30; - - /// - /// Used to derive how much damage should transfer from segments to body. Higher = less damage transfered. - /// Clamped to NumberOfSegments as a maximum value - /// - [DataField("damageModifierConstant")] - public float DamageModifierConstant = 8f; } } diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs index 5025f5a965..4973cdb2c5 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs @@ -18,6 +18,7 @@ public sealed partial class LamiaSegmentComponent : Component public EntityUid Lamia = default!; public int SegmentNumber = default!; public int MaxSegments = default!; + public float DamageModifierConstant = default!; [DataField("segmentId")] public string? segmentId; } From f4834152d6ffc731ec0818d3f5bfe94171585513 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 16 Feb 2024 22:54:42 -0500 Subject: [PATCH 41/85] Update LamiaSystem.cs --- Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index beedfd7253..d0f2669ec7 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -120,7 +120,6 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { - component.DamageModifierConstant = Math.Clamp(component.DamageModifierConstant, 1, component.NumberOfSegments); SpawnSegments(uid, component); } From 479ee18dbc45d9cc150258fe4cd14149f37039a6 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 16 Feb 2024 23:05:07 -0500 Subject: [PATCH 42/85] Update lamia.yml --- .../Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml index da5bca4a84..eeb7a9bc25 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml @@ -202,7 +202,7 @@ layer: - MobLayer - type: Lamia - damageModifierConstant: 12 + numberOfSegments: 30 - type: Speech speechSounds: Alto - type: Vocal From c5026c25badb239f2d789e71ae68777fdefe313c Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 16 Feb 2024 23:39:06 -0500 Subject: [PATCH 43/85] Fixing the portal bug --- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 5 ++- Content.Server/Teleportation/PortalSystem.cs | 18 +++++++- .../Systems/SharedPortalSystem.cs | 10 ++++- .../DeltaV/Datasets/Names/cyno_female.yml | 41 +++++++++++++++++++ .../DeltaV/Datasets/Names/cyno_last.yml | 40 ++++++++++++++++++ .../DeltaV/Datasets/Names/cyno_male.yml | 22 ++++++++++ 6 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml create mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml create mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index d0f2669ec7..336c510309 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -7,6 +7,7 @@ using Content.Server.Humanoid; using Content.Shared.Inventory.Events; using Content.Shared.Tag; +using Content.Shared.Teleportation.Components; using Content.Shared.Standing; using Content.Shared.Storage.Components; using Robust.Shared.Containers; @@ -138,6 +139,8 @@ private void OnJointRemoved(EntityUid uid, LamiaComponent component, JointRemove if (!component.Segments.Contains(args.OtherBody.Owner)) return; + if (HasComp(uid)) return; + foreach (var segment in component.Segments) QueueDel(segment); @@ -179,7 +182,7 @@ private void TailCantStand(EntityUid uid, LamiaSegmentComponent component, Stand args.Cancel(); } - private void SpawnSegments(EntityUid uid, LamiaComponent component) + public void SpawnSegments(EntityUid uid, LamiaComponent component) { int i = 1; var addTo = uid; diff --git a/Content.Server/Teleportation/PortalSystem.cs b/Content.Server/Teleportation/PortalSystem.cs index 76900a7e19..7707c9f265 100644 --- a/Content.Server/Teleportation/PortalSystem.cs +++ b/Content.Server/Teleportation/PortalSystem.cs @@ -1,7 +1,9 @@ -using Content.Shared.Administration.Logs; +using Content.Server.Nyanotrasen.Lamiae; //DeltaV +using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.Ghost; using Content.Shared.Mind.Components; +using Content.Shared.Nyanotrasen.Lamiae; //DeltaV using Content.Shared.Teleportation.Systems; using Robust.Shared.Map; @@ -10,6 +12,7 @@ namespace Content.Server.Teleportation; public sealed class PortalSystem : SharedPortalSystem { [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + [Dependency] private readonly LamiaSystem _lamia = default!; //DeltaV // TODO Move to shared protected override void LogTeleport(EntityUid portal, EntityUid subject, EntityCoordinates source, @@ -17,5 +20,18 @@ protected override void LogTeleport(EntityUid portal, EntityUid subject, EntityC { if (HasComp(subject) && !HasComp(subject)) _adminLogger.Add(LogType.Teleport, LogImpact.Low, $"{ToPrettyString(subject):player} teleported via {ToPrettyString(portal)} from {source} to {target}"); + + //Start DeltaV Code, stops Lamia from crashing because they can't take their tail through a portal + if (TryComp(subject, out var lamia)) + { + foreach (var segment in lamia.Segments) + { + QueueDel(segment); + } + lamia.Segments.Clear(); + _lamia.SpawnSegments(subject, lamia); + } + //End DeltaV Code } + } diff --git a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs index ebd8362411..342ad4516b 100644 --- a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs +++ b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs @@ -1,5 +1,6 @@ -using System.Linq; +using System.Linq; using Content.Shared.Ghost; +using Content.Shared.Nyanotrasen.Lamiae; //DeltaV using Content.Shared.Popups; using Content.Shared.Projectiles; using Content.Shared.Pulling; @@ -104,6 +105,13 @@ private void OnCollide(EntityUid uid, PortalComponent component, ref StartCollid _pulling.TryStopPull(subjectPulling); } + //Start DeltaV Code: Prevent Lamia Segments from entering portals + if (HasComp(subject)) + { + return; + } + //End DeltaV Code + // if they came from another portal, just return and wait for them to exit the portal if (HasComp(subject)) { diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml new file mode 100644 index 0000000000..eea73f1e68 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml @@ -0,0 +1,41 @@ +- type: dataset + id: names_cyno_female + values: + - Abigaia + - Aggeliki + - Alexandra + - Anna + - Anastasia + - Baslikike + - Calliope + - Demetra + - Despoina + - Eirene + - Eleni + - Ephrath + - Esther + - Eunike + - Evangelia + - Georgia + - Ioanna + - Ioudith + - Kandake + - Konstantina + - Kyriake + - Leia + - Lois + - Lydia + - Maria + - Mariam + - Martha + - Orpha + - Paraskeve + - Phoebe + - Priska + - Priskilla + - Rhachel + - Rhode + - Rhouth + - Salome + - Sophia + - Zoe diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml new file mode 100644 index 0000000000..3ed9f62f11 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml @@ -0,0 +1,40 @@ +- type: dataset + id: names_cyno_last + values: + - Alexiou + - Antoniou + - Antonopoulos + - Athanasiou + - Christodoulou + - Dimitriou + - Dimopoulos + - Georgiadis + - Georgiou + - Giannopoulos + - Ioannidis + - Ioannou + - Karagianni + - Karagiannis + - Konstantinidis + - Konstantinou + - Lamprou + - Makris + - Michailidis + - Nikolaidis + - Nikolaou + - Panagiotopoulos + - Papadakis + - Papadimitriou + - Papadopoulos + - Papadopoulou + - Papageorgiou + - Papaioannou + - Papakonstantinou + - Papanikolaou + - Papathanasiou + - Pappas + - Oikonomou + - Theodorou + - Triantafyllou + - Vasileiou + - Vlachos diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml new file mode 100644 index 0000000000..ca72b07fd9 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml @@ -0,0 +1,22 @@ +- type: dataset + id: names_cyno_male + values: + - Amos + - Antonis + - Alexandros + - Athanasios + - Charalampos + - Christos + - Dimitris + - Elias + - Emmanuel + - Evangelos + - Ioannis + - Konstantinos + - Loukas + - Michalis + - Pavlos + - Petros + - Spiros + - Theodoros + - Vasilis From 7c0d2582694ddf1645c240f4199c2aa96a726cc2 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 17 Feb 2024 16:01:55 -0500 Subject: [PATCH 44/85] Segment system refactor complete --- .../Nyanotrasen/Lamiae/LamiaSystem.cs | 31 ++++++---- .../Nyanotrasen/Lamiae/LamiaComponent.cs | 60 +++++++++++++++++++ .../Lamiae/LamiaSegmentComponent.cs | 8 ++- 3 files changed, 85 insertions(+), 14 deletions(-) diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs index 336c510309..6aa420e3cc 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs @@ -99,7 +99,8 @@ public override void Initialize() private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) { component.Lamia = args.Lamia; - _standing.Down(uid); + if (component.BulletPassover == true) + _standing.Down(uid, false); if (!TryComp(uid, out var species)) return; if (!TryComp(args.Lamia, out var humanoid)) return; @@ -121,6 +122,8 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { + Math.Clamp(component.NumberOfSegments, 2, 30); + Math.Clamp(component.TaperOffset, 1, component.NumberOfSegments - 1); SpawnSegments(uid, component); } @@ -179,7 +182,8 @@ private void OnHitSelf(EntityUid uid, LamiaSegmentComponent component, ref Befor private void TailCantStand(EntityUid uid, LamiaSegmentComponent component, StandAttemptEvent args) { - args.Cancel(); + if (component.BulletPassover == true) + args.Cancel(); } public void SpawnSegments(EntityUid uid, LamiaComponent component) @@ -197,24 +201,29 @@ public void SpawnSegments(EntityUid uid, LamiaComponent component) private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lamiaComponent, int segmentNumber) { LamiaSegmentComponent segmentComponent = new(); + segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; + segmentComponent.BulletPassover = lamiaComponent.BulletPassover; segmentComponent.Lamia = lamia; segmentComponent.AttachedToUid = uid; - segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; - segmentComponent.DamageModifierConstant = segmentComponent.MaxSegments * 0.4f; - float taperConstant = segmentComponent.MaxSegments / 2; + segmentComponent.DamageModifierConstant = lamiaComponent.NumberOfSegments * lamiaComponent.DamageModifierOffset; + float taperConstant = lamiaComponent.NumberOfSegments - lamiaComponent.TaperOffset; float damageModifyCoefficient = segmentComponent.DamageModifierConstant / lamiaComponent.NumberOfSegments; segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; - segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentComponent.MaxSegments * 0.1f); + segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (lamiaComponent.NumberOfSegments * lamiaComponent.ExplosiveModifierOffset); EntityUid segment; if (segmentNumber == 1) - segment = EntityManager.SpawnEntity("LamiaInitialSegment", Transform(uid).Coordinates); + segment = EntityManager.SpawnEntity(lamiaComponent.InitialSegmentId, Transform(uid).Coordinates); else - segment = EntityManager.SpawnEntity("LamiaSegment", Transform(uid).Coordinates); - if (segmentNumber >= taperConstant) + segment = EntityManager.SpawnEntity(lamiaComponent.SegmentId, Transform(uid).Coordinates); + if (segmentNumber >= taperConstant && lamiaComponent.UseTaperSystem == true) + { + segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset * MathF.Pow(lamiaComponent.OffsetConstant, segmentNumber - taperConstant); + segmentComponent.ScaleFactor = lamiaComponent.StaticScale * MathF.Pow(1f / lamiaComponent.OffsetConstant, segmentNumber - taperConstant); + } else { - segmentComponent.OffsetSwitching = 0.15f * MathF.Pow(1.02f, segmentNumber); - segmentComponent.ScaleFactor = MathF.Pow(0.99f, segmentNumber); + segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset; + segmentComponent.ScaleFactor = lamiaComponent.StaticScale; } if (segmentNumber % 2 != 0) { diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs index 2ef372c10d..c68b5fe827 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs @@ -11,7 +11,67 @@ public sealed partial class LamiaComponent : Component /// public List Segments = new(); + /// + /// A clamped variable that represents the number of segments to be spawned + /// [DataField("numberOfSegments")] public int NumberOfSegments = 30; + + /// + /// If UseTaperSystem is true, this constant represents the rate at which a segmented entity will taper towards the tip. Tapering is on a logarithmic scale, and will asymptotically approach 0. + /// + [DataField("offsetConstant")] + public float OffsetConstant = 1.03f; + + /// + /// Represents the prototype used to parent all segments + /// + [DataField("initialSegmentId")] + public string InitialSegmentId = "LamiaInitialSegment"; + + /// + /// Represents the segment prototype to be spawned + /// + [DataField("SegmentId")] + public string SegmentId = "LamiaSegment"; + + /// + /// Toggles the tapering system on and off. When false, segmented entities will have a constant width. + /// + [DataField("useTaperSystem")] + public bool UseTaperSystem = true; + + /// + /// The standard distance between the centerpoint of each segment. + /// + [DataField("staticOffset")] + public float StaticOffset = 0.15f; + + /// + /// The standard sprite scale of each segment. + /// + [DataField("staticScale")] + public float StaticScale = 1f; + + /// + /// Used to more finely tune how much damage should be transfered from tail to body. + /// + [DataField("damageModifierOffset")] + public float DamageModifierOffset = 0.4f; + + /// + /// A clamped variable that represents how far from the tip should tapering begin. + /// + [DataField("taperOffset")] + public int TaperOffset = 18; + + /// + /// Coefficient used to finely tune how much explosion damage should be transfered to the body. This is calculated multiplicatively with the derived damage modifier set. + /// + [DataField("explosiveModifierOffset")] + public float ExplosiveModifierOffset = 0.1f; + + [DataField("bulletPassover")] + public bool BulletPassover = true; } } diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs index 4973cdb2c5..29f339b4f1 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs @@ -11,13 +11,15 @@ public sealed partial class LamiaSegmentComponent : Component { public EntityUid AttachedToUid = default!; public float DamageModifyFactor = default!; - public float OffsetSwitching = 0.15f; - public float ScaleFactor = 1f; + public float OffsetSwitching = default!; + public float ScaleFactor = default!; public float DamageModifierCoefficient = default!; public float ExplosiveModifyFactor = default!; + public float OffsetConstant = default!; public EntityUid Lamia = default!; - public int SegmentNumber = default!; + public bool BulletPassover = default!; public int MaxSegments = default!; + public int SegmentNumber = default!; public float DamageModifierConstant = default!; [DataField("segmentId")] public string? segmentId; From 467f52005711c7eb2ea67d08d26a23ef7c9e6200 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 19 Feb 2024 21:00:15 -0500 Subject: [PATCH 45/85] Beeg final push for Beta --- .../Lamiae/ClientLamiaVisuals.cs | 4 +- .../Lamiae/LamiaSegmentVisualsComponent.cs | 2 +- .../Lamiae/LamiaSystem.cs | 7 +- Content.Server/Teleportation/PortalSystem.cs | 4 +- .../Lamiae/LamiaComponent.cs | 4 +- .../Lamiae/LamiaSegmentComponent.cs | 2 +- .../Lamiae/LamiaSegmentVisuals.cs | 2 +- .../Lamiae/SharedLamiaeSystem.cs | 2 +- .../Systems/SharedPortalSystem.cs | 2 +- .../Mobs/Customization/Markings/lamia.yml | 0 .../Customization/Markings/lamiasegment.yml | 0 .../Entities/Mobs/Player/lamia.yml | 0 .../Entities/Mobs/Species/lamia.yml | 2 +- .../Objects/Specific/Species/lamia.yml | 1 + .../lamia_inventory_template.yml | 0 .../{Nyanotrasen => DeltaV}/Species/lamia.yml | 0 .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2058 bytes .../Hardsuits/spatio.rsi/meta.json | 22 ++++--- .../Hardsuits/spatio.rsi/segment.png | Bin 0 -> 513 bytes .../Suits/atmos_firesuit.rsi/bottom.png | Bin 0 -> 1036 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1925 bytes .../Suits/atmos_firesuit.rsi/meta.json | 53 ++++++++------- .../Suits/atmos_firesuit.rsi/segment.png | Bin 0 -> 457 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 815 bytes .../Suits/bombsuit.rsi/meta.json | 53 ++++++++------- .../Suits/bombsuit.rsi/segment.png | Bin 0 -> 445 bytes .../OuterClothing/Suits/eva.rsi/bottom.png | Bin 0 -> 914 bytes .../eva.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 902 bytes .../OuterClothing/Suits/eva.rsi/meta.json | 61 ++++++++++-------- .../OuterClothing/Suits/eva.rsi/segment.png | Bin 0 -> 419 bytes .../Suits/eva_emergency.rsi/bottom.png | Bin 0 -> 893 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 941 bytes .../Suits/eva_emergency.rsi/meta.json | 53 ++++++++------- .../Suits/eva_emergency.rsi/segment.png | Bin 0 -> 409 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 903 bytes .../Suits/eva_prisoner.rsi/meta.json | 61 ++++++++++-------- .../Suits/eva_prisoner.rsi/segment.png | Bin 0 -> 369 bytes .../Suits/eva_syndicate.rsi/bottom.png | Bin 0 -> 922 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 919 bytes .../Suits/eva_syndicate.rsi/meta.json | 61 ++++++++++-------- .../Suits/eva_syndicate.rsi/segment.png | Bin 0 -> 434 bytes .../OuterClothing/Suits/fire.rsi/bottom.png | Bin 0 -> 975 bytes .../fire.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1579 bytes .../OuterClothing/Suits/fire.rsi/meta.json | 53 ++++++++------- .../OuterClothing/Suits/fire.rsi/segment.png | Bin 0 -> 425 bytes .../OuterClothing/Suits/rad.rsi/bottom.png | Bin 0 -> 1098 bytes .../rad.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1846 bytes .../OuterClothing/Suits/rad.rsi/meta.json | 53 ++++++++------- .../OuterClothing/Suits/rad.rsi/segment.png | Bin 0 -> 425 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 807 bytes .../Suits/spaceninja.rsi/meta.json | 53 ++++++++------- .../Suits/spaceninja.rsi/segment.png | Bin 0 -> 420 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1238 bytes .../Hardsuits/Combat/advanced.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/advanced.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1309 bytes .../Hardsuits/Combat/corpsman.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/corpsman.rsi/segment.png | Bin 0 -> 399 bytes .../hos.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1328 bytes .../Hardsuits/Combat/hos.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/hos.rsi/segment.png | Bin 0 -> 399 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1242 bytes .../Hardsuits/Combat/medical.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/medical.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1316 bytes .../Hardsuits/Combat/officer.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/officer.rsi/segment.png | Bin 0 -> 399 bytes .../riot.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1259 bytes .../Hardsuits/Combat/riot.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/riot.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1244 bytes .../Hardsuits/Combat/standard.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/standard.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/Combat/warden.rsi/bottom.png | Bin 0 -> 1093 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1333 bytes .../Hardsuits/Combat/warden.rsi/meta.json | 21 ++++-- .../Hardsuits/Combat/warden.rsi/segment.png | Bin 0 -> 399 bytes error.txt | Bin 1698876 -> 0 bytes 78 files changed, 424 insertions(+), 299 deletions(-) rename Content.Client/{Nyanotrasen => DeltaV}/Lamiae/ClientLamiaVisuals.cs (93%) rename Content.Client/{Nyanotrasen => DeltaV}/Lamiae/LamiaSegmentVisualsComponent.cs (67%) rename Content.Server/{Nyanotrasen => DeltaV}/Lamiae/LamiaSystem.cs (98%) rename Content.Shared/{Nyanotrasen => DeltaV}/Lamiae/LamiaComponent.cs (95%) rename Content.Shared/{Nyanotrasen => DeltaV}/Lamiae/LamiaSegmentComponent.cs (95%) rename Content.Shared/{Nyanotrasen => DeltaV}/Lamiae/LamiaSegmentVisuals.cs (80%) rename Content.Shared/{Nyanotrasen => DeltaV}/Lamiae/SharedLamiaeSystem.cs (80%) rename Resources/Prototypes/{Nyanotrasen => DeltaV}/Entities/Mobs/Customization/Markings/lamia.yml (100%) rename Resources/Prototypes/{Nyanotrasen => DeltaV}/Entities/Mobs/Customization/Markings/lamiasegment.yml (100%) rename Resources/Prototypes/{Nyanotrasen => DeltaV}/Entities/Mobs/Player/lamia.yml (100%) rename Resources/Prototypes/{Nyanotrasen => DeltaV}/Entities/Mobs/Species/lamia.yml (98%) rename Resources/Prototypes/{Nyanotrasen => DeltaV}/Entities/Objects/Specific/Species/lamia.yml (98%) rename Resources/Prototypes/{Nyanotrasen => DeltaV}/InventoryTemplates/lamia_inventory_template.yml (100%) rename Resources/Prototypes/{Nyanotrasen => DeltaV}/Species/lamia.yml (100%) create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/bottom.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/bottom.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/bottom.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/bottom.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/bottom.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/bottom.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/spaceninja.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/spaceninja.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/corpsman.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/corpsman.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/officer.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/officer.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/standard.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/standard.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/bottom.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png delete mode 100644 error.txt diff --git a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs b/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs similarity index 93% rename from Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs rename to Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs index a9510fe6da..00a9f798f7 100644 --- a/Content.Client/Nyanotrasen/Lamiae/ClientLamiaVisuals.cs +++ b/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs @@ -1,8 +1,8 @@ using Robust.Client.GameObjects; using System.Numerics; -using Content.Shared.Nyanotrasen.Lamiae; +using Content.Shared.DeltaV.Lamiae; -namespace Content.Client.Nyanotrasen.Lamiae; +namespace Content.Client.DeltaV.Lamiae; public sealed class ClientLamiaVisualSystem : VisualizerSystem { diff --git a/Content.Client/Nyanotrasen/Lamiae/LamiaSegmentVisualsComponent.cs b/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs similarity index 67% rename from Content.Client/Nyanotrasen/Lamiae/LamiaSegmentVisualsComponent.cs rename to Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs index d9ae96881d..b74529e287 100644 --- a/Content.Client/Nyanotrasen/Lamiae/LamiaSegmentVisualsComponent.cs +++ b/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Client.Nyanotrasen.Lamiae; +namespace Content.Client.DeltaV.Lamiae; [RegisterComponent] public sealed partial class LamiaSegmentVisualsComponent : Component diff --git a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs similarity index 98% rename from Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs rename to Content.Server/DeltaV/Lamiae/LamiaSystem.cs index 6aa420e3cc..ee4a763773 100644 --- a/Content.Server/Nyanotrasen/Lamiae/LamiaSystem.cs +++ b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs @@ -15,9 +15,9 @@ using Robust.Shared.Physics.Systems; using Robust.Shared.Physics.Components; using System.Numerics; -using Content.Shared.Nyanotrasen.Lamiae; +using Content.Shared.DeltaV.Lamiae; -namespace Content.Server.Nyanotrasen.Lamiae +namespace Content.Server.DeltaV.Lamiae { public sealed partial class LamiaSystem : EntitySystem { @@ -200,7 +200,7 @@ public void SpawnSegments(EntityUid uid, LamiaComponent component) private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lamiaComponent, int segmentNumber) { - LamiaSegmentComponent segmentComponent = new(); + EnsureComp(uid, out var segmentComponent); segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; segmentComponent.BulletPassover = lamiaComponent.BulletPassover; segmentComponent.Lamia = lamia; @@ -232,7 +232,6 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami segmentComponent.Owner = segment; segmentComponent.SegmentNumber = segmentNumber; - EntityManager.AddComponent(segment, segmentComponent, true); _segments.Enqueue((segmentComponent, lamia)); lamiaComponent.Segments.Add(segmentComponent.Owner); diff --git a/Content.Server/Teleportation/PortalSystem.cs b/Content.Server/Teleportation/PortalSystem.cs index 7707c9f265..a328573fc9 100644 --- a/Content.Server/Teleportation/PortalSystem.cs +++ b/Content.Server/Teleportation/PortalSystem.cs @@ -1,9 +1,9 @@ -using Content.Server.Nyanotrasen.Lamiae; //DeltaV +using Content.Server.DeltaV.Lamiae; //DeltaV using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.Ghost; using Content.Shared.Mind.Components; -using Content.Shared.Nyanotrasen.Lamiae; //DeltaV +using Content.Shared.DeltaV.Lamiae; //DeltaV using Content.Shared.Teleportation.Systems; using Robust.Shared.Map; diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs similarity index 95% rename from Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs rename to Content.Shared/DeltaV/Lamiae/LamiaComponent.cs index c68b5fe827..4aadc19604 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaComponent.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs @@ -1,7 +1,7 @@ -namespace Content.Shared.Nyanotrasen.Lamiae +namespace Content.Shared.DeltaV.Lamiae { /// - /// Controls initialization of the multisegmented lamia species. + /// Controls initialization of any Multi-segmented entity /// [RegisterComponent] public sealed partial class LamiaComponent : Component diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs similarity index 95% rename from Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs rename to Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs index 29f339b4f1..9e54c1340b 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs @@ -1,6 +1,6 @@ using Robust.Shared.GameStates; -namespace Content.Shared.Nyanotrasen.Lamiae +namespace Content.Shared.DeltaV.Lamiae { /// /// Lamia segment diff --git a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs similarity index 80% rename from Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs rename to Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs index 4636cd031a..7de06db4e3 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/LamiaSegmentVisuals.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs @@ -1,6 +1,6 @@ using Robust.Shared.Serialization; -namespace Content.Shared.Nyanotrasen.Lamiae +namespace Content.Shared.DeltaV.Lamiae { [Serializable, NetSerializable] public enum LamiaSegmentVisualLayers diff --git a/Content.Shared/Nyanotrasen/Lamiae/SharedLamiaeSystem.cs b/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs similarity index 80% rename from Content.Shared/Nyanotrasen/Lamiae/SharedLamiaeSystem.cs rename to Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs index 01eb1909a0..bea990d37c 100644 --- a/Content.Shared/Nyanotrasen/Lamiae/SharedLamiaeSystem.cs +++ b/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs @@ -1,4 +1,4 @@ -namespace Content.Shared.Nyanotrasen.Lamiae; +namespace Content.Shared.DeltaV.Lamiae; public sealed class SegmentSpawnedEvent : EntityEventArgs { diff --git a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs index 342ad4516b..247ac93c21 100644 --- a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs +++ b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs @@ -1,6 +1,6 @@ using System.Linq; using Content.Shared.Ghost; -using Content.Shared.Nyanotrasen.Lamiae; //DeltaV +using Content.Shared.DeltaV.Lamiae; //DeltaV using Content.Shared.Popups; using Content.Shared.Projectiles; using Content.Shared.Pulling; diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml similarity index 100% rename from Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamia.yml rename to Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml similarity index 100% rename from Resources/Prototypes/Nyanotrasen/Entities/Mobs/Customization/Markings/lamiasegment.yml rename to Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml similarity index 100% rename from Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/lamia.yml rename to Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml similarity index 98% rename from Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml rename to Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index eeb7a9bc25..992c3d7e7b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -195,7 +195,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 2000 #Density is not final, adjust accordingly if the number of tail segments is reduced or increased + density: 400 #Density is not final, adjust accordingly if the number of tail segments is reduced or increased restitution: 0.0 mask: - MobMask diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml similarity index 98% rename from Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml rename to Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml index 7af53abc7b..f050fa78d6 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml @@ -28,6 +28,7 @@ - type: Tag tags: - HideContextMenu + - type: Pullable - type: entity id: LamiaSegment diff --git a/Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml b/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml similarity index 100% rename from Resources/Prototypes/Nyanotrasen/InventoryTemplates/lamia_inventory_template.yml rename to Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml diff --git a/Resources/Prototypes/Nyanotrasen/Species/lamia.yml b/Resources/Prototypes/DeltaV/Species/lamia.yml similarity index 100% rename from Resources/Prototypes/Nyanotrasen/Species/lamia.yml rename to Resources/Prototypes/DeltaV/Species/lamia.yml diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..c7344388fb17595ddda71bf4242937aec2753663 GIT binary patch literal 2058 zcmV+l2=(`gP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2cJnqK~#8N?VAs1 zRaG3v&omvIn>O3bZ8EW1n>uJEiId1@qG=k1DQFQ=k|9V+Mk%ABBGgJK5d@<`q>K!S z{%MLiA<`^s{h6t&Y%8a^vE^pUTI{vYdGGgjyuSDDx$nK}MBf(VT0b!z1JT`4oF(*T=Z8ld^V`7=wE6b)5vr#n>M zkX&`>m*XmMqtg5fp6v3(-!GiIV*lIAg4tOERY`uP8j_Q(Mh+huWZ)#q)N`G7;Vvn~ z>PIRg{4)5Cf4X!&=7!=3KkdR@tYBpT2KmAM4%O9Ep}O+E)pZP75}=;zw4=SQOc5~l zJ9}Cp{4)6bS)WCWApEqWeYmSDTn(`L*=51|W>$s%-g;bHIXeq$J5!JKd#(f8(@z(Y z084E8q{`qOw^e8k?mwXI7FBsoi#l`moGN%USLc+e59!NPw5OkQ2}gsg0e(Kxs4YCY ztXP-Np8HoVUvyHJCyp=IIc4erW!lp(72rNRMT}5X(V%j&vsBBmGdia%gQp$s zZTaJF7)+(Yg1nx=b*j^6&g$v@^wKudkiaGYuCDt_Emq=~Sn>LmL}A{o)53 z)zv*~jWP}hIc4g(PMP-fO9i;kk+#8lV|)Jb4!z+nU-XxL^1+=!ox@E%*J($4TmHBk z1g{dD3YsQq^SoD&jWZGp=5K*S z_)Yz>;JOD0MwgXnQb-{C{>ZdQGDXqO5BSAzZ2&wgEdA-;ae7ZML7954r^*9#!Y_Vn z1Aw&~hpWK&ed?}B2Q{fAspGnz@Ppse9w06*kk=j%VsV-M+5^1u+w1{x4PXKR>`QM4aFMjKWd}zSCDjGIemrYO4tiu6W@p}AsZz7Nn9pYj~n>Mgv;Vgf=vy)fQF; zU>XsN=Zh;uP9Q`+Px*_Gec^)B3ACXRt+ue90mR|3Zr$M~osKoMs-yLP=x=lq7bHO8 zC&nIIsX5>hUNoRZbfFQgwy<9UqjGdUc}!5J>6KUMvVf-|YtS#$jascaoU;urq6>&t z8+e)l60MCE`sS%zEJWi%lSG75J_C52m{xUu6C^UbVY5FGAro^SeoQ}NxZpHlYC@~6 zGvsLoa6XU^pYrkZ{>l0J`#j&}IVV7%(oaW;d&2=2oN%K7h%PkxvIh{0CpcMiG~{q_ z27m*LtVe_pp&=sdH{?u$1V+$+7Bry^jcB!nwE=#A?{*z|6*M-r>aVdJjFMwBc!_>P zIN*dE4QLUd5v{hcHh=^jn~t|=cT@fbMaB8LjdRdLxT!PM9H`Py0U@$a_zigA zgBSj2x&XRmImCkN3~;-F39KzgWBr@~EK9GtV$FcK29S`n99EQwtP|pe;fPFl!2cz{ z|0Hw9`XWLcOOtKL+*+_1k~T?`iOnaAXhsk{ oz($j2(WW5;eKB}Ja(a~d9~i|#F_vZ+_W%F@07*qoM6N<$f;?&6Y5)KL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json index f6a942a895..a52fc0259e 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json @@ -1,13 +1,12 @@ - { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Original by Emisse, modified by EmoGarbage404", + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Original by Emisse, modified by EmoGarbage404, lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -27,6 +26,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..68fc755c56d0ec73a44b5b40719ea2bb5a9c4866 GIT binary patch literal 513 zcmV+c0{;DpP)OW9$@8GO!1)-aD6V1|QP!L7hgoL_0mo^d+d;vv=JP6#E%RA@eToRrl zgy1jN*q^#500}?>kN_kA2|xmn0Q?7l@wf-feD1qDoYHxGk=BcqfSJ#U30>p3;*y`9 zj6BB`mkC`15N19ntr;tUg?WRWEt}R&iG$rHe((l>rlx4!lsMXNa(ZUPkwlTb6>k)m z#LkwDAG{3>i;@1?Vl(WWo>^Qp+lq{?^ayV69L_IS(9{&?mn*#X+_3lBb0fXmJ4aSl zK7rBvH8suNwiB8G6jxhlYKoKkEPgPc=lOIVU!)R<4FI62X@C&qq&^FP9}EC~4`5V} zKt8XY=ZCc{fb>_ew`l-iOr@Ed$pY~3)CY*{o#%n9BoHHkOjZ}wvK2ynwMOQ(hK<|z zel~$>*-~l^TdXfza6drTR6IWbh}2itHr28vWgZLQu-*oilv=|U0PD*iKOD~wxVp9( zzLz$K7$X44WOV=vhDq1yL=F}VQvv8Y9RS?EC#CrgXWp$CB|mF!00000NkvXXu0mjf DvY*&g literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/bottom.png b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad4b108c2dde31303f938ddc6d5b3b0d6bb54eb GIT binary patch literal 1036 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|WCu zPZ!6KiaBp*?ajXJAaP87s=}S4W;2##OkB_*m!cuUBzQVNPB3l6W0yk*~-3F;#hOG=)TNv>QrnN;iaP@3d(l_8eSNYIx zDvyS9gVwZEMuwc*e&0%W$1*g$|9$GOs9A%d*izQ}H*X$%^k|We5>tYPcHn{1yWF?u z`lT=0$90}@T54kHQr6qs5@)4-Vq~~%l6c!JEIjI@;4HJVX~t3U+3^xJJ+F5~#AhGg zq_gzRjPi6n^_0u+P(Y^jY>9~F1%OFn6x~jcZHBWaRID0KG>*uN!x$;Zm-miPD zG-rXmD)X+pdaJH#u{AULTt0H~Vqj4C`s;;NRaT8GTYoSZ$nXWOziueOGwJ;$bw`F5 z-+z1leDj9KQ9yyC>B=u7AYZweze&L`(L%;gWd8=nUN>eZ4h9LyEqioZ92Q>;5DOG= z=4gytZ!To~@7>ob0jC2%Uvci(z!)7JtdSMuTghA77^nkJXfZ2>W^05AMrcC z{b$>XKl;!kdgnJbjitv8r~U4~&V54i;n}ligMuF)s9a{D_j})b73bM!)As1EJ6{_d z^I~nmEeA%Gm7iw#EiX=GJCXUxfM@cS$et`YL; z+)(l1b$0HZ+4PozQ*%JD&Xz^GcoK5v()Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2O3F4K~#8N?V4|B zl~o+a&)Qfs?CP4$M&g9zE|s)ESSfM|Lnts1`a>@yFneQvEMNF$;tSbcWMEm%H(3x8 zQ3Spa45Wx5S_7dpRCY1kq*ziNLKInQ~{^L&55 z-*e8n=RW7CgoK2IgoOVuH9`8XA(P4Eg6u8y^z?Z9<8?ziozAtiw3HOWu))DWmCa^j z3#vGejtzE!ZxEa-<2>oQb?elH3m0@5Vq({Z{2JSaOb8CYHLG>+WFa9 zRX_OqjDlddJo1f=jXGafSEo~$oSf9@$jC@hUGic2cLZr!Z~|vK?(fj&ix)4}sp&jO zIrYT(Y9r2>&V!trtd_Q_YPj^~A=L>g5i%pCcPv|J%Na;7akY0hj@R$J^?i^(z|o@B<5S z;*4!XXJ==S%m3!?+7;xc#U*Gz{(RZnc|r66Z5%fpwUO)C051BWW5C^W>I=>Y2;nqG zcXxMDOQ0V0xvv`V92e(->(ryZtA6O);VqET{9U0Nz)ar0fWE0M!8XUDOP4O`)C>?d zxafzr03I^Bs7>b)=V)(lFC0KB*MR!fa2|LLvr(qw0zYr{_4S3roGVa|`mXw+0RX1L zILF9J3qkc8vdCV^u6isJMDCau$eDs~7B$Ejud*;CO!&h%gt5b)k=Lajd zO;3TNjQr&&r*9KQ-`PlvpsD|rS*_3c4{rV^2PQhECRsH?_+7MDXD3{SVE_go9-?(u@rBbP)l=3M0UICCP zC@>8j8ynMyU|x>{o{zKh=g-#xN1K#$%A@Ez2cW5`NsW(>>%8eS$T`=k7Y8(Jo)01Gb1=zBomx)Zj<6<14JWYePPgrdIfMEmy9dRXO`ZEIUG2{<3WY zmsa2$01+?;8!2N~2zz(rL+O`Wx5pBIXAbVqi3a&^!mR16%^&H3r}uqUOg(bBSuUv6sg6;|ao(QtmV;?&=2^dS#TRVyv4?3glnX*=0N9kUdh>HZNo7tQ`a<>hoQO35 zuq3lK=VKF_CL#x*p`k&oTD2-DxfQy=@bIwCvql$J|2M%d)&`-uxw&K)5Kf;yU2)Mg zGytRop|!PDmz82*U_hr)R%fFiF9yQw!X}6m05F44i7=sRQcatjj1@tmZHkJ3w1C-g zUNCI}+b&m|oDCL1Fq_@&a9*&30Adfg*yL@r83^HaI4{i19;N;P^u3X0T)Oa$00000 LNkvXXu0mjfgnF|P literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json index d0d17fbfba..46f6488836 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json @@ -1,26 +1,33 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/blob/master/icons/mob/clothing/suit.dmi", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/blob/master/icons/mob/clothing/suit.dmi. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2b136ebd9afd13587f40c8404abd1d853c3cb8 GIT binary patch literal 457 zcmV;)0XF`LP)I<&z+$hvN=PC82phX=ELAN1 z0hadqH>}d7Ng*MS>Y8J%;-%PFU6LwAV65&?P~4M%%?=Fg$Lu=~`!Q@wMEFlT_}ADU?zGD5YwkFbo-uMm<+uXMi+Km)2VDZ^l2y+~16`){>^_(pA^_ z2&(OWV@LM%QjedUYi7@{03=tZLce@?y^}6nt zWm!GL{R3oKb_B59ZUMd|uG-aH6}wk}BuU=$Jii4n#t=mjK@iaCbcmves_^7_ew!r8 zyQ?lD;_O;$M5HGoL#?%Zb`cqhNKb2B#X0#04rJJyFKPx#1ZP1_K>z@;j|==^1poj5Ay7D0)RXyuB{zNhbBUbBz*o6ufQuH z=mmnn#sesQad5K;mr~+?G)oWoEa>@DAjFbWtu^HmM^Pv*==nAbWhrSDq_X6@LdZ)t zo{`)4_^m|(h%rhCrCt?weuYQC^T#075@KBVgeAsMYBKu)_zX_~@Y(Supga-aKm?tK z!g%`x&o==Mw+S%33C#E=P?K|z=}s7omjH;s^X&{Uw{OI?UoSk@zw-%)lRpGPE+VYA zpkuQiz{aZm7E*A06DaDyEvQ4e3uMXB9f@=_dlMkfanMZDky%fOwJ6U{j(48$L>MC; zX6Z5J-8d)7BQhyvv-BAAK7!^jiD1Zg0&)p@4QA;v=Dh%kBp@Tq(qqhb0^A^2rvfA1 zjU|!UK$6)kJy;4Sx$Jo_pn0U3WR?qBqS;*GqtPuc8+1^I3*CRNexr>?81TKoAMgsi z0)qc6@T0KF00X`gkOrdg^xE_WUgRPjhD{ZILe-2~#3u?6=u@0M?*tOnJyY1?nunB4*qWI4r2ZKJfw8S*!YAXIH0?ho$)1OPrb zn#l`fA#r%egPh0g79&w@r3{Y002ovPDHLkV1k@wTPgqm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json index 659ed1dddf..226fa5109f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json @@ -1,26 +1,33 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..bc07da7e782249ad432221865d0a0694afb7024b GIT binary patch literal 445 zcmV;u0Yd(XP)lIvB7?=7+I z6q!s~Igg?(LhPti^SC*O$KlM^(<@LcUNN749Q2L}Z4;Ku*Ah?+7)4tE z* zr;B4q#hkaZHfG&+kU3^Q^%v_d8TLcR@&hjM7_tQ$lw@vB`7&v(V#yk_vvS6>CQVxE zY*STeBh}@)q0L0(6T>klg)LuLZB{r}pNibNba%+7{a3y_ZYY`b_3xLT?~1P751XWN zBi(i}+k$DF4N?tJY7AKnSu+_{Fs?{tT7XyZ{7S}>C%e|2V)j{m|Gjp6uy%tMLrG~- z5z{$Kh6lg@+Q!MrFfc6AIFw;>Y2UmehIOyi-iB$Lo?+_vd;6yiV?yR+jTLvZ8jJfh zx-OY*JZtH``|6>$HS0=!pIR;mTz`0P-3i;{d+Qt)$6aR%xcdC`X_p_x=Pt)7fZ*DQ%@d=G#_+09v>O{Gy5!Kph#j-;jDM*?G1NKR|kmx zi(*VU9)B&QZulwde;@#4j>`upD*9Ztt*a~vt$voZESj&LzY}`?KGd(w zZe4H8qVwRR+G7j9|4+(}MW|*stQI|b#D3L7PKXvKLl37L^ z{y#x`1&XFs{j2u zdX6a|F_2TSoa2P~|5qOb!rOl)+<*7(lfOn__&MpNpQkx8TrZuRt0;1gvA3#r?QHRx zZ=Fsn1SAPLEA@M43W+>^6(1Dovy-u69y`Co+A#0iPd=4ws%i`q zyuUBZ9m?W&Px>%Z43=JbHaYAXc#lzIJNXp$PNLae7?g4Z{0Z$ zxyUd#M6C_`dG@s3p>pBruheFq1KOy85}Sb4q9e015=1761SM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..b0e720f3beef87009cc2bc17a0fa83bcc560d4b2 GIT binary patch literal 902 zcmV;119|+3P)Px#1ZP1_K>z@;j|==^1poj5LQqUpMVXkG+1S{%v$M?1%zAoy<>locJzy|ch8ka) zAbG_!G&Dj&LRnc^vL7EGAhIYZC^9fGCnqOGL_`-C7d<^a0000cWYqBh000(rQchF< z|NsC0|NsC0|NsC0|NsC0|NsC000Gj#7%(Vw&e`3cy)(AT4WEf}8m8?Z^#;5FEDe}U z{xT!zWSud_*~V8FL}ZOO7T+?`s_!3wIoJsv(PYCcV_E~h0_G4rWRau^9m2>j01Cl4 zvJQXv4B=eG(60aw-{B747?f%*fa?3!7r-36BlB_luzZj+ry_QrOW;HM0w9aJ%x$?@ zK2Wc1Q`r3i(0&Er^%%b(V8Izzx*MY1uNf-80AgHY1>iiM0PxA&JTf#lOUf?~5k8sE z<AVsQd#U8E^n!$av8`rM!xErF56^3fPd;p?IDT!ky$bI-+}> ze*hLdsQQ|4byoHr7Lsdy1(pTD#((6)>Z%xi20D~i`YEd z8o&{docGl6TfkrF4R`}s{~5qL0AuB%BX&=_hX#O_6)q7<%tuJmHZ_3fqxqh?niA&Y zC$%Lg0JZ?!y2k{b&mFYcJ!k;t<{!?>=0KGDJ9l|~2L-?$z`#ZO9RXnF5M4u)!5n7t z*dUAmusk7XkO85oCi3X-!x9$nDXnn?pp|0EfNvRU^qm1IB5VLiaFWL+fqrDD(GOwo z;L+ugrwl<20G%Ns13SvVA_F84M}WtJcM;Pxjh;bZFQvyr)o=iKs>i?gQ@h2hns=9@ z4nhTBJ{D<~%BqzLse}@Y`RKd5hJa1Q6hZ}XcA~)}fUru6%7Z!phh6|Af^`BspXhqr z*`cS5UByAX3*aD$s`WmfFralUR!0bus2X%Uu$}O7ekG`&0{|25>-jqYF-MRBWW+D? c&oSHf2Z`Shmk{&VL;wH)07*qoM6N<$g8T)OfdBvi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json index 86e27c9c1f..80f2d7019f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json @@ -1,30 +1,37 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..5a21938ecac206e3b9cee8254ab5cd90dbfdde24 GIT binary patch literal 419 zcmV;U0bKrxP)3j``!=V8XLR11pQ8WaLqCjg6K$d0Q4k7!g zHdde>7Q~(jA)Lga{jWHv3u&zzYb*W}ChC#J${r zSG-`Vhl$(jPNk*%t-&)4ll31+rhHyvFu%p%vHg4V`RQqU>-?vrc2-~0&SS{4WZuEJ z<0;Prwg=OU8>Abe&oST?{JQHsx1Lht&#D>Ud%8Vl#6;XUvfb!_NP>s3U5kUm)o)hp zi#FW4=k-8y`~GjKx6jc=BzSe)=yiz0dPeb2ghx>MKwsYm#FcopS^efxc+s!gy`>;m#^Si>9 ze4&n9jv0@m*D^+Pvh*+hRbI{Y!nv4(SMdI+hHrne*?Bn*h;j?2*Q|ct;BRktt$3X+ zJM*e<{3{h7abLcZFiAyKP?3X);Xv8$wclUn26-*Xy!AW2QN`1XVTO-d`r~{vX@(75 z`6&*QR1PGTsxI1m+%vM*T}kNl(@RqhdUSgve0}yel1;Sw*Z195nNT+=kgq3|ilpPSN*MTErGJYgw3rSsv3MyV3AJ zwEX}51;m6oQtXuHH-uKntbN2BsxM#`f4N(6)8Sp4UT*YLoPMAt*6bdK_PVm)nv#1( z^U6#9Y&d*gKXlTjSosEN$pWRkW^MZ=YP)=1m^i$z39mh%_`{dSAkon9;UdPW=YO}~ zO>hleSSZZwQwdZO!+a~%aQc@i`y=?-0`<<$2w}6_KVhYD6w7tyXMfg*#`}o#{?Jl- zApW2-?(VYX%Wr#L*n2}cI`!{_(t^tRJ#Mq-?F!E^mSKvavUp+VQP5) zyObeT%RgR(l|kY3CP%F!=L{JwPNyEa@>5}npI+CZz$puwR@5>)sJ!=J?)Aqjb}ZlF zliyKT7O|60X6|*xn)~nfYCM{hwpp@kQAQ8TTy_KLUN^QQg^NGDxx!hxKu5Zc_r>Jr Z@+o}vC9HFneFx?z22WQ%mvv4FO#pa}f~f!i literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..c606944fb0ccbdaae5d62d8d4614c9e2a0e008be GIT binary patch literal 941 zcmV;e15*5nP)Px#1ZP1_K>z@;j|==^1poj5NKi~vMS6OA!BYU;X8^oQ0G2!e%*@RGegMo^0OjT7 z&RhT*Uzs3z#mr&=G&D3qLPA+tS+_|5nV6U|Ffb=4Cq+a=7Z(>jJv{&b0AccE7XSbN z7<5ujQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC00L>FF>Hq)$32;bRa{vGi!TxRaP64w$k6vop;WfV64L#w@Hz&;p^6~0B5|12Wju^nc!mI-vG{p zVF)4IkmE2Q4Q}5AKUCiczXD)-OyL%-^U;_S0DffON}mB3z(f}@LV#)I5JkcdthH zQw88W9RS52!+0Of*!Wu}DJx|@r_UP>t5ia;BGL0^mhPfKml~Y?VG5nEF+Ti zH^73VcBNzg)yG}b^cbaI0n_4OQb5oSS4U0DLt~BLeG2*^d;!q3R0%NXE}-vMz%n_! z4MoA7`(OGypu8_-gwu<#s_#nxrbu%%;R4Y0B_Q(%`2x`O1%TE{&h&GBh@_O*ZyvG) zV0{#IRzVR5w6*|HKq?1cpG4--mH>)?_`Ii%-vWN2H{cB*{a*k!2&kKpuR0~Bcagq#RD~}H%Aq@b7^BER0^oWTiNGxfQU9oX`%&BhRQ(P8 zTzyp6uWF=UF~knQ9VjIn<@X8z3v`MT-T0pY$^~o?t^lxtTjRLtFol$7?1iT5DNG@_ zIj8;X0a+?G!U@J8TY!KWxH#Pcpu)>UQ`z%sy0H_QJ8N{m$ zA~HY%=?d_C&NDWm8s)t!XUUuA=Tod^aSzaS&{Vom|GRql;!@O3r~vdYwHwmhbdm_E zgbjfHsJp8!0gH&)2o*rtu`X@_L_22IcB6K{t{(s#K{^0lFH}9M?9hwb&Y~dN1yB%2 z)tmTw!GLn!td0=GQ8lOnnDAr&N)SOi04Cg@`>zDV>_Gxh5P#`^j9HdHj>RdTJL54I P00000NkvXXu0mjfkwT&H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json index b2c50fc4c6..3efd510e89 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json @@ -1,26 +1,33 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..b2cf94d4cfc2ec3dc3361fa083bef55530139ac4 GIT binary patch literal 409 zcmV;K0cQS*P)_jMbyY(xVGuzX$TW)j}rr^g96k7S5FfXZH1hj z1MS97<|DoYUIi{a_YEq+a%HdSCIj92gDr)7#@B)X#zUL#ZVz;QSBiSCM-B$?u%5yi zo-Y?^6JB7T$Y$AH$+341m^}G))0$ng*b^7O|gSmgQla5Zl$p33SbYxO-Y_ zFL4O}6|1h0i1d6X{u|`K0m`!6LhOr(2wLkOaUc5z>dSfC>Ln_a00000NkvXXu0mjf DfKRPm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f1a4d41a8a98854693acbec63baf5630b90a47 GIT binary patch literal 903 zcmV;219<$2P)Px#1ZP1_K>z@;j|==^1poj5KTu3mMV34O!BYU;X8^oQ0L)kb{(b<*001B$AR1qp zAbG_!G&D_3O+rFKSy@?ndU`T2FefJ`MMOjw7Z*J}JpcdzZjy3!0000LbW%=J|NsC0 z|NsC0|NsC0|NsC0|NsC004v#j>Hq)$32;bRa{vGi!Th6A~tBg23d<>BU%MX{>edpuxEY!8kXFKWP7K8S7aSSBWwteyZzd z08ED|OrVd>+8dzfO9KN~XBDe`5FI`=(TDa6U^MnI zKPFr#vH^fk-vO@5KLJZvg7q^JW;>$2TmbA#g_SS&5aSv{m{H;!0@^VghUoAg9u?Y0 z<)5IqZW~u%QNgyYQR1h%egUj8C(wh$Pf>`M5lQ=bsq*mM4 zfK^6VJAkII+O$^Il|Jq-krbo&)l1d@tPfUW6|f|swskeM-uaT}o5;M{^>op{-yLfB zHQ+Dw0ek?Y{|ms*kA2h0Q$yt9m>^Fq{Xl;?lrYNkO}sI``A5R$3t2aH2;)TEA-!?x zCc_;OByth;cSn{)pwgrQs6Re?02-eOsszhz#mA*@?Wd`S3~Sfy`1JEXX+n1{qP;05-!C9dE{ zLY02Ff`tF}v`7e20F$sYL;zf`0tWyJh)MU7J7k{El;|MZIV)q5?By^KX$%K3_W*>kv#;Hum0IE)utGbC!%%XFi1yJ+`AQ_|!VBfLp z(asL-61$6%=oCOnl9fl>cNoyRo>oIhlB}Fm$~_2g`)7hmQuE!(ec%5eAg3fL03&|s df6aNl{s6w^0st}I<_Q1*002ovPDHLkV1f#viZlQK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json index e164425199..c5ab73194f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json @@ -1,30 +1,37 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..4ab04aee9919bf27efa710928fe911422381a692 GIT binary patch literal 369 zcmV-%0gnEOP)GjT-{4ZULn*6kB%zA|VE@5i66H`JX6Spz+>wOS`+NdI2Z^1)u;FfC5ke z3P1q>?sGplcIK}k(!37obEe4|N{^lKtw7hVvB9nW;J|4fL{!%mZdu0H^TOE@DAwn&XNDkPiosiFvb*V47p0?e1X#32Ra<3!tvz z3Ix$$0mfbQ$Zh~{=L4MK{ow>$SK#IA06@nnIcM^3*!R5$5D}WD0bm?QfXG)}wr{Q7 zw+UIg+6RHH1(5JgM3TfI|0*_HAyti@gZOWd{|2zu{y< zr;B4q#hkZMhW@u5Bx>80UBxnwL})JT6?i$xl>0Ah=rq36g!ZNNZBv)Nk)5@W`&Iu5 zDaEN=tXx6IPpE8CIvUgdW1al5jqjW0uJ5Q8>iRhM-QMbb?}dKOoe=a$HMu#O!F&$m z9i|-*c^-%z;7w=P&X8xpyo0siu;c;V2I+GQd5m`o*b2BGv>7+Rlm=>69XRa8y8LtH z#lx#M`o<-2N!MvJ`>;;QJhc3nn$_>m3uz9`@vzcEW?o7qY&A|2M6CFRSv4#XXqE=6u_IiPVqLZy66)@y=cR zM(DuYTG^sc(UKn){A*x0U2*HT#?n9DkGC5=IQ+W&$H(W(|NYleTl)6>d%ZO*1)sSu z=M*fzIw|!2@v_aF3_og%7vFxdH&WtJk%?A~LUr%iE_J`(13CpiC zF>o@3-jBbPFV@!ayW{ic;$U946PGt=Z9nUu=-8Q-xZ?jLrYohK6-yfH-fg>m?T#B; zOrKkn!!4Hd#Ew<(mv0kgUFBGK>HMnq+@VZn2KSi%i62?|VFk|=!6O>VHrC7y^=c}K z)|C%tN(HFI{rSy6RGfgLuU9<3A=IYt$V2ARxCPR#TUKi*%PzAJbQ0#V;a~pwXR|`f zoa7U>I*BO^GgsIMGRf!Xf82Y~LA>Me$)iqI()XqPAFT{nn86<;?NoYHb0f>9!-wun zU-U&&zNUKW&F`=O$!=ICny|>#_324br-_*ibN}2n{~D7Rew}fH8ne&WCo?BRGu_pQ z(lMWONYDBH=SjaEH6<$Ks@STmqNNX5oU$=V+`=w#z07mD^QC|*b(15Rv?eVx42iN? zCvZGCX==+cHmz0uO1{#aXTr1?86A#2T&}htrE9|x7YotMSt8qJpIx$S>Ffn3`4#6L zTV`A874r4(r*p>zG~|SRD_&h!;8ZF-z9nUv+v98v#*kY1%?33gT%A)jK7F|{N8sX; iliy1H_GQ@CGfv4o_4L7|(s{tl#^CAd=d#Wzp$PzC#+CyB literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..5331e68d1c535132ce8d0128a288f32485abc02f GIT binary patch literal 919 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0#2l#}zN=Qg(YHEgsg=J=DCNVQ_mE)Vnz);S|{Xl?8FI?o^8s7DNT_z?b zk*sVQ8X9Vgwu7Mn>Y|;!aLZ+JQoM=kq>&`V?q3)A7hu zASGK8pZP?R)*XzMh=Z3C|b3O?@V#knw~+k)vq)-^KSD%o|h~W99j3xo>@!pMLu3 z;`^5)lp!(8{{e7irx{~ur28EOI- zet4|%>$t_M+aFTb9iA?Gy#0B_l=_18wzX1(&4f8RZ~XY9V${ElC4lY7{_IshR3GSnVcWyFKcrDaM*pOtOqWlI}%M zUXai_#f(At#f7?Ph6q04n`~#!yIOwvF6O|0Zsk+U?F`>`p7UnVkW)`D-eA z=SyQ{#5l8_1uTsGD^s^KH8xPaeF2lfVwRAEXwis}2Bv3f3_+)^h_4b@o5-79=)sin zBH#J_L2ibfQ>JoqHhjFZ_u@ZkA3^Cc&I zWjY|agju2F-i3V^>nzKz-J9ne^=4wGkfTI%T*>pOASRd3SARqWu^r$M-6z$*WP*~O l5(DGMPrsHJrQiO?z!s2iE&jV~7BB%bc)I$ztaD0e0ss(>gxmlC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json index e164425199..c5ab73194f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json @@ -1,30 +1,37 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - } - ] + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..1a6df55d0509e8227d431f51fa338b7659a8fb36 GIT binary patch literal 434 zcmV;j0ZsmiP);3mb{xoa1NlEw;-CA1!arsoh7QysiOOP70a@ZRI{{=d9;2`9AH?9%pjs%`-+ zfCaDs7Qg~n01IFN0JrD^UDy5Z5-IMNOXGT?$fdOFy1E_5Tpau~ZZKPA@nE)M=s1NS z3U#0z$297aQ9d~f8OaI&4G9Eck&@P0DwslLS548C2yXeKfp*Pgi}l7RJ`PQM&eNXS1j^Eky2}ZDxUfq1sMB&2Ju@YQi_u2 c{mGly7pvxwi5dYNr~m)}07*qoM6N<$f;?QbrT_o{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/bottom.png b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..a197cde57bb1403765e0e5db8fb6b413499573db GIT binary patch literal 975 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|RrT zr;B4q#hkaZ?6Yq>NF0+FEw1R|mFp6_tE6;7Oe1B@!s7P2R;TGgzgTy%eiGf4^6t*U z3pd+znw(AuSv*#}lw=cms-z{MG{fKa^rn*ZHTy2y;crr%Tl2p7{NIU-zwcS3@nKG- zqi%y#I>T0mtT~KVm{t_B1#mAoCh34zu<8m^PRF7XPgs|!w-~Iue5yf@<;J7mb_@y} zO`oD>En{dnnv@tjezK-khnoh~Yt`_C^Js!)rhPtl1YHdn~)*{qG$X z^OZQ5433?$XGrK#9fQGlpp+_ zo>}?!>h9z}f6TPc-><9bJ(|R*c;ukFL+l@|-$%BaIq=q-ekr|V^7alx?XS?l%K{DN zGktnqZH;1?-L(2st(em6A3Ymy{gi7{Y*KKLIUaWT!l?!m-@=lT7M;@vBo6=mTN`O6 z!}syShlJp{rmNbozcy_+uk~!g)w1k)YRkt{{AOE%T&(0KCS#<*4A4YHS?Y? z<$V2hS5LmxA4YCwx5a`>rZ8-{nDIBptMg(;ip(7$f3MD`MLPw9YxSmkduTrVz3=L; zgMD6;af)y35Fw~v^cJ*a}K-=TDE;&@8aKzUkDDId~(U@1VFehj#^2sqLSy6@TmY2Ts5Co>T z@{Ogl7;;`3UA>agAmFrgi7i9xs*w47EWOtsi+WCKD2}@>={76M-Qg&UgYhA?0QZ~{ fpQpP7_cMH}Ua9$g17{R4hcbA&`njxgN@xNA{k*zs literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..979a4eb20e56d53ade735e8c56dfa1e7bcf44d43 GIT binary patch literal 1579 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 A?*IS* literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json index 4844e816bd..cf10d74aed 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson.", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -25,6 +29,9 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000*XNP)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002l(OjJcIE-)D#CJ+-DUuJS4Cp1k_S5O=su)WGJbhvLlL;#=2 zDKJ4~F*H~uC;+kGIz2-GkhTEm{{Wr;JU>G+H$p^5O)f4j0001lGZRJt000OtMQ`u$48t&v zc)q{2gyeVL|08mh|1f9*nt7hdOw^7SKL#%TMgbt@-z|KfD*#xMj9SS*V+LIN9{?g_ z4Fv#}WVKTezXjj}fXcrEkQdA`gvA?|TD7D{05Sus{l%cqPr@n_k@r|>MCJZn(jz(e zkR0Uj;wXbf18Ajx2OxdH zlpG*{L+O7=y6}Nn+P{-Rz*~x>(MtSrS=Jb1DuGmH0 zxBXTxzzZO%064je^+Y(-iSN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..7b79d271d540baae884704ef3dbda631b0863462 GIT binary patch literal 1328 zcmV-01<(44P)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002%Q_8JLozo)WHB^Q934bQP0EZn@9J1CE-nB70HN7J6#xJL z8gx=lQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC0|Nj6KA^_R|000SaNLh0L01FWS01FWT ze`H^g0008tNklyo1&5QUptlemUiW1N}1|BLQvM5R?SQ?-9{s*<#v<_jPN zP0#<-8}J5*Dgc=hm~$$8YmBkl-(qrP1Yr!Kxk*WUZ>hfHH+9fJdysZVokIV64#N(Vhb5MQj6lo~Frr?i+x97H(#5mG8HTus9ds{!vr*2!x8kJ4}UL<)eDyF@R9L%l><^@H3i*v#eWRM_dbfK{jR3(1j&Yl9jE3KR`&oar^8 z4lkcqBsl#Km8k0+60VPv(8R08HpwwIQRaziD0*l%t zG)^=qdR%Wkii7hJNEwAP1lMe7ILP7RwMo}tI{>ck<{Bacizqcf1CVO~9Gou>Rn$+C zp*odck&Hgz59oL|X9c>EmD-^R$VC9wsR=+4nsZ8nsEV-#@diYt;V3bYQx|bnM0Xgt zJKKwhRg@L7_xncJ0?HTf&j3lO2;s&2O^#GeEtLB8$a0HQdXP*0000SN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..5cef9a52822e8761365c07c6ad090c6133b6b9b9 GIT binary patch literal 1242 zcmV<01SR{4P)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn001^nOjJcIE-)D#CJ+-DUuJS4Cp1k_R{)>LDKJ4gJwpJo-~f=e z0O0O3>3ybNL!%!|DU~G zSpmsl+L^v)Ga*7NEk-y<^86#-0&fAr2^{9ND!fBVX^6bb8YLzCrUa|H0?6lK7;@xy zQ^q2LAOOd5p-}mZPvl=#;cGDCB392t3rx zzYCyzGd7Xd00Ct-{|j{K4HBN;mF5{&G4P}X`DIyFd;{;6DrM1qu$&5DkYy|@_&|FB z@KxbjKzRs^f%gKIfAv=)ej#AD&=ml;^3W4l3M#bV*cH$s_64T05oPKKOv_gASpx3` z=CWZQYCrFM!QPxNR0u0~$Jr<$_mQ$({Tf(9-eD-nw06yb7|}hVIpV zi?_gAfCvJ3bDMPoywuH7_!D#mHZVK81a>;3?2K?WUTON$PvHt4l4@`83f|QG_6iQV zLRIJppaW0nZfH*CX@I_k#)mP&SHYQ&gnS(``T`tNrXfAd1DsdD_Gg|3O5Lo0V-UxX zUOp8xpj$*VeH}jf0(Fk*3UEdcPJtZ-i~yjU;UU;MB!EBnX2lFjXNRsp9Re_gn4!ENMqK)@w0fsn*{a5or_ctQI zy;#F`gvnelyU?Oe zMSLk7(wE>uL%tJu<~(3&ZToIuF-K6i+)v{H5o4au|1?V5CHit@OaK4?07*qoM6N<$ Ef=lKs<^TWy literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json index 4844e816bd..cf10d74aed 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson.", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -25,6 +29,9 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW00005?GP)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002l(OjJcIE-(-i85tcWAty9nW^zqYS5O=sSS2VrJwq`*S}-?7 zZ#_iM%UUTgL1ZyB|NNfs>Q_8JLozo)L`O|9I#2KFSS~Iu0000N(Xo*L000Y55)8)J0qA2C@{8sAzWN<)prH(G1c`XwaGqzPAWn)recedl#RR_#9{y4}f; zwRW2DeZQRv$)DT@F5mbCKs4hb%*$dCQ3oJmvfllnU=baD3G{3T=L5iGW+_H1#qhoR zO94JV>s`;l;NCa{4}dloGeGeG_z-}q`~pB-CQx37zP(bbY$XD ztK`QSw0;FZ?P3k2hF1WZjq`GT;}-zgU@$#iJQ)$Ggl092|0Yg&n?j3W4p z0Bqye06AX(-6BZ(1t8zT5P(OtA!i6!85MGFdJJ@Xq_%_%$H# z9j#PZ@?QMY5-JPgcnjTehbzz7IQwj6jnOh=7m$m@=BB4f6$;nPQk`Iy(ZM*?emTV z^auk2O_N2!{j=^K>JUPYf%oDF5MQ|1LF+11;g@>$2rmG!c~D<@1ZroX=eTW+0O%dC zHR{m}q>V!BfF>aibdugd`ixN#r4N(lV+=s=piWI(oh&_oJcbd0+ywj7JT$R1378@E zdvjE93n}RxhJe%rgfYOU-e3TbRhF8FJkZIBi5%QV9;pFD8w~87qlF03goQwQ+YZ7J zP~3Qb21rUpDBtmX*yDu=5td>~D}(|_=STiafFwxX)&rt;d|m)t$`G9agx-LqLE!Hf zfbWSN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..454939d731a8152f30ab186d5f292cf28e09df18 GIT binary patch literal 1259 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json index 4844e816bd..cf10d74aed 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson.", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -25,6 +29,9 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..481ab8594d04477c05ed6030bc1eb25584cc3658 GIT binary patch literal 399 zcmV;A0dW3_P)SN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/error.txt b/error.txt deleted file mode 100644 index d62f8b58d6ac72df47bc0f13a75a03537e825419..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1698876 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

^3sYO|h}I@ho56 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 cj=~W{rRO06Bqk(c{dD**=UUa@t?;`4KiLd Date: Mon, 19 Feb 2024 21:03:34 -0500 Subject: [PATCH 46/85] RSI fixes --- .../Suits/atmos_firesuit.rsi/bottom.png | Bin 1036 -> 0 bytes .../OuterClothing/Suits/bombsuit.rsi/meta.json | 2 +- .../OuterClothing/Suits/eva.rsi/bottom.png | Bin 914 -> 0 bytes .../Suits/eva_emergency.rsi/bottom.png | Bin 893 -> 0 bytes .../Suits/eva_syndicate.rsi/bottom.png | Bin 922 -> 0 bytes .../OuterClothing/Suits/fire.rsi/bottom.png | Bin 975 -> 0 bytes .../OuterClothing/Suits/rad.rsi/bottom.png | Bin 1098 -> 0 bytes .../Hardsuits/Combat/riot.rsi/meta.json | 2 +- .../Hardsuits/Combat/warden.rsi/bottom.png | Bin 1093 -> 0 bytes 9 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/bottom.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/bottom.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/bottom.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/bottom.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/bottom.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/bottom.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/bottom.png diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/bottom.png b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/bottom.png deleted file mode 100644 index 8ad4b108c2dde31303f938ddc6d5b3b0d6bb54eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|WCu zPZ!6KiaBp*?ajXJAaP87s=}S4W;2##OkB_*m!cuUBzQVNPB3l6W0yk*~-3F;#hOG=)TNv>QrnN;iaP@3d(l_8eSNYIx zDvyS9gVwZEMuwc*e&0%W$1*g$|9$GOs9A%d*izQ}H*X$%^k|We5>tYPcHn{1yWF?u z`lT=0$90}@T54kHQr6qs5@)4-Vq~~%l6c!JEIjI@;4HJVX~t3U+3^xJJ+F5~#AhGg zq_gzRjPi6n^_0u+P(Y^jY>9~F1%OFn6x~jcZHBWaRID0KG>*uN!x$;Zm-miPD zG-rXmD)X+pdaJH#u{AULTt0H~Vqj4C`s;;NRaT8GTYoSZ$nXWOziueOGwJ;$bw`F5 z-+z1leDj9KQ9yyC>B=u7AYZweze&L`(L%;gWd8=nUN>eZ4h9LyEqioZ92Q>;5DOG= z=4gytZ!To~@7>ob0jC2%Uvci(z!)7JtdSMuTghA77^nkJXfZ2>W^05AMrcC z{b$>XKl;!kdgnJbjitv8r~U4~&V54i;n}ligMuF)s9a{D_j})b73bM!)As1EJ6{_d z^I~nmEeA%Gm7iw#EiX=GJCXUxfM@cS$et`YL; z+)(l1b$0HZ+4PozQ*%JD&Xz^GcoK5v()* zr;B4q#hkaZHfG&+kU3^Q^%v_d8TLcR@&hjM7_tQ$lw@vB`7&v(V#yk_vvS6>CQVxE zY*STeBh}@)q0L0(6T>klg)LuLZB{r}pNibNba%+7{a3y_ZYY`b_3xLT?~1P751XWN zBi(i}+k$DF4N?tJY7AKnSu+_{Fs?{tT7XyZ{7S}>C%e|2V)j{m|Gjp6uy%tMLrG~- z5z{$Kh6lg@+Q!MrFfc6AIFw;>Y2UmehIOyi-iB$Lo?+_vd;6yiV?yR+jTLvZ8jJfh zx-OY*JZtH``|6>$HS0=!pIR;mTz`0P-3i;{d+Qt)$6aR%xcdC`X_p_x=Pt)7fZ*DQ%@d=G#_+09v>O{Gy5!Kph#j-;jDM*?G1NKR|kmx zi(*VU9)B&QZulwde;@#4j>`upD*9Ztt*a~vt$voZESj&LzY}`?KGd(w zZe4H8qVwRR+G7j9|4+(}MW|*stQI|b#D3L7PKXvKLl37L^ z{y#x`1&XFs{j2u zdX6a|F_2TSoa2P~|5qOb!rOl)+<*7(lfOn__&MpNpQkx8TrZuRt0;1gvA3#r?QHRx zZ=Fsn1SAPLEA@M43W+>^6(1Dovy-u69y`Co+A#0iPd=4ws%i`q zyuUBZ9m?W&Px>%Z43=JbHaYAXc#lzIJNXp$PNLae7?g4Z{0Z$ zxyUd#M6C_`dG@s3p>pBruheFq1KOy85}Sb4q9e015=1761SM diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/bottom.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/bottom.png deleted file mode 100644 index 6caf9b938680613703eaea2ae199d7329299ec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|T?Z zr;B4q#hkaZ?E7vxh#cGB`Dl*9rQjB6?~;8Cy|G7J^&EtY8amY4Z?e5*^>ChC#J${r zSG-`Vhl$(jPNk*%t-&)4ll31+rhHyvFu%p%vHg4V`RQqU>-?vrc2-~0&SS{4WZuEJ z<0;Prwg=OU8>Abe&oST?{JQHsx1Lht&#D>Ud%8Vl#6;XUvfb!_NP>s3U5kUm)o)hp zi#FW4=k-8y`~GjKx6jc=BzSe)=yiz0dPeb2ghx>MKwsYm#FcopS^efxc+s!gy`>;m#^Si>9 ze4&n9jv0@m*D^+Pvh*+hRbI{Y!nv4(SMdI+hHrne*?Bn*h;j?2*Q|ct;BRktt$3X+ zJM*e<{3{h7abLcZFiAyKP?3X);Xv8$wclUn26-*Xy!AW2QN`1XVTO-d`r~{vX@(75 z`6&*QR1PGTsxI1m+%vM*T}kNl(@RqhdUSgve0}yel1;Sw*Z195nNT+=kgq3|ilpPSN*MTErGJYgw3rSsv3MyV3AJ zwEX}51;m6oQtXuHH-uKntbN2BsxM#`f4N(6)8Sp4UT*YLoPMAt*6bdK_PVm)nv#1( z^U6#9Y&d*gKXlTjSosEN$pWRkW^MZ=YP)=1m^i$z39mh%_`{dSAkon9;UdPW=YO}~ zO>hleSSZZwQwdZO!+a~%aQc@i`y=?-0`<<$2w}6_KVhYD6w7tyXMfg*#`}o#{?Jl- zApW2-?(VYX%Wr#L*n2}cI`!{_(t^tRJ#Mq-?F!E^mSKvavUp+VQP5) zyObeT%RgR(l|kY3CP%F!=L{JwPNyEa@>5}npI+CZz$puwR@5>)sJ!=J?)Aqjb}ZlF zliyKT7O|60X6|*xn)~nfYCM{hwpp@kQAQ8TTy_KLUN^QQg^NGDxx!hxKu5Zc_r>Jr Z@+o}vC9HFneFx?z22WQ%mvv4FO#pa}f~f!i diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/bottom.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/bottom.png deleted file mode 100644 index 5948e24e5c5cb11e06d09533f5045533a88cff54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|T>< zr;B4q#hkZMhW@u5Bx>80UBxnwL})JT6?i$xl>0Ah=rq36g!ZNNZBv)Nk)5@W`&Iu5 zDaEN=tXx6IPpE8CIvUgdW1al5jqjW0uJ5Q8>iRhM-QMbb?}dKOoe=a$HMu#O!F&$m z9i|-*c^-%z;7w=P&X8xpyo0siu;c;V2I+GQd5m`o*b2BGv>7+Rlm=>69XRa8y8LtH z#lx#M`o<-2N!MvJ`>;;QJhc3nn$_>m3uz9`@vzcEW?o7qY&A|2M6CFRSv4#XXqE=6u_IiPVqLZy66)@y=cR zM(DuYTG^sc(UKn){A*x0U2*HT#?n9DkGC5=IQ+W&$H(W(|NYleTl)6>d%ZO*1)sSu z=M*fzIw|!2@v_aF3_og%7vFxdH&WtJk%?A~LUr%iE_J`(13CpiC zF>o@3-jBbPFV@!ayW{ic;$U946PGt=Z9nUu=-8Q-xZ?jLrYohK6-yfH-fg>m?T#B; zOrKkn!!4Hd#Ew<(mv0kgUFBGK>HMnq+@VZn2KSi%i62?|VFk|=!6O>VHrC7y^=c}K z)|C%tN(HFI{rSy6RGfgLuU9<3A=IYt$V2ARxCPR#TUKi*%PzAJbQ0#V;a~pwXR|`f zoa7U>I*BO^GgsIMGRf!Xf82Y~LA>Me$)iqI()XqPAFT{nn86<;?NoYHb0f>9!-wun zU-U&&zNUKW&F`=O$!=ICny|>#_324br-_*ibN}2n{~D7Rew}fH8ne&WCo?BRGu_pQ z(lMWONYDBH=SjaEH6<$Ks@STmqNNX5oU$=V+`=w#z07mD^QC|*b(15Rv?eVx42iN? zCvZGCX==+cHmz0uO1{#aXTr1?86A#2T&}htrE9|x7YotMSt8qJpIx$S>Ffn3`4#6L zTV`A874r4(r*p>zG~|SRD_&h!;8ZF-z9nUv+v98v#*kY1%?33gT%A)jK7F|{N8sX; iliy1H_GQ@CGfv4o_4L7|(s{tl#^CAd=d#Wzp$PzC#+CyB diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/bottom.png b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/bottom.png deleted file mode 100644 index a197cde57bb1403765e0e5db8fb6b413499573db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 975 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|RrT zr;B4q#hkaZ?6Yq>NF0+FEw1R|mFp6_tE6;7Oe1B@!s7P2R;TGgzgTy%eiGf4^6t*U z3pd+znw(AuSv*#}lw=cms-z{MG{fKa^rn*ZHTy2y;crr%Tl2p7{NIU-zwcS3@nKG- zqi%y#I>T0mtT~KVm{t_B1#mAoCh34zu<8m^PRF7XPgs|!w-~Iue5yf@<;J7mb_@y} zO`oD>En{dnnv@tjezK-khnoh~Yt`_C^Js!)rhPtl1YHdn~)*{qG$X z^OZQ5433?$XGrK#9fQGlpp+_ zo>}?!>h9z}f6TPc-><9bJ(|R*c;ukFL+l@|-$%BaIq=q-ekr|V^7alx?XS?l%K{DN zGktnqZH;1?-L(2st(em6A3Ymy{gi7{Y*KKLIUaWT!l?!m-@=lT7M;@vBo6=mTN`O6 z!}syShlJp{rmNbozcy_+uk~!g)w1k)YRkt{{AOE%T&(0KCS#<*4A4YHS?Y? z<$V2hS5LmxA4YCwx5a`>rZ8-{nDIBptMg(;ip(7$f3MD`MLPw9YxSmkduTrVz3=L; zgMD6;af)y35Fw~v^cJ*a}K-=TDE;&@8aKzUkDDId~(U@1VFehj#^2sqLSy6@TmY2Ts5Co>T z@{Ogl7;;`3UA>agAmFrgi7i9xs*w47EWOtsi+WCKD2}@>={76M-Qg&UgYhA?0QZ~{ fpQpP7_cMH}Ua9$g17{R4hcbA&`njxgN@xNA{k*zs diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/bottom.png b/Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/bottom.png deleted file mode 100644 index 3124c036881f3812649c162ef9e3057d8a575d1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1098 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|WCP zPZ!6KiaBp*8G1+uN*wu&9CwrRX7AT;E^QUvB|58*@9IUdGpiJ0 zm#i!)UZD`Heh%}xX-=hJs*4AeyjUE#k+5)2-;tg+hDNt zW@{3gZSviPkE@RD3e-rOa5Y=D_S(FZKOWi-&Uh`{6XII0U-158+=CsLgG7I;ANUlt zrqxx-e%qzXL8kBAt-O{$b~j7dtJAl5=eOiZ2W0Etl*V8Fdg;%@t&g$;y^@W8ns6QM zIV*Aaws?Ev<9qe5n4il$UAoH52BdoVP~^Z|N+T*~?aXDnB~X zmvi9%skQ&jSMV$lbLcf{h+;53#gN5#MT2<-YrtZhg1$?3HSE^2w=G}#bA4)Q{>@)k zt#?0uT6pr%lxLM4n#sBAJ0^Vnv_sn6d-c4=ZEPo=q)y@vp7qwxVD)vIr<+txCkvJD zY1KR{ceYdI`soio$7W7tIwJh!04JyEf%$uQ_UyehqxGVUfq_cax81i-eq-M;(Xi2X z!M_=I>;)tDUc1)fz?||47`+SuaYCUt|HZwxxVb^$)U~@a&Z@`Tp0j<=wxNB$y?jDK z#*USSN&j7DC>~>+EIi$zfpej@!s_b=v)4bm=1YYhr#Xf#9YTra( zT>JX4dqvRp%c|W=9d|h`&nbEoq%C4>_Iyujc-w3i?L%@;mYuO=Pu2;U?j8JKNsE~K z->VTf=R7!ecZI^~%bp=^>sNDreWI?e_xQiSCLM3KD-1U_$saKBUG98j{vX~)8IvU1 z9%jyQXlXmSZTGa>EXO1)o^R9dQ2(itzMoZ2c#%$}{eOnJuBSEFzWn`l8U6JKN`d>+cg;IBm0$6$xlqd)!Tzl%LJcl&|$jw_KL~O8JnJ*Ws-aI zo{_;WQaj;S>8|$&HeQ$>ldXCEKpJUdVrQXU40|?(GZ=#djO; z-;nff(MkHy^zZc~o**`v`7wvKFvO-8&d$5T%22ZF@8;x_C+5j#B)+_7E3?jegGKv6 z38!;{TcVSnPLE=G_UG$$%jXZ~JoYXuP57@eV=vEw*F5d7`3~j%+mPL~&iG6m+a<%L zBL6LR?mAy|uKHFh=c0O{j_B9ho7dY)9jU+g?|qMEDfcu(2j+(FrShz|k3D~O{m1%* z+ZFNOt6Th-1g%#p&fL9Y&$5%}m~^u%_q+*ZU{F2ox;3iX>7VgC;~O^L_M52v`Y`#) z#mC|oCI2^0_}_By*}~1NHr07ae%-%uZ^rSR-hI;B^K=~KIJ-}(*GBX)4yJ}{MYrE%g59tndVJJ#=)vd*iliuq;ksq%Hr zx;yNbO;ysJqUKEWPPp)3a=`hPEq|7!exGeH;f(k}$IgOtItIW*x>Lb;FEffAe#56)kpNDv Date: Mon, 19 Feb 2024 21:07:36 -0500 Subject: [PATCH 47/85] APGLv3 --- .../DeltaV/Lamiae/ClientLamiaVisuals.cs | 6 ++++++ .../Lamiae/LamiaSegmentVisualsComponent.cs | 6 ++++++ Content.Server/DeltaV/Lamiae/LamiaSystem.cs | 6 ++++++ Content.Shared/DeltaV/Lamiae/LamiaComponent.cs | 6 ++++++ .../DeltaV/Lamiae/LamiaSegmentComponent.cs | 6 ++++++ .../DeltaV/Lamiae/LamiaSegmentVisuals.cs | 6 ++++++ .../DeltaV/Lamiae/SharedLamiaeSystem.cs | 6 ++++++ .../Mobs/Customization/Markings/lamia.yml | 4 ++++ .../Customization/Markings/lamiasegment.yml | 17 ++++------------- .../DeltaV/Entities/Mobs/Player/lamia.yml | 4 ++++ .../DeltaV/Entities/Mobs/Species/lamia.yml | 4 ++++ .../Entities/Objects/Specific/Species/lamia.yml | 4 ++++ Resources/Prototypes/DeltaV/Species/lamia.yml | 4 ++++ 13 files changed, 66 insertions(+), 13 deletions(-) diff --git a/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs b/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs index 00a9f798f7..8b9f3b4c47 100644 --- a/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs +++ b/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs @@ -1,3 +1,9 @@ +/* +* Delta-V - This file is licensed under AGPLv3 +* Copyright (c) 2024 Delta-V Contributors +* See AGPLv3.txt for details. +*/ + using Robust.Client.GameObjects; using System.Numerics; using Content.Shared.DeltaV.Lamiae; diff --git a/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs b/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs index b74529e287..d2d519e2c8 100644 --- a/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs +++ b/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs @@ -1,3 +1,9 @@ +/* +* Delta-V - This file is licensed under AGPLv3 +* Copyright (c) 2024 Delta-V Contributors +* See AGPLv3.txt for details. +*/ + namespace Content.Client.DeltaV.Lamiae; [RegisterComponent] diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs index ee4a763773..a8bdd58b66 100644 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs @@ -1,3 +1,9 @@ +/* +* Delta-V - This file is licensed under AGPLv3 +* Copyright (c) 2024 Delta-V Contributors +* See AGPLv3.txt for details. +*/ + using Robust.Shared.Physics; using Content.Shared.Damage; using Content.Shared.Explosion; diff --git a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs index 4aadc19604..95540958cc 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs @@ -1,3 +1,9 @@ +/* +* Delta-V - This file is licensed under AGPLv3 +* Copyright (c) 2024 Delta-V Contributors +* See AGPLv3.txt for details. +*/ + namespace Content.Shared.DeltaV.Lamiae { ///

diff --git a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs index 9e54c1340b..82de76ca1a 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs @@ -1,3 +1,9 @@ +/* +* Delta-V - This file is licensed under AGPLv3 +* Copyright (c) 2024 Delta-V Contributors +* See AGPLv3.txt for details. +*/ + using Robust.Shared.GameStates; namespace Content.Shared.DeltaV.Lamiae diff --git a/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs index 7de06db4e3..2d73dd746e 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs @@ -1,3 +1,9 @@ +/* +* Delta-V - This file is licensed under AGPLv3 +* Copyright (c) 2024 Delta-V Contributors +* See AGPLv3.txt for details. +*/ + using Robust.Shared.Serialization; namespace Content.Shared.DeltaV.Lamiae diff --git a/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs b/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs index bea990d37c..de66e5d530 100644 --- a/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs +++ b/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs @@ -1,3 +1,9 @@ +/* +* Delta-V - This file is licensed under AGPLv3 +* Copyright (c) 2024 Delta-V Contributors +* See AGPLv3.txt for details. +*/ + namespace Content.Shared.DeltaV.Lamiae; public sealed class SegmentSpawnedEvent : EntityEventArgs diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml index 16f88a0c5e..113cb7e29f 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml @@ -1,3 +1,7 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + - type: marking id: LamiaBottom bodyPart: Tail diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml index c6271da70c..9d9a0d9c80 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml @@ -1,18 +1,9 @@ -- type: marking - id: LamiaBottom-LamiaSegment - bodyPart: Tail - markingCategory: Tail - speciesRestriction: [LamiaSegment] - sprites: - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi - state: body3tone1 - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi - state: body3tone2 - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi - state: body3tone3 +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. - type: marking - id: LamiaBottom-LamiaSegmentEnd + id: LamiaBottom-LamiaSegment bodyPart: Tail markingCategory: Tail speciesRestriction: [LamiaSegment] diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml index 41a8f746b1..ca6fe618f5 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml @@ -1,3 +1,7 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + - type: entity save: false name: Urist McNoodle diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index 992c3d7e7b..19155e8393 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -1,3 +1,7 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + - type: entity save: false name: Lamia diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml index f050fa78d6..27e72b568f 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml @@ -1,3 +1,7 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + - type: entity id: LamiaInitialSegment noSpawn: true diff --git a/Resources/Prototypes/DeltaV/Species/lamia.yml b/Resources/Prototypes/DeltaV/Species/lamia.yml index 4ebbf14034..14885b30ff 100644 --- a/Resources/Prototypes/DeltaV/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Species/lamia.yml @@ -1,3 +1,7 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + - type: species id: Lamia name: Lamia From 238cb53ba879df9254242a73ed8e00dad254f6a7 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 19 Feb 2024 21:11:06 -0500 Subject: [PATCH 48/85] Update lamia.yml --- Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index 19155e8393..8d1d29689a 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -166,7 +166,6 @@ - type: MeleeWeapon #This damage is most likely final soundHit: path: /Audio/Items/hypospray.ogg #this sound is not final, but is a pretty good placeholder so we might keep it - range: 0.8 animation: WeaponArcBite damage: types: @@ -199,7 +198,7 @@ shape: !type:PhysShapeCircle radius: 0.35 - density: 400 #Density is not final, adjust accordingly if the number of tail segments is reduced or increased + density: 1000 #Density is not final, adjust accordingly if the number of tail segments is reduced or increased restitution: 0.0 mask: - MobMask From 214c9344b2d13588e9c92f84070a45a8a85a196a Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 19 Feb 2024 21:30:11 -0500 Subject: [PATCH 49/85] send it --- .../DeltaV/Entities/Mobs/Player/lamia.yml | 1 - .../DeltaV/Entities/Mobs/Species/lamia.yml | 17 ++--------------- .../lamia_inventory_template.yml | 3 --- .../OuterClothing/base_clothingouter.yml | 1 + .../Clothing/OuterClothing/softsuits.yml | 6 ++++++ 5 files changed, 9 insertions(+), 19 deletions(-) diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml index ca6fe618f5..1f5397e5dc 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml @@ -16,7 +16,6 @@ interactSuccessSound: /Audio/Effects/thudswoosh.ogg messagePerceivedByOthers: hugging-success-generic-others - type: Mind - showExamineInfo: true - type: Input context: "human" - type: MobMover diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index 8d1d29689a..8c3645c700 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -43,9 +43,9 @@ interactFailureString: petting-failure-lamia interactSuccessSpawn: EffectHearts interactSuccessSound: - path: /Audio/Mobs/Animals/purr.ogg #placeholder sound + path: /Audio/Mobs/Animals/lizard_happy.ogg #placeholder sound interactFailureSound: - path: /Audio/Mobs/Animals/hiss.ogg #placeholder sound + path: /Audio/Mobs/Animals/snake_hiss.ogg #placeholder sound - type: Icon sprite: Mobs/Species/Human/parts.rsi state: full @@ -114,9 +114,6 @@ - map: [ "pocket1" ] - map: [ "pocket2" ] - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - - type: Body - template: LamiaTemplate - preset: LamiaPreset - type: Damageable damageContainer: Biological damageModifierSet: Scale #TODO: make a new damage modifier set @@ -148,12 +145,6 @@ 100: 0.7 120: 0.6 140: 0.5 - - type: Appearance - visuals: - - type: RotationVisualizer - - type: BuckleVisualizer - - type: CreamPiedVisualizer - state: creampie_human - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Generic_mob_burning @@ -172,7 +163,6 @@ Piercing: 1 Poison: 2 Asphyxiation: 2 - ignoreResistances: true #We're basically going for a biological hypospray, but ideally I only want the piercing to ignore resistances - type: SolutionContainerManager solutions: melee: @@ -216,9 +206,6 @@ - type: StandingState - type: Fingerprint - type: Perishable - - type: FootstepModifier - footstepSoundCollection: - collection: FootstepLamia - type: Bloodstream bloodMaxVolume: 60000 bloodlossDamage: diff --git a/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml b/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml index ce477b46f4..546d0746b7 100644 --- a/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml +++ b/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml @@ -19,9 +19,6 @@ uiWindowPos: 1,2 strippingWindowPos: 1,2 displayName: Suit - whitelist: - tags: - - AllowLamiaHardsuit - name: gloves slotTexture: gloves slotFlags: GLOVES diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index fb7a34e9ee..da9d756c99 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -114,6 +114,7 @@ size: Huge - type: Tag tags: + - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml index 58faf26847..ce074a71f3 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml @@ -14,6 +14,8 @@ - SuitEVA - MonkeyWearable - WhitelistChameleon + - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits + - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites #Syndicate EVA - type: entity @@ -31,6 +33,8 @@ - SuitEVA - MonkeyWearable - WhitelistChameleon + - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits + - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites #Emergency EVA - type: entity @@ -72,6 +76,8 @@ - SuitEVA - MonkeyWearable - WhitelistChameleon + - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits + - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites #NTSRA Voidsuit / Ancient Voidsuit - type: entity From 221991fb2b9a88c4bb9421d57c4ab784b25c77ff Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 19 Feb 2024 21:53:38 -0500 Subject: [PATCH 50/85] More small fixes --- Content.Server/DeltaV/Lamiae/LamiaSystem.cs | 3 ++- Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml | 4 ++-- .../DeltaV/Entities/Objects/Specific/Species/lamia.yml | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs index a8bdd58b66..16cb9dd628 100644 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs @@ -206,7 +206,7 @@ public void SpawnSegments(EntityUid uid, LamiaComponent component) private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lamiaComponent, int segmentNumber) { - EnsureComp(uid, out var segmentComponent); + LamiaSegmentComponent segmentComponent = new(); segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; segmentComponent.BulletPassover = lamiaComponent.BulletPassover; segmentComponent.Lamia = lamia; @@ -238,6 +238,7 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami segmentComponent.Owner = segment; segmentComponent.SegmentNumber = segmentNumber; + EntityManager.AddComponent(segment, segmentComponent, true); _segments.Enqueue((segmentComponent, lamia)); lamiaComponent.Segments.Add(segmentComponent.Owner); diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index 8c3645c700..e47bdb1e48 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -43,9 +43,9 @@ interactFailureString: petting-failure-lamia interactSuccessSpawn: EffectHearts interactSuccessSound: - path: /Audio/Mobs/Animals/lizard_happy.ogg #placeholder sound + path: /Audio/Animals/lizard_happy.ogg #placeholder sound interactFailureSound: - path: /Audio/Mobs/Animals/snake_hiss.ogg #placeholder sound + path: /Audio/Animals/snake_hiss.ogg #placeholder sound - type: Icon sprite: Mobs/Species/Human/parts.rsi state: full diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml index 27e72b568f..e3c9b514ad 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml @@ -32,7 +32,6 @@ - type: Tag tags: - HideContextMenu - - type: Pullable - type: entity id: LamiaSegment From 389b01a2af89438cd4a63fc08aa2b7f730cc07e6 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 19 Feb 2024 22:06:27 -0500 Subject: [PATCH 51/85] guh --- .../Mobs/Customization/Markings/lamia.yml | 8 +++++--- .../Mobs/Customization/Markings/lamiasegment.yml | 8 +++++--- .../Lamia}/lamia_tails.rsi/body3tone1.png | Bin .../Lamia}/lamia_tails.rsi/body3tone2.png | Bin .../Lamia}/lamia_tails.rsi/body3tone3.png | Bin .../Lamia}/lamia_tails.rsi/bottom3tone1.png | Bin .../Lamia}/lamia_tails.rsi/bottom3tone2.png | Bin .../Lamia}/lamia_tails.rsi/bottom3tone3.png | Bin .../Lamia}/lamia_tails.rsi/meta.json | 7 +++++++ .../Lamia}/lamia_tails.rsi/tip3tone1.png | Bin .../Lamia}/lamia_tails.rsi/tip3tone2.png | Bin .../Lamia}/lamia_tails.rsi/tip3tone3.png | Bin .../Lamia/lamia_tails.rsi/underscales.png | Bin 0 -> 621 bytes .../Lamia/lamia_tails.rsi/underscalessegment.png | Bin 0 -> 546 bytes 14 files changed, 17 insertions(+), 6 deletions(-) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/body3tone1.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/body3tone2.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/body3tone3.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/bottom3tone1.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/bottom3tone2.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/bottom3tone3.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/meta.json (84%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/tip3tone1.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/tip3tone2.png (100%) rename Resources/Textures/{Nyanotrasen/Mobs/Customization => DeltaV/Mobs/Customization/Lamia}/lamia_tails.rsi/tip3tone3.png (100%) create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/underscales.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/underscalessegment.png diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml index 113cb7e29f..159c53d1e9 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml @@ -8,9 +8,11 @@ markingCategory: Tail speciesRestriction: [Lamia] sprites: - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: bottom3tone1 - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: bottom3tone2 - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: bottom3tone3 + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: underscales diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml index 9d9a0d9c80..e1482b0d45 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml @@ -8,9 +8,11 @@ markingCategory: Tail speciesRestriction: [LamiaSegment] sprites: - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: body3tone1 - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: body3tone2 - - sprite: Nyanotrasen/Mobs/Customization/lamia_tails.rsi + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: body3tone3 + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: underscalessegment diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone1.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone1.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone2.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone2.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone2.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone2.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/body3tone3.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone1.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone1.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone1.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone1.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone2.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone2.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone3.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/bottom3tone3.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone3.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/meta.json b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/meta.json similarity index 84% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/meta.json rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/meta.json index 5374b72d74..159776f43a 100644 --- a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/meta.json +++ b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/meta.json @@ -7,6 +7,10 @@ "y": 32 }, "states": [ + { + "name": "underscales", + "directions": 4 + }, { "name": "bottom3tone1", "directions": 4 @@ -36,6 +40,9 @@ }, { "name": "tip3tone3" + }, + { + "name": "underscalessegment" } ] } diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone1.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone1.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone1.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone1.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone2.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone2.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png diff --git a/Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png similarity index 100% rename from Resources/Textures/Nyanotrasen/Mobs/Customization/lamia_tails.rsi/tip3tone3.png rename to Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/underscales.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/underscales.png new file mode 100644 index 0000000000000000000000000000000000000000..edc457a79b7e3bbb117a90a32d9016829319a14e GIT binary patch literal 621 zcmV-z0+RiSP)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TFiG>?GT@Au4+FX^000000Ki>5B8z(O@855&wNR~WugIcO%Itll2_3+; zZL{~0Mgk&>BtQcGCjsHnwXW-T6xLcVIRXIy0001PXZSWZ<92vv&(OQTUd9{2%$~ys zknu`1v!?`%7LWi5kboKcIDOAU`4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmO>As1<@2>O_pVIHeg443h@VW71o2dc`y)?7ytkO006k*?p;k4hw|3z{f&rd kYN(~YD(Bp_di%+21E}9Y{jC`qM*si-07*qoM6N<$f=uM|RsaA1 literal 0 HcmV?d00001 From c01fdd3cd2f7eb64500704c1aa803e7c27052542 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 19 Feb 2024 22:53:21 -0500 Subject: [PATCH 52/85] more --- .../Mobs/Customization/Markings/lamia.yml | 2 - .../Customization/Markings/lamiasegment.yml | 2 - .../Objects/Specific/Species/lamia.yml | 20 ------- Resources/Prototypes/DeltaV/Species/lamia.yml | 22 -------- .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1769 bytes .../ERTSuits/ertjanitor.rsi/meta.json | 53 ++++++++++-------- .../ERTSuits/ertjanitor.rsi/segment.png | Bin 0 -> 372 bytes .../Lamia/lamia_tails.rsi/bottom3tone1.png | Bin 692 -> 763 bytes .../Lamia/lamia_tails.rsi/bottom3tone2.png | Bin 779 -> 869 bytes .../Lamia/lamia_tails.rsi/bottom3tone3.png | Bin 871 -> 1083 bytes .../Lamia/lamia_tails.rsi/meta.json | 7 --- .../Lamia/lamia_tails.rsi/underscales.png | Bin 621 -> 0 bytes .../lamia_tails.rsi/underscalessegment.png | Bin 546 -> 0 bytes 13 files changed, 30 insertions(+), 76 deletions(-) create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/underscales.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/underscalessegment.png diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml index 159c53d1e9..65af873fe6 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml @@ -14,5 +14,3 @@ state: bottom3tone2 - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: bottom3tone3 - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: underscales diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml index e1482b0d45..432b2ee841 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml @@ -14,5 +14,3 @@ state: body3tone2 - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi state: body3tone3 - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: underscalessegment diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml index e3c9b514ad..f88c640c3b 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml @@ -55,23 +55,3 @@ - DoorBumpOpener - type: HumanoidAppearance species: LamiaSegment - -- type: entity - id: LamiaSegmentEnd - parent: LamiaSegment - name: lamia tail tip - noSpawn: true - description: The end of a lamia's tail. - components: - - type: Sprite - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - layers: - - map: [ "enum.HumanoidVisualLayers.Tail" ] - - map: [ "enum.LamiaSegmentVisualLayers.Armor" ] - sprite: Clothing/OuterClothing/Hardsuits/basic.rsi - state: segment - visible: false - - type: LamiaSegment - segmentId: tip - - type: HumanoidAppearance - species: LamiaSegmentEnd diff --git a/Resources/Prototypes/DeltaV/Species/lamia.yml b/Resources/Prototypes/DeltaV/Species/lamia.yml index 14885b30ff..a6cfbf90fe 100644 --- a/Resources/Prototypes/DeltaV/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Species/lamia.yml @@ -29,17 +29,6 @@ sexes: - Female -- type: species - id: LamiaSegmentEnd - name: LamiaSegmentEnd - roundStart: false - prototype: LamiaSegmentEnd - dollPrototype: MobLamiaDummy - sprites: MobLamiaSegmentEndSprites - markingLimits: MobLamiaSegmentEndMarkingLimits - skinColoration: HumanToned - sexes: - - Female - type: markingPoints id: MobLamiaMarkingLimits @@ -59,12 +48,6 @@ points: 1 required: false -- type: markingPoints - id: MobLamiaSegmentEndMarkingLimits - points: - Tail: - points: 1 - required: false - type: speciesBaseSprites id: MobLamiaSprites @@ -83,8 +66,3 @@ id: MobLamiaSegmentSprites sprites: Tail: MobHumanoidAnyMarking - -- type: speciesBaseSprites - id: MobLamiaSegmentEndSprites - sprites: - Tail: MobHumanoidAnyMarking diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..a61d875e727a139fae9d80069cab1645a26097ad GIT binary patch literal 1769 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D27XCIK~#8N?OI)E z990y)8&Q*u(PrCbZ9Wf-@Oh9~4#0QN~UlobqgP^`h z9whh^l=MMFd?^0Z#7#@{v$PVDZZ>AqB)Ex6cAW2K&gAxHcjn&NnZ%m;;Bx2w?0n~Z zbMBpG&SfD&ga{ELM2HYO6%nhxp^!`_4eQdz#KeRrUuvvc2`3JJYJglefch|Qbp-H_e6Q8jQKP|GE znHkp9)WrKqeYDY!am*u8{DRC6fE!Me4PNF&O8g}J z(9n>5?Ump0-3bM0ec{HUqUgVyy>72N0?iYDXANni62BM~1bX_q{7QSk@%DZ@oQNFj zZ8AG%uRH3;Jk0kKGC!U!);Sflz4AM%L+{>?2A|_Z;*+ifC=XFyIQ|LyqW?$s)yT7+ zBfyDYi~@1(>+(AeLQN2X9IqR!IkAm(M>R-klM>t2E&-A6yYGLnMk?d6M<3DRcQvl7 ztIGg+UteG3(EUeTch%9~h9lkG-3E*p7#Q&EJVEB))wtUlVXU}nuxRZD#kGZbZGL3~ zLB2ncW($QsSYvFD)w==ezijRcFv9Bg6(m3+eV7&IrrGq&9BXOb%g4Y^0`Lw+C~blS zkbt}#;5^2Ig6zBu^kZBlN=0Z1P>GySNu2*Ov;+VuJ>?*uz6g2%#7DK$gK>hE0NJq- zJJjWZevEGgz$Zd(>p)9@`Na~iYipyM3P9sQ0r!Wq;Dg|?UG=<18~tARwFGEv*qB}{ z7VSb1$AiF4r3LP6T{Oy8EN;|jqaWkC(6V@Gah}(r(*U(;JP6S1Eq8T_w~3Q#>JRKS zNH-q6m}R^7nD6^5Q+7cc{o=eJP|k*Gxjh-XuQg??6ql_QGefX}U7Z>a%yAj}(+?V} z#U(TRmpONB^mcZ6?B^}x5AlD(wug;jX#I25MkM0wVzBS68vvmIR=r~p3SiYc7NG!E zy z_jwxnKqAf4V-N+!ni4otsgz+lzxK-MuUX=r6u0GC{Riyc=v&qdb!a^~`c6-Y2qYl@ zBrH@@Q8IKQz;qn-Z1XGVs}s=EY~4Mo=Vua!UfH91`Fz=H0lX&nJNJ3DJ8Cnwi# zt*f_s)m)zGxDqHzYhXX%K4VM7+Wr^Cm?`$^IbeO1;qBYuwTx78>j$)xeRJd z2iJ~1{J5PEy)=5B*FZz8mDhi-6nO1skLxBVI*-#BZHFG<1Z1bZ zo!}?{sYa=1r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000-Ln`9l-rDHb93XP6aE3%=g37hIJEP@~ zF3kMJ_DkfKjoP|jTyL%!96H3tymQ`UnaS4_?no`Y^{@UUr|rX{_vPPE{cKe4rrFT!=3Jes{O<8E3UEiCsYm$$3w!7yt z@ya_j&eqd)wr#4C+9muU(CV1o%+_`0QEyPceyh)R)wM!m4~@_6*s7@9 a^g#9sgUqg$b9whcPV;p2b6Mw<&;$UOM3=z; delta 259 zcmey(x`lPaF2?%93=DjS8IR|$NMT@LxZ&yI7*Y}U_JS>6lY>B8;>?e?^T8?IH~N{*aXoy+bTxa9}4h^ygC#zO`+lF59xw)Ipt zOx1b5YSpFZ)ARPdU;lK`?rq(LGgbW8?;Zn`(E{MX4Rf@$Q=1e~l(dtG=A{GVhbAW{7{<5-((meW4o9UI6P? zK%-*AFa(*nR@Zf$rm1XIN;2j5uzCP|(!A&y595rQ5-(_qeW4n!@CtmYmY8BMOk3TQ z-^2O~oOt3lQS@6~20<%LlO^;D@VM{$L-V;Dmn{zf00000000000DF{W`J+OkSNfH< z>$)!$ZhH7T`aFNnA8p$X(=*iJWUMS&aJUOFd>>U%ox+p;d+avc1gh@Uqm>Qr}3OmPTX g;|M(#xUMMr168ez=mo_~=l}o!07*qoM6N<$f+Xq4O8@`> delta 347 zcmV-h0i^!r28#x;x&eQ~000id0mpBsWB>pGFG)l}RCr$P*}-vxFc3gdNF#257D5Ts z0C#TCL9S4NXDEUaNDK6%cr|EdM`Pj0v2m3AciHt~(5{UxkO2Sy00000z;8ATgW1wx z9^-9`$&rDVWx0FsB+0Nbeg0A^9{- z9};i5`5fIC^FEH_vaV}Z6osw1+&!1?`#zV&CE70>z^y0I_2IuKki6@*}vs=eyxe4?DY{kb{Bmy*>`(;&wYM2e?7mC tYsVf!E*84rLl^pny*`fa1ppG2WnVLKPdYMWB7gt@002ovPDHLkV1g1tp56ce diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone3.png index b3f6dee64750bdd4305577e16ebec43be9b6e94f..2871eb45d882791c78d99e2718f4fbf75de55811 100644 GIT binary patch delta 654 zcmV;90&)H42D=Ebx&eQ|000ib0l1NC?EnA*Ur9tkRCr$Pn!k%0K@`VV3lY1dO(0jv zVHr{x(ul=jkt$W{G}qhQUl0iX2bVUfQdwxB2sV}}CD;WLQUsDtL_Ih2oqHpX&8<6Y zb|f6%53KLUjDFwS+1+Bth!8>uA%qY@2qA-G8(nw1j)UF#!nC*;KY7MM&X zzgDZ&gHESY>h*tmaktyuf7iu>!62?ytG`>V)-EKdYRB@m=aV;)R%NNaPG`h*sgvC6Y^d#3U;8TE21Yon-lyUXJht--oZ}pbS! zB)O-=ar_J`tydif@^%6tgb+dqA%qY@2qB~}`u)D!p1u<^9&~pYWNBp8m?ZCO@iPdx zBD59%0&!q2lwPt1G=GNJmt5OgZYQ>0uYWS;Eqvi>u~@v)JI0~NszH3ab1d#bGOvI* zj$eqI{Lz0ab^Juay{Zlgw!j5w>KZJlQP-*Kzl(!s$$a@qsZ{!k#`KP?-lKP%V)Zrp ze*q44a`rpOu&xgoIu5pGi%CR5RCr$P+R<%;Fc1b{pihj@r!GgM0ep8cwmn#&@ob|&m58C=D=4lt*ZZ%qI0iD&c@~?Ndf=>000000002+ zSJibrOi>zB)W|pn83J%=bY)qlZrla0aTb?Gw`SK}!6(41?TvqjvqI~%x~}_>7VYM# z&L#tC9)T0bC82dH=Egqq(2^bjziu<;jW6aE;=-3~YHrtU;)gUR;DO_k&^nbY%fv;y z`L=CUH$-y-J~=K4ty9VKyyu}MJpz8+X3Wt(k0*T5nJ%qPbKsJwOrK}kX?NG@MR{8Q0000000000000}Q zs_OcAy!)xFP5hF3^Kj?6+As{SJQVGHGc^4|<}WfAKT&iW`prWo5!1c-__=8vt4wc3 z+%fSR#wPW1|K4OSQX?|=zdfy;Yh5wl-YQzQTD>KLXz6w~y! ioixWO4*&pHN%93vRsC_y@1auw0000EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TFiG>?GT@Au4+FX^000000Ki>5B8z(O@855&wNR~WugIcO%Itll2_3+; zZL{~0Mgk&>BtQcGCjsHnwXW-T6xLcVIRXIy0001PXZSWZ<92vv&(OQTUd9{2%$~ys zknu`1v!?`%7LWi5kboKcIDOAU`4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmO>As1<@2>O_pVIHeg443h@VW71o2dc`y)?7ytkO006k*?p;k4hw|3z{f&rd kYN(~YD(Bp_di%+21E}9Y{jC`qM*si-07*qoM6N<$f=uM|RsaA1 From a8ad70d5d99c5a5c441bf66693d666faea68be49 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 19 Feb 2024 23:19:54 -0500 Subject: [PATCH 53/85] A bunch of placeholders needed to pass tests --- .../Entities/Objects/Specific/Species/lamia.yml | 2 ++ .../Hardsuits/ERTSuits/ertengineer.rsi/meta.json | 7 +++++-- .../ERTSuits/ertengineer.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/ERTSuits/ertleader.rsi/meta.json | 7 +++++-- .../Hardsuits/ERTSuits/ertleader.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/ERTSuits/ertmedical.rsi/meta.json | 7 +++++-- .../Hardsuits/ERTSuits/ertmedical.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/ERTSuits/ertsecurity.rsi/meta.json | 7 +++++-- .../ERTSuits/ertsecurity.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/brigmedic.rsi/meta.json | 7 +++++-- .../Hardsuits/brigmedic.rsi/segment.png | Bin 0 -> 372 bytes .../OuterClothing/Hardsuits/cburn.rsi/meta.json | 7 +++++-- .../OuterClothing/Hardsuits/cburn.rsi/segment.png | Bin 0 -> 372 bytes .../OuterClothing/Hardsuits/clown.rsi/meta.json | 3 +++ .../OuterClothing/Hardsuits/clown.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/deathsquad.rsi/meta.json | 7 +++++-- .../Hardsuits/deathsquad.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/lingspacesuit.rsi/meta.json | 9 ++++++--- .../Hardsuits/lingspacesuit.rsi/segment.png | Bin 0 -> 372 bytes .../OuterClothing/Hardsuits/maxim.rsi/meta.json | 9 ++++++--- .../OuterClothing/Hardsuits/maxim.rsi/segment.png | Bin 0 -> 372 bytes .../OuterClothing/Hardsuits/mime.rsi/meta.json | 3 +++ .../OuterClothing/Hardsuits/mime.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/piratecaptain.rsi/meta.json | 3 +++ .../Hardsuits/piratecaptain.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/pirateeva.rsi/meta.json | 3 +++ .../Hardsuits/pirateeva.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/santahardsuit.rsi/meta.json | 7 +++++-- .../Hardsuits/santahardsuit.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/security-red.rsi/meta.json | 7 +++++-- .../Hardsuits/security-red.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/security-warden.rsi/meta.json | 7 +++++-- .../Hardsuits/security-warden.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/security.rsi/meta.json | 7 +++++-- .../Hardsuits/security.rsi/segment.png | Bin 0 -> 372 bytes .../OuterClothing/Hardsuits/wizard.rsi/meta.json | 7 +++++-- .../Hardsuits/wizard.rsi/segment.png | Bin 0 -> 372 bytes .../Suits/ancient_voidsuit.rsi/meta.json | 7 +++++-- .../Suits/ancient_voidsuit.rsi/segment.png | Bin 0 -> 372 bytes 39 files changed, 91 insertions(+), 32 deletions(-) create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/brigmedic.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/mime.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/ancient_voidsuit.rsi/segment.png diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml index f88c640c3b..a76973e0f0 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml @@ -4,6 +4,7 @@ - type: entity id: LamiaInitialSegment + save: false noSpawn: true components: - type: Damageable @@ -35,6 +36,7 @@ - type: entity id: LamiaSegment + save: false parent: LamiaInitialSegment name: lamia segment noSpawn: true diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json index 4fbd43a08b..a3e0090b8f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json @@ -19,8 +19,11 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 + "name": "inhand-right", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000 Date: Wed, 6 Mar 2024 17:25:29 -0500 Subject: [PATCH 54/85] 1984 the onhitself subscription --- Content.Server/DeltaV/Lamiae/LamiaSystem.cs | 11 ++--------- Content.Shared/DeltaV/Lamiae/LamiaComponent.cs | 2 +- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs index 16cb9dd628..4795aa5016 100644 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs @@ -89,7 +89,6 @@ public override void Initialize() SubscribeLocalEvent(OnSegmentStorageInsertAttempt); SubscribeLocalEvent(OnDidEquipEvent); SubscribeLocalEvent(OnDidUnequipEvent); - SubscribeLocalEvent(OnHitSelf); SubscribeLocalEvent(TailCantStand); SubscribeLocalEvent(OnSnekBoom); } @@ -170,6 +169,8 @@ private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, Ent private void HandleSegmentDamage(EntityUid uid, LamiaSegmentComponent component, DamageModifyEvent args) { + if (args.Origin == component.Lamia) + args.Damage *= 0; args.Damage = args.Damage / component.DamageModifyFactor; } private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component, DamageChangedEvent args) @@ -178,14 +179,6 @@ private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component _damageableSystem.TryChangeDamage(component.Lamia, args.DamageDelta); } - private void OnHitSelf(EntityUid uid, LamiaSegmentComponent component, ref BeforeDamageChangedEvent args) - { - if (args.Origin == component.Lamia) - { - args.Cancelled = true; - } - } - private void TailCantStand(EntityUid uid, LamiaSegmentComponent component, StandAttemptEvent args) { if (component.BulletPassover == true) diff --git a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs index 95540958cc..163c31df59 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs @@ -21,7 +21,7 @@ public sealed partial class LamiaComponent : Component /// A clamped variable that represents the number of segments to be spawned /// [DataField("numberOfSegments")] - public int NumberOfSegments = 30; + public int NumberOfSegments = 18; /// /// If UseTaperSystem is true, this constant represents the rate at which a segmented entity will taper towards the tip. Tapering is on a logarithmic scale, and will asymptotically approach 0. From 85c83e485c678d073f4e26aa38352f6be279e68b Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 10 Mar 2024 20:34:55 -0400 Subject: [PATCH 55/85] Update LamiaSystem.cs --- Content.Server/DeltaV/Lamiae/LamiaSystem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs index 4795aa5016..7aaaaf1d12 100644 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs @@ -94,7 +94,7 @@ public override void Initialize() } /// - /// Handles transfering marking selections to the tail segments. Every tail marking must be repeated 2 times in order for this script to work. + /// Handles transferring marking selections to the tail segments. Every tail marking must be repeated 2 times in order for this script to work. /// /// /// @@ -160,7 +160,7 @@ private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, Ent if (component.Segments.Count != 0) { foreach (var segment in component.Segments) - QueueDel(segment); + QueueDel(segment); component.Segments.Clear(); } From 6187158b6a3cd500ada89f861e93dd69dd1e7829 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Wed, 27 Mar 2024 20:18:13 -0400 Subject: [PATCH 56/85] guh --- Content.Server/DeltaV/Lamiae/LamiaSystem.cs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs index 7aaaaf1d12..29ddfe2380 100644 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs @@ -61,7 +61,7 @@ public override void Update(float frameTime) if (segment.segment.SegmentNumber == 1) { Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates; - var revoluteJoint = _jointSystem.CreateWeldJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); + var revoluteJoint = _jointSystem.CreateWeldJoint(attachedUid, segmentUid, id: "Segment" + segment.segment.SegmentNumber + segment.segment.Lamia); revoluteJoint.CollideConnected = false; } if (segment.segment.SegmentNumber < segment.segment.MaxSegments) @@ -144,7 +144,7 @@ private void OnShutdown(EntityUid uid, LamiaComponent component, ComponentShutdo private void OnJointRemoved(EntityUid uid, LamiaComponent component, JointRemovedEvent args) { - if (!component.Segments.Contains(args.OtherBody.Owner)) + if (!component.Segments.Contains(args.OtherEntity)) return; if (HasComp(uid)) return; @@ -199,7 +199,7 @@ public void SpawnSegments(EntityUid uid, LamiaComponent component) private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lamiaComponent, int segmentNumber) { - LamiaSegmentComponent segmentComponent = new(); + EnsureComp(uid, out var segmentComponent); segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; segmentComponent.BulletPassover = lamiaComponent.BulletPassover; segmentComponent.Lamia = lamia; @@ -219,7 +219,8 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami { segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset * MathF.Pow(lamiaComponent.OffsetConstant, segmentNumber - taperConstant); segmentComponent.ScaleFactor = lamiaComponent.StaticScale * MathF.Pow(1f / lamiaComponent.OffsetConstant, segmentNumber - taperConstant); - } else + } + else { segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset; segmentComponent.ScaleFactor = lamiaComponent.StaticScale; @@ -229,12 +230,10 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami segmentComponent.OffsetSwitching *= -1; } - segmentComponent.Owner = segment; segmentComponent.SegmentNumber = segmentNumber; - EntityManager.AddComponent(segment, segmentComponent, true); _segments.Enqueue((segmentComponent, lamia)); - lamiaComponent.Segments.Add(segmentComponent.Owner); + lamiaComponent.Segments.Add(uid); return segment; } From 5357f2ff2ca24b32a3d4c0d52391f0557797e507 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 31 Mar 2024 20:07:02 -0400 Subject: [PATCH 57/85] Snekstation14 --- Content.Server/DeltaV/Lamiae/LamiaSystem.cs | 78 +++++++++++-------- Content.Server/Teleportation/PortalSystem.cs | 16 ---- .../Weapons/Ranged/Systems/GunSystem.cs | 8 +- .../DeltaV/Lamiae/LamiaComponent.cs | 1 + .../DeltaV/Lamiae/LamiaSegmentComponent.cs | 4 +- .../Components/PortalExemptComponent.cs | 8 ++ .../Systems/SharedPortalSystem.cs | 11 +-- .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 2 +- .../Ranged/Events/HitScanAfterRayCastEvent.cs | 17 ++++ .../DeltaV/Entities/Mobs/Species/lamia.yml | 6 +- 10 files changed, 87 insertions(+), 64 deletions(-) create mode 100644 Content.Shared/Teleportation/Components/PortalExemptComponent.cs create mode 100644 Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs index 29ddfe2380..5a413e7bb2 100644 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs @@ -1,9 +1,3 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - using Robust.Shared.Physics; using Content.Shared.Damage; using Content.Shared.Explosion; @@ -14,7 +8,6 @@ using Content.Shared.Inventory.Events; using Content.Shared.Tag; using Content.Shared.Teleportation.Components; -using Content.Shared.Standing; using Content.Shared.Storage.Components; using Robust.Shared.Containers; using Robust.Shared.Map; @@ -22,6 +15,10 @@ using Robust.Shared.Physics.Components; using System.Numerics; using Content.Shared.DeltaV.Lamiae; +using Robust.Shared.Physics.Events; +using Content.Shared.Projectiles; +using Content.Shared.Weapons.Ranged.Events; +using System.Linq; namespace Content.Server.DeltaV.Lamiae { @@ -32,7 +29,6 @@ public sealed partial class LamiaSystem : EntitySystem [Dependency] private readonly DamageableSystem _damageableSystem = default!; [Dependency] private readonly TagSystem _tagSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly StandingStateSystem _standing = default!; [ValidatePrototypeId] private const string LamiaHardsuitTag = "AllowLamiaHardsuit"; @@ -64,7 +60,7 @@ public override void Update(float frameTime) var revoluteJoint = _jointSystem.CreateWeldJoint(attachedUid, segmentUid, id: "Segment" + segment.segment.SegmentNumber + segment.segment.Lamia); revoluteJoint.CollideConnected = false; } - if (segment.segment.SegmentNumber < segment.segment.MaxSegments) + if (segment.segment.SegmentNumber <= segment.segment.MaxSegments) Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); else Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); @@ -82,6 +78,7 @@ public override void Initialize() SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnJointRemoved); SubscribeLocalEvent(OnRemovedFromContainer); + SubscribeLocalEvent(OnShootHitscan); SubscribeLocalEvent(OnSegmentSpawned); SubscribeLocalEvent(HandleDamageTransfer); SubscribeLocalEvent(HandleSegmentDamage); @@ -89,8 +86,8 @@ public override void Initialize() SubscribeLocalEvent(OnSegmentStorageInsertAttempt); SubscribeLocalEvent(OnDidEquipEvent); SubscribeLocalEvent(OnDidUnequipEvent); - SubscribeLocalEvent(TailCantStand); SubscribeLocalEvent(OnSnekBoom); + SubscribeLocalEvent(PreventShootSelf); } /// @@ -104,8 +101,6 @@ public override void Initialize() private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) { component.Lamia = args.Lamia; - if (component.BulletPassover == true) - _standing.Down(uid, false); if (!TryComp(uid, out var species)) return; if (!TryComp(args.Lamia, out var humanoid)) return; @@ -127,7 +122,7 @@ private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, Se private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) { - Math.Clamp(component.NumberOfSegments, 2, 30); + Math.Clamp(component.NumberOfSegments, 2, 18); Math.Clamp(component.TaperOffset, 1, component.NumberOfSegments - 1); SpawnSegments(uid, component); } @@ -147,8 +142,6 @@ private void OnJointRemoved(EntityUid uid, LamiaComponent component, JointRemove if (!component.Segments.Contains(args.OtherEntity)) return; - if (HasComp(uid)) return; - foreach (var segment in component.Segments) QueueDel(segment); @@ -179,17 +172,11 @@ private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component _damageableSystem.TryChangeDamage(component.Lamia, args.DamageDelta); } - private void TailCantStand(EntityUid uid, LamiaSegmentComponent component, StandAttemptEvent args) - { - if (component.BulletPassover == true) - args.Cancel(); - } - public void SpawnSegments(EntityUid uid, LamiaComponent component) { int i = 1; var addTo = uid; - while (i < component.NumberOfSegments + 1) + while (i <= component.NumberOfSegments + 1) { var segment = AddSegment(addTo, uid, component, i); addTo = segment; @@ -197,24 +184,22 @@ public void SpawnSegments(EntityUid uid, LamiaComponent component) } } - private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lamiaComponent, int segmentNumber) + private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, LamiaComponent lamiaComponent, int segmentNumber) { - EnsureComp(uid, out var segmentComponent); - segmentComponent.MaxSegments = lamiaComponent.NumberOfSegments; - segmentComponent.BulletPassover = lamiaComponent.BulletPassover; - segmentComponent.Lamia = lamia; - segmentComponent.AttachedToUid = uid; + LamiaSegmentComponent segmentComponent = new(); + segmentComponent.Lamia = parentuid; + segmentComponent.AttachedToUid = segmentuid; segmentComponent.DamageModifierConstant = lamiaComponent.NumberOfSegments * lamiaComponent.DamageModifierOffset; - float taperConstant = lamiaComponent.NumberOfSegments - lamiaComponent.TaperOffset; float damageModifyCoefficient = segmentComponent.DamageModifierConstant / lamiaComponent.NumberOfSegments; segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (lamiaComponent.NumberOfSegments * lamiaComponent.ExplosiveModifierOffset); + float taperConstant = lamiaComponent.NumberOfSegments - lamiaComponent.TaperOffset; EntityUid segment; if (segmentNumber == 1) - segment = EntityManager.SpawnEntity(lamiaComponent.InitialSegmentId, Transform(uid).Coordinates); + segment = EntityManager.SpawnEntity(lamiaComponent.InitialSegmentId, Transform(segmentuid).Coordinates); else - segment = EntityManager.SpawnEntity(lamiaComponent.SegmentId, Transform(uid).Coordinates); + segment = EntityManager.SpawnEntity(lamiaComponent.SegmentId, Transform(segmentuid).Coordinates); if (segmentNumber >= taperConstant && lamiaComponent.UseTaperSystem == true) { segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset * MathF.Pow(lamiaComponent.OffsetConstant, segmentNumber - taperConstant); @@ -230,10 +215,12 @@ private EntityUid AddSegment(EntityUid uid, EntityUid lamia, LamiaComponent lami segmentComponent.OffsetSwitching *= -1; } + segmentComponent.Owner = segment; segmentComponent.SegmentNumber = segmentNumber; - - _segments.Enqueue((segmentComponent, lamia)); - lamiaComponent.Segments.Add(uid); + EntityManager.AddComponent(segment, segmentComponent, true); + EnsureComp(segment); + _segments.Enqueue((segmentComponent, parentuid)); + lamiaComponent.Segments.Add(segment); return segment; } @@ -278,5 +265,28 @@ private void OnDidUnequipEvent(EntityUid equipee, LamiaComponent component, DidU } } } + + private void PreventShootSelf(EntityUid uid, LamiaSegmentComponent component, ref PreventCollideEvent args) + { + if (!TryComp(args.OtherEntity, out var projectileComponent)) return; + + if (projectileComponent.Shooter == component.Lamia) + { + args.Cancelled = true; + } + } + + private void OnShootHitscan(EntityUid uid, LamiaComponent component, ref HitScanAfterRayCastEvent args) + { + if (args.RayCastResults == null) return; + + var entityList = new List(); + foreach (var entity in args.RayCastResults) + { + if (!component.Segments.Contains(entity.HitEntity)) + entityList.Add(entity); + } + args.RayCastResults = entityList; + } } } diff --git a/Content.Server/Teleportation/PortalSystem.cs b/Content.Server/Teleportation/PortalSystem.cs index a328573fc9..27fec27435 100644 --- a/Content.Server/Teleportation/PortalSystem.cs +++ b/Content.Server/Teleportation/PortalSystem.cs @@ -1,9 +1,7 @@ -using Content.Server.DeltaV.Lamiae; //DeltaV using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.Ghost; using Content.Shared.Mind.Components; -using Content.Shared.DeltaV.Lamiae; //DeltaV using Content.Shared.Teleportation.Systems; using Robust.Shared.Map; @@ -12,7 +10,6 @@ namespace Content.Server.Teleportation; public sealed class PortalSystem : SharedPortalSystem { [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; - [Dependency] private readonly LamiaSystem _lamia = default!; //DeltaV // TODO Move to shared protected override void LogTeleport(EntityUid portal, EntityUid subject, EntityCoordinates source, @@ -20,18 +17,5 @@ protected override void LogTeleport(EntityUid portal, EntityUid subject, EntityC { if (HasComp(subject) && !HasComp(subject)) _adminLogger.Add(LogType.Teleport, LogImpact.Low, $"{ToPrettyString(subject):player} teleported via {ToPrettyString(portal)} from {source} to {target}"); - - //Start DeltaV Code, stops Lamia from crashing because they can't take their tail through a portal - if (TryComp(subject, out var lamia)) - { - foreach (var segment in lamia.Segments) - { - QueueDel(segment); - } - lamia.Segments.Clear(); - _lamia.SpawnSegments(subject, lamia); - } - //End DeltaV Code } - } diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index b8f8f12211..067c114b25 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -203,7 +203,13 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? if (!rayCastResults.Any()) break; - var result = rayCastResults[0]; + var raycastEvent = new HitScanAfterRayCastEvent(rayCastResults); + RaiseLocalEvent(lastUser, ref raycastEvent); + + if (raycastEvent.RayCastResults == null) + break; + + var result = raycastEvent.RayCastResults[0]; var hit = result.HitEntity; lastHit = hit; diff --git a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs index 163c31df59..bc70724404 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs @@ -15,6 +15,7 @@ public sealed partial class LamiaComponent : Component /// /// A list of each UID attached to the Lamia, in order of spawn /// + [DataField("segments")] public List Segments = new(); /// diff --git a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs index 82de76ca1a..37d21ae6f6 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs @@ -15,15 +15,17 @@ namespace Content.Shared.DeltaV.Lamiae [NetworkedComponent] public sealed partial class LamiaSegmentComponent : Component { + [DataField("AttachedToUid")] public EntityUid AttachedToUid = default!; public float DamageModifyFactor = default!; public float OffsetSwitching = default!; public float ScaleFactor = default!; + [DataField("DamageModifierCoefficient")] public float DamageModifierCoefficient = default!; public float ExplosiveModifyFactor = default!; public float OffsetConstant = default!; + [DataField("Lamia")] public EntityUid Lamia = default!; - public bool BulletPassover = default!; public int MaxSegments = default!; public int SegmentNumber = default!; public float DamageModifierConstant = default!; diff --git a/Content.Shared/Teleportation/Components/PortalExemptComponent.cs b/Content.Shared/Teleportation/Components/PortalExemptComponent.cs new file mode 100644 index 0000000000..28043808e0 --- /dev/null +++ b/Content.Shared/Teleportation/Components/PortalExemptComponent.cs @@ -0,0 +1,8 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Teleportation.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class PortalExemptComponent : Component +{ +} diff --git a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs index 247ac93c21..6d6d971bd9 100644 --- a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs +++ b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs @@ -1,6 +1,5 @@ using System.Linq; using Content.Shared.Ghost; -using Content.Shared.DeltaV.Lamiae; //DeltaV using Content.Shared.Popups; using Content.Shared.Projectiles; using Content.Shared.Pulling; @@ -84,6 +83,9 @@ private bool ShouldCollide(string ourId, string otherId, Fixture our, Fixture ot private void OnCollide(EntityUid uid, PortalComponent component, ref StartCollideEvent args) { + if (HasComp(args.OtherEntity)) + return; + if (!ShouldCollide(args.OurFixtureId, args.OtherFixtureId, args.OurFixture, args.OtherFixture)) return; @@ -105,13 +107,6 @@ private void OnCollide(EntityUid uid, PortalComponent component, ref StartCollid _pulling.TryStopPull(subjectPulling); } - //Start DeltaV Code: Prevent Lamia Segments from entering portals - if (HasComp(subject)) - { - return; - } - //End DeltaV Code - // if they came from another portal, just return and wait for them to exit the portal if (HasComp(subject)) { diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index 6a5127f2c9..c9160ffe69 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -566,7 +566,7 @@ private bool DoHeavyAttack(EntityUid user, HeavyAttackEvent ev, EntityUid meleeU Audio.PlayPredicted(component.SwingSound, meleeUid, user); return true; } - + // Naughty input if (entities.Count > MaxTargets) { diff --git a/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs b/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs new file mode 100644 index 0000000000..99bfd1eabc --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Physics; + +namespace Content.Shared.Weapons.Ranged.Events; + +/// +/// Raised after an entity fires a hitscan weapon, but before the list is truncated to the first target. Necessary for Entities that need to prevent friendly fire +/// +[ByRefEvent] +public struct HitScanAfterRayCastEvent +{ + public List? RayCastResults; + + public HitScanAfterRayCastEvent(List? rayCastResults) + { + RayCastResults = rayCastResults; + } +} diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index e47bdb1e48..d7cb856e29 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -138,13 +138,13 @@ 0: Alive 200: Critical #these values aren't final' 300: Dead #these values aren't final' - - type: SlowOnDamage + - type: SlowOnDamage speedModifierThresholds: #these values aren't final, adjust accordingly with thresholds above' 60: 0.9 80: 0.8 100: 0.7 120: 0.6 - 140: 0.5 + 140: 0.5 - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Generic_mob_burning @@ -195,7 +195,7 @@ layer: - MobLayer - type: Lamia - numberOfSegments: 30 + numberOfSegments: 18 - type: Speech speechSounds: Alto - type: Vocal From 48ae4d70965e0afed16f7a3c6c534be9ef4d6c6c Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 16 Jun 2024 22:27:39 -0400 Subject: [PATCH 58/85] Fuck its lets go, no more procrastinating on sneks --- .../DeltaV/Lamiae/ClientLamiaVisuals.cs | 18 +- .../Lamiae/LamiaSegmentVisualsComponent.cs | 2 +- .../SegmentSpawnedEvent.cs} | 9 +- .../SegmentedEntityComponent.cs} | 4 +- .../SegmentedEntitySegmentComponent.cs} | 4 +- .../SegmentedEntitySegmentVisuals.cs} | 4 +- .../SegmentedEntity/SegmentedEntitySystem.cs | 204 +++++++++--------- .../DeltaV/Entities/Mobs/Species/lamia.yml | 2 +- .../Objects/Specific/Species/lamia.yml | 4 +- 9 files changed, 120 insertions(+), 131 deletions(-) rename Content.Shared/{DeltaV/Lamiae/SharedLamiaeSystem.cs => SegmentedEntity/SegmentSpawnedEvent.cs} (52%) rename Content.Shared/{DeltaV/Lamiae/LamiaComponent.cs => SegmentedEntity/SegmentedEntityComponent.cs} (96%) rename Content.Shared/{DeltaV/Lamiae/LamiaSegmentComponent.cs => SegmentedEntity/SegmentedEntitySegmentComponent.cs} (89%) rename Content.Shared/{DeltaV/Lamiae/LamiaSegmentVisuals.cs => SegmentedEntity/SegmentedEntitySegmentVisuals.cs} (73%) rename Content.Server/DeltaV/Lamiae/LamiaSystem.cs => Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs (63%) diff --git a/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs b/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs index 8b9f3b4c47..046f6a7a3c 100644 --- a/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs +++ b/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs @@ -6,37 +6,37 @@ using Robust.Client.GameObjects; using System.Numerics; -using Content.Shared.DeltaV.Lamiae; +using Content.Shared.SegmentedEntity; namespace Content.Client.DeltaV.Lamiae; -public sealed class ClientLamiaVisualSystem : VisualizerSystem +public sealed class ClientLamiaVisualSystem : VisualizerSystem { public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnAppearanceChange); + SubscribeLocalEvent(OnAppearanceChange); } - private void OnAppearanceChange(EntityUid uid, LamiaSegmentComponent component, ref AppearanceChangeEvent args) + private void OnAppearanceChange(EntityUid uid, SegmentedEntitySegmentComponent component, ref AppearanceChangeEvent args) { if (args.Sprite == null) return; if (AppearanceSystem.TryGetData(uid, ScaleVisuals.Scale, out var scale) && TryComp(uid, out var sprite)) { - sprite.Scale = (new Vector2(scale, scale)); + sprite.Scale = new Vector2(scale, scale); } - if (AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.Armor, out var worn) - && AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.ArmorRsi, out var path)) + if (AppearanceSystem.TryGetData(uid, SegmentedEntitySegmentVisualLayers.Armor, out var worn) + && AppearanceSystem.TryGetData(uid, SegmentedEntitySegmentVisualLayers.ArmorRsi, out var path)) { var valid = !string.IsNullOrWhiteSpace(path); if (valid) { - args.Sprite.LayerSetRSI(LamiaSegmentVisualLayers.Armor, path); + args.Sprite.LayerSetRSI(SegmentedEntitySegmentVisualLayers.Armor, path); } - args.Sprite.LayerSetVisible(LamiaSegmentVisualLayers.Armor, worn); + args.Sprite.LayerSetVisible(SegmentedEntitySegmentVisualLayers.Armor, worn); } } } diff --git a/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs b/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs index d2d519e2c8..e2c1139f23 100644 --- a/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs +++ b/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs @@ -7,5 +7,5 @@ namespace Content.Client.DeltaV.Lamiae; [RegisterComponent] -public sealed partial class LamiaSegmentVisualsComponent : Component +public sealed partial class SegmentedEntitySegmentVisualsComponent : Component {} diff --git a/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs b/Content.Shared/SegmentedEntity/SegmentSpawnedEvent.cs similarity index 52% rename from Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs rename to Content.Shared/SegmentedEntity/SegmentSpawnedEvent.cs index de66e5d530..6b0e0407a3 100644 --- a/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs +++ b/Content.Shared/SegmentedEntity/SegmentSpawnedEvent.cs @@ -1,11 +1,4 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - -namespace Content.Shared.DeltaV.Lamiae; - +namespace Content.Shared.SegmentedEntity; public sealed class SegmentSpawnedEvent : EntityEventArgs { public EntityUid Lamia = default!; diff --git a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs b/Content.Shared/SegmentedEntity/SegmentedEntityComponent.cs similarity index 96% rename from Content.Shared/DeltaV/Lamiae/LamiaComponent.cs rename to Content.Shared/SegmentedEntity/SegmentedEntityComponent.cs index bc70724404..ee217771d4 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntityComponent.cs @@ -4,13 +4,13 @@ * See AGPLv3.txt for details. */ -namespace Content.Shared.DeltaV.Lamiae +namespace Content.Shared.SegmentedEntity { /// /// Controls initialization of any Multi-segmented entity /// [RegisterComponent] - public sealed partial class LamiaComponent : Component + public sealed partial class SegmentedEntityComponent : Component { /// /// A list of each UID attached to the Lamia, in order of spawn diff --git a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySegmentComponent.cs similarity index 89% rename from Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs rename to Content.Shared/SegmentedEntity/SegmentedEntitySegmentComponent.cs index 37d21ae6f6..b29e282e9e 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySegmentComponent.cs @@ -6,14 +6,14 @@ using Robust.Shared.GameStates; -namespace Content.Shared.DeltaV.Lamiae +namespace Content.Shared.SegmentedEntity { /// /// Lamia segment /// [RegisterComponent] [NetworkedComponent] - public sealed partial class LamiaSegmentComponent : Component + public sealed partial class SegmentedEntitySegmentComponent : Component { [DataField("AttachedToUid")] public EntityUid AttachedToUid = default!; diff --git a/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySegmentVisuals.cs similarity index 73% rename from Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs rename to Content.Shared/SegmentedEntity/SegmentedEntitySegmentVisuals.cs index 2d73dd746e..f1e6a20211 100644 --- a/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySegmentVisuals.cs @@ -6,10 +6,10 @@ using Robust.Shared.Serialization; -namespace Content.Shared.DeltaV.Lamiae +namespace Content.Shared.SegmentedEntity { [Serializable, NetSerializable] - public enum LamiaSegmentVisualLayers + public enum SegmentedEntitySegmentVisualLayers { Tail, Armor, diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs similarity index 63% rename from Content.Server/DeltaV/Lamiae/LamiaSystem.cs rename to Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs index 5a413e7bb2..8d70fad7c2 100644 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs @@ -1,39 +1,54 @@ using Robust.Shared.Physics; using Content.Shared.Damage; using Content.Shared.Explosion; -using Content.Shared.Clothing.Components; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Markings; -using Content.Server.Humanoid; +using Content.Shared.Clothing.Components; using Content.Shared.Inventory.Events; using Content.Shared.Tag; -using Content.Shared.Teleportation.Components; using Content.Shared.Storage.Components; +using Robust.Shared.Physics.Events; +using Content.Shared.Projectiles; +using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Teleportation.Components; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics.Systems; using Robust.Shared.Physics.Components; using System.Numerics; -using Content.Shared.DeltaV.Lamiae; -using Robust.Shared.Physics.Events; -using Content.Shared.Projectiles; -using Content.Shared.Weapons.Ranged.Events; -using System.Linq; -namespace Content.Server.DeltaV.Lamiae +namespace Content.Shared.SegmentedEntity { public sealed partial class LamiaSystem : EntitySystem { - [Dependency] private readonly SharedJointSystem _jointSystem = default!; - [Dependency] private readonly HumanoidAppearanceSystem _humanoid = default!; - [Dependency] private readonly DamageableSystem _damageableSystem = default!; [Dependency] private readonly TagSystem _tagSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly SharedHumanoidAppearanceSystem _humanoid = default!; + [Dependency] private readonly SharedJointSystem _jointSystem = default!; + + Queue<(SegmentedEntitySegmentComponent segment, EntityUid lamia)> _segments = new(); [ValidatePrototypeId] private const string LamiaHardsuitTag = "AllowLamiaHardsuit"; - - Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnShootHitscan); + SubscribeLocalEvent(OnLamiaStorageInsertAttempt); + SubscribeLocalEvent(OnSegmentStorageInsertAttempt); + SubscribeLocalEvent(OnDidEquipEvent); + SubscribeLocalEvent(OnDidUnequipEvent); + SubscribeLocalEvent(OnSnekBoom); + SubscribeLocalEvent(PreventShootSelf); + SubscribeLocalEvent(HandleDamageTransfer); + SubscribeLocalEvent(HandleSegmentDamage); + SubscribeLocalEvent(OnSegmentSpawned); + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnJointRemoved); + SubscribeLocalEvent(OnRemovedFromContainer); + } public override void Update(float frameTime) { base.Update(frameTime); @@ -71,63 +86,14 @@ public override void Update(float frameTime) } _segments.Clear(); } - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnJointRemoved); - SubscribeLocalEvent(OnRemovedFromContainer); - SubscribeLocalEvent(OnShootHitscan); - SubscribeLocalEvent(OnSegmentSpawned); - SubscribeLocalEvent(HandleDamageTransfer); - SubscribeLocalEvent(HandleSegmentDamage); - SubscribeLocalEvent(OnLamiaStorageInsertAttempt); - SubscribeLocalEvent(OnSegmentStorageInsertAttempt); - SubscribeLocalEvent(OnDidEquipEvent); - SubscribeLocalEvent(OnDidUnequipEvent); - SubscribeLocalEvent(OnSnekBoom); - SubscribeLocalEvent(PreventShootSelf); - } - - /// - /// Handles transferring marking selections to the tail segments. Every tail marking must be repeated 2 times in order for this script to work. - /// - /// - /// - /// - // TODO: Please for the love of god don't make me write a test to validate that every marking also has its matching segment states. - // Future contributors will just find out when their game crashes because they didn't make a marking-segment. - private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) - { - component.Lamia = args.Lamia; - - if (!TryComp(uid, out var species)) return; - if (!TryComp(args.Lamia, out var humanoid)) return; - if (!TryComp(uid, out var appearance)) return; - - _appearance.SetData(uid, ScaleVisuals.Scale, component.ScaleFactor, appearance); - - if (humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings)) - { - foreach (var markings in tailMarkings) - { - var segmentId = species.Species; - var markingId = markings.MarkingId; - string segmentmarking = $"{markingId}-{segmentId}"; - _humanoid.AddMarking(uid, segmentmarking, markings.MarkingColors); - } - } - } - - private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) + private void OnInit(EntityUid uid, SegmentedEntityComponent component, ComponentInit args) { Math.Clamp(component.NumberOfSegments, 2, 18); Math.Clamp(component.TaperOffset, 1, component.NumberOfSegments - 1); SpawnSegments(uid, component); } - private void OnShutdown(EntityUid uid, LamiaComponent component, ComponentShutdown args) + private void OnShutdown(EntityUid uid, SegmentedEntityComponent component, ComponentShutdown args) { foreach (var segment in component.Segments) { @@ -137,7 +103,7 @@ private void OnShutdown(EntityUid uid, LamiaComponent component, ComponentShutdo component.Segments.Clear(); } - private void OnJointRemoved(EntityUid uid, LamiaComponent component, JointRemovedEvent args) + private void OnJointRemoved(EntityUid uid, SegmentedEntityComponent component, JointRemovedEvent args) { if (!component.Segments.Contains(args.OtherEntity)) return; @@ -148,7 +114,7 @@ private void OnJointRemoved(EntityUid uid, LamiaComponent component, JointRemove component.Segments.Clear(); } - private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, EntGotRemovedFromContainerMessage args) + private void OnRemovedFromContainer(EntityUid uid, SegmentedEntityComponent component, EntGotRemovedFromContainerMessage args) { if (component.Segments.Count != 0) { @@ -160,19 +126,7 @@ private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, Ent SpawnSegments(uid, component); } - private void HandleSegmentDamage(EntityUid uid, LamiaSegmentComponent component, DamageModifyEvent args) - { - if (args.Origin == component.Lamia) - args.Damage *= 0; - args.Damage = args.Damage / component.DamageModifyFactor; - } - private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component, DamageChangedEvent args) - { - if (args.DamageDelta == null) return; - _damageableSystem.TryChangeDamage(component.Lamia, args.DamageDelta); - } - - public void SpawnSegments(EntityUid uid, LamiaComponent component) + public void SpawnSegments(EntityUid uid, SegmentedEntityComponent component) { int i = 1; var addTo = uid; @@ -184,31 +138,31 @@ public void SpawnSegments(EntityUid uid, LamiaComponent component) } } - private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, LamiaComponent lamiaComponent, int segmentNumber) + private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, SegmentedEntityComponent segmentedComponent, int segmentNumber) { - LamiaSegmentComponent segmentComponent = new(); + SegmentedEntitySegmentComponent segmentComponent = new(); segmentComponent.Lamia = parentuid; segmentComponent.AttachedToUid = segmentuid; - segmentComponent.DamageModifierConstant = lamiaComponent.NumberOfSegments * lamiaComponent.DamageModifierOffset; - float damageModifyCoefficient = segmentComponent.DamageModifierConstant / lamiaComponent.NumberOfSegments; + segmentComponent.DamageModifierConstant = segmentedComponent.NumberOfSegments * segmentedComponent.DamageModifierOffset; + float damageModifyCoefficient = segmentComponent.DamageModifierConstant / segmentedComponent.NumberOfSegments; segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; - segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (lamiaComponent.NumberOfSegments * lamiaComponent.ExplosiveModifierOffset); + segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentedComponent.NumberOfSegments * segmentedComponent.ExplosiveModifierOffset); - float taperConstant = lamiaComponent.NumberOfSegments - lamiaComponent.TaperOffset; + float taperConstant = segmentedComponent.NumberOfSegments - segmentedComponent.TaperOffset; EntityUid segment; if (segmentNumber == 1) - segment = EntityManager.SpawnEntity(lamiaComponent.InitialSegmentId, Transform(segmentuid).Coordinates); + segment = EntityManager.SpawnEntity(segmentedComponent.InitialSegmentId, Transform(segmentuid).Coordinates); else - segment = EntityManager.SpawnEntity(lamiaComponent.SegmentId, Transform(segmentuid).Coordinates); - if (segmentNumber >= taperConstant && lamiaComponent.UseTaperSystem == true) + segment = EntityManager.SpawnEntity(segmentedComponent.SegmentId, Transform(segmentuid).Coordinates); + if (segmentNumber >= taperConstant && segmentedComponent.UseTaperSystem == true) { - segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset * MathF.Pow(lamiaComponent.OffsetConstant, segmentNumber - taperConstant); - segmentComponent.ScaleFactor = lamiaComponent.StaticScale * MathF.Pow(1f / lamiaComponent.OffsetConstant, segmentNumber - taperConstant); + segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset * MathF.Pow(segmentedComponent.OffsetConstant, segmentNumber - taperConstant); + segmentComponent.ScaleFactor = segmentedComponent.StaticScale * MathF.Pow(1f / segmentedComponent.OffsetConstant, segmentNumber - taperConstant); } else { - segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset; - segmentComponent.ScaleFactor = lamiaComponent.StaticScale; + segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset; + segmentComponent.ScaleFactor = segmentedComponent.StaticScale; } if (segmentNumber % 2 != 0) { @@ -220,21 +174,63 @@ private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, LamiaCom EntityManager.AddComponent(segment, segmentComponent, true); EnsureComp(segment); _segments.Enqueue((segmentComponent, parentuid)); - lamiaComponent.Segments.Add(segment); + segmentedComponent.Segments.Add(segment); return segment; } - private void OnLamiaStorageInsertAttempt(EntityUid uid, LamiaComponent comp, ref InsertIntoEntityStorageAttemptEvent args) + /// + /// Handles transferring marking selections to the tail segments. Every tail marking must be repeated 2 times in order for this script to work. + /// + /// + /// + /// + // TODO: Please for the love of god don't make me write a test to validate that every marking also has its matching segment states. + // Future contributors will just find out when their game crashes because they didn't make a marking-segment. + private void OnSegmentSpawned(EntityUid uid, SegmentedEntitySegmentComponent component, SegmentSpawnedEvent args) + { + component.Lamia = args.Lamia; + + if (!TryComp(uid, out var species)) return; + if (!TryComp(args.Lamia, out var humanoid)) return; + if (!TryComp(uid, out var appearance)) return; + + _appearance.SetData(uid, ScaleVisuals.Scale, component.ScaleFactor, appearance); + + if (humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings)) + { + foreach (var markings in tailMarkings) + { + var segmentId = species.Species; + var markingId = markings.MarkingId; + string segmentmarking = $"{markingId}-{segmentId}"; + _humanoid.AddMarking(uid, segmentmarking, markings.MarkingColors); + } + } + } + + private void HandleSegmentDamage(EntityUid uid, SegmentedEntitySegmentComponent component, DamageModifyEvent args) + { + if (args.Origin == component.Lamia) + args.Damage *= 0; + args.Damage = args.Damage / component.DamageModifyFactor; + } + private void HandleDamageTransfer(EntityUid uid, SegmentedEntitySegmentComponent component, DamageChangedEvent args) + { + if (args.DamageDelta == null) return; + _damageableSystem.TryChangeDamage(component.Lamia, args.DamageDelta); + } + + private void OnLamiaStorageInsertAttempt(EntityUid uid, SegmentedEntityComponent comp, ref InsertIntoEntityStorageAttemptEvent args) { args.Cancelled = true; } - private void OnSegmentStorageInsertAttempt(EntityUid uid, LamiaSegmentComponent comp, ref InsertIntoEntityStorageAttemptEvent args) + private void OnSegmentStorageInsertAttempt(EntityUid uid, SegmentedEntitySegmentComponent comp, ref InsertIntoEntityStorageAttemptEvent args) { args.Cancelled = true; } - private void OnDidEquipEvent(EntityUid equipee, LamiaComponent component, DidEquipEvent args) + private void OnDidEquipEvent(EntityUid equipee, SegmentedEntityComponent component, DidEquipEvent args) { if (!TryComp(args.Equipment, out var clothing)) return; if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, LamiaHardsuitTag)) @@ -242,31 +238,31 @@ private void OnDidEquipEvent(EntityUid equipee, LamiaComponent component, DidEqu foreach (var uid in component.Segments) { if (!TryComp(uid, out var appearance)) return; - _appearance.SetData(uid, LamiaSegmentVisualLayers.Armor, true, appearance); + _appearance.SetData(uid, SegmentedEntitySegmentVisualLayers.Armor, true, appearance); if (clothing.RsiPath == null) return; - _appearance.SetData(uid, LamiaSegmentVisualLayers.ArmorRsi, clothing.RsiPath, appearance); + _appearance.SetData(uid, SegmentedEntitySegmentVisualLayers.ArmorRsi, clothing.RsiPath, appearance); } } } - private void OnSnekBoom(EntityUid uid, LamiaSegmentComponent component, ref GetExplosionResistanceEvent args) + private void OnSnekBoom(EntityUid uid, SegmentedEntitySegmentComponent component, ref GetExplosionResistanceEvent args) { args.DamageCoefficient = component.ExplosiveModifyFactor; } - private void OnDidUnequipEvent(EntityUid equipee, LamiaComponent component, DidUnequipEvent args) + private void OnDidUnequipEvent(EntityUid equipee, SegmentedEntityComponent component, DidUnequipEvent args) { if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, LamiaHardsuitTag)) { foreach (var uid in component.Segments) { if (!TryComp(uid, out var appearance)) return; - _appearance.SetData(uid, LamiaSegmentVisualLayers.Armor, false, appearance); + _appearance.SetData(uid, SegmentedEntitySegmentVisualLayers.Armor, false, appearance); } } } - private void PreventShootSelf(EntityUid uid, LamiaSegmentComponent component, ref PreventCollideEvent args) + private void PreventShootSelf(EntityUid uid, SegmentedEntitySegmentComponent component, ref PreventCollideEvent args) { if (!TryComp(args.OtherEntity, out var projectileComponent)) return; @@ -276,7 +272,7 @@ private void PreventShootSelf(EntityUid uid, LamiaSegmentComponent component, re } } - private void OnShootHitscan(EntityUid uid, LamiaComponent component, ref HitScanAfterRayCastEvent args) + private void OnShootHitscan(EntityUid uid, SegmentedEntityComponent component, ref HitScanAfterRayCastEvent args) { if (args.RayCastResults == null) return; diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index d7cb856e29..9b97a24002 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -194,7 +194,7 @@ - MobMask layer: - MobLayer - - type: Lamia + - type: SegmentedEntity numberOfSegments: 18 - type: Speech speechSounds: Alto diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml index a76973e0f0..173993127f 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml @@ -29,7 +29,7 @@ - MobLayer - type: Transform anchored: false - - type: LamiaSegmentVisuals + - type: SegmentedEntitySegmentVisuals - type: Tag tags: - HideContextMenu @@ -47,7 +47,7 @@ drawdepth: SmallMobs layers: - map: [ "enum.HumanoidVisualLayers.Tail" ] - - map: [ "enum.LamiaSegmentVisualLayers.Armor" ] + - map: [ "enum.SegmentedEntitySegmentVisualLayers.Armor" ] sprite: Clothing/OuterClothing/Hardsuits/basic.rsi state: segment visible: false From c94767740db838e1c7bb065a5b234d8e390f1b48 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 17 Jun 2024 16:39:48 -0400 Subject: [PATCH 59/85] Update SegmentedEntitySystem.cs --- .../SegmentedEntity/SegmentedEntitySystem.cs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs index 8d70fad7c2..9e393642b3 100644 --- a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs @@ -140,13 +140,6 @@ public void SpawnSegments(EntityUid uid, SegmentedEntityComponent component) private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, SegmentedEntityComponent segmentedComponent, int segmentNumber) { - SegmentedEntitySegmentComponent segmentComponent = new(); - segmentComponent.Lamia = parentuid; - segmentComponent.AttachedToUid = segmentuid; - segmentComponent.DamageModifierConstant = segmentedComponent.NumberOfSegments * segmentedComponent.DamageModifierOffset; - float damageModifyCoefficient = segmentComponent.DamageModifierConstant / segmentedComponent.NumberOfSegments; - segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; - segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentedComponent.NumberOfSegments * segmentedComponent.ExplosiveModifierOffset); float taperConstant = segmentedComponent.NumberOfSegments - segmentedComponent.TaperOffset; EntityUid segment; @@ -154,6 +147,18 @@ private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, Segmente segment = EntityManager.SpawnEntity(segmentedComponent.InitialSegmentId, Transform(segmentuid).Coordinates); else segment = EntityManager.SpawnEntity(segmentedComponent.SegmentId, Transform(segmentuid).Coordinates); + + if (EnsureComp(segment, out var segmentComponent)) + { + segmentComponent.Lamia = parentuid; + segmentComponent.AttachedToUid = segmentuid; + segmentComponent.DamageModifierConstant = segmentedComponent.NumberOfSegments * segmentedComponent.DamageModifierOffset; + float damageModifyCoefficient = segmentComponent.DamageModifierConstant / segmentedComponent.NumberOfSegments; + segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; + segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentedComponent.NumberOfSegments * segmentedComponent.ExplosiveModifierOffset); + } + + if (segmentNumber >= taperConstant && segmentedComponent.UseTaperSystem == true) { segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset * MathF.Pow(segmentedComponent.OffsetConstant, segmentNumber - taperConstant); @@ -168,10 +173,7 @@ private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, Segmente { segmentComponent.OffsetSwitching *= -1; } - - segmentComponent.Owner = segment; segmentComponent.SegmentNumber = segmentNumber; - EntityManager.AddComponent(segment, segmentComponent, true); EnsureComp(segment); _segments.Enqueue((segmentComponent, parentuid)); segmentedComponent.Segments.Add(segment); From 202ab2883af6c1329986fafab38631007f66d429 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 24 Jun 2024 16:25:47 -0400 Subject: [PATCH 60/85] Update SegmentedEntitySystem.cs --- .../SegmentedEntity/SegmentedEntitySystem.cs | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs index 9e393642b3..af9274c2a4 100644 --- a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs @@ -16,6 +16,7 @@ using Robust.Shared.Physics.Systems; using Robust.Shared.Physics.Components; using System.Numerics; +using System.Net; namespace Content.Shared.SegmentedEntity { @@ -148,16 +149,16 @@ private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, Segmente else segment = EntityManager.SpawnEntity(segmentedComponent.SegmentId, Transform(segmentuid).Coordinates); - if (EnsureComp(segment, out var segmentComponent)) - { - segmentComponent.Lamia = parentuid; - segmentComponent.AttachedToUid = segmentuid; - segmentComponent.DamageModifierConstant = segmentedComponent.NumberOfSegments * segmentedComponent.DamageModifierOffset; - float damageModifyCoefficient = segmentComponent.DamageModifierConstant / segmentedComponent.NumberOfSegments; - segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; - segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentedComponent.NumberOfSegments * segmentedComponent.ExplosiveModifierOffset); - } + var segmentComponent = EnsureComp(segment); + segmentComponent.Lamia = parentuid; + segmentComponent.AttachedToUid = segmentuid; + segmentComponent.DamageModifierConstant = segmentedComponent.NumberOfSegments * segmentedComponent.DamageModifierOffset; + float damageModifyCoefficient = segmentComponent.DamageModifierConstant / segmentedComponent.NumberOfSegments; + segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; + segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (segmentedComponent.NumberOfSegments * segmentedComponent.ExplosiveModifierOffset); + segmentComponent.SegmentNumber = segmentNumber; + segmentComponent.Owner = segment; if (segmentNumber >= taperConstant && segmentedComponent.UseTaperSystem == true) { @@ -173,7 +174,7 @@ private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, Segmente { segmentComponent.OffsetSwitching *= -1; } - segmentComponent.SegmentNumber = segmentNumber; + EnsureComp(segment); _segments.Enqueue((segmentComponent, parentuid)); segmentedComponent.Segments.Add(segment); From 84edee0ff742c6a9646de24d80221f7a72fe7457 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 24 Jun 2024 16:39:27 -0400 Subject: [PATCH 61/85] Implement shoot over segment --- .../SegmentedEntity/SegmentedEntitySystem.cs | 11 ----------- .../Entities/Objects/Specific/Species/lamia.yml | 2 ++ 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs index af9274c2a4..a820c87c2a 100644 --- a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs @@ -41,7 +41,6 @@ public override void Initialize() SubscribeLocalEvent(OnDidEquipEvent); SubscribeLocalEvent(OnDidUnequipEvent); SubscribeLocalEvent(OnSnekBoom); - SubscribeLocalEvent(PreventShootSelf); SubscribeLocalEvent(HandleDamageTransfer); SubscribeLocalEvent(HandleSegmentDamage); SubscribeLocalEvent(OnSegmentSpawned); @@ -265,16 +264,6 @@ private void OnDidUnequipEvent(EntityUid equipee, SegmentedEntityComponent compo } } - private void PreventShootSelf(EntityUid uid, SegmentedEntitySegmentComponent component, ref PreventCollideEvent args) - { - if (!TryComp(args.OtherEntity, out var projectileComponent)) return; - - if (projectileComponent.Shooter == component.Lamia) - { - args.Cancelled = true; - } - } - private void OnShootHitscan(EntityUid uid, SegmentedEntityComponent component, ref HitScanAfterRayCastEvent args) { if (args.RayCastResults == null) return; diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml index 173993127f..0383143c26 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml @@ -33,6 +33,8 @@ - type: Tag tags: - HideContextMenu + - type: RequireProjectileTarget + active: True - type: entity id: LamiaSegment From 741ceceebcc34e6762854a1fc29a3886a3965db6 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 15 Jul 2024 12:31:15 -0400 Subject: [PATCH 62/85] Fixes from latest feedback --- .../StationEvents/Events/MassMindSwapRule.cs | 10 +++++----- .../StationEvents/Events/NoosphericFryRule.cs | 2 +- .../Psionics/Glimmer/GlimmerReactiveSystem.cs | 8 ++++---- .../DeltaV/Entities/Mobs/NPCs/glimmer_creatures.yml | 1 + .../Nyanotrasen/Entities/Clothing/Head/hats.yml | 2 ++ 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs index 89f3bc9750..3be2eed638 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/MassMindSwapRule.cs @@ -66,11 +66,11 @@ protected override void Started(EntityUid uid, MassMindSwapRuleComponent compone // Do the swap. _mindSwap.Swap(actor, other); - if (!component.IsTemporary) - { - _mindSwap.GetTrapped(actor); - _mindSwap.GetTrapped(other); - } + //if (!component.IsTemporary) + //{ + // _mindSwap.GetTrapped(actor); + // _mindSwap.GetTrapped(other); + //} } while (true); } } diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs index cf7b8e6cc9..d7880af903 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/NoosphericFryRule.cs @@ -103,7 +103,7 @@ protected override void Started(EntityUid uid, NoosphericFryRuleComponent compon while (queryReactive.MoveNext(out var reactive, out _, out var xform, out var physics)) { // shoot out three bolts of lighting... - _glimmerReactiveSystem.BeamRandomNearProber(reactive, 3, 12); + //_glimmerReactiveSystem.BeamRandomNearProber(reactive, 3, 12); // try to anchor if we can if (!xform.Anchored) diff --git a/Content.Server/Psionics/Glimmer/GlimmerReactiveSystem.cs b/Content.Server/Psionics/Glimmer/GlimmerReactiveSystem.cs index 8503457488..584b1a61e2 100644 --- a/Content.Server/Psionics/Glimmer/GlimmerReactiveSystem.cs +++ b/Content.Server/Psionics/Glimmer/GlimmerReactiveSystem.cs @@ -374,10 +374,10 @@ public override void Update(float frameTime) _ghostSystem.MakeVisible(true); _revenantSystem.MakeVisible(true); GhostsVisible = true; - foreach (var reactive in reactives) - { - BeamRandomNearProber(reactive.Owner, 1, 12); - } + //foreach (var reactive in reactives) + //{ + // BeamRandomNearProber(reactive.Owner, 1, 12); + //} } else if (GhostsVisible == true) { _ghostSystem.MakeVisible(false); diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/glimmer_creatures.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/glimmer_creatures.yml index 1f1000f04a..d0982c8174 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/glimmer_creatures.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/NPCs/glimmer_creatures.yml @@ -29,6 +29,7 @@ psychicFeedback: - "glimmer-mite-feedback" - type: GlimmerSource + glimmerExponentOffset: 3 - type: AmbientSound range: 6 volume: -3 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml index 83e3756c0f..781e42c172 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml @@ -113,6 +113,8 @@ sprite: Nyanotrasen/Clothing/Head/Helmets/insulative_skullcap.rsi - type: Clothing sprite: Nyanotrasen/Clothing/Head/Helmets/insulative_skullcap.rsi + - type: TinfoilHat + destroyOnFry: false - type: Armor modifiers: coefficients: From cef196db0a327fdbecf58d21362d88fe40b0f91f Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 15 Jul 2024 12:52:09 -0400 Subject: [PATCH 63/85] Delete ContestsSystem.CVars.cs --- .../Contests/ContestsSystem.CVars.cs | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 Content.Shared/Contests/ContestsSystem.CVars.cs diff --git a/Content.Shared/Contests/ContestsSystem.CVars.cs b/Content.Shared/Contests/ContestsSystem.CVars.cs deleted file mode 100644 index 2775c8adb4..0000000000 --- a/Content.Shared/Contests/ContestsSystem.CVars.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Content.Shared.CCVar; -using Robust.Shared.Configuration; - -namespace Content.Shared.Contests -{ - public sealed partial class ContestsSystem - { - [Dependency] private readonly IConfigurationManager _cfg = default!; - - public bool DoMassContests { get; private set; } - public float MassContestsMaxPercentage { get; private set; } - - private void InitializeCVars() - { - Subs.CVar(_cfg, CCVars.DoMassContests, value => DoMassContests = value, true); - Subs.CVar(_cfg, CCVars.MassContestsMaxPercentage, value => MassContestsMaxPercentage = value, true); - } - } -} From 000b25b01b23eb28791ca26d6616def8ffb4fe0e Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 15 Jul 2024 12:56:12 -0400 Subject: [PATCH 64/85] Update skills.yml --- Resources/Prototypes/Traits/skills.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml index 25510886e1..bb9a8638c0 100644 --- a/Resources/Prototypes/Traits/skills.yml +++ b/Resources/Prototypes/Traits/skills.yml @@ -21,6 +21,7 @@ requirements: - !type:CharacterJobRequirement inverted: true + jobs: - Borg - MedicalBorg - !type:CharacterTraitRequirement From 470ef8be1fa7bbd6d57efcf79cd19d486a13523c Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Tue, 16 Jul 2024 12:38:52 -0400 Subject: [PATCH 65/85] Update arachne.yml --- Resources/Prototypes/Entities/Mobs/Species/arachne.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml index 991668e444..2f6437dc14 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml @@ -97,9 +97,6 @@ - type: Body prototype: Arachne requiredLegs: 8 - - type: Damageable - damageContainer: HalfSpirit - damageModifierSet: HalfSpirit - type: Speech speechSounds: Alto - type: Inventory From dfd113aa3e697ef0c052887eea9fcc4b94f7c960 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Tue, 16 Jul 2024 22:55:13 -0400 Subject: [PATCH 66/85] Update game_presets.yml --- Resources/Prototypes/game_presets.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/game_presets.yml b/Resources/Prototypes/game_presets.yml index 7d7169bf10..92d879b066 100644 --- a/Resources/Prototypes/game_presets.yml +++ b/Resources/Prototypes/game_presets.yml @@ -13,7 +13,7 @@ id: SurvivalHellshift alias: - hellshift - showInVote: true + showInVote: false name: hellshift-title description: hellshift-description rules: From 9b135eec80a41c26793e09e10a3e532166b80253 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 19 Jul 2024 14:46:32 -0400 Subject: [PATCH 67/85] Prove I am still working on this --- .../SegmentedEntity/SegmentedEntitySystem.cs | 102 ++++++++++++++---- .../DeltaV/Entities/Mobs/Species/lamia.yml | 1 + 2 files changed, 81 insertions(+), 22 deletions(-) diff --git a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs index a820c87c2a..c751391adf 100644 --- a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs @@ -17,6 +17,8 @@ using Robust.Shared.Physics.Components; using System.Numerics; using System.Net; +using Robust.Shared.Network; +using System.Net.WebSockets; namespace Content.Shared.SegmentedEntity { @@ -27,6 +29,7 @@ public sealed partial class LamiaSystem : EntitySystem [Dependency] private readonly DamageableSystem _damageableSystem = default!; [Dependency] private readonly SharedHumanoidAppearanceSystem _humanoid = default!; [Dependency] private readonly SharedJointSystem _jointSystem = default!; + [Dependency] private readonly INetManager _net = default!; Queue<(SegmentedEntitySegmentComponent segment, EntityUid lamia)> _segments = new(); @@ -35,19 +38,23 @@ public sealed partial class LamiaSystem : EntitySystem public override void Initialize() { base.Initialize(); + //Parent subscriptions SubscribeLocalEvent(OnShootHitscan); SubscribeLocalEvent(OnLamiaStorageInsertAttempt); - SubscribeLocalEvent(OnSegmentStorageInsertAttempt); SubscribeLocalEvent(OnDidEquipEvent); SubscribeLocalEvent(OnDidUnequipEvent); - SubscribeLocalEvent(OnSnekBoom); - SubscribeLocalEvent(HandleDamageTransfer); - SubscribeLocalEvent(HandleSegmentDamage); - SubscribeLocalEvent(OnSegmentSpawned); SubscribeLocalEvent(OnInit); SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnJointRemoved); SubscribeLocalEvent(OnRemovedFromContainer); + SubscribeLocalEvent(OnParentChanged); + + //Child subscriptions + SubscribeLocalEvent(OnSegmentStorageInsertAttempt); + SubscribeLocalEvent(OnSnekBoom); + SubscribeLocalEvent(HandleDamageTransfer); + SubscribeLocalEvent(HandleSegmentDamage); + SubscribeLocalEvent(OnSegmentSpawned); } public override void Update(float frameTime) { @@ -88,6 +95,7 @@ public override void Update(float frameTime) } private void OnInit(EntityUid uid, SegmentedEntityComponent component, ComponentInit args) { + EnsureComp(uid); //Temporary, remove when Portal handling is added Math.Clamp(component.NumberOfSegments, 2, 18); Math.Clamp(component.TaperOffset, 1, component.NumberOfSegments - 1); SpawnSegments(uid, component); @@ -95,6 +103,9 @@ private void OnInit(EntityUid uid, SegmentedEntityComponent component, Component private void OnShutdown(EntityUid uid, SegmentedEntityComponent component, ComponentShutdown args) { + if (_net.IsClient) + return; + foreach (var segment in component.Segments) { QueueDel(segment); @@ -103,42 +114,65 @@ private void OnShutdown(EntityUid uid, SegmentedEntityComponent component, Compo component.Segments.Clear(); } + private void SegmentSelfTest(EntityUid uid, SegmentedEntityComponent component) + { + + } + private void OnJointRemoved(EntityUid uid, SegmentedEntityComponent component, JointRemovedEvent args) { if (!component.Segments.Contains(args.OtherEntity)) return; + RespawnSegments(uid, component); + } + + private void OnRemovedFromContainer(EntityUid uid, SegmentedEntityComponent component, EntGotRemovedFromContainerMessage args) + { + RespawnSegments(uid, component); + } + + private void DeleteSegments(SegmentedEntityComponent component) + { + if (_net.IsClient) + return; //Client is not allowed to predict QueueDel, it'll throw an error(but won't crash in Release build) + foreach (var segment in component.Segments) QueueDel(segment); component.Segments.Clear(); } - private void OnRemovedFromContainer(EntityUid uid, SegmentedEntityComponent component, EntGotRemovedFromContainerMessage args) + /// + /// Public call for a SegmentedEntity to reset their tail completely. + /// + /// + /// + public void RespawnSegments(EntityUid uid, SegmentedEntityComponent component) { - if (component.Segments.Count != 0) - { - foreach (var segment in component.Segments) - QueueDel(segment); - component.Segments.Clear(); - } - + DeleteSegments(component); SpawnSegments(uid, component); } - public void SpawnSegments(EntityUid uid, SegmentedEntityComponent component) + private void SpawnSegments(EntityUid uid, SegmentedEntityComponent component) { + if (_net.IsClient) + return; //Client is not allowed to spawn entities. It won't throw an error, but it'll make fake client entities. + + //Segmented Entities are potentially not humanoids, they could for instance be a giant space worm. + var humanoidFactor = TryComp(uid, out var humanoid) ? (humanoid.Height + humanoid.Width) / 2 : 1; + int i = 1; var addTo = uid; while (i <= component.NumberOfSegments + 1) { - var segment = AddSegment(addTo, uid, component, i); + var segment = AddSegment(addTo, uid, component, i, humanoidFactor); addTo = segment; i++; } } - private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, SegmentedEntityComponent segmentedComponent, int segmentNumber) + private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, SegmentedEntityComponent segmentedComponent, int segmentNumber, float humanoidFactor) { float taperConstant = segmentedComponent.NumberOfSegments - segmentedComponent.TaperOffset; @@ -159,22 +193,38 @@ private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, Segmente segmentComponent.SegmentNumber = segmentNumber; segmentComponent.Owner = segment; - if (segmentNumber >= taperConstant && segmentedComponent.UseTaperSystem == true) + if (segmentedComponent.UseTaperSystem == true) { - segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset * MathF.Pow(segmentedComponent.OffsetConstant, segmentNumber - taperConstant); - segmentComponent.ScaleFactor = segmentedComponent.StaticScale * MathF.Pow(1f / segmentedComponent.OffsetConstant, segmentNumber - taperConstant); + if (segmentNumber >= taperConstant) + { + segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset + * humanoidFactor + * MathF.Pow(segmentedComponent.OffsetConstant, segmentNumber - taperConstant); + + segmentComponent.ScaleFactor = segmentedComponent.StaticScale + * humanoidFactor + * MathF.Pow(1f / segmentedComponent.OffsetConstant, segmentNumber - taperConstant); + } + if (segmentNumber < taperConstant) + { + segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset * humanoidFactor; + segmentComponent.ScaleFactor = segmentedComponent.StaticScale * humanoidFactor; + } } else { - segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset; - segmentComponent.ScaleFactor = segmentedComponent.StaticScale; + segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset * humanoidFactor; + segmentComponent.ScaleFactor = segmentedComponent.StaticScale * humanoidFactor; } + + // We invert the Y axis offset on every odd numbered tail so that the segmented entity spawns in a neat pile + // Rather than stretching across 5 to 10 vertical tiles, and potentially getting trapped in a wall if (segmentNumber % 2 != 0) { segmentComponent.OffsetSwitching *= -1; } - EnsureComp(segment); + EnsureComp(segment); //Not temporary, segments must never be allowed to go through portals for physics limitation reasons _segments.Enqueue((segmentComponent, parentuid)); segmentedComponent.Segments.Add(segment); return segment; @@ -276,5 +326,13 @@ private void OnShootHitscan(EntityUid uid, SegmentedEntityComponent component, r } args.RayCastResults = entityList; } + + private void OnParentChanged(EntityUid uid, SegmentedEntityComponent component, ref EntParentChangedMessage args) + { + if (Transform(uid).MapID != args.OldMapId) + return; + + RespawnSegments(uid, component); + } } } diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml index 9b97a24002..eb8d0f03f0 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml @@ -214,6 +214,7 @@ bloodlossHealDamage: types: Bloodloss: -1 + - type: PortalExempt - type: entity save: false From 26da2f4c33d837c8a867000573af28ac5ccf2a13 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Fri, 19 Jul 2024 23:14:31 -0400 Subject: [PATCH 68/85] No idea how the hell potentialpsychics came back --- Content.Server/Cloning/CloningSystem.cs | 15 ++++++++++++++- .../Psionics/Abilities/PsionicAbilitiesSystem.cs | 2 ++ .../Psionics/PsionicInsulationComponent.cs | 3 +++ .../Psionics/SharedPsionicAbilitiesSystem.cs | 12 ++++++++++++ .../nyanotrasen/psionics/psychic-feedback.ftl | 3 +++ Resources/Locale/en-US/traits/traits.ftl | 8 ++++---- .../Prototypes/Entities/Mobs/NPCs/regalrat.yml | 1 - Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml | 1 - .../Prototypes/Entities/Mobs/Player/skeleton.yml | 1 - .../Prototypes/Entities/Mobs/Species/human.yml | 1 - Resources/Prototypes/Traits/psionics.yml | 1 + 11 files changed, 39 insertions(+), 9 deletions(-) diff --git a/Content.Server/Cloning/CloningSystem.cs b/Content.Server/Cloning/CloningSystem.cs index 0061283367..a1e6dc6b89 100644 --- a/Content.Server/Cloning/CloningSystem.cs +++ b/Content.Server/Cloning/CloningSystem.cs @@ -24,6 +24,7 @@ using Content.Shared.Mind.Components; using Content.Shared.Mobs.Systems; using Content.Shared.Roles.Jobs; +using Content.Shared.Psionics.Abilities; using Robust.Server.Containers; using Robust.Server.GameObjects; using Robust.Server.Player; @@ -200,6 +201,18 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(bodyToClone, out var insul)) + { + if (clonePod.ConnectedConsole != null) + { + _chatSystem.TrySendInGameICMessage(clonePod.ConnectedConsole.Value, + Loc.GetString("cloning-console-insulation-error"), + InGameICChatType.Speak, false); + } + + return false; + } + // Check if they have the uncloneable trait if (TryComp(bodyToClone, out _)) { @@ -248,7 +261,7 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(mob); diff --git a/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs b/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs index 24e6bbb8d3..1be51893f9 100644 --- a/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs +++ b/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs @@ -73,6 +73,8 @@ public void RemovePsionics(EntityUid uid) if (RemComp(uid)) { _popups.PopupEntity(Loc.GetString("mindbreaking-feedback", ("entity", uid)), uid, PopupType.Medium); + EnsureComp(uid, out var insul); + insul.MindBroken = true; } if (!TryComp(uid, out var psionic)) diff --git a/Content.Shared/Psionics/PsionicInsulationComponent.cs b/Content.Shared/Psionics/PsionicInsulationComponent.cs index 2ab054b1f8..4b999523bc 100644 --- a/Content.Shared/Psionics/PsionicInsulationComponent.cs +++ b/Content.Shared/Psionics/PsionicInsulationComponent.cs @@ -6,5 +6,8 @@ public sealed partial class PsionicInsulationComponent : Component public bool Passthrough = false; public List SuppressedFactions = new(); + + [DataField] + public bool MindBroken = false; } } diff --git a/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs b/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs index 7a87978582..fda1ef4fd4 100644 --- a/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs +++ b/Content.Shared/Psionics/SharedPsionicAbilitiesSystem.cs @@ -1,10 +1,12 @@ using System.Diagnostics.CodeAnalysis; using Content.Shared.Actions; using Content.Shared.Administration.Logs; +using Content.Shared.Examine; using Content.Shared.Mobs; using Content.Shared.Mobs.Components; using Content.Shared.Popups; using Content.Shared.Psionics.Glimmer; +using Robust.Shared.Network; using Robust.Shared.Random; using Robust.Shared.Serialization; @@ -18,6 +20,7 @@ public sealed class SharedPsionicAbilitiesSystem : EntitySystem [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; [Dependency] private readonly IRobustRandom _robustRandom = default!; + [Dependency] private readonly INetManager _net = default!; public override void Initialize() { @@ -25,6 +28,7 @@ public override void Initialize() SubscribeLocalEvent(OnInit); SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnPowerUsed); + SubscribeLocalEvent(OnExamined); SubscribeLocalEvent(OnMobStateChanged); } @@ -77,6 +81,14 @@ public void SetPsionicsThroughEligibility(EntityUid uid) _actions.SetEnabled(uid, IsEligibleForPsionics(uid)); } + private void OnExamined(EntityUid uid, PsionicInsulationComponent component, ExaminedEvent args) + { + if (!component.MindBroken || !args.IsInDetailsRange) + return; + + args.PushMarkup($"[color=mediumpurple]{Loc.GetString("examine-mindbroken-message", ("entity", uid))}[/color]"); + } + private bool IsEligibleForPsionics(EntityUid uid) { return !HasComp(uid) diff --git a/Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl b/Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl index 311d71d6ac..76e67a5a02 100644 --- a/Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl +++ b/Resources/Locale/en-US/nyanotrasen/psionics/psychic-feedback.ftl @@ -51,3 +51,6 @@ pyrokinesis-refund-cooldown = You reclaim some of the energy spent drawing forth # Misc Psionic Messages telepathic-mute-message = You strain, but are unable to send your thoughts to the Noosphere +examine-mindbroken-message = Eyes unblinking, staring listfully into the horizon. {CAPITALIZE($entity)} is a sack of meat pretending it has a soul. + There is nothing behind its gaze. +cloning-console-insulation-error = ERROR: NON-SOPHONT LOADED, NO SOUL FOUND. diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 421dde2744..d11331818c 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -41,10 +41,10 @@ trait-description-LatentPsychic = Your mind and soul are open to the noosphere, It is possible that you may be hunted by otherworldly forces, so consider keeping your powers a secret. trait-name-PsionicInsulation = χ Waveform Misalignment -trait-description-PsionicInsulation = Through a quirk of fate, your brainwaves are permanently out of phase with the noösphere - You are immune to both positive and negative effects of nearly all psychic powers, - But you can never be a psionic yourself in this life. This trait is incompatible with - all other psychic traits. +trait-description-PsionicInsulation = You are a flesh automaton animated by neurotransmitters. Within your skull lies a + 1.5kg sack of meat pretending at sentience. By modern epistemiological theory, you aren't even a sophont. + The good news is that you are immune to most positive and negative effects of psychic powers. There may be other + consequences to this malady. trait-name-NaturalTelepath = Natural Telepath trait-description-NaturalTelepath = As a naturally occuring Telepath, you are capable of fluent telepathic communication, regardless of diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index db594873fe..13a3da9abc 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -118,7 +118,6 @@ - type: Grammar attributes: gender: male - - type: PotentialPsionic # Nyano - type: LanguageKnowledge speaks: - GalacticCommon diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 397989643e..3d13203db3 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -121,7 +121,6 @@ molsPerSecondPerUnitMass: 0.0005 - type: Speech speechVerb: LargeMob - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. chance: -2 - type: Psionic #Nyano - Summary: makes psionic by default. removable: false diff --git a/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml b/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml index bf41f2dda6..f9132ce0ea 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml @@ -8,7 +8,6 @@ interactSuccessString: hugging-success-generic interactSuccessSound: /Audio/Effects/thudswoosh.ogg messagePerceivedByOthers: hugging-success-generic-others - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. - type: entity name: skeleton pirate diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index 5b3295b96c..dca033507f 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -16,7 +16,6 @@ spawned: - id: FoodMeatHuman amount: 5 - - type: PotentialPsionic #Nyano - Summary: makes potentially psionic. - type: LanguageKnowledge speaks: - GalacticCommon diff --git a/Resources/Prototypes/Traits/psionics.yml b/Resources/Prototypes/Traits/psionics.yml index 277070617c..b896a8f745 100644 --- a/Resources/Prototypes/Traits/psionics.yml +++ b/Resources/Prototypes/Traits/psionics.yml @@ -17,6 +17,7 @@ points: -5 components: - type: PsionicInsulation + mindBroken: true requirements: - !type:CharacterTraitRequirement inverted: true From 94e4b09511f7fb6025a2347dbf0ce7ba2aebf30d Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sat, 20 Jul 2024 02:16:44 -0400 Subject: [PATCH 69/85] Update xeno.yml --- Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 3d13203db3..d618e40713 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -121,7 +121,6 @@ molsPerSecondPerUnitMass: 0.0005 - type: Speech speechVerb: LargeMob - chance: -2 - type: Psionic #Nyano - Summary: makes psionic by default. removable: false - type: LanguageKnowledge From 41eeba0457aae320ebc6ab93601389075025df4f Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 17:52:42 -0400 Subject: [PATCH 70/85] Fix mistakes from merge conflicts --- .../Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json | 1 + .../Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json | 4 ++++ .../Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json index 925de1c4a7..1fd6139e1d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json @@ -1,3 +1,4 @@ +{ "version": 1, "license": "CC-BY-SA-3.0", "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a. Further modifications and derivate works (inhand-left and inhand-right) under same license, derivative monkey made by brainfood1183 (github) for ss14, harpy by VMSolidus, lamia & segment by @noctyrnal", diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json index ad76d93153..45b83db717 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json @@ -6,6 +6,10 @@ "x": 32, "y": 32 }, + "states": [ + { + "name": "icon" + }, { "name": "equipped-OUTERCLOTHING", "directions": 4 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json index 16d4a62e0b..906a91a7ec 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json @@ -6,6 +6,10 @@ "x": 32, "y": 32 }, + "states": [ + { + "name": "icon" + }, { "name": "equipped-OUTERCLOTHING", "directions": 4 From c630d637fd905a918446b6551d8d8f50669adf40 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 22:33:38 -0400 Subject: [PATCH 71/85] Lamia are *technically* "Playable" again. --- .../Systems/ShuttleSystem.FasterThanLight.cs | 5 +- .../SegmentedEntity/SegmentedEntitySystem.cs | 73 +++++++++++-------- .../Structures/Piping/Disposal/units.yml | 3 + 3 files changed, 48 insertions(+), 33 deletions(-) diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs index 5128869103..2ac779cc94 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs @@ -9,6 +9,7 @@ using Content.Shared.Ghost; using Content.Shared.Maps; using Content.Shared.Parallax; +using Content.Shared.SegmentedEntity; using Content.Shared.Shuttles.Components; using Content.Shared.Shuttles.Systems; using Content.Shared.StatusEffect; @@ -601,7 +602,9 @@ private void KnockOverKids(TransformComponent xform, ref ValueList to var childEnumerator = xform.ChildEnumerator; while (childEnumerator.MoveNext(out var child)) { - if (!_buckleQuery.TryGetComponent(child, out var buckle) || buckle.Buckled) + if (!_buckleQuery.TryGetComponent(child, out var buckle) || buckle.Buckled + || HasComp(child) + || HasComp(child)) continue; toKnock.Add(child); diff --git a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs index c751391adf..497dd31d59 100644 --- a/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs +++ b/Content.Shared/SegmentedEntity/SegmentedEntitySystem.cs @@ -7,18 +7,13 @@ using Content.Shared.Inventory.Events; using Content.Shared.Tag; using Content.Shared.Storage.Components; -using Robust.Shared.Physics.Events; -using Content.Shared.Projectiles; using Content.Shared.Weapons.Ranged.Events; using Content.Shared.Teleportation.Components; -using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics.Systems; using Robust.Shared.Physics.Components; using System.Numerics; -using System.Net; using Robust.Shared.Network; -using System.Net.WebSockets; namespace Content.Shared.SegmentedEntity { @@ -46,8 +41,8 @@ public override void Initialize() SubscribeLocalEvent(OnInit); SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnJointRemoved); - SubscribeLocalEvent(OnRemovedFromContainer); SubscribeLocalEvent(OnParentChanged); + SubscribeLocalEvent(OnStoreSnekAttempt); //Child subscriptions SubscribeLocalEvent(OnSegmentStorageInsertAttempt); @@ -58,6 +53,7 @@ public override void Initialize() } public override void Update(float frameTime) { + //I HATE THIS, SO MUCH. I AM FORCED TO DEAL WITH THIS MONSTROSITY. PLEASE. SEND HELP. base.Update(frameTime); foreach (var segment in _segments) { @@ -73,6 +69,10 @@ public override void Update(float frameTime) EnsureComp(segmentUid); EnsureComp(attachedUid); // Hello I hate tests + // This is currently HERE and not somewhere more sane like OnInit because HumanoidAppearanceComponent is for whatever + // ungodly reason not initialized when ComponentStartup is called. Kill me. + var humanoidFactor = TryComp(segment.segment.Lamia, out var humanoid) ? (humanoid.Height + humanoid.Width) / 2 : 1; + var ev = new SegmentSpawnedEvent(segment.lamia); RaiseLocalEvent(segmentUid, ev, false); @@ -83,9 +83,9 @@ public override void Update(float frameTime) revoluteJoint.CollideConnected = false; } if (segment.segment.SegmentNumber <= segment.segment.MaxSegments) - Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); + Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching * humanoidFactor)); else - Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); + Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching * humanoidFactor)); var joint = _jointSystem.CreateDistanceJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); joint.CollideConnected = false; @@ -114,22 +114,37 @@ private void OnShutdown(EntityUid uid, SegmentedEntityComponent component, Compo component.Segments.Clear(); } - private void SegmentSelfTest(EntityUid uid, SegmentedEntityComponent component) + /// + /// TODO: Full Self-Test function that intelligently checks the status of where everything is, and calls whatever + /// functions are appropriate + /// + /// + /// + public void SegmentSelfTest(EntityUid uid, SegmentedEntityComponent component) { } - private void OnJointRemoved(EntityUid uid, SegmentedEntityComponent component, JointRemovedEvent args) + /// + /// TODO: Function that ensures clothing visuals, to be called anytime the tail is reset + /// + /// + /// + private void EnsureSnekSock(EntityUid uid, SegmentedEntityComponent segment) { - if (!component.Segments.Contains(args.OtherEntity)) - return; - RespawnSegments(uid, component); + } + public void OnStoreSnekAttempt(EntityUid uid, SegmentedEntityComponent comp, ref StoreMobInItemContainerAttemptEvent args) + { + args.Cancelled = true; } - private void OnRemovedFromContainer(EntityUid uid, SegmentedEntityComponent component, EntGotRemovedFromContainerMessage args) + private void OnJointRemoved(EntityUid uid, SegmentedEntityComponent component, JointRemovedEvent args) { - RespawnSegments(uid, component); + if (!component.Segments.Contains(args.OtherEntity)) + return; + + DeleteSegments(component); } private void DeleteSegments(SegmentedEntityComponent component) @@ -159,22 +174,18 @@ private void SpawnSegments(EntityUid uid, SegmentedEntityComponent component) if (_net.IsClient) return; //Client is not allowed to spawn entities. It won't throw an error, but it'll make fake client entities. - //Segmented Entities are potentially not humanoids, they could for instance be a giant space worm. - var humanoidFactor = TryComp(uid, out var humanoid) ? (humanoid.Height + humanoid.Width) / 2 : 1; - int i = 1; var addTo = uid; while (i <= component.NumberOfSegments + 1) { - var segment = AddSegment(addTo, uid, component, i, humanoidFactor); + var segment = AddSegment(addTo, uid, component, i); addTo = segment; i++; } } - private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, SegmentedEntityComponent segmentedComponent, int segmentNumber, float humanoidFactor) + private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, SegmentedEntityComponent segmentedComponent, int segmentNumber) { - float taperConstant = segmentedComponent.NumberOfSegments - segmentedComponent.TaperOffset; EntityUid segment; if (segmentNumber == 1) @@ -198,23 +209,21 @@ private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, Segmente if (segmentNumber >= taperConstant) { segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset - * humanoidFactor * MathF.Pow(segmentedComponent.OffsetConstant, segmentNumber - taperConstant); segmentComponent.ScaleFactor = segmentedComponent.StaticScale - * humanoidFactor * MathF.Pow(1f / segmentedComponent.OffsetConstant, segmentNumber - taperConstant); } if (segmentNumber < taperConstant) { - segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset * humanoidFactor; - segmentComponent.ScaleFactor = segmentedComponent.StaticScale * humanoidFactor; + segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset; + segmentComponent.ScaleFactor = segmentedComponent.StaticScale; } } else { - segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset * humanoidFactor; - segmentComponent.ScaleFactor = segmentedComponent.StaticScale * humanoidFactor; + segmentComponent.OffsetSwitching = segmentedComponent.StaticOffset; + segmentComponent.ScaleFactor = segmentedComponent.StaticScale; } // We invert the Y axis offset on every odd numbered tail so that the segmented entity spawns in a neat pile @@ -245,8 +254,9 @@ private void OnSegmentSpawned(EntityUid uid, SegmentedEntitySegmentComponent com if (!TryComp(uid, out var species)) return; if (!TryComp(args.Lamia, out var humanoid)) return; if (!TryComp(uid, out var appearance)) return; + var humanoidFactor = (humanoid.Height + humanoid.Width) / 2; - _appearance.SetData(uid, ScaleVisuals.Scale, component.ScaleFactor, appearance); + _appearance.SetData(uid, ScaleVisuals.Scale, component.ScaleFactor * humanoidFactor, appearance); if (humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings)) { @@ -329,10 +339,9 @@ private void OnShootHitscan(EntityUid uid, SegmentedEntityComponent component, r private void OnParentChanged(EntityUid uid, SegmentedEntityComponent component, ref EntParentChangedMessage args) { - if (Transform(uid).MapID != args.OldMapId) - return; - - RespawnSegments(uid, component); + //If the change was NOT to a different map + if (args.OldMapId == args.Transform.MapID) + RespawnSegments(uid, component); } } } diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml index 75ec98c402..6d88a1015b 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml @@ -77,6 +77,9 @@ graph: DisposalMachine node: disposal_unit - type: DisposalUnit + blacklist: + components: + - SegmentedEntity - type: UserInterface interfaces: - key: enum.DisposalUnitUiKey.Key From bece2b6184bc909554a35b74fad6ae29ceea7228 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 22:41:38 -0400 Subject: [PATCH 72/85] Delete ContestsSystem.CVars.cs --- .../Contests/ContestsSystem.CVars.cs | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 Content.Shared/Contests/ContestsSystem.CVars.cs diff --git a/Content.Shared/Contests/ContestsSystem.CVars.cs b/Content.Shared/Contests/ContestsSystem.CVars.cs deleted file mode 100644 index 2775c8adb4..0000000000 --- a/Content.Shared/Contests/ContestsSystem.CVars.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Content.Shared.CCVar; -using Robust.Shared.Configuration; - -namespace Content.Shared.Contests -{ - public sealed partial class ContestsSystem - { - [Dependency] private readonly IConfigurationManager _cfg = default!; - - public bool DoMassContests { get; private set; } - public float MassContestsMaxPercentage { get; private set; } - - private void InitializeCVars() - { - Subs.CVar(_cfg, CCVars.DoMassContests, value => DoMassContests = value, true); - Subs.CVar(_cfg, CCVars.MassContestsMaxPercentage, value => MassContestsMaxPercentage = value, true); - } - } -} From b88aa562eddcb5898a85f84dfca4b6630eb02e2d Mon Sep 17 00:00:00 2001 From: whateverusername0 Date: Mon, 1 Jul 2024 19:36:34 +1000 Subject: [PATCH 73/85] womp --- .../Supermatter/Systems/SupermatterSystem.cs | 28 ++++++------------- .../Generation/Supermatter/supermatter.yml | 4 +-- .../Objectives/stealTargetGroups.yml | 7 +++++ 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/Content.Server/Supermatter/Systems/SupermatterSystem.cs b/Content.Server/Supermatter/Systems/SupermatterSystem.cs index cb1b1b9fa2..af773e7c5b 100644 --- a/Content.Server/Supermatter/Systems/SupermatterSystem.cs +++ b/Content.Server/Supermatter/Systems/SupermatterSystem.cs @@ -324,34 +324,22 @@ private void HandleAnnouncements(EntityUid uid, SupermatterComponent sm) { var sb = new StringBuilder(); var loc = string.Empty; - var alertLevel = sm.AlertCodeYellowId; switch (sm.PreferredDelamType) { case DelamType.Explosion: - default: - loc = "supermatter-delam-explosion"; - break; - - case DelamType.Singulo: - loc = "supermatter-delam-overmass"; - alertLevel = sm.AlertCodeDeltaId; - break; - - case DelamType.Tesla: - loc = "supermatter-delam-tesla"; - alertLevel = sm.AlertCodeDeltaId; - break; - - case DelamType.Cascade: - loc = "supermatter-delam-cascade"; - alertLevel = sm.AlertCodeDeltaId; - break; + default: loc = "supermatter-delam-explosion"; break; + + case DelamType.Singulo: loc = "supermatter-delam-overmass"; break; + + case DelamType.Tesla: loc = "supermatter-delam-tesla"; break; + + case DelamType.Cascade: loc = "supermatter-delam-cascade"; break; } var station = _station.GetOwningStation(uid); if (station != null) - _alert.SetLevel((EntityUid) station, alertLevel, true, true, true, false); + _alert.SetLevel((EntityUid) station, sm.AlertCodeDeltaId, true, true, true, false); sb.AppendLine(Loc.GetString(loc)); sb.AppendLine(Loc.GetString("supermatter-seconds-before-delam", ("seconds", sm.DelamTimer))); diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Supermatter/supermatter.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Supermatter/supermatter.yml index 1351b88a17..1f3708ce65 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/Supermatter/supermatter.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Supermatter/supermatter.yml @@ -60,9 +60,9 @@ color: "#ffe000" - type: Explosive explosionType: Supermatter - maxIntensity: 10000 + maxIntensity: 25000 intensitySlope: 5 - totalIntensity: 10000 + totalIntensity: 25000 - type: GuideHelp guides: [ Supermatter, Power ] - type: WarpPoint diff --git a/Resources/Prototypes/Objectives/stealTargetGroups.yml b/Resources/Prototypes/Objectives/stealTargetGroups.yml index aca67b2654..b561998801 100644 --- a/Resources/Prototypes/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/Objectives/stealTargetGroups.yml @@ -1,5 +1,12 @@ # Traitor single items +- type: stealTargetGroup + id: SupermatterSliver + name: supermatter sliver + sprite: + sprite: Supermatter/supermatter_sliver.rsi + state: icon + - type: stealTargetGroup id: Hypospray name: hypospray From 7f564801572df62067b9cef743f77c07a6a89099 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 22:48:09 -0400 Subject: [PATCH 74/85] Update SupermatterSystem.cs --- Content.Server/Supermatter/Systems/SupermatterSystem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Server/Supermatter/Systems/SupermatterSystem.cs b/Content.Server/Supermatter/Systems/SupermatterSystem.cs index af773e7c5b..3853a368c5 100644 --- a/Content.Server/Supermatter/Systems/SupermatterSystem.cs +++ b/Content.Server/Supermatter/Systems/SupermatterSystem.cs @@ -275,8 +275,8 @@ private void HandleDamage(EntityUid uid, SupermatterComponent sm) // Check for space tiles next to SM // TODO: change moles out for checking if adjacent tiles exist - var adjacentMixes = _atmosphere.GetAdjacentTileMixtures(xform.GridUid.Value, indices, false, false); - foreach (var ind in adjacentMixes) + var enumerator = _atmosphere.GetAdjacentTileMixtures(xform.GridUid.Value, indices, false, false); + while (enumerator.MoveNext(out var ind)) { if (ind.TotalMoles != 0) continue; From c8c65df49b64d1db6e2cc4d01f87ec8cafd5b942 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 22:53:45 -0400 Subject: [PATCH 75/85] Revert "Merge remote-tracking branch 'Upstream/LamiaSystem' into upstream-merge-7-21-2024" This reverts commit b75f57c6158a809d912bb527dadb167ec53fb5d0, reversing changes made to 7f564801572df62067b9cef743f77c07a6a89099. --- .../DeltaV/Lamiae/ClientLamiaVisuals.cs | 42 --- .../Lamiae/LamiaSegmentVisualsComponent.cs | 11 - Content.Server/DeltaV/Lamiae/LamiaSystem.cs | 292 ------------------ Content.Server/Teleportation/PortalSystem.cs | 2 +- .../Weapons/Ranged/Systems/GunSystem.cs | 8 +- .../DeltaV/Lamiae/LamiaComponent.cs | 84 ----- .../DeltaV/Lamiae/LamiaSegmentComponent.cs | 35 --- .../DeltaV/Lamiae/LamiaSegmentVisuals.cs | 18 -- .../DeltaV/Lamiae/SharedLamiaeSystem.cs | 17 - Content.Shared/Roles/StartingGearPrototype.cs | 1 - .../Components/PortalExemptComponent.cs | 8 - .../Systems/SharedPortalSystem.cs | 5 +- .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 2 +- .../Ranged/Events/HitScanAfterRayCastEvent.cs | 17 - .../DeltaV/Datasets/Names/cyno_female.yml | 41 --- .../DeltaV/Datasets/Names/cyno_last.yml | 40 --- .../DeltaV/Datasets/Names/cyno_male.yml | 22 -- .../Mobs/Customization/Markings/lamia.yml | 16 - .../Customization/Markings/lamiasegment.yml | 16 - .../DeltaV/Entities/Mobs/Player/lamia.yml | 39 --- .../DeltaV/Entities/Mobs/Species/lamia.yml | 284 ----------------- .../Objects/Specific/Species/lamia.yml | 59 ---- .../lamia_inventory_template.yml | 112 ------- Resources/Prototypes/DeltaV/Species/lamia.yml | 68 ---- Resources/Prototypes/DeltaV/tags.yml | 2 - .../OuterClothing/base_clothingouter.yml | 2 - .../Clothing/OuterClothing/softsuits.yml | 9 +- .../Mobs/Customization/Markings/reptilian.yml | 14 +- .../ERTSuits/ertengineer.rsi/meta.json | 7 +- .../ERTSuits/ertengineer.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1769 -> 0 bytes .../ERTSuits/ertjanitor.rsi/meta.json | 53 ++-- .../ERTSuits/ertjanitor.rsi/segment.png | Bin 372 -> 0 bytes .../ERTSuits/ertleader.rsi/meta.json | 7 +- .../ERTSuits/ertleader.rsi/segment.png | Bin 372 -> 0 bytes .../ERTSuits/ertmedical.rsi/meta.json | 7 +- .../ERTSuits/ertmedical.rsi/segment.png | Bin 372 -> 0 bytes .../ERTSuits/ertsecurity.rsi/meta.json | 7 +- .../ERTSuits/ertsecurity.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 924 -> 0 bytes .../Hardsuits/atmospherics.rsi/meta.json | 21 +- .../Hardsuits/atmospherics.rsi/segment.png | Bin 482 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 2095 -> 0 bytes .../Hardsuits/basic.rsi/meta.json | 65 ++-- .../Hardsuits/basic.rsi/segment.png | Bin 396 -> 0 bytes .../Hardsuits/brigmedic.rsi/meta.json | 7 +- .../Hardsuits/brigmedic.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 968 -> 0 bytes .../Hardsuits/capspace.rsi/meta.json | 21 +- .../Hardsuits/capspace.rsi/segment.png | Bin 467 -> 0 bytes .../Hardsuits/cburn.rsi/meta.json | 7 +- .../Hardsuits/cburn.rsi/segment.png | Bin 372 -> 0 bytes .../Hardsuits/clown.rsi/meta.json | 3 - .../Hardsuits/clown.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1116 -> 0 bytes .../Hardsuits/cybersun.rsi/meta.json | 21 +- .../Hardsuits/cybersun.rsi/segment.png | Bin 479 -> 0 bytes .../Hardsuits/deathsquad.rsi/meta.json | 7 +- .../Hardsuits/deathsquad.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1991 -> 0 bytes .../Hardsuits/engineering-white.rsi/meta.json | 21 +- .../engineering-white.rsi/segment.png | Bin 476 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1908 -> 0 bytes .../Hardsuits/engineering.rsi/meta.json | 21 +- .../Hardsuits/engineering.rsi/segment.png | Bin 457 -> 0 bytes .../Hardsuits/lingspacesuit.rsi/meta.json | 9 +- .../Hardsuits/lingspacesuit.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 3521 -> 0 bytes .../Hardsuits/luxury.rsi/meta.json | 21 +- .../Hardsuits/luxury.rsi/segment.png | Bin 537 -> 0 bytes .../Hardsuits/maxim.rsi/meta.json | 9 +- .../Hardsuits/maxim.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1668 -> 0 bytes .../Hardsuits/medical.rsi/meta.json | 21 +- .../Hardsuits/medical.rsi/segment.png | Bin 452 -> 0 bytes .../Hardsuits/mime.rsi/meta.json | 3 - .../Hardsuits/mime.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 2249 -> 0 bytes .../Hardsuits/paramed.rsi/meta.json | 21 +- .../Hardsuits/paramed.rsi/segment.png | Bin 442 -> 0 bytes .../Hardsuits/piratecaptain.rsi/meta.json | 3 - .../Hardsuits/piratecaptain.rsi/segment.png | Bin 372 -> 0 bytes .../Hardsuits/pirateeva.rsi/meta.json | 3 - .../Hardsuits/pirateeva.rsi/segment.png | Bin 372 -> 0 bytes .../rd.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 1025 -> 0 bytes .../OuterClothing/Hardsuits/rd.rsi/meta.json | 57 ++-- .../Hardsuits/rd.rsi/segment.png | Bin 446 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 2000 -> 0 bytes .../Hardsuits/salvage.rsi/meta.json | 21 +- .../Hardsuits/salvage.rsi/segment.png | Bin 460 -> 0 bytes .../Hardsuits/santahardsuit.rsi/meta.json | 7 +- .../Hardsuits/santahardsuit.rsi/segment.png | Bin 372 -> 0 bytes .../Hardsuits/security-red.rsi/meta.json | 7 +- .../Hardsuits/security-red.rsi/segment.png | Bin 372 -> 0 bytes .../Hardsuits/security-warden.rsi/meta.json | 7 +- .../Hardsuits/security-warden.rsi/segment.png | Bin 372 -> 0 bytes .../Hardsuits/security.rsi/meta.json | 7 +- .../Hardsuits/security.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 2058 -> 0 bytes .../Hardsuits/spatio.rsi/meta.json | 22 +- .../Hardsuits/spatio.rsi/segment.png | Bin 513 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1039 -> 0 bytes .../Hardsuits/syndicate.rsi/meta.json | 25 +- .../Hardsuits/syndicate.rsi/segment.png | Bin 947 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1037 -> 0 bytes .../Hardsuits/syndiecommander.rsi/meta.json | 21 +- .../Hardsuits/syndiecommander.rsi/segment.png | Bin 947 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 934 -> 0 bytes .../Hardsuits/syndieelite.rsi/meta.json | 57 ++-- .../Hardsuits/syndieelite.rsi/segment.png | Bin 420 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1157 -> 0 bytes .../Hardsuits/syndiemedic.rsi/meta.json | 9 +- .../Hardsuits/syndiemedic.rsi/segment.png | Bin 576 -> 0 bytes .../Hardsuits/wizard.rsi/meta.json | 7 +- .../Hardsuits/wizard.rsi/segment.png | Bin 372 -> 0 bytes .../Suits/ancient_voidsuit.rsi/meta.json | 7 +- .../Suits/ancient_voidsuit.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1925 -> 0 bytes .../Suits/atmos_firesuit.rsi/meta.json | 57 ++-- .../Suits/atmos_firesuit.rsi/segment.png | Bin 457 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 815 -> 0 bytes .../Suits/bombsuit.rsi/meta.json | 57 ++-- .../Suits/bombsuit.rsi/segment.png | Bin 445 -> 0 bytes .../eva.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 902 -> 0 bytes .../OuterClothing/Suits/eva.rsi/meta.json | 65 ++-- .../OuterClothing/Suits/eva.rsi/segment.png | Bin 419 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 941 -> 0 bytes .../Suits/eva_emergency.rsi/meta.json | 57 ++-- .../Suits/eva_emergency.rsi/segment.png | Bin 409 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 903 -> 0 bytes .../Suits/eva_prisoner.rsi/meta.json | 65 ++-- .../Suits/eva_prisoner.rsi/segment.png | Bin 369 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 919 -> 0 bytes .../Suits/eva_syndicate.rsi/meta.json | 65 ++-- .../Suits/eva_syndicate.rsi/segment.png | Bin 434 -> 0 bytes .../fire.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 1579 -> 0 bytes .../OuterClothing/Suits/fire.rsi/meta.json | 57 ++-- .../OuterClothing/Suits/fire.rsi/segment.png | Bin 425 -> 0 bytes .../rad.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 1846 -> 0 bytes .../OuterClothing/Suits/rad.rsi/meta.json | 57 ++-- .../OuterClothing/Suits/rad.rsi/segment.png | Bin 425 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 807 -> 0 bytes .../Suits/spaceninja.rsi/meta.json | 53 ++-- .../Suits/spaceninja.rsi/segment.png | Bin 420 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1238 -> 0 bytes .../Hardsuits/Combat/advanced.rsi/meta.json | 21 +- .../Hardsuits/Combat/advanced.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1309 -> 0 bytes .../Hardsuits/Combat/corpsman.rsi/meta.json | 21 +- .../Hardsuits/Combat/corpsman.rsi/segment.png | Bin 399 -> 0 bytes .../hos.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 1328 -> 0 bytes .../Hardsuits/Combat/hos.rsi/meta.json | 21 +- .../Hardsuits/Combat/hos.rsi/segment.png | Bin 399 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1242 -> 0 bytes .../Hardsuits/Combat/medical.rsi/meta.json | 21 +- .../Hardsuits/Combat/medical.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1316 -> 0 bytes .../Hardsuits/Combat/officer.rsi/meta.json | 21 +- .../Hardsuits/Combat/officer.rsi/segment.png | Bin 399 -> 0 bytes .../riot.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 1259 -> 0 bytes .../Hardsuits/Combat/riot.rsi/meta.json | 21 +- .../Hardsuits/Combat/riot.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1244 -> 0 bytes .../Hardsuits/Combat/standard.rsi/meta.json | 21 +- .../Hardsuits/Combat/standard.rsi/segment.png | Bin 372 -> 0 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 1333 -> 0 bytes .../Hardsuits/Combat/warden.rsi/meta.json | 21 +- .../Hardsuits/Combat/warden.rsi/segment.png | Bin 399 -> 0 bytes .../Lamia/lamia_tails.rsi/body3tone1.png | Bin 625 -> 0 bytes .../Lamia/lamia_tails.rsi/body3tone2.png | Bin 699 -> 0 bytes .../Lamia/lamia_tails.rsi/body3tone3.png | Bin 648 -> 0 bytes .../Lamia/lamia_tails.rsi/bottom3tone1.png | Bin 763 -> 0 bytes .../Lamia/lamia_tails.rsi/bottom3tone2.png | Bin 869 -> 0 bytes .../Lamia/lamia_tails.rsi/bottom3tone3.png | Bin 1083 -> 0 bytes .../Lamia/lamia_tails.rsi/meta.json | 41 --- .../Lamia/lamia_tails.rsi/tip3tone1.png | Bin 611 -> 0 bytes .../Lamia/lamia_tails.rsi/tip3tone2.png | Bin 551 -> 0 bytes .../Lamia/lamia_tails.rsi/tip3tone3.png | Bin 567 -> 0 bytes .../brute_damage.rsi/Chest_Brute_120.png | Bin 358 -> 0 bytes .../brute_damage.rsi/Chest_Brute_200.png | Bin 755 -> 0 bytes .../Lamia/brute_damage.rsi/Chest_Brute_60.png | Bin 172 -> 0 bytes .../Lamia/brute_damage.rsi/Head_Brute_120.png | Bin 207 -> 0 bytes .../Lamia/brute_damage.rsi/Head_Brute_200.png | Bin 604 -> 0 bytes .../Lamia/brute_damage.rsi/Head_Brute_60.png | Bin 148 -> 0 bytes .../Lamia/brute_damage.rsi/LArm_Brute_120.png | Bin 178 -> 0 bytes .../Lamia/brute_damage.rsi/LArm_Brute_200.png | Bin 363 -> 0 bytes .../Lamia/brute_damage.rsi/LArm_Brute_60.png | Bin 148 -> 0 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_120.png | Bin 5504 -> 0 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_200.png | Bin 518 -> 0 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_60.png | Bin 161 -> 0 bytes .../Lamia/brute_damage.rsi/RArm_Brute_120.png | Bin 5587 -> 0 bytes .../Lamia/brute_damage.rsi/RArm_Brute_200.png | Bin 6173 -> 0 bytes .../Lamia/brute_damage.rsi/RArm_Brute_60.png | Bin 145 -> 0 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_120.png | Bin 5575 -> 0 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_200.png | Bin 465 -> 0 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_60.png | Bin 163 -> 0 bytes .../Effects/Lamia/brute_damage.rsi/meta.json | 26 -- .../Lamia/burn_damage.rsi/Chest_Burn_120.png | Bin 275 -> 0 bytes .../Lamia/burn_damage.rsi/Chest_Burn_200.png | Bin 732 -> 0 bytes .../Lamia/burn_damage.rsi/Chest_Burn_60.png | Bin 135 -> 0 bytes .../Lamia/burn_damage.rsi/Head_Burn_120.png | Bin 163 -> 0 bytes .../Lamia/burn_damage.rsi/Head_Burn_200.png | Bin 299 -> 0 bytes .../Lamia/burn_damage.rsi/Head_Burn_60.png | Bin 135 -> 0 bytes .../Lamia/burn_damage.rsi/LArm_Burn_120.png | Bin 229 -> 0 bytes .../Lamia/burn_damage.rsi/LArm_Burn_200.png | Bin 317 -> 0 bytes .../Lamia/burn_damage.rsi/LArm_Burn_60.png | Bin 146 -> 0 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_120.png | Bin 177 -> 0 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_200.png | Bin 337 -> 0 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_60.png | Bin 127 -> 0 bytes .../Lamia/burn_damage.rsi/RArm_Burn_120.png | Bin 237 -> 0 bytes .../Lamia/burn_damage.rsi/RArm_Burn_200.png | Bin 325 -> 0 bytes .../Lamia/burn_damage.rsi/RArm_Burn_60.png | Bin 167 -> 0 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_120.png | Bin 180 -> 0 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_200.png | Bin 241 -> 0 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_60.png | Bin 137 -> 0 bytes .../Effects/Lamia/burn_damage.rsi/meta.json | 26 -- .../Mobs/Species/lamia.rsi/bottom.png | Bin 1227 -> 0 bytes .../Mobs/Species/lamia.rsi/meta.json | 36 --- .../Mobs/Species/lamia.rsi/placeholder.png | Bin 815 -> 0 bytes .../Mobs/Species/lamia.rsi/tip.png | Bin 674 -> 0 bytes .../Mobs/Species/lamia.rsi/torso_f.png | Bin 8155 -> 0 bytes .../Mobs/Species/lamia.rsi/torso_m.png | Bin 8155 -> 0 bytes .../Mobs/Species/lamia.rsi/underscales.png | Bin 621 -> 0 bytes .../Mobs/Species/lamia.rsi/verbiconfangs.png | Bin 710 -> 0 bytes 224 files changed, 549 insertions(+), 2166 deletions(-) delete mode 100644 Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs delete mode 100644 Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs delete mode 100644 Content.Server/DeltaV/Lamiae/LamiaSystem.cs delete mode 100644 Content.Shared/DeltaV/Lamiae/LamiaComponent.cs delete mode 100644 Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs delete mode 100644 Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs delete mode 100644 Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs delete mode 100644 Content.Shared/Teleportation/Components/PortalExemptComponent.cs delete mode 100644 Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs delete mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml delete mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml delete mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml delete mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml delete mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml delete mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml delete mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml delete mode 100644 Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml delete mode 100644 Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml delete mode 100644 Resources/Prototypes/DeltaV/Species/lamia.yml delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/brigmedic.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/mime.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/ancient_voidsuit.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/segment.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/spaceninja.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/spaceninja.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/corpsman.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/corpsman.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/officer.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/officer.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/standard.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/standard.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/equipped-OUTERCLOTHING-lamia.png delete mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone2.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone1.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone3.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/meta.json delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone1.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png delete mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_60.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/meta.json delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/bottom.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/tip.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png delete mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/verbiconfangs.png diff --git a/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs b/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs deleted file mode 100644 index 8b9f3b4c47..0000000000 --- a/Content.Client/DeltaV/Lamiae/ClientLamiaVisuals.cs +++ /dev/null @@ -1,42 +0,0 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - -using Robust.Client.GameObjects; -using System.Numerics; -using Content.Shared.DeltaV.Lamiae; - -namespace Content.Client.DeltaV.Lamiae; - -public sealed class ClientLamiaVisualSystem : VisualizerSystem -{ - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnAppearanceChange); - } - private void OnAppearanceChange(EntityUid uid, LamiaSegmentComponent component, ref AppearanceChangeEvent args) - { - if (args.Sprite == null) return; - - if (AppearanceSystem.TryGetData(uid, ScaleVisuals.Scale, out var scale) && TryComp(uid, out var sprite)) - { - sprite.Scale = (new Vector2(scale, scale)); - } - - if (AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.Armor, out var worn) - && AppearanceSystem.TryGetData(uid, LamiaSegmentVisualLayers.ArmorRsi, out var path)) - { - var valid = !string.IsNullOrWhiteSpace(path); - if (valid) - { - args.Sprite.LayerSetRSI(LamiaSegmentVisualLayers.Armor, path); - } - args.Sprite.LayerSetVisible(LamiaSegmentVisualLayers.Armor, worn); - } - } -} diff --git a/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs b/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs deleted file mode 100644 index d2d519e2c8..0000000000 --- a/Content.Client/DeltaV/Lamiae/LamiaSegmentVisualsComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - -namespace Content.Client.DeltaV.Lamiae; - -[RegisterComponent] -public sealed partial class LamiaSegmentVisualsComponent : Component -{} diff --git a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs b/Content.Server/DeltaV/Lamiae/LamiaSystem.cs deleted file mode 100644 index 5a413e7bb2..0000000000 --- a/Content.Server/DeltaV/Lamiae/LamiaSystem.cs +++ /dev/null @@ -1,292 +0,0 @@ -using Robust.Shared.Physics; -using Content.Shared.Damage; -using Content.Shared.Explosion; -using Content.Shared.Clothing.Components; -using Content.Shared.Humanoid; -using Content.Shared.Humanoid.Markings; -using Content.Server.Humanoid; -using Content.Shared.Inventory.Events; -using Content.Shared.Tag; -using Content.Shared.Teleportation.Components; -using Content.Shared.Storage.Components; -using Robust.Shared.Containers; -using Robust.Shared.Map; -using Robust.Shared.Physics.Systems; -using Robust.Shared.Physics.Components; -using System.Numerics; -using Content.Shared.DeltaV.Lamiae; -using Robust.Shared.Physics.Events; -using Content.Shared.Projectiles; -using Content.Shared.Weapons.Ranged.Events; -using System.Linq; - -namespace Content.Server.DeltaV.Lamiae -{ - public sealed partial class LamiaSystem : EntitySystem - { - [Dependency] private readonly SharedJointSystem _jointSystem = default!; - [Dependency] private readonly HumanoidAppearanceSystem _humanoid = default!; - [Dependency] private readonly DamageableSystem _damageableSystem = default!; - [Dependency] private readonly TagSystem _tagSystem = default!; - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - - [ValidatePrototypeId] - private const string LamiaHardsuitTag = "AllowLamiaHardsuit"; - - Queue<(LamiaSegmentComponent segment, EntityUid lamia)> _segments = new(); - public override void Update(float frameTime) - { - base.Update(frameTime); - foreach (var segment in _segments) - { - var segmentUid = segment.segment.Owner; - var attachedUid = segment.segment.AttachedToUid; - if (!Exists(segmentUid) || !Exists(attachedUid) - || MetaData(segmentUid).EntityLifeStage > EntityLifeStage.MapInitialized - || MetaData(attachedUid).EntityLifeStage > EntityLifeStage.MapInitialized - || Transform(segmentUid).MapID == MapId.Nullspace - || Transform(attachedUid).MapID == MapId.Nullspace) - continue; - - EnsureComp(segmentUid); - EnsureComp(attachedUid); // Hello I hate tests - - var ev = new SegmentSpawnedEvent(segment.lamia); - RaiseLocalEvent(segmentUid, ev, false); - - if (segment.segment.SegmentNumber == 1) - { - Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates; - var revoluteJoint = _jointSystem.CreateWeldJoint(attachedUid, segmentUid, id: "Segment" + segment.segment.SegmentNumber + segment.segment.Lamia); - revoluteJoint.CollideConnected = false; - } - if (segment.segment.SegmentNumber <= segment.segment.MaxSegments) - Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); - else - Transform(segmentUid).Coordinates = Transform(attachedUid).Coordinates.Offset(new Vector2(0, segment.segment.OffsetSwitching)); - - var joint = _jointSystem.CreateDistanceJoint(attachedUid, segmentUid, id: ("Segment" + segment.segment.SegmentNumber + segment.segment.Lamia)); - joint.CollideConnected = false; - joint.Stiffness = 0.2f; - } - _segments.Clear(); - } - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnInit); - SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnJointRemoved); - SubscribeLocalEvent(OnRemovedFromContainer); - SubscribeLocalEvent(OnShootHitscan); - SubscribeLocalEvent(OnSegmentSpawned); - SubscribeLocalEvent(HandleDamageTransfer); - SubscribeLocalEvent(HandleSegmentDamage); - SubscribeLocalEvent(OnLamiaStorageInsertAttempt); - SubscribeLocalEvent(OnSegmentStorageInsertAttempt); - SubscribeLocalEvent(OnDidEquipEvent); - SubscribeLocalEvent(OnDidUnequipEvent); - SubscribeLocalEvent(OnSnekBoom); - SubscribeLocalEvent(PreventShootSelf); - } - - /// - /// Handles transferring marking selections to the tail segments. Every tail marking must be repeated 2 times in order for this script to work. - /// - /// - /// - /// - // TODO: Please for the love of god don't make me write a test to validate that every marking also has its matching segment states. - // Future contributors will just find out when their game crashes because they didn't make a marking-segment. - private void OnSegmentSpawned(EntityUid uid, LamiaSegmentComponent component, SegmentSpawnedEvent args) - { - component.Lamia = args.Lamia; - - if (!TryComp(uid, out var species)) return; - if (!TryComp(args.Lamia, out var humanoid)) return; - if (!TryComp(uid, out var appearance)) return; - - _appearance.SetData(uid, ScaleVisuals.Scale, component.ScaleFactor, appearance); - - if (humanoid.MarkingSet.TryGetCategory(MarkingCategories.Tail, out var tailMarkings)) - { - foreach (var markings in tailMarkings) - { - var segmentId = species.Species; - var markingId = markings.MarkingId; - string segmentmarking = $"{markingId}-{segmentId}"; - _humanoid.AddMarking(uid, segmentmarking, markings.MarkingColors); - } - } - } - - private void OnInit(EntityUid uid, LamiaComponent component, ComponentInit args) - { - Math.Clamp(component.NumberOfSegments, 2, 18); - Math.Clamp(component.TaperOffset, 1, component.NumberOfSegments - 1); - SpawnSegments(uid, component); - } - - private void OnShutdown(EntityUid uid, LamiaComponent component, ComponentShutdown args) - { - foreach (var segment in component.Segments) - { - QueueDel(segment); - } - - component.Segments.Clear(); - } - - private void OnJointRemoved(EntityUid uid, LamiaComponent component, JointRemovedEvent args) - { - if (!component.Segments.Contains(args.OtherEntity)) - return; - - foreach (var segment in component.Segments) - QueueDel(segment); - - component.Segments.Clear(); - } - - private void OnRemovedFromContainer(EntityUid uid, LamiaComponent component, EntGotRemovedFromContainerMessage args) - { - if (component.Segments.Count != 0) - { - foreach (var segment in component.Segments) - QueueDel(segment); - component.Segments.Clear(); - } - - SpawnSegments(uid, component); - } - - private void HandleSegmentDamage(EntityUid uid, LamiaSegmentComponent component, DamageModifyEvent args) - { - if (args.Origin == component.Lamia) - args.Damage *= 0; - args.Damage = args.Damage / component.DamageModifyFactor; - } - private void HandleDamageTransfer(EntityUid uid, LamiaSegmentComponent component, DamageChangedEvent args) - { - if (args.DamageDelta == null) return; - _damageableSystem.TryChangeDamage(component.Lamia, args.DamageDelta); - } - - public void SpawnSegments(EntityUid uid, LamiaComponent component) - { - int i = 1; - var addTo = uid; - while (i <= component.NumberOfSegments + 1) - { - var segment = AddSegment(addTo, uid, component, i); - addTo = segment; - i++; - } - } - - private EntityUid AddSegment(EntityUid segmentuid, EntityUid parentuid, LamiaComponent lamiaComponent, int segmentNumber) - { - LamiaSegmentComponent segmentComponent = new(); - segmentComponent.Lamia = parentuid; - segmentComponent.AttachedToUid = segmentuid; - segmentComponent.DamageModifierConstant = lamiaComponent.NumberOfSegments * lamiaComponent.DamageModifierOffset; - float damageModifyCoefficient = segmentComponent.DamageModifierConstant / lamiaComponent.NumberOfSegments; - segmentComponent.DamageModifyFactor = segmentComponent.DamageModifierConstant * damageModifyCoefficient; - segmentComponent.ExplosiveModifyFactor = 1 / segmentComponent.DamageModifyFactor / (lamiaComponent.NumberOfSegments * lamiaComponent.ExplosiveModifierOffset); - - float taperConstant = lamiaComponent.NumberOfSegments - lamiaComponent.TaperOffset; - EntityUid segment; - if (segmentNumber == 1) - segment = EntityManager.SpawnEntity(lamiaComponent.InitialSegmentId, Transform(segmentuid).Coordinates); - else - segment = EntityManager.SpawnEntity(lamiaComponent.SegmentId, Transform(segmentuid).Coordinates); - if (segmentNumber >= taperConstant && lamiaComponent.UseTaperSystem == true) - { - segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset * MathF.Pow(lamiaComponent.OffsetConstant, segmentNumber - taperConstant); - segmentComponent.ScaleFactor = lamiaComponent.StaticScale * MathF.Pow(1f / lamiaComponent.OffsetConstant, segmentNumber - taperConstant); - } - else - { - segmentComponent.OffsetSwitching = lamiaComponent.StaticOffset; - segmentComponent.ScaleFactor = lamiaComponent.StaticScale; - } - if (segmentNumber % 2 != 0) - { - segmentComponent.OffsetSwitching *= -1; - } - - segmentComponent.Owner = segment; - segmentComponent.SegmentNumber = segmentNumber; - EntityManager.AddComponent(segment, segmentComponent, true); - EnsureComp(segment); - _segments.Enqueue((segmentComponent, parentuid)); - lamiaComponent.Segments.Add(segment); - return segment; - } - - private void OnLamiaStorageInsertAttempt(EntityUid uid, LamiaComponent comp, ref InsertIntoEntityStorageAttemptEvent args) - { - args.Cancelled = true; - } - - private void OnSegmentStorageInsertAttempt(EntityUid uid, LamiaSegmentComponent comp, ref InsertIntoEntityStorageAttemptEvent args) - { - args.Cancelled = true; - } - - private void OnDidEquipEvent(EntityUid equipee, LamiaComponent component, DidEquipEvent args) - { - if (!TryComp(args.Equipment, out var clothing)) return; - if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, LamiaHardsuitTag)) - { - foreach (var uid in component.Segments) - { - if (!TryComp(uid, out var appearance)) return; - _appearance.SetData(uid, LamiaSegmentVisualLayers.Armor, true, appearance); - if (clothing.RsiPath == null) return; - _appearance.SetData(uid, LamiaSegmentVisualLayers.ArmorRsi, clothing.RsiPath, appearance); - } - } - } - - private void OnSnekBoom(EntityUid uid, LamiaSegmentComponent component, ref GetExplosionResistanceEvent args) - { - args.DamageCoefficient = component.ExplosiveModifyFactor; - } - - private void OnDidUnequipEvent(EntityUid equipee, LamiaComponent component, DidUnequipEvent args) - { - if (args.Slot == "outerClothing" && _tagSystem.HasTag(args.Equipment, LamiaHardsuitTag)) - { - foreach (var uid in component.Segments) - { - if (!TryComp(uid, out var appearance)) return; - _appearance.SetData(uid, LamiaSegmentVisualLayers.Armor, false, appearance); - } - } - } - - private void PreventShootSelf(EntityUid uid, LamiaSegmentComponent component, ref PreventCollideEvent args) - { - if (!TryComp(args.OtherEntity, out var projectileComponent)) return; - - if (projectileComponent.Shooter == component.Lamia) - { - args.Cancelled = true; - } - } - - private void OnShootHitscan(EntityUid uid, LamiaComponent component, ref HitScanAfterRayCastEvent args) - { - if (args.RayCastResults == null) return; - - var entityList = new List(); - foreach (var entity in args.RayCastResults) - { - if (!component.Segments.Contains(entity.HitEntity)) - entityList.Add(entity); - } - args.RayCastResults = entityList; - } - } -} diff --git a/Content.Server/Teleportation/PortalSystem.cs b/Content.Server/Teleportation/PortalSystem.cs index 27fec27435..76900a7e19 100644 --- a/Content.Server/Teleportation/PortalSystem.cs +++ b/Content.Server/Teleportation/PortalSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.Administration.Logs; +using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.Ghost; using Content.Shared.Mind.Components; diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 69dd9626d5..fbc46f5917 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -203,13 +203,7 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? if (!rayCastResults.Any()) break; - var raycastEvent = new HitScanAfterRayCastEvent(rayCastResults); - RaiseLocalEvent(lastUser, ref raycastEvent); - - if (raycastEvent.RayCastResults == null) - break; - - var result = raycastEvent.RayCastResults[0]; + var result = rayCastResults[0]; var hit = result.HitEntity; lastHit = hit; diff --git a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs deleted file mode 100644 index bc70724404..0000000000 --- a/Content.Shared/DeltaV/Lamiae/LamiaComponent.cs +++ /dev/null @@ -1,84 +0,0 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - -namespace Content.Shared.DeltaV.Lamiae -{ - /// - /// Controls initialization of any Multi-segmented entity - /// - [RegisterComponent] - public sealed partial class LamiaComponent : Component - { - /// - /// A list of each UID attached to the Lamia, in order of spawn - /// - [DataField("segments")] - public List Segments = new(); - - /// - /// A clamped variable that represents the number of segments to be spawned - /// - [DataField("numberOfSegments")] - public int NumberOfSegments = 18; - - /// - /// If UseTaperSystem is true, this constant represents the rate at which a segmented entity will taper towards the tip. Tapering is on a logarithmic scale, and will asymptotically approach 0. - /// - [DataField("offsetConstant")] - public float OffsetConstant = 1.03f; - - /// - /// Represents the prototype used to parent all segments - /// - [DataField("initialSegmentId")] - public string InitialSegmentId = "LamiaInitialSegment"; - - /// - /// Represents the segment prototype to be spawned - /// - [DataField("SegmentId")] - public string SegmentId = "LamiaSegment"; - - /// - /// Toggles the tapering system on and off. When false, segmented entities will have a constant width. - /// - [DataField("useTaperSystem")] - public bool UseTaperSystem = true; - - /// - /// The standard distance between the centerpoint of each segment. - /// - [DataField("staticOffset")] - public float StaticOffset = 0.15f; - - /// - /// The standard sprite scale of each segment. - /// - [DataField("staticScale")] - public float StaticScale = 1f; - - /// - /// Used to more finely tune how much damage should be transfered from tail to body. - /// - [DataField("damageModifierOffset")] - public float DamageModifierOffset = 0.4f; - - /// - /// A clamped variable that represents how far from the tip should tapering begin. - /// - [DataField("taperOffset")] - public int TaperOffset = 18; - - /// - /// Coefficient used to finely tune how much explosion damage should be transfered to the body. This is calculated multiplicatively with the derived damage modifier set. - /// - [DataField("explosiveModifierOffset")] - public float ExplosiveModifierOffset = 0.1f; - - [DataField("bulletPassover")] - public bool BulletPassover = true; - } -} diff --git a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs b/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs deleted file mode 100644 index 37d21ae6f6..0000000000 --- a/Content.Shared/DeltaV/Lamiae/LamiaSegmentComponent.cs +++ /dev/null @@ -1,35 +0,0 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - -using Robust.Shared.GameStates; - -namespace Content.Shared.DeltaV.Lamiae -{ - /// - /// Lamia segment - /// - [RegisterComponent] - [NetworkedComponent] - public sealed partial class LamiaSegmentComponent : Component - { - [DataField("AttachedToUid")] - public EntityUid AttachedToUid = default!; - public float DamageModifyFactor = default!; - public float OffsetSwitching = default!; - public float ScaleFactor = default!; - [DataField("DamageModifierCoefficient")] - public float DamageModifierCoefficient = default!; - public float ExplosiveModifyFactor = default!; - public float OffsetConstant = default!; - [DataField("Lamia")] - public EntityUid Lamia = default!; - public int MaxSegments = default!; - public int SegmentNumber = default!; - public float DamageModifierConstant = default!; - [DataField("segmentId")] - public string? segmentId; - } -} diff --git a/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs b/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs deleted file mode 100644 index 2d73dd746e..0000000000 --- a/Content.Shared/DeltaV/Lamiae/LamiaSegmentVisuals.cs +++ /dev/null @@ -1,18 +0,0 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - -using Robust.Shared.Serialization; - -namespace Content.Shared.DeltaV.Lamiae -{ - [Serializable, NetSerializable] - public enum LamiaSegmentVisualLayers - { - Tail, - Armor, - ArmorRsi, - } -} diff --git a/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs b/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs deleted file mode 100644 index de66e5d530..0000000000 --- a/Content.Shared/DeltaV/Lamiae/SharedLamiaeSystem.cs +++ /dev/null @@ -1,17 +0,0 @@ -/* -* Delta-V - This file is licensed under AGPLv3 -* Copyright (c) 2024 Delta-V Contributors -* See AGPLv3.txt for details. -*/ - -namespace Content.Shared.DeltaV.Lamiae; - -public sealed class SegmentSpawnedEvent : EntityEventArgs -{ - public EntityUid Lamia = default!; - - public SegmentSpawnedEvent(EntityUid lamia) - { - Lamia = lamia; - } -} diff --git a/Content.Shared/Roles/StartingGearPrototype.cs b/Content.Shared/Roles/StartingGearPrototype.cs index 32b72aaeed..0ff65617bc 100644 --- a/Content.Shared/Roles/StartingGearPrototype.cs +++ b/Content.Shared/Roles/StartingGearPrototype.cs @@ -43,7 +43,6 @@ public string GetGear(string slot, HumanoidCharacterProfile? profile) { case "jumpsuit" when profile.Clothing == ClothingPreference.Jumpskirt && !string.IsNullOrEmpty(InnerClothingSkirt): case "jumpsuit" when profile.Species == "Harpy" && !string.IsNullOrEmpty(InnerClothingSkirt): - case "jumpsuit" when profile.Species == "Lamia" && !string.IsNullOrEmpty(InnerClothingSkirt): return InnerClothingSkirt; case "back" when profile.Backpack == BackpackPreference.Satchel && !string.IsNullOrEmpty(Satchel): return Satchel; diff --git a/Content.Shared/Teleportation/Components/PortalExemptComponent.cs b/Content.Shared/Teleportation/Components/PortalExemptComponent.cs deleted file mode 100644 index 28043808e0..0000000000 --- a/Content.Shared/Teleportation/Components/PortalExemptComponent.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Teleportation.Components; - -[RegisterComponent, NetworkedComponent] -public sealed partial class PortalExemptComponent : Component -{ -} diff --git a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs index 7e1124cef7..8d67aec518 100644 --- a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs +++ b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Content.Shared.Ghost; using Content.Shared.Movement.Pulling.Components; using Content.Shared.Movement.Pulling.Systems; @@ -83,9 +83,6 @@ private bool ShouldCollide(string ourId, string otherId, Fixture our, Fixture ot private void OnCollide(EntityUid uid, PortalComponent component, ref StartCollideEvent args) { - if (HasComp(args.OtherEntity)) - return; - if (!ShouldCollide(args.OurFixtureId, args.OtherFixtureId, args.OurFixture, args.OtherFixture)) return; diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index 1c02aefd89..e59b4a13fe 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -566,7 +566,7 @@ private bool DoHeavyAttack(EntityUid user, HeavyAttackEvent ev, EntityUid meleeU return true; } - + // Naughty input if (entities.Count > MaxTargets) { diff --git a/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs b/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs deleted file mode 100644 index 99bfd1eabc..0000000000 --- a/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Robust.Shared.Physics; - -namespace Content.Shared.Weapons.Ranged.Events; - -/// -/// Raised after an entity fires a hitscan weapon, but before the list is truncated to the first target. Necessary for Entities that need to prevent friendly fire -/// -[ByRefEvent] -public struct HitScanAfterRayCastEvent -{ - public List? RayCastResults; - - public HitScanAfterRayCastEvent(List? rayCastResults) - { - RayCastResults = rayCastResults; - } -} diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml deleted file mode 100644 index eea73f1e68..0000000000 --- a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml +++ /dev/null @@ -1,41 +0,0 @@ -- type: dataset - id: names_cyno_female - values: - - Abigaia - - Aggeliki - - Alexandra - - Anna - - Anastasia - - Baslikike - - Calliope - - Demetra - - Despoina - - Eirene - - Eleni - - Ephrath - - Esther - - Eunike - - Evangelia - - Georgia - - Ioanna - - Ioudith - - Kandake - - Konstantina - - Kyriake - - Leia - - Lois - - Lydia - - Maria - - Mariam - - Martha - - Orpha - - Paraskeve - - Phoebe - - Priska - - Priskilla - - Rhachel - - Rhode - - Rhouth - - Salome - - Sophia - - Zoe diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml deleted file mode 100644 index 3ed9f62f11..0000000000 --- a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml +++ /dev/null @@ -1,40 +0,0 @@ -- type: dataset - id: names_cyno_last - values: - - Alexiou - - Antoniou - - Antonopoulos - - Athanasiou - - Christodoulou - - Dimitriou - - Dimopoulos - - Georgiadis - - Georgiou - - Giannopoulos - - Ioannidis - - Ioannou - - Karagianni - - Karagiannis - - Konstantinidis - - Konstantinou - - Lamprou - - Makris - - Michailidis - - Nikolaidis - - Nikolaou - - Panagiotopoulos - - Papadakis - - Papadimitriou - - Papadopoulos - - Papadopoulou - - Papageorgiou - - Papaioannou - - Papakonstantinou - - Papanikolaou - - Papathanasiou - - Pappas - - Oikonomou - - Theodorou - - Triantafyllou - - Vasileiou - - Vlachos diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml deleted file mode 100644 index ca72b07fd9..0000000000 --- a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml +++ /dev/null @@ -1,22 +0,0 @@ -- type: dataset - id: names_cyno_male - values: - - Amos - - Antonis - - Alexandros - - Athanasios - - Charalampos - - Christos - - Dimitris - - Elias - - Emmanuel - - Evangelos - - Ioannis - - Konstantinos - - Loukas - - Michalis - - Pavlos - - Petros - - Spiros - - Theodoros - - Vasilis diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml deleted file mode 100644 index 65af873fe6..0000000000 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Delta-V - This file is licensed under AGPLv3 -# Copyright (c) 2024 Delta-V Contributors -# See AGPLv3.txt for details. - -- type: marking - id: LamiaBottom - bodyPart: Tail - markingCategory: Tail - speciesRestriction: [Lamia] - sprites: - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: bottom3tone1 - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: bottom3tone2 - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: bottom3tone3 diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml deleted file mode 100644 index 432b2ee841..0000000000 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Delta-V - This file is licensed under AGPLv3 -# Copyright (c) 2024 Delta-V Contributors -# See AGPLv3.txt for details. - -- type: marking - id: LamiaBottom-LamiaSegment - bodyPart: Tail - markingCategory: Tail - speciesRestriction: [LamiaSegment] - sprites: - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: body3tone1 - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: body3tone2 - - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi - state: body3tone3 diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml deleted file mode 100644 index 1f5397e5dc..0000000000 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml +++ /dev/null @@ -1,39 +0,0 @@ -# Delta-V - This file is licensed under AGPLv3 -# Copyright (c) 2024 Delta-V Contributors -# See AGPLv3.txt for details. - -- type: entity - save: false - name: Urist McNoodle - parent: MobLamiaBase - id: MobLamia - description: A miserable pile of scales. - components: - - type: CombatMode - - type: InteractionPopup - successChance: 1 - interactSuccessString: hugging-success-generic - interactSuccessSound: /Audio/Effects/thudswoosh.ogg - messagePerceivedByOthers: hugging-success-generic-others - - type: Mind - - type: Input - context: "human" - - type: MobMover - - type: InputMover - - type: Respirator - damage: - types: - Asphyxiation: 1.5 - damageRecovery: - types: - Asphyxiation: -1.5 - - type: Alerts - - type: Actions - - type: Eye - - type: CameraRecoil - - type: Examiner - - type: CanHostGuardian - - type: NpcFactionMember - factions: - - NanoTrasen - - type: PotentialPsionic diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml deleted file mode 100644 index d7cb856e29..0000000000 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/lamia.yml +++ /dev/null @@ -1,284 +0,0 @@ -# Delta-V - This file is licensed under AGPLv3 -# Copyright (c) 2024 Delta-V Contributors -# See AGPLv3.txt for details. - -- type: entity - save: false - name: Lamia - parent: BaseMobHuman #parenting human so I can remove most of these components - id: MobLamiaBase - abstract: true - description: A miserable pile of scales. #TODO: Add a better description - components: - - type: Flashable - - type: Polymorphable - - type: Identity - - type: Hands - - type: HumanoidAppearance - species: Lamia - - type: MovementSpeedModifier - baseWalkSpeed : 4 - baseSprintSpeed : 6 - - type: MovedByPressure - - type: Hunger - - type: Thirst - - type: IdExaminable - - type: Inventory - speciesId: lamia - templateId: lamia - - type: HealthExaminable - examinableTypes: - - Blunt - - Slash - - Piercing - - Heat - - Shock - - type: Stamina - - type: Blindable - - type: Clickable - - type: InteractionOutline - - type: InteractionPopup - successChance: 0.5 - interactSuccessString: petting-success-lamia - interactFailureString: petting-failure-lamia - interactSuccessSpawn: EffectHearts - interactSuccessSound: - path: /Audio/Animals/lizard_happy.ogg #placeholder sound - interactFailureSound: - path: /Audio/Animals/snake_hiss.ogg #placeholder sound - - type: Icon - sprite: Mobs/Species/Human/parts.rsi - state: full - - type: Physics - bodyType: KinematicController - - type: Tag - tags: - - CanPilot - - DoorBumpOpener - - ShoesRequiredStepTriggerImmune - - type: Sprite - netsync: false - noRot: true - drawdepth: Mobs - scale: 1, 1 - layers: #TODO: manually fix these layers - - map: [ "enum.HumanoidVisualLayers.Chest" ] - color: "#e8b59b" - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: torso_m - - map: [ "enum.HumanoidVisualLayers.Head" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: head_m - - map: [ "enum.HumanoidVisualLayers.Eyes" ] - color: "#008800" - sprite: Mobs/Customization/eyes.rsi - state: eyes - - map: [ "enum.HumanoidVisualLayers.RArm" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: r_arm - - map: [ "enum.HumanoidVisualLayers.LArm" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: l_arm - - map: [ "enum.HumanoidVisualLayers.Tail" ] - - map: [ "jumpsuit" ] - - map: [ "enum.HumanoidVisualLayers.LHand" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: l_hand - - map: [ "enum.HumanoidVisualLayers.RHand" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: r_hand - - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] - color: "#ffffff" - sprite: Objects/Misc/handcuffs.rsi - state: body-overlay-2 - visible: false - - map: [ "id" ] - - map: [ "gloves" ] - - map: [ "ears" ] - - map: [ "outerClothing" ] - - map: [ "eyes" ] - - map: [ "belt" ] - - map: [ "belt2" ] - - map: [ "neck" ] - - map: [ "back" ] - - map: [ "enum.HumanoidVisualLayers.Hair" ] - state: bald - sprite: Mobs/Customization/human_hair.rsi - - map: [ "mask" ] - - map: [ "head" ] - - map: [ "pocket1" ] - - map: [ "pocket2" ] - - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - - type: Damageable - damageContainer: Biological - damageModifierSet: Scale #TODO: make a new damage modifier set - - type: NoSlip - - type: Internals - - type: MobState - - type: DamageVisuals - thresholds: [ 60, 120, 200 ] #these values aren't final, adjust accordingly with thresholds above' - targetLayers: - - "enum.HumanoidVisualLayers.Chest" - - "enum.HumanoidVisualLayers.Head" - - "enum.HumanoidVisualLayers.LArm" - - "enum.HumanoidVisualLayers.RArm" - damageOverlayGroups: - Brute: - sprite: Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi - color: "#FF0000" - Burn: - sprite: Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi - - type: MobThresholds - thresholds: - 0: Alive - 200: Critical #these values aren't final' - 300: Dead #these values aren't final' - - type: SlowOnDamage - speedModifierThresholds: #these values aren't final, adjust accordingly with thresholds above' - 60: 0.9 - 80: 0.8 - 100: 0.7 - 120: 0.6 - 140: 0.5 - - type: FireVisuals - sprite: Mobs/Effects/onfire.rsi - normalState: Generic_mob_burning - alternateState: Standing - fireStackAlternateState: 3 - - type: CombatMode - - type: Climbing - - type: Cuffable - - type: AnimationPlayer - - type: MeleeWeapon #This damage is most likely final - soundHit: - path: /Audio/Items/hypospray.ogg #this sound is not final, but is a pretty good placeholder so we might keep it - animation: WeaponArcBite - damage: - types: - Piercing: 1 - Poison: 2 - Asphyxiation: 2 - - type: SolutionContainerManager - solutions: - melee: - maxVol: 30 - - type: SolutionRegeneration - solution: melee - generated: - reagents: - - ReagentId: SpaceDrugs - Quantity: 1 - - type: MeleeChemicalInjector - solution: melee - transferAmount: 3 #amount to inject is not final - - type: Pullable - - type: DoAfter - - type: CreamPied - - type: Stripping - - type: Strippable - - type: Puller - - type: Fixtures - fixtures: # TODO: This needs a second fixture just for mob collisions. - fix1: - shape: - !type:PhysShapeCircle - radius: 0.35 - density: 1000 #Density is not final, adjust accordingly if the number of tail segments is reduced or increased - restitution: 0.0 - mask: - - MobMask - layer: - - MobLayer - - type: Lamia - numberOfSegments: 18 - - type: Speech - speechSounds: Alto - - type: Vocal - - type: Emoting - - type: Grammar - attributes: - proper: true - - type: StandingState - - type: Fingerprint - - type: Perishable - - type: Bloodstream - bloodMaxVolume: 60000 - bloodlossDamage: - types: - Bloodloss: 1 - bloodlossHealDamage: - types: - Bloodloss: -1 - -- type: entity - save: false - name: Lamia Dummy - parent: MobHumanDummy - id: MobLamiaDummy - description: A dummy lamia meant to be used in character setup. - components: - - type: Sprite - netsync: false - noRot: true - drawdepth: Mobs - scale: 1, 1 - layers: - - map: [ "enum.HumanoidVisualLayers.Chest" ] - color: "#e8b59b" - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - state: torso_m - - map: [ "enum.HumanoidVisualLayers.Head" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: head_m - - map: [ "enum.HumanoidVisualLayers.Eyes" ] - color: "#008800" - sprite: Mobs/Customization/eyes.rsi - state: eyes - - map: [ "enum.HumanoidVisualLayers.RArm" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: r_arm - - map: [ "enum.HumanoidVisualLayers.LArm" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: l_arm - - map: [ "jumpsuit" ] - shader: StencilDraw - - map: [ "enum.HumanoidVisualLayers.LHand" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: l_hand - - map: [ "enum.HumanoidVisualLayers.RHand" ] - color: "#e8b59b" - sprite: Mobs/Species/Human/parts.rsi - state: r_hand - - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] - color: "#ffffff" - sprite: Objects/Misc/handcuffs.rsi - state: body-overlay-2 - visible: false - - map: [ "id" ] - - map: [ "gloves" ] - - map: [ "ears" ] - - map: [ "outerClothing" ] - - map: [ "eyes" ] - - map: [ "belt" ] - - map: [ "neck" ] - - map: [ "back" ] - - map: [ "enum.HumanoidVisualLayers.Hair" ] - state: bald - sprite: Mobs/Customization/human_hair.rsi - - map: [ "mask" ] - - map: [ "head" ] - - map: [ "pocket1" ] - - map: [ "pocket2" ] - - map: [ "enum.HumanoidVisualLayers.HeadTop" ] - - map: [ "enum.HumanoidVisualLayers.Tail" ] - - type: Inventory - templateId: lamia diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml deleted file mode 100644 index a76973e0f0..0000000000 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Species/lamia.yml +++ /dev/null @@ -1,59 +0,0 @@ -# Delta-V - This file is licensed under AGPLv3 -# Copyright (c) 2024 Delta-V Contributors -# See AGPLv3.txt for details. - -- type: entity - id: LamiaInitialSegment - save: false - noSpawn: true - components: - - type: Damageable - - type: StandingState - - type: Appearance - - type: Clickable - - type: InteractionOutline - - type: PsionicInsulation #Not a brain, target the lamia instead - - type: Physics - bodyType: KinematicController - - type: Fixtures - fixtures: # TODO: This needs a second fixture just for mob collisions. - fix1: - shape: - !type:PhysShapeCircle - radius: 0.25 - density: 80 - restitution: 0.0 - mask: - - MobMask - layer: - - MobLayer - - type: Transform - anchored: false - - type: LamiaSegmentVisuals - - type: Tag - tags: - - HideContextMenu - -- type: entity - id: LamiaSegment - save: false - parent: LamiaInitialSegment - name: lamia segment - noSpawn: true - description: A tail segment, hopefully attached to a lamia. - components: - - type: Sprite - sprite: Nyanotrasen/Mobs/Species/lamia.rsi - drawdepth: SmallMobs - layers: - - map: [ "enum.HumanoidVisualLayers.Tail" ] - - map: [ "enum.LamiaSegmentVisualLayers.Armor" ] - sprite: Clothing/OuterClothing/Hardsuits/basic.rsi - state: segment - visible: false - - type: Clickable - - type: Tag - tags: - - DoorBumpOpener - - type: HumanoidAppearance - species: LamiaSegment diff --git a/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml b/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml deleted file mode 100644 index 546d0746b7..0000000000 --- a/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml +++ /dev/null @@ -1,112 +0,0 @@ -- type: inventoryTemplate - id: lamia - slots: - - name: jumpsuit - slotTexture: uniform - slotFlags: INNERCLOTHING - stripTime: 6 - uiWindowPos: 0,2 - strippingWindowPos: 0,2 - displayName: Jumpsuit - whitelist: - tags: - - Skirt - - name: outerClothing - slotTexture: suit - slotFlags: OUTERCLOTHING - slotGroup: MainHotbar - stripTime: 6 - uiWindowPos: 1,2 - strippingWindowPos: 1,2 - displayName: Suit - - name: gloves - slotTexture: gloves - slotFlags: GLOVES - uiWindowPos: 2,2 - strippingWindowPos: 2,2 - displayName: Gloves - - name: neck - slotTexture: neck - slotFlags: NECK - uiWindowPos: 0,1 - strippingWindowPos: 0,1 - displayName: Neck - - name: mask - slotTexture: mask - slotFlags: MASK - uiWindowPos: 1,1 - strippingWindowPos: 1,1 - displayName: Mask - - name: eyes - slotTexture: glasses - slotFlags: EYES - stripTime: 3 - uiWindowPos: 0,0 - strippingWindowPos: 0,0 - displayName: Eyes - - name: ears - slotTexture: ears - slotFlags: EARS - stripTime: 3 - uiWindowPos: 2,0 - strippingWindowPos: 2,0 - displayName: Ears - - name: head - slotTexture: head - slotFlags: HEAD - uiWindowPos: 1,0 - strippingWindowPos: 1,0 - displayName: Head - - name: pocket1 - slotTexture: pocket - slotFlags: POCKET - slotGroup: MainHotbar - stripTime: 3 - uiWindowPos: 0,3 - strippingWindowPos: 0,4 - dependsOn: jumpsuit - displayName: Pocket 1 - stripHidden: true - - name: pocket2 - slotTexture: pocket - slotFlags: POCKET - slotGroup: MainHotbar - stripTime: 3 - uiWindowPos: 2,3 - strippingWindowPos: 1,4 - dependsOn: jumpsuit - displayName: Pocket 2 - stripHidden: true - - name: suitstorage - slotTexture: suit_storage - slotFlags: SUITSTORAGE - stripTime: 3 - uiWindowPos: 2,0 - strippingWindowPos: 2,5 - dependsOn: outerClothing - displayName: Suit Storage - - name: id - slotTexture: id - slotFlags: IDCARD - slotGroup: SecondHotbar - stripTime: 6 - uiWindowPos: 2,1 - strippingWindowPos: 2,4 - dependsOn: jumpsuit - displayName: ID - - name: belt - slotTexture: belt - slotFlags: BELT - slotGroup: SecondHotbar - stripTime: 6 - uiWindowPos: 3,1 - strippingWindowPos: 1,5 - displayName: Belt - - name: back - slotTexture: back - slotFlags: BACK - slotGroup: SecondHotbar - stripTime: 6 - uiWindowPos: 3,0 - strippingWindowPos: 0,5 - displayName: Back diff --git a/Resources/Prototypes/DeltaV/Species/lamia.yml b/Resources/Prototypes/DeltaV/Species/lamia.yml deleted file mode 100644 index a6cfbf90fe..0000000000 --- a/Resources/Prototypes/DeltaV/Species/lamia.yml +++ /dev/null @@ -1,68 +0,0 @@ -# Delta-V - This file is licensed under AGPLv3 -# Copyright (c) 2024 Delta-V Contributors -# See AGPLv3.txt for details. - -- type: species - id: Lamia - name: Lamia - roundStart: true - prototype: MobLamia - dollPrototype: MobLamiaDummy - sprites: MobLamiaSprites - markingLimits: MobLamiaMarkingLimits - skinColoration: HumanToned - maleFirstNames: names_cyno_male - femaleFirstNames: names_cyno_female - lastNames: names_cyno_last - sexes: - - Female - -- type: species - id: LamiaSegment - name: LamiaSegment - roundStart: false - prototype: LamiaSegment - dollPrototype: MobLamiaDummy - sprites: MobLamiaSegmentSprites - markingLimits: MobLamiaSegmentMarkingLimits - skinColoration: HumanToned - sexes: - - Female - - -- type: markingPoints - id: MobLamiaMarkingLimits - points: - Hair: - points: 1 - required: false - Tail: - points: 1 - required: true - defaultMarkings: [ LamiaBottom ] - -- type: markingPoints - id: MobLamiaSegmentMarkingLimits - points: - Tail: - points: 1 - required: false - - -- type: speciesBaseSprites - id: MobLamiaSprites - sprites: - Head: MobHumanHead - Hair: MobHumanoidAnyMarking - Chest: MobHumanTorso - Eyes: MobHumanoidEyes - LArm: MobHumanLArm - RArm: MobHumanRArm - LHand: MobHumanLHand - RHand: MobHumanRHand - Tail: MobHumanoidAnyMarking - -- type: speciesBaseSprites - id: MobLamiaSegmentSprites - sprites: - Tail: MobHumanoidAnyMarking diff --git a/Resources/Prototypes/DeltaV/tags.yml b/Resources/Prototypes/DeltaV/tags.yml index cf4e1b646b..6a1efcfa69 100644 --- a/Resources/Prototypes/DeltaV/tags.yml +++ b/Resources/Prototypes/DeltaV/tags.yml @@ -1,6 +1,4 @@ ## This is for Nyano and Delta V tags -- type: Tag - id: AllowLamiaHardsuit - type: Tag id: BeltSlotNotBelt #not a 'belt' diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index d6029b7f1f..36327fe1f7 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -139,7 +139,6 @@ - WhitelistChameleon - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites - FullBodyOuter - - AllowLamiaHardsuit - type: Clothing equipDelay: 2.5 # Hardsuits are heavy and take a while to put on/off. unequipDelay: 2.5 @@ -163,7 +162,6 @@ size: Huge - type: Tag tags: - - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites - type: Clothing equipDelay: 1.25 # Softsuits are easier to put on and off diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml index ce074a71f3..b81b3d1e7f 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml @@ -14,8 +14,7 @@ - SuitEVA - MonkeyWearable - WhitelistChameleon - - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits - - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - HidesHarpyWings #Syndicate EVA - type: entity @@ -33,8 +32,7 @@ - SuitEVA - MonkeyWearable - WhitelistChameleon - - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits - - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - HidesHarpyWings #Emergency EVA - type: entity @@ -76,8 +74,7 @@ - SuitEVA - MonkeyWearable - WhitelistChameleon - - AllowLamiaHardsuit #DeltaV: Used by Lamia to render snek hardsuits - - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - HidesHarpyWings #NTSRA Voidsuit / Ancient Voidsuit - type: entity diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml index 2238671ea0..d1ed51013a 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml @@ -2,7 +2,7 @@ id: LizardFrillsAquatic bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian, Lamia] + speciesRestriction: [Reptilian] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_aquatic @@ -11,7 +11,7 @@ id: LizardFrillsShort bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian, Lamia] + speciesRestriction: [Reptilian] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_short @@ -20,7 +20,7 @@ id: LizardFrillsSimple bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian, Lamia] + speciesRestriction: [Reptilian] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_simple @@ -29,7 +29,7 @@ id: LizardFrillsDivinity bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian, Lamia] + speciesRestriction: [Reptilian] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_divinity @@ -38,7 +38,7 @@ id: LizardFrillsBig bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian, Lamia] + speciesRestriction: [Reptilian] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_big @@ -47,7 +47,7 @@ id: LizardFrillsAxolotl bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian, Lamia] + speciesRestriction: [Reptilian] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_axolotl @@ -56,7 +56,7 @@ id: LizardFrillsHood bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian, Lamia] + speciesRestriction: [Reptilian] sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: frills_hood_primary diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json index a3e0090b8f..4fbd43a08b 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json @@ -19,11 +19,8 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "segment" + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D27XCIK~#8N?OI)E z990y)8&Q*u(PrCbZ9Wf-@Oh9~4#0QN~UlobqgP^`h z9whh^l=MMFd?^0Z#7#@{v$PVDZZ>AqB)Ex6cAW2K&gAxHcjn&NnZ%m;;Bx2w?0n~Z zbMBpG&SfD&ga{ELM2HYO6%nhxp^!`_4eQdz#KeRrUuvvc2`3JJYJglefch|Qbp-H_e6Q8jQKP|GE znHkp9)WrKqeYDY!am*u8{DRC6fE!Me4PNF&O8g}J z(9n>5?Ump0-3bM0ec{HUqUgVyy>72N0?iYDXANni62BM~1bX_q{7QSk@%DZ@oQNFj zZ8AG%uRH3;Jk0kKGC!U!);Sflz4AM%L+{>?2A|_Z;*+ifC=XFyIQ|LyqW?$s)yT7+ zBfyDYi~@1(>+(AeLQN2X9IqR!IkAm(M>R-klM>t2E&-A6yYGLnMk?d6M<3DRcQvl7 ztIGg+UteG3(EUeTch%9~h9lkG-3E*p7#Q&EJVEB))wtUlVXU}nuxRZD#kGZbZGL3~ zLB2ncW($QsSYvFD)w==ezijRcFv9Bg6(m3+eV7&IrrGq&9BXOb%g4Y^0`Lw+C~blS zkbt}#;5^2Ig6zBu^kZBlN=0Z1P>GySNu2*Ov;+VuJ>?*uz6g2%#7DK$gK>hE0NJq- zJJjWZevEGgz$Zd(>p)9@`Na~iYipyM3P9sQ0r!Wq;Dg|?UG=<18~tARwFGEv*qB}{ z7VSb1$AiF4r3LP6T{Oy8EN;|jqaWkC(6V@Gah}(r(*U(;JP6S1Eq8T_w~3Q#>JRKS zNH-q6m}R^7nD6^5Q+7cc{o=eJP|k*Gxjh-XuQg??6ql_QGefX}U7Z>a%yAj}(+?V} z#U(TRmpONB^mcZ6?B^}x5AlD(wug;jX#I25MkM0wVzBS68vvmIR=r~p3SiYc7NG!E zy z_jwxnKqAf4V-N+!ni4otsgz+lzxK-MuUX=r6u0GC{Riyc=v&qdb!a^~`c6-Y2qYl@ zBrH@@Q8IKQz;qn-Z1XGVs}s=EY~4Mo=Vua!UfH91`Fz=H0lX&nJNJ3DJ8Cnwi# zt*f_s)m)zGxDqHzYhXX%K4VM7+Wr^Cm?`$^IbeO1;qBYuwTx78>j$)xeRJd z2iJ~1{J5PEy)=5B*FZz8mDhi-6nO1skLxBVI*-#BZHFG<1Z1bZ zo!}?{sYa=1r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW 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 Ze*tm1Ghqf)!mj`T002ovPDHLkV1kXR3R?gG diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json index f7d387421d..3067907ba9 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/meta.json @@ -1,37 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a. Further modifications and derivate works (inhand-left and inhand-right) under same license, derivative monkey made by brainfood1183 (github) for ss14, lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a. Further modifications and derivate works (inhand-left and inhand-right) under same license, derivative monkey made by brainfood1183 (github) for ss14, harpy by VMSolidus", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png deleted file mode 100644 index 91747f2ee639ffafa7f0bf9dbf7048db0935647b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmV;70dxL|P)1N4e4&jZZ$LPYA6XY5UEImdS z7Q_&70=%(gNhZSy=+HU}Emds^DU096`_2EpXZ(;i(=_qOczS5{1dsp{Kmter2_OL^ zfCK?hpg*5 z_WS)z>$>i?CI%*Y488g3beiS2+wJ0XtOj7M#ahcajwq!77{?I+Ap`(z+hVPa0th|> zRaL#*7xTrJK>XTO0kSN+)^&XV7={6*6ha7u5GbV>h5>-Ot`Aw3T|<4N{)EODnx@$S q@5Y$dd#!1j58%xhbNzk}^85q`?1=;8p{I}l0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj5KTu3mMHVzhI%k0`OkUHSHXR)u10pmW8yo-5Tc&s) zb4(!)4h|ze6$~{8ELLuCVFOV{0vHq)$32;bRa{vGi!vFvd!vV){sAK>D0`W;iK~z{r z?N)1(;vf*@v8W5itZV-NZ@unuAVWa!s_v^@r3u|L9Ucjc+x`h*}Z zzTZ0^B3mv7KXZWYzL5OoI=$UOPbnfGrZjU9-JMP+*Xz4Mg1-MLyF*xy2l!rZcOkjt ziF3qVP<97(=P&UB1FKg9F%D-K#EU#i`HDo{`FM`co1}a*xWwM3J_9R96tdaz~WA|T{#+Jh};OoDg0)7u;XIbEa& znGNMD*zufX5^*)l&dkkc|uqUc-(%weZDgTQCV3erCe1`8HBAjom1(=r&a zkDl)s@^L-pL&xYiJ}#7>y@?xCc7l)hUO5X%tOm*f)&MJTyWOx7FARbXp?g4QkO~Y6 zrfO;s9487tbWu6L7(iWNuyPE_b-)18M}BL2k~Kg;5d(BVnI5SWnIl}3Ax!KuUmTR_ zQC8Jg`<~k#{5S{Q;i^oJxo!>I@m2q1|eW1hu5m{fD2y2k;;a84$B?eGSzu|5l zVGZs91_1}G5(7{>1Q@_U3E&>MKUYEtqBBT-$r-Q8D+7)o zFF3rFAglpu15^)hdw?p&v54AX?(vdw74fgc0G1!DR}rU-HDH0Ib)GTl9?A{C5F{Jvr97ToHCSWYLm#bAGS1U+yE!ZOm82|9*n|)Sl8G22wGQ(+CMlG qjq!ET6dGfmt5*SpzvLfdw(Soqb^mz&hw%Xb0000Xq=P) diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json index 56b23c00af..7f50fdcf08 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Made by Emisse for SS14, lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Emisse for SS14", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,13 +25,6 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png deleted file mode 100644 index f2a4dbb38287bea806df67c8a87d228928fbd14c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)R{#n?0Vn_kpa2wr0#E?Jwrt?h`Q_r{@nh%{1_6`l6adRKu^oq<-GlTiTKno^ zJpikc?-lw0ybZo%QxGwrtp#9}%KBsmK=I!mnE;aN6BT#o1-{HK$=T8NFc}r5?)qO78%G?Ntf8EgQJDz3NH&EbO-Kfiv5yhVy4B&o9rVnJj+fyTSkf002ov JPDHLkV1n01$@l;O diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json index 069e34790f..2de954bbf9 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json @@ -23,11 +23,8 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "segment" + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj5U{Fj{MKUrnCMG5n6cjc#HXR)u0RI5B9u5G2Kme9Y zC@3h`I42$+9zQ=n0Aeu!$72r<4*;uG0DeDiAtiq|IzmE1LqkJI0s>+K1AiwgT^t{6 zAte9+0B{u-H8nLmJ39aX046j9M*si-AaqhrQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC0 z|NsC0|NsC009;%f?EnA(32;bRa{vG}(*OW9(*X=2Lw5iG16fH#K~z{r?UwC&;vf)( z$rw>27L74rHO>9sJi_fFA=yv7GQTfGB85NQdL+ zg8#0B`LraYBep~i;OFm_gmmCN;j?(W6r6HjB8$gC2|&_;ilV^pBS+>sQmM)kZ;~AG ziU4^!XvD@#2GN*(v0We?c3YSpn^W}2oXw>y`F31I?g^7HFk z?Fpng8b$hSs6+)N8L8tkjR4&UD)Id{yh{?zl0bK%TM$ajZ?(8jgb6?ZsQM;uHC9Pj z$MI3t3VN7OfqB5U93KJpB&o+D)p#k>TeqJRtizPgXQ<%$37i`V5g@J63KyWXvCHf?6hw3O?>2Ewg|ZwgLcoLdF&#_yElP2zVuc*9Ktl2SDOa0Nfn77qANw8SD9@ z55U}y06bzctTHmv2Yyt>j{u;lYnrA*#(ER7egt$xUxSD`j-|@@5zu@5pso2iKLPX| zf5Z0tjGqFK;>Dl0wBgSIf1zK%9FXnGOQnhb6@a$8I)JQ%=3k`kdj=ph@NWnrB=Nv2 z$=|E+w7x4M98rkWp2tvSBG8;((&A+t=X>%1gywE*W4uHl%lt>}IK$f%V1Gw=4y6DP{ zyFQC67e0U+!6)b@^a&KiQp8K4wA#VINa47UlvXR9ir{7r90<&xf4+0h3?!b2@Sm~t zue&<{2jBo4fCF#<4!{980Km5u)_s5KKke0+gc;7Fzoku z?e`V}us#E`jPpFV*8UW>9q@(|)!#ineG}Y0K8?FD`~;Xge*n+sPE9PKX4{?7Jz z^I9HEY0krU01C~;!<*GDumS)mm&;Ndwptz#$1$Z+2>`7%?RI+%am*Tk*XeZT`dXiX zD2k}HKWCmK2>`|z0D>SONfK%|Hvq(OWNT~R0b@+0lzJ|z{wcK9G@H#WrBt`oYR&bv zzJ^MvZkA;yT5F6kGgE6#mSrbOsjjUrB4V9snj#{Rh+L&{g V_@tr*5fA_X002ovPDHLkV1i!G%?tnl diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json index acc4195b3f..f6910b12aa 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json @@ -23,11 +23,8 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "segment" + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 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 Ze*nFAI!&egNY(%V002ovPDHLkV1fw%v>pHe diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json index 0c75fe63b5..ef5e62cca4 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,13 +25,6 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png deleted file mode 100644 index 2217a8685712c7747e80e089d4d7e365a3434cab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 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 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json index 61121c1bff..0249e35995 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json @@ -19,11 +19,8 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "segment" + "name": "inhand-right", + "directions": 4 } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 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 b&PtjWXUU}2fwph900000NkvXXu0mjftp4pK diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json index 0a10fc9d33..3641da6f50 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json @@ -19,11 +19,8 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "segment" + "name": "inhand-right", + "directions": 4 } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1{q02K~#8N?V3?& z97Pz%=W2avBsM`2lD5XANlL1iQuLudC~DL`C>PO}3TnlahKp2DYAp@5q-ZIMiaAoO zSbeUTppd9(K_4QBiUl<^NfS$LBBCTU(7vcS?>D(`nQrfHXYOwAK=%jB%+BuZ|NFlA zc6O6*RYXKYL_|bHM8yA;Sf&l6zrR0~>1uj_y;CG|9dVKt4m`76ojU!M zZoz-tR^KWEP8@qxjgF3L$4qegz{zvEPs?%6_2k;74autNOm8{pa@<8f?}A~b zl3euO?JwyR$9Vzgw=7Luc8*Z!qSUwXx>!y3%S)NvE3W&v?zKSth{gs(E zC+2-m)S=;qD%DW8O84RH+$DAPw~Lv*Ww;+pfq5NM9}*WAReQSq;9!rZf9m{&rQ6eO zw)H9-R<{7Dg~RLb-{nQ$yai<8Av4Z=_LdHaWJ@v6<$U@qeqF!(sE)3^S?z!Om>w%c zKkq?SQkm(VSDsgoY~7>#`7+?ckwdC~@9VnHxZDzj5TyUb_rI&VHeFwozEuDaZ@P9- zB|lyjm;s50E~)81tF;lu1mN*o8&)i?{OcdTeh{wufySNr;YbSc*t*>@n->gHE_Lp3 z3M1Cvva=xPP5kLUvBdgh-m`h+ z3G&PZS#W??(bm@1k_W)A57=O8Lsd^J{0jHG^;p052tSzwPKd>TN=)UVefY85z;7Xv=;fIA;J04R2(7 zcWm=E_Wk!~7!Z7%HEp0}pK+NS7n}lslL+$ipyQd-A})dmwpvalgkFtuDWrf8XFsP(snx8G~o2l7xWlx zxM_9h&I^7Uiq$U2STVvRY{yM1tsfB)5fKp)5fSlU!1?uYaB%R7*HGx}>@4f6XhrPc z-{c6(zrSeN2ijall@ierO}{O+Rbj#U{{iNOrA|)^^yBfk?w13!yJokwCRYf`AbsN~K5w z5+*nge3XH<1fM>(f!Jz;^@5R1oln&beUsT+uE?*sL=^v?S%3eOVZ}C0sJV$xv2TGu5aDXR8*6QkqJ`qb}3+7D3Yn zU{YKv(#`>pSq941FFe^-(F}O){a){T0AMV%0APUW=o`tdv{-XlW?%4UL45O+dM>eC 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 kzwZGr6~`I;%p>Le0%BEVnx&QzG diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json index 8a58b1f623..8840689d9e 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json @@ -21,9 +21,6 @@ { "name": "inhand-right", "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj5JWxzjMV69T*wdUTDJecaK3^hdtfy$gy?li?nO09p zZYOst%>Mv{|2d5RIr#s5{Qq9U|F^PoD11?EKK~z{r?Uw73 zn=lN8jSR#g+culL|GV}(wg5pOJDvV&XHRC=MwesBSEc7);+x>#BS?bx9r1JSpOL22 zb=GxTitv$Au5I2A;^@;bTDEaWy-S4EwohZq0&TRI(O+P&V)$Qzej(^D3{Z1qh-l&H zFV{XB1eW`2(9ZJanLu-Q6EmCPW+_iw0#ZmwZOTjl zy)^6z@F#^D0V!a+O@UoXegu)dU1oV{@t-^bQdwu&fg17|7`S{PAV>mpFpx`EnBw-0 zmTd7~3Fr>@QMfPpZBYq6D}hUdNB|f?jZ3zWB7N5XE)gOD`4hm)CYqrD*gy)wCBly2 ze!rg+XokhV>;WMXKs^lnZ46f6iZTsv2$)?!>yj;Cmw_6W2$6v0dpsUmPM2)KIBJdHk{8tCfl^^e#}SA?)yLUxswz@oDvu(-RYig( zskmqdX)wSnAFYCp0@cgc5y;LZAP}$x%x+q%ppVcxr<+mihG_~ty?dI6&p^5buR9BY zQ794Cjubz+}Z(c_;p7$9|w2a0MEA4rIydh`?g;#twTEk`VQZ?uP)u>vn vMj>CKQYHJ&zcDBa|J)E%iZA^4HqYm8_R;BYQ(Knl00000NkvXXu0mjf44})c diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json index facdffc28d..def2d42704 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/meta.json @@ -1,33 +1,30 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png deleted file mode 100644 index 972865cd17c916bd017e9d28d0797c479f358d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)3e0{8ajj^Gg80^UKpld=z&boxDb8fO&Pa zT4#{5fOs20%3|qj9S2~{hY+ueHfWjAEnw`RGGFxlub6FSQ~@bJE90v8y6;~AmSU4B zlC)o0i=$KHuQvvelj&02^E@b}002aUB<&-PjP>2QT=EP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2W3e_K~#8N?V5XN zmQ@_bfAf-TOOtfY3l4O`W)^OOWe#1Y8EK*IowiD=X<*nA#0bqUm{%eZWJ&#DtF&6R z4TVxrL=@Iu+L5<{D9Zk6|Sk-hD6_WZ`P$L)R3^X`3D^uAwsIL|rH<@^2p&hMP( z@;gZvHq}WyqlZ(*EfNlJ%D6?s0ZtjWNI1YL;}!`AIAz?z*PGzWWjlgj_1z|S4sDbd zCmu+0nq~E&{NQJ22g>+M^JP`>?6&r3!_8kbYl_ne}=^@F`+ zaKGO2%=F&A`K=tFf@%l!Q2;r(g)&ch3|<$`DYv&)Zd4*<}ZK z`IXm=viB=x#c+i<869^k~;0~^SF-dyMm7RO^CN}zFJc% zcYIK4O2$5&LGSzJ_x&EgjGLC$>TP-gP^Y~+pgi6Pa1TR22ZANDa=(Yz(dP1ogaN#d2)Y3>xfA~X9k0TuRG9QH934sQO9NAiO?+5IIoImH~i z(sZ@m{?YHw%d%X5{MN6+7@t2jUHYc>ksW0Lx$W_@&JmHX-x(^ii!0^Ql|SXcvHEu3 z3DJZ)AbmiZT)ujx%>g&2q)Pp-4Q&o^PPc;fQ$XLuR#sdUK1i4Vb)!x@(DR~=eND64 zj0YI)E@|gD=a~jeSUZ5%%MqEQWNl%J`Rd~ls2g?KInH^p0KIDi+w&Bi4uPAN4tDlh z@$8(e;1dOTvZ(Zgsjqmd$dq9H8|9{avm{I2uBw*TK0XokA@I^;S?wagI|P6ZgIC_Q zEt z)?sPqHND)tZt{PSCl2`%?Gzr5js6K*u11x=AS!O8)Uu35gs zWM03&a9DPyWSfNwx>%wqc}&z&VWH7#8(eV0tvb+zHZ-Euwll0FKn-NfLjpM)`(4cd z*<#G870zC3*2t>^ZNN`wSUG^@CoF~0ygM6&Y=AnsxLD)(hz+KM3r?Uq+}hBJW*b;J zfEkr#C_wY>5HSgn6C`I(TXz92IN?SET4>X?1ddiK+pLE`&FbrW7|(xHGsI+Oz5fYg zfpxiC%(#XNPPjD+-9T$gr$u)Tn6f!wvcaWWw>vGZOJe4Z{>Ai!MnEi|1bT0{;Dj3u z3bdgSt+uds!2Ttb&R%N|FbOde(-W-R(g=v>TeD|^ENoh3+8|yw^P1e9 zn;{3wi%ps;)|j7nS942YoB-d&qf1RrQu6|6TfQqx=H?GFbsHyy{TR}l=*kSu#ACUvF z8-$94utT6Dh49qOwl z&_|KmV0{Mj80wB3A-O>`0rz`{SDU`C0CaU^YuHK9?F4=1cJ$%nCNeuQgeFJT32wMG zdNoDl0H99L#R&@abfmfYu0WlDCg9c8k*0_p0MrRUNx{Eiyu#}Qpn8B;Qjk2f in~xU!=(*ljk$(V=dhi#%CuZ9K0000a*3lDdzlZIexK^W^>2t}dN&6-*dcVX%>#C*J)#=sF{!A6US$b6s zxwko;{TChGo-uX%$@AGhcQl2|z3So?hu(AR&QE;dc`i>*cp`JkZX@}=GzOF1+-y

r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2cJnqK~#8N?VAs1 zRaG3v&omvIn>O3bZ8EW1n>uJEiId1@qG=k1DQFQ=k|9V+Mk%ABBGgJK5d@<`q>K!S z{%MLiA<`^s{h6t&Y%8a^vE^pUTI{vYdGGgjyuSDDx$nK}MBf(VT0b!z1JT`4oF(*T=Z8ld^V`7=wE6b)5vr#n>M zkX&`>m*XmMqtg5fp6v3(-!GiIV*lIAg4tOERY`uP8j_Q(Mh+huWZ)#q)N`G7;Vvn~ z>PIRg{4)5Cf4X!&=7!=3KkdR@tYBpT2KmAM4%O9Ep}O+E)pZP75}=;zw4=SQOc5~l zJ9}Cp{4)6bS)WCWApEqWeYmSDTn(`L*=51|W>$s%-g;bHIXeq$J5!JKd#(f8(@z(Y z084E8q{`qOw^e8k?mwXI7FBsoi#l`moGN%USLc+e59!NPw5OkQ2}gsg0e(Kxs4YCY ztXP-Np8HoVUvyHJCyp=IIc4erW!lp(72rNRMT}5X(V%j&vsBBmGdia%gQp$s zZTaJF7)+(Yg1nx=b*j^6&g$v@^wKudkiaGYuCDt_Emq=~Sn>LmL}A{o)53 z)zv*~jWP}hIc4g(PMP-fO9i;kk+#8lV|)Jb4!z+nU-XxL^1+=!ox@E%*J($4TmHBk z1g{dD3YsQq^SoD&jWZGp=5K*S z_)Yz>;JOD0MwgXnQb-{C{>ZdQGDXqO5BSAzZ2&wgEdA-;ae7ZML7954r^*9#!Y_Vn z1Aw&~hpWK&ed?}B2Q{fAspGnz@Ppse9w06*kk=j%VsV-M+5^1u+w1{x4PXKR>`QM4aFMjKWd}zSCDjGIemrYO4tiu6W@p}AsZz7Nn9pYj~n>Mgv;Vgf=vy)fQF; zU>XsN=Zh;uP9Q`+Px*_Gec^)B3ACXRt+ue90mR|3Zr$M~osKoMs-yLP=x=lq7bHO8 zC&nIIsX5>hUNoRZbfFQgwy<9UqjGdUc}!5J>6KUMvVf-|YtS#$jascaoU;urq6>&t z8+e)l60MCE`sS%zEJWi%lSG75J_C52m{xUu6C^UbVY5FGAro^SeoQ}NxZpHlYC@~6 zGvsLoa6XU^pYrkZ{>l0J`#j&}IVV7%(oaW;d&2=2oN%K7h%PkxvIh{0CpcMiG~{q_ z27m*LtVe_pp&=sdH{?u$1V+$+7Bry^jcB!nwE=#A?{*z|6*M-r>aVdJjFMwBc!_>P zIN*dE4QLUd5v{hcHh=^jn~t|=cT@fbMaB8LjdRdLxT!PM9H`Py0U@$a_zigA zgBSj2x&XRmImCkN3~;-F39KzgWBr@~EK9GtV$FcK29S`n99EQwtP|pe;fPFl!2cz{ z|0Hw9`XWLcOOtKL+*+_1k~T?`iOnaAXhsk{ oz($j2(WW5;eKB}Ja(a~d9~i|#F_vZ+_W%F@07*qoM6N<$f;?&6Y5)KL diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json index a52fc0259e..f6a942a895 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json @@ -1,12 +1,13 @@ + { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Original by Emisse, modified by EmoGarbage404, lamia & segment by @noctyrnal", + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Original by Emisse, modified by EmoGarbage404", - "size": { - "x": 32, - "y": 32 - }, + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -26,13 +27,6 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png deleted file mode 100644 index 68fc755c56d0ec73a44b5b40719ea2bb5a9c4866..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)OW9$@8GO!1)-aD6V1|QP!L7hgoL_0mo^d+d;vv=JP6#E%RA@eToRrl zgy1jN*q^#500}?>kN_kA2|xmn0Q?7l@wf-feD1qDoYHxGk=BcqfSJ#U30>p3;*y`9 zj6BB`mkC`15N19ntr;tUg?WRWEt}R&iG$rHe((l>rlx4!lsMXNa(ZUPkwlTb6>k)m z#LkwDAG{3>i;@1?Vl(WWo>^Qp+lq{?^ayV69L_IS(9{&?mn*#X+_3lBb0fXmJ4aSl zK7rBvH8suNwiB8G6jxhlYKoKkEPgPc=lOIVU!)R<4FI62X@C&qq&^FP9}EC~4`5V} zKt8XY=ZCc{fb>_ew`l-iOr@Ed$pY~3)CY*{o#%n9BoHHkOjZ}wvK2ynwMOQ(hK<|z zel~$>*-~l^TdXfza6drTR6IWbh}2itHr28vWgZLQu-*oilv=|U0PD*iKOD~wxVp9( zzLz$K7$X44WOV=vhDq1yL=F}VQvv8Y9RS?EC#CrgXWp$CB|mF!00000NkvXXu0mjf DvY*&g diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-lamia.png deleted file mode 100644 index 040ad09939c68277637f695a1ef9605218e440dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1039 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 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json index fc4030c881..4aa4d60ccb 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd, lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,13 +25,6 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png deleted file mode 100644 index 1a9469334f398230e1d7720c7d507461f1133891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 947 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 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json index c573d38e18..88d91565d7 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github), lamia & segment by @noctyrnal", + "copyright": "Based on tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, modified by EmoGarbage404 (github), harpy by VMSolidus", "size": { "x": 32, "y": 32 @@ -25,13 +25,6 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png deleted file mode 100644 index 0687aa9d0d799b9133c80c2340ec781d23c73122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>AxHj0uGb-rPaxaWD{M zu=9%DZU2B5Fa8U{7^|m&%;UhD2VsgZg-$lyp$yYdyQXC(w3QmN#e<9VB)>pqm%P&t z-k0}2yx*6{lYHOjDr4kIyGH;KKm-s0L;w*$1P}p40Dvqilq3m&)zQ&^9+Bnqa|uB7 z))WQ^nmyU?cG_2cYz;Qs4ZsZ1u*94f%G`J8W7k6BK~DN9p0T8hcb3D~ZS+B)T4sYEiF z1fWzZ2~9!Rgl6@a;^HGVW^>g0F)DLo>})sL*=|yq8>8Njkr!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2O3F4K~#8N?V4|B zl~o+a&)Qfs?CP4$M&g9zE|s)ESSfM|Lnts1`a>@yFneQvEMNF$;tSbcWMEm%H(3x8 zQ3Spa45Wx5S_7dpRCY1kq*ziNLKInQ~{^L&55 z-*e8n=RW7CgoK2IgoOVuH9`8XA(P4Eg6u8y^z?Z9<8?ziozAtiw3HOWu))DWmCa^j z3#vGejtzE!ZxEa-<2>oQb?elH3m0@5Vq({Z{2JSaOb8CYHLG>+WFa9 zRX_OqjDlddJo1f=jXGafSEo~$oSf9@$jC@hUGic2cLZr!Z~|vK?(fj&ix)4}sp&jO zIrYT(Y9r2>&V!trtd_Q_YPj^~A=L>g5i%pCcPv|J%Na;7akY0hj@R$J^?i^(z|o@B<5S z;*4!XXJ==S%m3!?+7;xc#U*Gz{(RZnc|r66Z5%fpwUO)C051BWW5C^W>I=>Y2;nqG zcXxMDOQ0V0xvv`V92e(->(ryZtA6O);VqET{9U0Nz)ar0fWE0M!8XUDOP4O`)C>?d zxafzr03I^Bs7>b)=V)(lFC0KB*MR!fa2|LLvr(qw0zYr{_4S3roGVa|`mXw+0RX1L zILF9J3qkc8vdCV^u6isJMDCau$eDs~7B$Ejud*;CO!&h%gt5b)k=Lajd zO;3TNjQr&&r*9KQ-`PlvpsD|rS*_3c4{rV^2PQhECRsH?_+7MDXD3{SVE_go9-?(u@rBbP)l=3M0UICCP zC@>8j8ynMyU|x>{o{zKh=g-#xN1K#$%A@Ez2cW5`NsW(>>%8eS$T`=k7Y8(Jo)01Gb1=zBomx)Zj<6<14JWYePPgrdIfMEmy9dRXO`ZEIUG2{<3WY zmsa2$01+?;8!2N~2zz(rL+O`Wx5pBIXAbVqi3a&^!mR16%^&H3r}uqUOg(bBSuUv6sg6;|ao(QtmV;?&=2^dS#TRVyv4?3glnX*=0N9kUdh>HZNo7tQ`a<>hoQO35 zuq3lK=VKF_CL#x*p`k&oTD2-DxfQy=@bIwCvql$J|2M%d)&`-uxw&K)5Kf;yU2)Mg zGytRop|!PDmz82*U_hr)R%fFiF9yQw!X}6m05F44i7=sRQcatjj1@tmZHkJ3w1C-g zUNCI}+b&m|oDCL1Fq_@&a9*&30Adfg*yL@r83^HaI4{i19;N;P^u3X0T)Oa$00000 LNkvXXu0mjfgnF|P diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json index 46f6488836..b05021b6c0 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/meta.json @@ -1,33 +1,30 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/blob/master/icons/mob/clothing/suit.dmi. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation https://github.com/tgstation/tgstation/blob/master/icons/mob/clothing/suit.dmi, harpy edit by VMSolidus", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png deleted file mode 100644 index 3a2b136ebd9afd13587f40c8404abd1d853c3cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)I<&z+$hvN=PC82phX=ELAN1 z0hadqH>}d7Ng*MS>Y8J%;-%PFU6LwAV65&?P~4M%%?=Fg$Lu=~`!Q@wMEFlT_}ADU?zGD5YwkFbo-uMm<+uXMi+Km)2VDZ^l2y+~16`){>^_(pA^_ z2&(OWV@LM%QjedUYi7@{03=tZLce@?y^}6nt zWm!GL{R3oKb_B59ZUMd|uG-aH6}wk}BuU=$Jii4n#t=mjK@iaCbcmves_^7_ew!r8 zyQ?lD;_O;$M5HGoL#?%Zb`cqhNKb2B#X0#04rJJyFKPx#1ZP1_K>z@;j|==^1poj5Ay7D0)RXyuB{zNhbBUbBz*o6ufQuH z=mmnn#sesQad5K;mr~+?G)oWoEa>@DAjFbWtu^HmM^Pv*==nAbWhrSDq_X6@LdZ)t zo{`)4_^m|(h%rhCrCt?weuYQC^T#075@KBVgeAsMYBKu)_zX_~@Y(Supga-aKm?tK z!g%`x&o==Mw+S%33C#E=P?K|z=}s7omjH;s^X&{Uw{OI?UoSk@zw-%)lRpGPE+VYA zpkuQiz{aZm7E*A06DaDyEvQ4e3uMXB9f@=_dlMkfanMZDky%fOwJ6U{j(48$L>MC; zX6Z5J-8d)7BQhyvv-BAAK7!^jiD1Zg0&)p@4QA;v=Dh%kBp@Tq(qqhb0^A^2rvfA1 zjU|!UK$6)kJy;4Sx$Jo_pn0U3WR?qBqS;*GqtPuc8+1^I3*CRNexr>?81TKoAMgsi z0)qc6@T0KF00X`gkOrdg^xE_WUgRPjhD{ZILe-2~#3u?6=u@0M?*tOnJyY1?nunB4*qWI4r2ZKJfw8S*!YAXIH0?ho$)1OPrb zn#l`fA#r%egPh0g79&w@r3{Y002ovPDHLkV1k@wTPgqm diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json index 811b6b8ae8..e9a9a4453d 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json @@ -1,33 +1,30 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png deleted file mode 100644 index bc07da7e782249ad432221865d0a0694afb7024b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP)lIvB7?=7+I z6q!s~Igg?(LhPti^SC*O$KlM^(<@LcUNN749Q2L}Z4;Ku*Ah?+7)4tE zPx#1ZP1_K>z@;j|==^1poj5LQqUpMVXkG+1S{%v$M?1%zAoy<>locJzy|ch8ka) zAbG_!G&Dj&LRnc^vL7EGAhIYZC^9fGCnqOGL_`-C7d<^a0000cWYqBh000(rQchF< z|NsC0|NsC0|NsC0|NsC0|NsC000Gj#7%(Vw&e`3cy)(AT4WEf}8m8?Z^#;5FEDe}U z{xT!zWSud_*~V8FL}ZOO7T+?`s_!3wIoJsv(PYCcV_E~h0_G4rWRau^9m2>j01Cl4 zvJQXv4B=eG(60aw-{B747?f%*fa?3!7r-36BlB_luzZj+ry_QrOW;HM0w9aJ%x$?@ zK2Wc1Q`r3i(0&Er^%%b(V8Izzx*MY1uNf-80AgHY1>iiM0PxA&JTf#lOUf?~5k8sE z<AVsQd#U8E^n!$av8`rM!xErF56^3fPd;p?IDT!ky$bI-+}> ze*hLdsQQ|4byoHr7Lsdy1(pTD#((6)>Z%xi20D~i`YEd z8o&{docGl6TfkrF4R`}s{~5qL0AuB%BX&=_hX#O_6)q7<%tuJmHZ_3fqxqh?niA&Y zC$%Lg0JZ?!y2k{b&mFYcJ!k;t<{!?>=0KGDJ9l|~2L-?$z`#ZO9RXnF5M4u)!5n7t z*dUAmusk7XkO85oCi3X-!x9$nDXnn?pp|0EfNvRU^qm1IB5VLiaFWL+fqrDD(GOwo z;L+ugrwl<20G%Ns13SvVA_F84M}WtJcM;Pxjh;bZFQvyr)o=iKs>i?gQ@h2hns=9@ z4nhTBJ{D<~%BqzLse}@Y`RKd5hJa1Q6hZ}XcA~)}fUru6%7Z!phh6|Af^`BspXhqr z*`cS5UByAX3*aD$s`WmfFralUR!0bus2X%Uu$}O7ekG`&0{|25>-jqYF-MRBWW+D? c&oSHf2Z`Shmk{&VL;wH)07*qoM6N<$g8T)OfdBvi diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json index 80f2d7019f..4dcd7b13b5 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/meta.json @@ -1,37 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, harpy edit by VMSolidus", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png deleted file mode 100644 index 5a21938ecac206e3b9cee8254ab5cd90dbfdde24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmV;U0bKrxP)3j``!=V8XLR11pQ8WaLqCjg6K$d0Q4k7!g zHdde>7Q~(jA)Lga{jWHv3u&zzYb*W}Px#1ZP1_K>z@;j|==^1poj5NKi~vMS6OA!BYU;X8^oQ0G2!e%*@RGegMo^0OjT7 z&RhT*Uzs3z#mr&=G&D3qLPA+tS+_|5nV6U|Ffb=4Cq+a=7Z(>jJv{&b0AccE7XSbN z7<5ujQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC00L>FF>Hq)$32;bRa{vGi!TxRaP64w$k6vop;WfV64L#w@Hz&;p^6~0B5|12Wju^nc!mI-vG{p zVF)4IkmE2Q4Q}5AKUCiczXD)-OyL%-^U;_S0DffON}mB3z(f}@LV#)I5JkcdthH zQw88W9RS52!+0Of*!Wu}DJx|@r_UP>t5ia;BGL0^mhPfKml~Y?VG5nEF+Ti zH^73VcBNzg)yG}b^cbaI0n_4OQb5oSS4U0DLt~BLeG2*^d;!q3R0%NXE}-vMz%n_! z4MoA7`(OGypu8_-gwu<#s_#nxrbu%%;R4Y0B_Q(%`2x`O1%TE{&h&GBh@_O*ZyvG) zV0{#IRzVR5w6*|HKq?1cpG4--mH>)?_`Ii%-vWN2H{cB*{a*k!2&kKpuR0~Bcagq#RD~}H%Aq@b7^BER0^oWTiNGxfQU9oX`%&BhRQ(P8 zTzyp6uWF=UF~knQ9VjIn<@X8z3v`MT-T0pY$^~o?t^lxtTjRLtFol$7?1iT5DNG@_ zIj8;X0a+?G!U@J8TY!KWxH#Pcpu)>UQ`z%sy0H_QJ8N{m$ zA~HY%=?d_C&NDWm8s)t!XUUuA=Tod^aSzaS&{Vom|GRql;!@O3r~vdYwHwmhbdm_E zgbjfHsJp8!0gH&)2o*rtu`X@_L_22IcB6K{t{(s#K{^0lFH}9M?9hwb&Y~dN1yB%2 z)tmTw!GLn!td0=GQ8lOnnDAr&N)SOi04Cg@`>zDV>_Gxh5P#`^j9HdHj>RdTJL54I P00000NkvXXu0mjfkwT&H diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json index 3efd510e89..8d09b75006 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/meta.json @@ -1,33 +1,30 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, harpy edit by VMSolidus", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png deleted file mode 100644 index b2cf94d4cfc2ec3dc3361fa083bef55530139ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmV;K0cQS*P)_jMbyY(xVGuzX$TW)j}rr^g96k7S5FfXZH1hj z1MS97<|DoYUIi{a_YEq+a%HdSCIj92gDr)7#@B)X#zUL#ZVz;QSBiSCM-B$?u%5yi zo-Y?^6JB7T$Y$AH$+341m^}G))0$ng*b^7O|gSmgQla5Zl$p33SbYxO-Y_ zFL4O}6|1h0i1d6X{u|`K0m`!6LhOr(2wLkOaUc5z>dSfC>Ln_a00000NkvXXu0mjf DfKRPm diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png deleted file mode 100644 index c5f1a4d41a8a98854693acbec63baf5630b90a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 903 zcmV;219<$2P)Px#1ZP1_K>z@;j|==^1poj5KTu3mMV34O!BYU;X8^oQ0L)kb{(b<*001B$AR1qp zAbG_!G&D_3O+rFKSy@?ndU`T2FefJ`MMOjw7Z*J}JpcdzZjy3!0000LbW%=J|NsC0 z|NsC0|NsC0|NsC0|NsC004v#j>Hq)$32;bRa{vGi!Th6A~tBg23d<>BU%MX{>edpuxEY!8kXFKWP7K8S7aSSBWwteyZzd z08ED|OrVd>+8dzfO9KN~XBDe`5FI`=(TDa6U^MnI zKPFr#vH^fk-vO@5KLJZvg7q^JW;>$2TmbA#g_SS&5aSv{m{H;!0@^VghUoAg9u?Y0 z<)5IqZW~u%QNgyYQR1h%egUj8C(wh$Pf>`M5lQ=bsq*mM4 zfK^6VJAkII+O$^Il|Jq-krbo&)l1d@tPfUW6|f|swskeM-uaT}o5;M{^>op{-yLfB zHQ+Dw0ek?Y{|ms*kA2h0Q$yt9m>^Fq{Xl;?lrYNkO}sI``A5R$3t2aH2;)TEA-!?x zCc_;OByth;cSn{)pwgrQs6Re?02-eOsszhz#mA*@?Wd`S3~Sfy`1JEXX+n1{qP;05-!C9dE{ zLY02Ff`tF}v`7e20F$sYL;zf`0tWyJh)MU7J7k{El;|MZIV)q5?By^KX$%K3_W*>kv#;Hum0IE)utGbC!%%XFi1yJ+`AQ_|!VBfLp z(asL-61$6%=oCOnl9fl>cNoyRo>oIhlB}Fm$~_2g`)7hmQuE!(ec%5eAg3fL03&|s df6aNl{s6w^0st}I<_Q1*002ovPDHLkV1f#viZlQK diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json index c5ab73194f..0482d08642 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/meta.json @@ -1,37 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14, harpy edit by VMSolidus", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png deleted file mode 100644 index 4ab04aee9919bf27efa710928fe911422381a692..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmV-%0gnEOP)GjT-{4ZULn*6kB%zA|VE@5i66H`JX6Spz+>wOS`+NdI2Z^1)u;FfC5ke z3P1q>?sGplcIK}k(!37obEe4|N{^lKtw7hVvB9nW;J|4fL{!%mZdu0H^TOE@DAwn&XNDkPiosiFvb*V47p0?e1X#32Ra<3!tvz z3Ix$$0mfbQ$Zh~{=L4MK{ow>$SK#IA06@nnIcM^3*!R5$5D}WD0bm?QfXG)}wr{Q7 zw+UIg+6RHH1(5JgM3TfI|0*_HAyti@gZOWd{|2zu{yk44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0#2l#}zN=Qg(YHEgsg=J=DCNVQ_mE)Vnz);S|{Xl?8FI?o^8s7DNT_z?b zk*sVQ8X9Vgwu7Mn>Y|;!aLZ+JQoM=kq>&`V?q3)A7hu zASGK8pZP?R)*XzMh=Z3C|b3O?@V#knw~+k)vq)-^KSD%o|h~W99j3xo>@!pMLu3 z;`^5)lp!(8{{e7irx{~ur28EOI- zet4|%>$t_M+aFTb9iA?Gy#0B_l=_18wzX1(&4f8RZ~XY9V${ElC4lY7{_IshR3GSnVcWyFKcrDaM*pOtOqWlI}%M zUXai_#f(At#f7?Ph6q04n`~#!yIOwvF6O|0Zsk+U?F`>`p7UnVkW)`D-eA z=SyQ{#5l8_1uTsGD^s^KH8xPaeF2lfVwRAEXwis}2Bv3f3_+)^h_4b@o5-79=)sin zBH#J_L2ibfQ>JoqHhjFZ_u@ZkA3^Cc&I zWjY|agju2F-i3V^>nzKz-J9ne^=4wGkfTI%T*>pOASRd3SARqWu^r$M-6z$*WP*~O l5(DGMPrsHJrQiO?z!s2iE&jV~7BB%bc)I$ztaD0e0ss(>gxmlC diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json index c5ab73194f..0482d08642 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/meta.json @@ -1,37 +1,34 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by Flareguy & cboyjet, heavily edited from space suit sprites found in https://github.com/tgstation/tgstation/commit/fb2d71495bfe81446159ef528534193d09dd8d34, monkey derivative made by brainfood1183 (github) for ss14, harpy edit by VMSolidus", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" }, - "states": [ - { - "name": "icon" - }, - { - "name": "equipped-OUTERCLOTHING", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-monkey", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, - { - "name": "segment" - } - ] + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-harpy", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png deleted file mode 100644 index 1a6df55d0509e8227d431f51fa338b7659a8fb36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmV;j0ZsmiP);3mb{xoa1NlEw;-CA1!arsoh7QysiOOP70a@ZRI{{=d9;2`9AH?9%pjs%`-+ zfCaDs7Qg~n01IFN0JrD^UDy5Z5-IMNOXGT?$fdOFy1E_5Tpau~ZZKPA@nE)M=s1NS z3U#0z$297aQ9d~f8OaI&4G9Eck&@P0DwslLS548C2yXeKfp*Pgi}l7RJ`PQM&eNXS1j^Eky2}ZDxUfq1sMB&2Ju@YQi_u2 c{mGly7pvxwi5dYNr~m)}07*qoM6N<$f;?QbrT_o{ diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png deleted file mode 100644 index 979a4eb20e56d53ade735e8c56dfa1e7bcf44d43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1579 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 A?*IS* diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json index cf10d74aed..4844e816bd 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson.", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,10 +18,6 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, { "name": "inhand-left", "directions": 4 @@ -29,9 +25,6 @@ { "name": "inhand-right", "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000*XNP)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002l(OjJcIE-)D#CJ+-DUuJS4Cp1k_S5O=su)WGJbhvLlL;#=2 zDKJ4~F*H~uC;+kGIz2-GkhTEm{{Wr;JU>G+H$p^5O)f4j0001lGZRJt000OtMQ`u$48t&v zc)q{2gyeVL|08mh|1f9*nt7hdOw^7SKL#%TMgbt@-z|KfD*#xMj9SS*V+LIN9{?g_ z4Fv#}WVKTezXjj}fXcrEkQdA`gvA?|TD7D{05Sus{l%cqPr@n_k@r|>MCJZn(jz(e zkR0Uj;wXbf18Ajx2OxdH zlpG*{L+O7=y6}Nn+P{-Rz*~x>(MtSrS=Jb1DuGmH0 zxBXTxzzZO%064je^+Y(-iSN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png deleted file mode 100644 index 7b79d271d540baae884704ef3dbda631b0863462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmV-01<(44P)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002%Q_8JLozo)WHB^Q934bQP0EZn@9J1CE-nB70HN7J6#xJL z8gx=lQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC0|Nj6KA^_R|000SaNLh0L01FWS01FWT ze`H^g0008tNklyo1&5QUptlemUiW1N}1|BLQvM5R?SQ?-9{s*<#v<_jPN zP0#<-8}J5*Dgc=hm~$$8YmBkl-(qrP1Yr!Kxk*WUZ>hfHH+9fJdysZVokIV64#N(Vhb5MQj6lo~Frr?i+x97H(#5mG8HTus9ds{!vr*2!x8kJ4}UL<)eDyF@R9L%l><^@H3i*v#eWRM_dbfK{jR3(1j&Yl9jE3KR`&oar^8 z4lkcqBsl#Km8k0+60VPv(8R08HpwwIQRaziD0*l%t zG)^=qdR%Wkii7hJNEwAP1lMe7ILP7RwMo}tI{>ck<{Bacizqcf1CVO~9Gou>Rn$+C zp*odck&Hgz59oL|X9c>EmD-^R$VC9wsR=+4nsZ8nsEV-#@diYt;V3bYQx|bnM0Xgt zJKKwhRg@L7_xncJ0?HTf&j3lO2;s&2O^#GeEtLB8$a0HQdXP*0000SN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png deleted file mode 100644 index 5cef9a52822e8761365c07c6ad090c6133b6b9b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242 zcmV<01SR{4P)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn001^nOjJcIE-)D#CJ+-DUuJS4Cp1k_R{)>LDKJ4gJwpJo-~f=e z0O0O3>3ybNL!%!|DU~G zSpmsl+L^v)Ga*7NEk-y<^86#-0&fAr2^{9ND!fBVX^6bb8YLzCrUa|H0?6lK7;@xy zQ^q2LAOOd5p-}mZPvl=#;cGDCB392t3rx zzYCyzGd7Xd00Ct-{|j{K4HBN;mF5{&G4P}X`DIyFd;{;6DrM1qu$&5DkYy|@_&|FB z@KxbjKzRs^f%gKIfAv=)ej#AD&=ml;^3W4l3M#bV*cH$s_64T05oPKKOv_gASpx3` z=CWZQYCrFM!QPxNR0u0~$Jr<$_mQ$({Tf(9-eD-nw06yb7|}hVIpV zi?_gAfCvJ3bDMPoywuH7_!D#mHZVK81a>;3?2K?WUTON$PvHt4l4@`83f|QG_6iQV zLRIJppaW0nZfH*CX@I_k#)mP&SHYQ&gnS(``T`tNrXfAd1DsdD_Gg|3O5Lo0V-UxX zUOp8xpj$*VeH}jf0(Fk*3UEdcPJtZ-i~yjU;UU;MB!EBnX2lFjXNRsp9Re_gn4!ENMqK)@w0fsn*{a5or_ctQI zy;#F`gvnelyU?Oe zMSLk7(wE>uL%tJu<~(3&ZToIuF-K6i+)v{H5o4au|1?V5CHit@OaK4?07*qoM6N<$ Ef=lKs<^TWy diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json index cf10d74aed..4844e816bd 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson.", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,10 +18,6 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, { "name": "inhand-left", "directions": 4 @@ -29,9 +25,6 @@ { "name": "inhand-right", "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png deleted file mode 100644 index c97ab674f25fbabfbafb91deae76af681f51a629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW00005?GP)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002l(OjJcIE-(-i85tcWAty9nW^zqYS5O=sSS2VrJwq`*S}-?7 zZ#_iM%UUTgL1ZyB|NNfs>Q_8JLozo)L`O|9I#2KFSS~Iu0000N(Xo*L000Y55)8)J0qA2C@{8sAzWN<)prH(G1c`XwaGqzPAWn)recedl#RR_#9{y4}f; zwRW2DeZQRv$)DT@F5mbCKs4hb%*$dCQ3oJmvfllnU=baD3G{3T=L5iGW+_H1#qhoR zO94JV>s`;l;NCa{4}dloGeGeG_z-}q`~pB-CQx37zP(bbY$XD ztK`QSw0;FZ?P3k2hF1WZjq`GT;}-zgU@$#iJQ)$Ggl092|0Yg&n?j3W4p z0Bqye06AX(-6BZ(1t8zT5P(OtA!i6!85MGFdJJ@Xq_%_%$H# z9j#PZ@?QMY5-JPgcnjTehbzz7IQwj6jnOh=7m$m@=BB4f6$;nPQk`Iy(ZM*?emTV z^auk2O_N2!{j=^K>JUPYf%oDF5MQ|1LF+11;g@>$2rmG!c~D<@1ZroX=eTW+0O%dC zHR{m}q>V!BfF>aibdugd`ixN#r4N(lV+=s=piWI(oh&_oJcbd0+ywj7JT$R1378@E zdvjE93n}RxhJe%rgfYOU-e3TbRhF8FJkZIBi5%QV9;pFD8w~87qlF03goQwQ+YZ7J zP~3Qb21rUpDBtmX*yDu=5td>~D}(|_=STiafFwxX)&rt;d|m)t$`G9agx-LqLE!Hf zfbWSN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png deleted file mode 100644 index 454939d731a8152f30ab186d5f292cf28e09df18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1259 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 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json index cf10d74aed..4844e816bd 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson.", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,10 +18,6 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, - { - "name": "equipped-OUTERCLOTHING-lamia", - "directions": 4 - }, { "name": "inhand-left", "directions": 4 @@ -29,9 +25,6 @@ { "name": "inhand-right", "directions": 4 - }, - { - "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png deleted file mode 100644 index 481ab8594d04477c05ed6030bc1eb25584cc3658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW3_P)SN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png deleted file mode 100644 index 0a9c6f02cc6656475f0c242c84e3bd3a1b4fac76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd005OqL_t(o zNA1ut4gw(%1yJlDnU-*rwc5%Hc$xJKdKnL(2Uw3nXi14Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOaH+x6y4h*!`M{1brwAP*c-;-h9 z5F+jEO6dY3mdsl(ViPdRM_tO*a*DAU=iH5MJPh$cBZpetR!#LY%z-hUAE1W9qLJna h5HyKzPyQze@dBI!rV*$>*oy!F002ovPDHLkV1o9TJ~RLT diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png deleted file mode 100644 index 826c099ab85a872ccdfab67c7ebb2fea5134dddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOL_t(o zN9~Zo4Z<)CMWdb>q(d+SQWoIA5FLjFa$^Wa;G6?+yX!n4?g i|0`5H@{#KSQu+YA(0uP8fCR1p00004Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVs#&MV!SzsjAow-{d#i42X2Kp5GJSMLC3hdS}!omgvxt^08lhz>I8l~F) zf5{0w;d1YH@7fyx00000000000GA=O=cJ-2oc)}X=ehU1r{*2Bsw(dTNYnJ+9Dq0H z+`4UBH&r^$J~=={dwmiX;WN#+wIL&d;2qQe9J++gZr=a^002ovPDHLkV1ki>Uc&$Y diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png deleted file mode 100644 index 9b26288a2686bdd1a7ca970aec325dd9a054681f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 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 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png deleted file mode 100644 index 7a37e083a7f34a3c3a721d2e342191811c0381cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd002u#L_t(o zNA1tO4FDksfKhZtMqvzg)?lbES15&d#rG1zPXR#y0002sYc2CJcOO|UW>(&H?0G!A p&35$6C8|0ivb`_9u6~Z65SbXM5{4Y!WwZbQ002ovPDHLkV1jV&^$!35 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png deleted file mode 100644 index 9a9abed6ab4cb8cdbc4fe4432d89eb2647878dcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7S|P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd003J_L_t(o zNA1qB4uBvGgkjtusjrLAps#C_vLVDS#svoB@_)&tcUuDh00000e_Q+xQ`Kx{yU&M| z(k3E@&mq$flv1Rf^Ik7&j8VORr`9Shxy3xa_s1rMZ~>5(A>$FwQ0Hp`pO~p-n+XgdSSiI~j6>I%l~QWG1~VI~<6|T^#<(4Wl}afVLKvQe zp#eAsn`sxp*@+k)fEeS}gF^_*7r{RGvRAO*uyQe!)sS=k5vbk=nEkG4c@e68fb{1$ z=iJnFa#Xe7PS@EBXZXegCdu#?%v_>JfNVZ@|lnS$Rx-%zB$XC3j!C7_QE{r0fxp z_Xa%Lh^*cRyv2q{)gvJ74LHAlibBqr@-+bf0N}s*0?!i=k{(iRx-Es!xj?z6_M8k8u(!KyMe!JTF zq$pM*^A9t_jAZ~AhG7_nVVM7uOU+HU+bz-c+uPg4IhTwvRb$madPh5I#`;lu!#vMP z2mv9)!|!`zUdd61Y?Fb!{@_S=M!Z&>V&#+fzeP1~}&uiNzQZLdgI1eP5l1&oa+*qR9h52mvw1>;&gr zv3`*QVvLYdf>K^eiDg;xI@~+t6@(D7*0L;+QUbUy2`MFFjKyOXS5D{L!==&Z*2xzT;>k6+zDV24BdmU)Wydsa? zZnq?aK#VaPK-cvB%I5*+TsrC><2S?OU z9IbI26M)=yy!TK_!FzvN4In+G6o3!MT(8&Do<_4V&bdTRIg4=|lXEV;y6ry2cNy_l zO#bZ1|84pV!!QiPFbu;m48t%C^AFPW8hISY)O8&IVB5CSUQ2(aZuR*9;A3xK+qP_2 z%XrT~8l+jfElxB!z*-Aq47#q%pI5WjGR8FTMm0GAxNlP#V{$~!VB0nrW2&~pj}-3? z@6lRgSrz~|CHh3ybvg1{>!z`qGGJMjY{0f{r)0riXCHuCnwJ0>&>D#nNUL@7K%oPU zRi4_AK!JzF;M;sv z=M9pv4emb+0<-lec&j)lB?Fc12?*7mo47oC-TPNYA2a$a(@QvB{<z@qLn`LHy=BdJSb>Kj;L30P zJI&cYWnNBE^eD*);W=BaEc7Y;L(+7nn$=s&-po7v`rPvlk6fqhw;dgG9&Ekl{m@wY z;_+9-Gu0Mzo))vO`aOMzxHixJxG2Ay&Ia0MKpPks4t##IPjXkOe1O-zUWZq?2VP!$ z{V|Yff6k##NBi%U^?twTwfg0km`!aD-pl~2fAfyl(4|h3<@jtK5Z}|)&t;ucLK6Uw C8dqun diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png deleted file mode 100644 index f1de5695c5adc09012210e68ce278db3418f53e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)0sdQqWRTaRScZHbr~@A0Um}oWUoca+%iB^96{MDiRVG@D`C- zv|4Ew=fUbp^EE_K!iqKVttVrSzYlpLjeT@8%HY ze!s(73n9c?MTjZ@=iCE8mSs2`4&a=7t@SRQV2trX2w#>Zs;WX+mTwhdbpgWSrIc(O zM*zU_ctqEAZ0jNzV|>#ztgdSSfVCE<(}@9yE&^Nge|3j4}RvKKpPC-z|?@$6p?oxx~beYFQzKpQZ_Enxd|2OM{}`@;SWOFU-jB;gZB-JInu3x)WxuR_{B<4%7$)bxV>J|7jIh%J#j8 q%vgKKWYwx`>nF^VwPplK<~(N<2@$UM6E>d>;(EIJxvXARDpvb;L>0H zHwOjQJ#hJVS$;w1Ewg>*42+_DLW~Ry2W)0q-jm4g7Uh($<(RMiuVSXmWTU%&h{fl94CvRRN|6XxsK7@|^s-t|l?3 zY5GY*(=-p0ps!%nusj;yZ|1MS)wm?Ux*2+IuPzCws>(E8Q52@}T&Zfx@9oh_$SXgN zWAgsUGN-EP=++fuyxzn`o-1cH@Jp^f000000002MQ9g_4x^DO1<6E5#mSrh>lW>a! zgb-w&XQ`@6>bl@5v!8+uhKDPU3|NROC006)z`v!x_nOBEXZsPy|002ov JPDHLkV1j2tqGJF6 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png deleted file mode 100644 index 1bcf2e505a1897df1f36f5b3f381079d437dfd64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=(Vi}jAr*7p-q^_7V8FxT(EZo_ zr{bo_6)P8bu!xm2N37T1S0D;hcYkV%+RXgt6-#_Ctg_vDkNJ^q+kUyP~!- q&Sm?$D7OHpjDg|BL2Wq@y`z|ErJ~%-doj#cL0nH)KbLh*2~7b1+AwJV diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png deleted file mode 100644 index 680ec3009a5017c345f61bb7d2ec136d38c22057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5504 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 qdkx7Mfj2k;+*3=&m}^= zv{)=eiyd5mvMl+0K2zWK68XH;G!5l>{yE2CyWKJok+qin_f&Sf9XCzG{#zpEcW8j+ za(QpbGSGsdtnW|pLiqTr$^KI;x3B1+R#tSz5$&T$;aKi2&S z#u%P@^PY1~v;%_A?Bm6!wWh=2AbuAZWB7W#{`e=cPVf=XT9ekA(ljL^qG1@skHX)Z zkK>q>Qlyj;i5*;kVHij$MO9TrT5E}%o>EFtUDpva(_=RP0000000000006*ClfLFo zt!Wzea|vD7QB_s{y&sVY5&vdCw>;0IuIs36TUxDFqhg2@V6N$qN7hh(7U_V?>Y#*OX-$Wmy)qu4n;Hr;}v3r;;S0&1MrNNfNx~A7om{6uKUw761SM07*qo IM6N<$f-vysivR!s diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png deleted file mode 100644 index 2670821090fb2abb277f7fdc72ac5351a697be70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=8J;eVAr*7p-rUH0K!JzFVai|k zL=OHVd`rCK1Cl1}h(561d{Ln$P$3X7XRWo(4s%&@R%()H&TXbmDf_lvS6Y;wmv&mH zFJ1fTeWAYpe;_L5Hn&fH{aRu5mTO_|5yxYN8Z6D%EYY5%?+`x+q`=eF&t;ucLK6UH Czc#Y~ diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png deleted file mode 100644 index f68f0c4f15f84d288af693e957fa8e6a5a67e8de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5587 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 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png deleted file mode 100644 index 6b99414d0be62c8814460c118b82a3c7effd6ded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6173 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 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png deleted file mode 100644 index 2e4a031f15166f01e7cfbdce1b3f580854ff090c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 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 Hu0mjf9l6Tm diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png deleted file mode 100644 index 44aae3c0bfb91ebf9003c1a337b4e3bd96c7f5ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=S)MMAAr*7p-aN?JU?9M9AmRVg zB^}xtwnz3WbY$$AJhMI_(rkS;FHj`|!vhzWGwY3IzTUf@dMd&po4Z&y*Lro1s>_ix zyL`ebYp05;O?#Wo1XgMv@X({^YT5IP5|3ZXe6?_947ktdbwGR4;WHNJKngrv{an^L HB{Ts5vF$nj diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json deleted file mode 100644 index 583346556e..0000000000 --- a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/Citadel-Station-13/Citadel-Station-13/blob/971ddef989f7f4f365a714ef3d4df5dea2d53d9a/icons/mob/dam_mob.dmi", - "size": {"x": 32, "y": 32}, - "states": [ - {"name": "Head_Brute_60", "directions": 4}, - {"name": "LArm_Brute_60", "directions": 4}, - {"name": "LLeg_Brute_60", "directions": 4}, - {"name": "RArm_Brute_60", "directions": 4}, - {"name": "RLeg_Brute_60", "directions": 4}, - {"name": "Chest_Brute_60", "directions": 4}, - {"name": "Head_Brute_120", "directions": 4}, - {"name": "LArm_Brute_120", "directions": 4}, - {"name": "LLeg_Brute_120", "directions": 4}, - {"name": "RArm_Brute_120", "directions": 4}, - {"name": "RLeg_Brute_120", "directions": 4}, - {"name": "Chest_Brute_120", "directions": 4}, - {"name": "Head_Brute_200", "directions": 4}, - {"name": "LArm_Brute_200", "directions": 4}, - {"name": "LLeg_Brute_200", "directions": 4}, - {"name": "RArm_Brute_200", "directions": 4}, - {"name": "RLeg_Brute_200", "directions": 4}, - {"name": "Chest_Brute_200", "directions": 4} - ] -} diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png deleted file mode 100644 index 5a68c6fd86142ec705e4a3fdfc31362539c99527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=w>(`OLn`LHy`{+4Y#?&%W7_ls zNtT>_!U`TADnx{BPK#EpK6~z+$lO<#Civv2zMuN$|K}&aZ#kVkYzfrN@Z+G-*N10r zPQSxcdQ~Ru+3c9-b5^fD_KsnX#|Ndf3Vd}V3AH|2H64xAM(E) z=IDLc;`+>e8uO(RgH>~TSG3$c|8~OH?lX@o&sY8tcqXgk{zSFs`N0Yqp!x%ndl`KG VH|^bN+w=^i-_zC4Wt~$(69C9tdyoJC diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png deleted file mode 100644 index 2ca0dc67f153aeab95b43905762a2ef11afc6ea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)OnB%y`~1$%+~T0GsP;T2?`|QX;pO6*VYtnS+&}qyAtC)}$oMGy*NZpsJM; zS*AfXDaqTL3gs=Z6b_?kr)k5sMJP0fZo7TuTu>cPmA6*6-9{)hhYi~nMLSJP;jr>} z!cPO=zJA8s%ws%TdXE12PrNDDmB+aWdCR2P`KS2N`i}0O-+1xz6=KQEWP5SH0q>sQ z-z{k02Hu)(FMd|webqOd967K|gUa=W*xxPCr(fr&A3CbT1Xe$EP_)zZ`pG;ZTLod6 z2Av$K_n~wK6zw!^%N?<>I12!XY!$?%bAYbXRxa#^_mJy4ZCpABh-?)E04yxdVq5O$ z*@|u>xm05CZ_v*P9JIa_HOSkGuKL#+(OtY+DNXl--v-mXe=x=vV~jDz7-Nhv#{OeL zf1kf=b+2(BOUrDWbUdQYr4l5w@!Ro8d{jBqU#5~z0H8l7Fe(=i z#Es0Hn-l2tE(R&CNy()W^ytAuxVeC!<0+j1>#F}ZicY5fA{LT1`yBF)z4*}Q$iB}5+Ev@ diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png deleted file mode 100644 index 90d69223b6d72eaa60f7cc6f0db1e382c471f0b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=S)MMAAr*7p-rC69V8Fw2Am_ML zPUC{}GA3_0YgM$CJaK&|_G5eWZjlE5Z>2la&&<0WnSJNk?(!_=^~tZp7Mzu`t7$so z2Q&u=K8SOE|JlMZ+!5aw3`tm>CnJl7G|{e*ykymKwM8(KbLh* G2~7afpFL6l diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png deleted file mode 100644 index 36b911481623f94d094667de464ded479f148ba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=pFCY0Ln`LHy=BPP z;kJ&BIsUy}9Wwk&D+SCiry2x{&U}{n$z+R`(PoA9X-_j31smzu{Y{WOeyObXiP^&n zjjdWndwH+>PoMS1EM}>eQR#LCf8pHSc2UPR`ZjpS+L!&R$uha3Z?Ny*W1nY^O+0)y z(m=ODz~}Q^M2>!(}fN+hJEVT!P^~odTaTfovc7@Kp=42zwnU%c7b!JBOEmt a!9vk$ii)D0!fO`mgSeiqelF{r5}E*XE+$<7 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png deleted file mode 100644 index 7c8da637caf5e57123777180ed856099f3d9a25f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ydl>XLn`LHy=BP97%0H@!2OQn z>ZeM2ijP>7qyld~+gf#1E$=Z?$)Z4uqpQ9#omqF{_de!7Gf%2qKC^^{fkEKGhB%Y| zGklj^&J(sYjFSdhu4C*-xzv1Lpn0hfg@wr5ep!X7#*i zz5DO0d+t1oE#eMJ&97%* b_;E*Ca+c+*#_&@wK?Zud`njxgN@xNAQ7&Fy diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png deleted file mode 100644 index 2dc53776594eda8616ae777b1fe7f36586905cd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W)haSW-L^Y)f4*C7XiwucwP zX2%>Zu3*+>J$TBCN32PStBHfr)nnm=OU5^k9&_T>c6=M7?RY88%>K=9nFq;|X=UA! zf2z#g3JH_ diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png deleted file mode 100644 index bc8f7bf9cae96ef3cea682d8565b29613da562f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k)AG&Ar*7p-t^>UP~>57n6ikK zRhudBM&o%cg;s|df)~Dc+52(=6*^s+^qbdkdR9EAw}p||ZkKg$N?-H$DF9`FU_+bu oFU>OlL(hMFFHxSSC&$3>jAw$4vH_dU0!xs*r>mdKI;Vst065GmP5=M^ diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png deleted file mode 100644 index a84ef88da87977eec2d0cbbe110b03200b365640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=6`n4RAr*7p-g4w^FyLXmz*ca`c=j~M54gKgaE${Gx%7ZK5D%9MEVCuTKAlzN*P<$-+lD5cenb#`^;y~ z@L6w9^wR_y2?7UxKhiK+m;J-VQOQH5_1P2^p@l&+d8(7nie)-%x4-oLbf{8@)});- zQUX8btu%cFlm(JnANJPt&Nebs$0 zW{8^@7$(F&_A`#ZoizK}=gMV=yVo3xvATC|op(cUe%aMowW~+D=HP8 de%W5WQAe(?DWX@r#n>HWgr}>Y%Q~loCIC+AjaUEx diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png deleted file mode 100644 index 70b91d8824484b7eb0d26e2f4a9204086bd1fc89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Zk{fVAr*7p-U{SoP!MoA=$$1d zEO98{+C{Fe2aRV$D&&9f76d8-f&-lwU;Wv5v@h=TXIGl4mi-{tr2VRY@S^jLA5`0WO!f?qP<$27bx5>-)avwJ(2yP#gb>Bx}@MZYU-^p>aa zADnWV5oiEIgP>*DQihZ$W#2c?-Bb7eU*-Oj h#ez{c=d&^}OjyUi&A=p-f2ASV08dvxmvv4FO#t4~U0nbG diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png deleted file mode 100644 index 77e463d02f25c942442c9631580c675c1c40de16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC3<1aSW-L^Y)fK*C7Lu;~$r| ze~@@L?*Q`-Eh{Tg7lHpgvMvHH1qEMJ?k!!{wIjmi&MO7RLIYplXrcY{Emim1$z?tW zWdR!3@Ve}FXwomAt0^B#E|}k2kfE1y#&;T@N2=WmtMJh5ndT2Q1PfPh4GEk2SABBa z<(cCDr>O1zCh+EpblIgT3ch8zjNh*Bo@$WlF*!E6p;+d5`L1UPmeOiU>-7&=_HBK= zm34(}UQve<_r)&5xHZ~JO6?kxZaoewlL1-{0uAypvqWo>ztlH8y0pN=y#6NRd*kxy z%Ur`&e*3mdKI;Vst0K3J75C8xG diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png deleted file mode 100644 index 96b96b566bfdcc8fe9294152e98b75b18f72bed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=d7dtgAr*7p-a5$HV8G*W@eu>x zL!NVwb><#WlsQ#e!sy6-RPDpPo$dY_dzUN)sz0!Jao+V8ZDEqLlTX>4)PH;Vc4KMW zuPZzgcFr|8w|7}Bv(a{DpfaE>EHnS}T)2Gy_H_gE^S5?NFflNwlrwk5$eFx$b^HTT N;pyt{O)K5hU2 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png deleted file mode 100644 index efe3ad8b53949254861fd643dc9be21a0e3ba863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=)t)YnAr*7p-rUIR;2_bKxN(l| z5h<(QYg|Ikk?me91uf<0r8k`Z9sh3C{#8Kb3=9p%wbyg}&F5%dGwV;jqpD)|F|zag z+KAvsAKH_0Uz;3>b=tTrHRExcy~=h*u!e%GvDF8D^*Pt+R!0BH?38|0|7v&IXWokS YvU{Ah-&>p9ItxFVdQ&MBb@0AKk;DF6Tf diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png deleted file mode 100644 index 978e01358f9916f1bafbbe11dc05604611641e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=J3L(+Ln`LHy=BOC$UuZG;bYOg zMHW-n$?A&6?BbetAbO|8uBvvcR6&+bv)XI#Z!_0B#c}M}9>oaM%5cCt_I3{t6+f>C z)486vn{)fmB@x>`8?;!r-0^um$MyPe-SnGFl+vP>t;;>OZ{4A(4)NisatAxU&KEgd zW+`___Ry1=m%duPef*bk(iGiC_N*X78Ga;Ae9qFd*4Senrv;tljbpuYZdO{EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TBG{N9>XdFwmAx<_wJJj=q>dJsB7=~dOhG7_nVHoCrLfo|jCNvri@_iqc zWdQ)9_E%R|jmC7(L`+1KrV&C+C8)mdLn#FS!yt@J`dUWi{b&kUmSr-jMghoWtTRGN37r&>(rElfDbUYYXT>zv` zmja`@G)z{&PXJFfb(xdPV=>XBdWI7=~dOhG7_nVHk$_r_ugb zczb*M{mRP9=JD|{Y}+0dB*KM>N~MBYtv2!R102U8&+||$79;&wUtdS3)7jhD*m#>} zE43~_L}k}?mFIbAHk+_*8=mI@KxCnE8pKtFf=OsLn@~#C9mlEf?(SBE5NC0=5(7X) z1=n>|)Bxk0mi2)Eoz_x7w7;eM+!S*g!fUb{mq~5VT&rAI>EKIRj zocL3~)Tg<*xz^(1;^U~c)Te-L+fKXPu9K74h p5mAFi$gG3$e2St$L|Z!7{{{}G*oQsXOUVEL002ovPDHLkV1ipdIH>>t diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json deleted file mode 100644 index ebfd0e2dc7..0000000000 --- a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Created by Archer2150#2528 using assets from Rane. Fangs by discord user @Hyenh6078", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "placeholder" - }, - { - "name": "bottom", - "directions": 4 - }, - { - "name": "tip" - }, - { - "name": "verbiconfangs" - }, - { - "name": "underscales", - "directions": 4 - }, - { - "name": "torso_f", - "directions": 4 - }, - { - "name": "torso_m", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png deleted file mode 100644 index e0cb4814daf69c8d4488c2563bc810ab2b73b82e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 815 zcmV+~1JL}5P)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TEX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TTOp@q11ES=LF zpqJ=H)VU7M3OYOI5;;ms4v?{H3+eW|s8G=17o7Y*2!!{@4>8*Yg;w}5l*6k~+edZByo zVT{=VxN`DV+yZ4;?w)&VEv&UKuj{%qH;+AmBuP+J6#$^F>xD){+&KOln5L0Px# diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png deleted file mode 100644 index f818a478944e6aafe10e6febbd232745c1ccb64e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8155 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 bc>MY>_x1eBbC)sO`*o+QX{eE>b~X4vQ3J`u diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png deleted file mode 100644 index f818a478944e6aafe10e6febbd232745c1ccb64e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8155 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 bc>MY>_x1eBbC)sO`*o+QX{eE>b~X4vQ3J`u diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png deleted file mode 100644 index edc457a79b7e3bbb117a90a32d9016829319a14e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TFiG>?GT@Au4+FX^000000Ki>5B8z(O@855&wNR~WugIcO%Itll2_3+; zZL{~0Mgk&>BtQcGCjsHnwXW-T6xLcVIRXIy0001PXZSWZ<92vv&(OQTUd9{2%$~ys zknu`1v!?`%7LWi5kboKcIDOAU`EX>4Tx04R}tkv&MmKpe$iQ%gmv4(%Y~kfG{gK~%(1s#pXIrLEAagUO{ILX(Ch z#l=x@EjakGSaoo5*44pP5ClI!9G#pLU8KbSC509-9vt`M-Mz=%J3weum}+*71FB{j z=|o)2ga5(rZq4H4gqswK1A!OY{ul;=yFjyU+uz5w-8=#O&%l+|_E#Ig%qQvf zwiZ1C`nQ3L>$WEE0hc?#z>_W+k|X(P3dJJuen#Jv2g0{N&#K#7Yagc%K$f~%x&aOj zfsqnruX((?yR)}{&$Rmc0bv|+px1XgZU6uP24YJ`L;$(~0001^G^@%0000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2j&MA6)yp%*g)a{006>CL_t(o!|jy85yT(}MKJ}K z-t8d8aHJU0z~2)yhQVxHvp3!;6X65;l_*J)ByqIX001I_)*9Z>6A=J-rl+bfR23ou zA|ey%*P?);cx$D6f=KZW~Zl%odwzYTx%u&CLfL#}Ovl zL{AGv@sajdADDR}4@BR+fk&Qsd=m`s=H6)Dp#AOfLrk4lFZ%15N6mV+(E>A1o%@|1 sn0f6{TG@f+$81I5jh8e@k|g;%AKqC_gmCBwWdHyG07*qoM6N<$g2eMRN&o-= From fff734321a9480bc54422a90f61ddf52a7c488d7 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 23:00:43 -0400 Subject: [PATCH 76/85] Update meta.json --- .../OuterClothing/Suits/bombsuit.rsi/meta.json | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json index 63be30904b..906a91a7ec 100644 --- a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/meta.json @@ -1,17 +1,4 @@ { -<<<<<<< HEAD - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "icon" - }, -======= "version": 1, "license": "CC-BY-SA-3.0", "copyright": "Taken from cev-eris at commit https://github.com/discordia-space/CEV-Eris/commit/760f0be7af33a31f5a08a3291864e91539d0ebb7. lamia & segment by @noctyrnal, harpy by VMSolidus", @@ -23,7 +10,6 @@ { "name": "icon" }, ->>>>>>> EE-Master/LamiaSystem { "name": "equipped-OUTERCLOTHING", "directions": 4 From aac680c13c6bdc1a296ccfd112da5862bbb7f041 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 23:28:03 -0400 Subject: [PATCH 77/85] Finally done --- .../SiliconEmitSoundOnDrainedSystem.cs | 6 +- .../Weapons/Ranged/Systems/GunSystem.cs | 8 +- .../Components/PortalExemptComponent.cs | 8 + .../Systems/SharedPortalSystem.cs | 5 +- .../Ranged/Events/HitScanAfterRayCastEvent.cs | 17 ++ .../DeltaV/Entities/Mobs/Player/lamia.yml | 39 ++++ .../Entities/Objects/Books/hyperlinks.yml | 204 ------------------ .../Objectives/stealTargetGroups.yml | 7 - Resources/Prototypes/Traits/skills.yml | 1 + Resources/Prototypes/tags.yml | 3 + .../ERTSuits/ertengineer.rsi/meta.json | 7 +- .../ERTSuits/ertengineer.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1769 bytes .../ERTSuits/ertjanitor.rsi/meta.json | 53 +++-- .../ERTSuits/ertjanitor.rsi/segment.png | Bin 0 -> 372 bytes .../ERTSuits/ertleader.rsi/meta.json | 7 +- .../ERTSuits/ertleader.rsi/segment.png | Bin 0 -> 372 bytes .../ERTSuits/ertmedical.rsi/meta.json | 7 +- .../ERTSuits/ertmedical.rsi/segment.png | Bin 0 -> 372 bytes .../ERTSuits/ertsecurity.rsi/meta.json | 7 +- .../ERTSuits/ertsecurity.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 924 bytes .../Hardsuits/atmospherics.rsi/meta.json | 21 +- .../Hardsuits/atmospherics.rsi/segment.png | Bin 0 -> 482 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2095 bytes .../Hardsuits/basic.rsi/segment.png | Bin 0 -> 396 bytes .../Hardsuits/brigmedic.rsi/meta.json | 7 +- .../Hardsuits/brigmedic.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 968 bytes .../Hardsuits/capspace.rsi/meta.json | 21 +- .../Hardsuits/capspace.rsi/segment.png | Bin 0 -> 467 bytes .../Hardsuits/cburn.rsi/meta.json | 7 +- .../Hardsuits/cburn.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/clown.rsi/meta.json | 3 + .../Hardsuits/clown.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1116 bytes .../Hardsuits/cybersun.rsi/meta.json | 21 +- .../Hardsuits/cybersun.rsi/segment.png | Bin 0 -> 479 bytes .../Hardsuits/deathsquad.rsi/meta.json | 7 +- .../Hardsuits/deathsquad.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1991 bytes .../Hardsuits/engineering-white.rsi/meta.json | 21 +- .../engineering-white.rsi/segment.png | Bin 0 -> 476 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1908 bytes .../Hardsuits/engineering.rsi/meta.json | 21 +- .../Hardsuits/engineering.rsi/segment.png | Bin 0 -> 457 bytes .../Hardsuits/lingspacesuit.rsi/meta.json | 9 +- .../Hardsuits/lingspacesuit.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 3521 bytes .../Hardsuits/luxury.rsi/meta.json | 21 +- .../Hardsuits/luxury.rsi/segment.png | Bin 0 -> 537 bytes .../Hardsuits/maxim.rsi/meta.json | 9 +- .../Hardsuits/maxim.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1668 bytes .../Hardsuits/medical.rsi/meta.json | 21 +- .../Hardsuits/medical.rsi/segment.png | Bin 0 -> 452 bytes .../Hardsuits/mime.rsi/meta.json | 3 + .../Hardsuits/mime.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2249 bytes .../Hardsuits/paramed.rsi/meta.json | 21 +- .../Hardsuits/paramed.rsi/segment.png | Bin 0 -> 442 bytes .../Hardsuits/piratecaptain.rsi/meta.json | 3 + .../Hardsuits/piratecaptain.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/pirateeva.rsi/meta.json | 3 + .../Hardsuits/pirateeva.rsi/segment.png | Bin 0 -> 372 bytes .../rd.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1025 bytes .../Hardsuits/rd.rsi/segment.png | Bin 0 -> 446 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2000 bytes .../Hardsuits/salvage.rsi/meta.json | 21 +- .../Hardsuits/salvage.rsi/segment.png | Bin 0 -> 460 bytes .../Hardsuits/santahardsuit.rsi/meta.json | 7 +- .../Hardsuits/santahardsuit.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/security-red.rsi/meta.json | 7 +- .../Hardsuits/security-red.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/security-warden.rsi/meta.json | 7 +- .../Hardsuits/security-warden.rsi/segment.png | Bin 0 -> 372 bytes .../Hardsuits/security.rsi/meta.json | 7 +- .../Hardsuits/security.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 2058 bytes .../Hardsuits/spatio.rsi/meta.json | 22 +- .../Hardsuits/spatio.rsi/segment.png | Bin 0 -> 513 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1039 bytes .../Hardsuits/syndicate.rsi/meta.json | 25 ++- .../Hardsuits/syndicate.rsi/segment.png | Bin 0 -> 947 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1037 bytes .../Hardsuits/syndiecommander.rsi/meta.json | 21 +- .../Hardsuits/syndiecommander.rsi/segment.png | Bin 0 -> 947 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 934 bytes .../Hardsuits/syndieelite.rsi/segment.png | Bin 0 -> 420 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1157 bytes .../Hardsuits/syndiemedic.rsi/meta.json | 7 + .../Hardsuits/syndiemedic.rsi/segment.png | Bin 0 -> 576 bytes .../Hardsuits/wizard.rsi/meta.json | 7 +- .../Hardsuits/wizard.rsi/segment.png | Bin 0 -> 372 bytes .../Suits/ancient_voidsuit.rsi/meta.json | 7 +- .../Suits/ancient_voidsuit.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1925 bytes .../Suits/atmos_firesuit.rsi/segment.png | Bin 0 -> 457 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 815 bytes .../Suits/bombsuit.rsi/segment.png | Bin 0 -> 445 bytes .../eva.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 902 bytes .../OuterClothing/Suits/eva.rsi/segment.png | Bin 0 -> 419 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 941 bytes .../Suits/eva_emergency.rsi/segment.png | Bin 0 -> 409 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 903 bytes .../Suits/eva_prisoner.rsi/segment.png | Bin 0 -> 369 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 919 bytes .../Suits/eva_syndicate.rsi/segment.png | Bin 0 -> 434 bytes .../fire.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1579 bytes .../OuterClothing/Suits/fire.rsi/segment.png | Bin 0 -> 425 bytes .../rad.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1846 bytes .../OuterClothing/Suits/rad.rsi/segment.png | Bin 0 -> 425 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 807 bytes .../Suits/spaceninja.rsi/meta.json | 53 +++-- .../Suits/spaceninja.rsi/segment.png | Bin 0 -> 420 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1238 bytes .../Hardsuits/Combat/advanced.rsi/meta.json | 21 +- .../Hardsuits/Combat/advanced.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1309 bytes .../Hardsuits/Combat/corpsman.rsi/meta.json | 21 +- .../Hardsuits/Combat/corpsman.rsi/segment.png | Bin 0 -> 399 bytes .../hos.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1328 bytes .../Hardsuits/Combat/hos.rsi/meta.json | 21 +- .../Hardsuits/Combat/hos.rsi/segment.png | Bin 0 -> 399 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1242 bytes .../Hardsuits/Combat/medical.rsi/meta.json | 21 +- .../Hardsuits/Combat/medical.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1316 bytes .../Hardsuits/Combat/officer.rsi/meta.json | 21 +- .../Hardsuits/Combat/officer.rsi/segment.png | Bin 0 -> 399 bytes .../riot.rsi/equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1259 bytes .../Hardsuits/Combat/riot.rsi/meta.json | 21 +- .../Hardsuits/Combat/riot.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1244 bytes .../Hardsuits/Combat/standard.rsi/meta.json | 21 +- .../Hardsuits/Combat/standard.rsi/segment.png | Bin 0 -> 372 bytes .../equipped-OUTERCLOTHING-lamia.png | Bin 0 -> 1333 bytes .../Hardsuits/Combat/warden.rsi/meta.json | 21 +- .../Hardsuits/Combat/warden.rsi/segment.png | Bin 0 -> 399 bytes .../Lamia/lamia_tails.rsi/body3tone1.png | Bin 0 -> 625 bytes .../Lamia/lamia_tails.rsi/body3tone2.png | Bin 0 -> 699 bytes .../Lamia/lamia_tails.rsi/body3tone3.png | Bin 0 -> 648 bytes .../Lamia/lamia_tails.rsi/bottom3tone1.png | Bin 0 -> 763 bytes .../Lamia/lamia_tails.rsi/bottom3tone2.png | Bin 0 -> 869 bytes .../Lamia/lamia_tails.rsi/bottom3tone3.png | Bin 0 -> 1083 bytes .../Lamia/lamia_tails.rsi/meta.json | 41 ++++ .../Lamia/lamia_tails.rsi/tip3tone1.png | Bin 0 -> 611 bytes .../Lamia/lamia_tails.rsi/tip3tone2.png | Bin 0 -> 551 bytes .../Lamia/lamia_tails.rsi/tip3tone3.png | Bin 0 -> 567 bytes .../Mobs/Species/lamia.rsi/bottom.png | Bin 0 -> 1227 bytes .../Mobs/Species/lamia.rsi/meta.json | 36 ++++ .../Mobs/Species/lamia.rsi/placeholder.png | Bin 0 -> 815 bytes .../Mobs/Species/lamia.rsi/tip.png | Bin 0 -> 674 bytes .../Mobs/Species/lamia.rsi/torso_f.png | Bin 0 -> 8155 bytes .../Mobs/Species/lamia.rsi/torso_m.png | Bin 0 -> 8155 bytes .../Mobs/Species/lamia.rsi/underscales.png | Bin 0 -> 621 bytes .../Mobs/Species/lamia.rsi/verbiconfangs.png | Bin 0 -> 710 bytes 157 files changed, 595 insertions(+), 439 deletions(-) create mode 100644 Content.Shared/Teleportation/Components/PortalExemptComponent.cs create mode 100644 Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs create mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Books/hyperlinks.yml create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertjanitor.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertleader.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertmedical.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertsecurity.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/atmospherics.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/brigmedic.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/clown.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/cybersun.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/luxury.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/medical.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/mime.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/paramed.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/pirateeva.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/salvage.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/santahardsuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security-red.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security-warden.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/security.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndieelite.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/wizard.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/ancient_voidsuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/rad.rsi/segment.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/spaceninja.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/spaceninja.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/corpsman.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/corpsman.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/officer.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/officer.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/standard.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/standard.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/equipped-OUTERCLOTHING-lamia.png create mode 100644 Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone2.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone1.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone3.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/meta.json create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone1.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png create mode 100644 Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/bottom.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/tip.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/verbiconfangs.png diff --git a/Content.Server/SimpleStation14/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs b/Content.Server/SimpleStation14/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs index a9a29fed37..d9f25f9879 100644 --- a/Content.Server/SimpleStation14/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs +++ b/Content.Server/SimpleStation14/Power/Systems/SiliconEmitSoundOnDrainedSystem.cs @@ -1,5 +1,5 @@ using Content.Server.SimpleStation14.Silicon.Death; -using Content.Server.Sound.Components; +using Content.Shared.Sound.Components; using Content.Shared.Mobs; using Content.Shared.SimpleStation14.Silicon.Systems; @@ -18,11 +18,7 @@ private void OnDeath(EntityUid uid, SiliconEmitSoundOnDrainedComponent component { var spamComp = EnsureComp(uid); - spamComp.Accumulator = 0f; - spamComp.RollInterval = component.Interval; - spamComp.PlayChance = component.PlayChance; spamComp.PopUp = component.PopUp; - spamComp.Enabled = true; spamComp.Sound = component.Sound; } diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index fbc46f5917..69dd9626d5 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -203,7 +203,13 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? if (!rayCastResults.Any()) break; - var result = rayCastResults[0]; + var raycastEvent = new HitScanAfterRayCastEvent(rayCastResults); + RaiseLocalEvent(lastUser, ref raycastEvent); + + if (raycastEvent.RayCastResults == null) + break; + + var result = raycastEvent.RayCastResults[0]; var hit = result.HitEntity; lastHit = hit; diff --git a/Content.Shared/Teleportation/Components/PortalExemptComponent.cs b/Content.Shared/Teleportation/Components/PortalExemptComponent.cs new file mode 100644 index 0000000000..28043808e0 --- /dev/null +++ b/Content.Shared/Teleportation/Components/PortalExemptComponent.cs @@ -0,0 +1,8 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Teleportation.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class PortalExemptComponent : Component +{ +} diff --git a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs index 8d67aec518..7e1124cef7 100644 --- a/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs +++ b/Content.Shared/Teleportation/Systems/SharedPortalSystem.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Content.Shared.Ghost; using Content.Shared.Movement.Pulling.Components; using Content.Shared.Movement.Pulling.Systems; @@ -83,6 +83,9 @@ private bool ShouldCollide(string ourId, string otherId, Fixture our, Fixture ot private void OnCollide(EntityUid uid, PortalComponent component, ref StartCollideEvent args) { + if (HasComp(args.OtherEntity)) + return; + if (!ShouldCollide(args.OurFixtureId, args.OtherFixtureId, args.OurFixture, args.OtherFixture)) return; diff --git a/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs b/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs new file mode 100644 index 0000000000..99bfd1eabc --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Events/HitScanAfterRayCastEvent.cs @@ -0,0 +1,17 @@ +using Robust.Shared.Physics; + +namespace Content.Shared.Weapons.Ranged.Events; + +///

+/// Raised after an entity fires a hitscan weapon, but before the list is truncated to the first target. Necessary for Entities that need to prevent friendly fire +/// +[ByRefEvent] +public struct HitScanAfterRayCastEvent +{ + public List? RayCastResults; + + public HitScanAfterRayCastEvent(List? rayCastResults) + { + RayCastResults = rayCastResults; + } +} diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml new file mode 100644 index 0000000000..1f5397e5dc --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/lamia.yml @@ -0,0 +1,39 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + +- type: entity + save: false + name: Urist McNoodle + parent: MobLamiaBase + id: MobLamia + description: A miserable pile of scales. + components: + - type: CombatMode + - type: InteractionPopup + successChance: 1 + interactSuccessString: hugging-success-generic + interactSuccessSound: /Audio/Effects/thudswoosh.ogg + messagePerceivedByOthers: hugging-success-generic-others + - type: Mind + - type: Input + context: "human" + - type: MobMover + - type: InputMover + - type: Respirator + damage: + types: + Asphyxiation: 1.5 + damageRecovery: + types: + Asphyxiation: -1.5 + - type: Alerts + - type: Actions + - type: Eye + - type: CameraRecoil + - type: Examiner + - type: CanHostGuardian + - type: NpcFactionMember + factions: + - NanoTrasen + - type: PotentialPsionic diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Books/hyperlinks.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Books/hyperlinks.yml deleted file mode 100644 index 03426729d9..0000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Books/hyperlinks.yml +++ /dev/null @@ -1,204 +0,0 @@ -- type: entity - parent: BaseItem - id: BaseHyperlinkBook - abstract: true - components: - - type: Sprite - sprite: Objects/Misc/books.rsi - - type: Tag - tags: - - Book - - type: EmitSoundOnPickup - sound: /Audio/SimpleStation14/Items/Handling/book_pickup.ogg - - type: EmitSoundOnDrop - sound: /Audio/SimpleStation14/Items/Handling/book_drop.ogg - - type: EmitSoundOnLand - sound: /Audio/SimpleStation14/Items/Handling/book_drop.ogg - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookSpaceLaw - name: space law - description: A big book of laws for space courts. - components: - - type: Sprite - layers: - - state: book_space_law -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Space_Law - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookSupernanny - name: book of unsanctioned space punishments - description: The ravings of a madman. - components: - - type: Sprite - layers: - - state: book_space_law -# - type: HyperlinkBook -# url: https://supernannyfanon.fandom.com/wiki/Category:Discipline_Techniques - -#- type: entity -# parent: BaseHyperlinkBook -# id: HyperlinkBookGlimmer -# suffix: GuidebookBook -# name: A Layman's Guide to the Mind -# description: A guide on psionics. -# components: -# - type: Sprite -# sprite: SimpleStation14/Objects/Misc/books.rsi -# layers: -# - state: book_psionics -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Glimmer -# - type: GuidebookBook -# guides: -# - Psionics -# - AltarsGolemancy - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookChemistry - name: chemical recipe book - description: A list of chemical recipes. - components: - - type: Sprite - layers: - - state: book_chemistry -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Chemistry - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookBartending - name: bartender's guide - description: A list of drink recipes. - components: - - type: Sprite - layers: - - state: book_bar -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Drinks - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookCooking - name: cookbook - description: A list of food recipes. - components: - - type: Sprite - layers: - - state: book_cooking -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Cooking - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookBotany - name: botanical field guide - description: A guide to plants. - components: - - type: Sprite - layers: - - state: book_hydroponics_pod_people -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Hydroponics - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookShuttle - name: guide to shuttle construction - description: A guide to building shuttles. - components: - - type: Sprite - layers: - - state: book_engineering -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Shuttle_Construction - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookAlerts - suffix: GuidebookBook - name: What to do When Things are Blowing Up - description: Procedure for when and why each alert should be put in effect, and what to do. - components: - - type: Sprite - layers: - - state: book_nuclear - # - type: HyperlinkBook - # url: https://wiki.nyanotrasen.moe/view/Alert_Procedure -# - type: GuidebookBook -# guides: -# - CommonAlerts -# - SpecificAlerts -# - CentCommAlerts - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookProcedure - suffix: GuidebookBook - name: standard operating procedure - description: A guide to normal station function. - components: - - type: Sprite - layers: - - state: book_particle_accelerator - # - type: HyperlinkBook - # url: https://wiki.nyanotrasen.moe/view/Standard_Operating_Procedure -# - type: GuidebookBook -# guides: -# - StandardOperatingProcedure - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookPower - name: guide to power - description: A guide to powering the station. - components: - - type: Sprite - layers: - - state: book_engineering2 -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Power - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookMedical - name: guide to medical - description: A guide to the medical department. - components: - - type: Sprite - layers: - - state: book_infections -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Medical - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookHacking - name: guide to hacking - description: For emergency use only. - components: - - type: Sprite - layers: - - state: book_hacking -# - type: HyperlinkBook -# url: https://wiki.nyanotrasen.moe/view/Hacking - -- type: entity - parent: BaseHyperlinkBook - id: HyperlinkBookAtmos - suffix: GuidebookBook - name: How to Make Gas Hot - description: A guide on Atmospherics. Make sure to grab the thrilling sequal; What to do When Gas Hot. - components: - - type: Sprite - layers: - - state: book_engineering2 - # - type: HyperlinkBook - # url: https://wiki.nyanotrasen.moe/view/Atmospheric_Science -# - type: GuidebookBook -# guides: -# - Atmospherics diff --git a/Resources/Prototypes/Objectives/stealTargetGroups.yml b/Resources/Prototypes/Objectives/stealTargetGroups.yml index b561998801..aca67b2654 100644 --- a/Resources/Prototypes/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/Objectives/stealTargetGroups.yml @@ -1,12 +1,5 @@ # Traitor single items -- type: stealTargetGroup - id: SupermatterSliver - name: supermatter sliver - sprite: - sprite: Supermatter/supermatter_sliver.rsi - state: icon - - type: stealTargetGroup id: Hypospray name: hypospray diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml index ea3730b9bc..35c2e17371 100644 --- a/Resources/Prototypes/Traits/skills.yml +++ b/Resources/Prototypes/Traits/skills.yml @@ -24,6 +24,7 @@ requirements: - !type:CharacterJobRequirement inverted: true + jobs: - Borg - MedicalBorg - !type:CharacterTraitRequirement diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 786f641ddd..5903adb595 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -10,6 +10,9 @@ - type: Tag id: AirSensor +- type: Tag + id: AllowLamiaHardsuit + - type: Tag id: Ambrosia diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json index 4fbd43a08b..a3e0090b8f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/meta.json @@ -19,8 +19,11 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 + "name": "inhand-right", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/ERTSuits/ertengineer.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D27XCIK~#8N?OI)E z990y)8&Q*u(PrCbZ9Wf-@Oh9~4#0QN~UlobqgP^`h z9whh^l=MMFd?^0Z#7#@{v$PVDZZ>AqB)Ex6cAW2K&gAxHcjn&NnZ%m;;Bx2w?0n~Z zbMBpG&SfD&ga{ELM2HYO6%nhxp^!`_4eQdz#KeRrUuvvc2`3JJYJglefch|Qbp-
H_e6Q8jQKP|GE znHkp9)WrKqeYDY!am*u8{DRC6fE!Me4PNF&O8g}J z(9n>5?Ump0-3bM0ec{HUqUgVyy>72N0?iYDXANni62BM~1bX_q{7QSk@%DZ@oQNFj zZ8AG%uRH3;Jk0kKGC!U!);Sflz4AM%L+{>?2A|_Z;*+ifC=XFyIQ|LyqW?$s)yT7+ zBfyDYi~@1(>+(AeLQN2X9IqR!IkAm(M>R-klM>t2E&-A6yYGLnMk?d6M<3DRcQvl7 ztIGg+UteG3(EUeTch%9~h9lkG-3E*p7#Q&EJVEB))wtUlVXU}nuxRZD#kGZbZGL3~ zLB2ncW($QsSYvFD)w==ezijRcFv9Bg6(m3+eV7&IrrGq&9BXOb%g4Y^0`Lw+C~blS zkbt}#;5^2Ig6zBu^kZBlN=0Z1P>GySNu2*Ov;+VuJ>?*uz6g2%#7DK$gK>hE0NJq- zJJjWZevEGgz$Zd(>p)9@`Na~iYipyM3P9sQ0r!Wq;Dg|?UG=<18~tARwFGEv*qB}{ z7VSb1$AiF4r3LP6T{Oy8EN;|jqaWkC(6V@Gah}(r(*U(;JP6S1Eq8T_w~3Q#>JRKS zNH-q6m}R^7nD6^5Q+7cc{o=eJP|k*Gxjh-XuQg??6ql_QGefX}U7Z>a%yAj}(+?V} z#U(TRmpONB^mcZ6?B^}x5AlD(wug;jX#I25MkM0wVzBS68vvmIR=r~p3SiYc7NG!E zy z_jwxnKqAf4V-N+!ni4otsgz+lzxK-MuUX=r6u0GC{Riyc=v&qdb!a^~`c6-Y2qYl@ zBrH@@Q8IKQz;qn-Z1XGVs}s=EY~4Mo=Vua!UfH91`Fz=H0lX&nJNJ3DJ8Cnwi# zt*f_s)m)zGxDqHzYhXX%K4VM7+Wr^Cm?`$^IbeO1;qBYuwTx78>j$)xeRJd z2iJ~1{J5PEy)=5B*FZz8mDhi-6nO1skLxBVI*-#BZHFG<1Z1bZ zo!}?{sYa=1r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW 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 Ze*tm1Ghqf)!mj`T002ovPDHLkV1kXR3R?gG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/basic.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..91747f2ee639ffafa7f0bf9dbf7048db0935647b GIT binary patch literal 396 zcmV;70dxL|P)1N4e4&jZZ$LPYA6XY5UEImdS z7Q_&70=%(gNhZSy=+HU}Emds^DU096`_2EpXZ(;i(=_qOczS5{1dsp{Kmter2_OL^ zfCK?hpg*5 z_WS)z>$>i?CI%*Y488g3beiS2+wJ0XtOj7M#ahcajwq!77{?I+Ap`(z+hVPa0th|> zRaL#*7xTrJK>XTO0kSN+)^&XV7={6*6ha7u5GbV>h5>-Ot`Aw3T|<4N{)EODnx@$S q@5Y$dd#!1j58%xhbNzk}^85q`?1=;8p{I}l0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj5KTu3mMHVzhI%k0`OkUHSHXR)u10pmW8yo-5Tc&s) zb4(!)4h|ze6$~{8ELLuCVFOV{0vHq)$32;bRa{vGi!vFvd!vV){sAK>D0`W;iK~z{r z?N)1(;vf*@v8W5itZV-NZ@unuAVWa!s_v^@r3u|L9Ucjc+x`h*}Z zzTZ0^B3mv7KXZWYzL5OoI=$UOPbnfGrZjU9-JMP+*Xz4Mg1-MLyF*xy2l!rZcOkjt ziF3qVP<97(=P&UB1FKg9F%D-K#EU#i`HDo{`FM`co1}a*xWwM3J_9R96tdaz~WA|T{#+Jh};OoDg0)7u;XIbEa& znGNMD*zufX5^*)l&dkkc|uqUc-(%weZDgTQCV3erCe1`8HBAjom1(=r&a zkDl)s@^L-pL&xYiJ}#7>y@?xCc7l)hUO5X%tOm*f)&MJTyWOx7FARbXp?g4QkO~Y6 zrfO;s9487tbWu6L7(iWNuyPE_b-)18M}BL2k~Kg;5d(BVnI5SWnIl}3Ax!KuUmTR_ zQC8Jg`<~k#{5S{Q;i^oJxo!>I@m2q1|eW1hu5m{fD2y2k;;a84$B?eGSzu|5l zVGZs91_1}G5(7{>1Q@_U3E&>MKUYEtqBBT-$r-Q8D+7)o zFF3rFAglpu15^)hdw?p&v54AX?(vdw74fgc0G1!DR}rU-HDH0Ib)GTl9?A{C5F{Jvr97ToHCSWYLm#bAGS1U+yE!ZOm82|9*n|)Sl8G22wGQ(+CMlG qjq!ET6dGfmt5*SpzvLfdw(Soqb^mz&hw%Xb0000Xq=P) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json index 7f50fdcf08..56b23c00af 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Made by Emisse for SS14", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Emisse for SS14, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/capspace.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a4dbb38287bea806df67c8a87d228928fbd14c GIT binary patch literal 467 zcmV;^0WAKBP)R{#n?0Vn_kpa2wr0#E?Jwrt?h`Q_r{@nh%{1_6`l6adRKu^oq<-GlTiTKno^ zJpikc?-lw0ybZo%QxGwrtp#9}%KBsmK=I!mnE;aN6BT#o1-{HK$=T8NFc}r5?)qO78%G?Ntf8EgQJDz3NH&EbO-Kfiv5yhVy4B&o9rVnJj+fyTSkf002ov JPDHLkV1n01$@l;O literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json index 2de954bbf9..069e34790f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/meta.json @@ -23,8 +23,11 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 + "name": "inhand-right", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/cburn.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj5U{Fj{MKUrnCMG5n6cjc#HXR)u0RI5B9u5G2Kme9Y zC@3h`I42$+9zQ=n0Aeu!$72r<4*;uG0DeDiAtiq|IzmE1LqkJI0s>+K1AiwgT^t{6 zAte9+0B{u-H8nLmJ39aX046j9M*si-AaqhrQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC0 z|NsC0|NsC009;%f?EnA(32;bRa{vG}(*OW9(*X=2Lw5iG16fH#K~z{r?UwC&;vf)( z$rw>27L74rHO>9sJi_fFA=yv7GQTfGB85NQdL+ zg8#0B`LraYBep~i;OFm_gmmCN;j?(W6r6HjB8$gC2|&_;ilV^pBS+>sQmM)kZ;~AG ziU4^!XvD@#2GN*(v0We?c3YSpn^W}2oXw>y`F31I?g^7HFk z?Fpng8b$hSs6+)N8L8tkjR4&UD)Id{yh{?zl0bK%TM$ajZ?(8jgb6?ZsQM;uHC9Pj z$MI3t3VN7OfqB5U93KJpB&o+D)p#k>TeqJRtizPgXQ<%$37i`V5g@J63KyWXvCHf?6hw3O?>2Ewg|ZwgLcoLdF&#_yElP2zVuc*9Ktl2SDOa0Nfn77qANw8SD9@ z55U}y06bzctTHmv2Yyt>j{u;lYnrA*#(ER7egt$xUxSD`j-|@@5zu@5pso2iKLPX| zf5Z0tjGqFK;>Dl0wBgSIf1zK%9FXnGOQnhb6@a$8I)JQ%=3k`kdj=ph@NWnrB=Nv2 z$=|E+w7x4M98rkWp2tvSBG8;((&A+t=X>%1gywE*W4uHl%lt>}IK$f%V1Gw=4y6DP{ zyFQC67e0U+!6)b@^a&KiQp8K4wA#VINa47UlvXR9ir{7r90<&xf4+0h3?!b2@Sm~t zue&<{2jBo4fCF#<4!{980Km5u)_s5KKke0+gc;7Fzoku z?e`V}us#E`jPpFV*8UW>9q@(|)!#ineG}Y0K8?FD`~;Xge*n+sPE9PKX4{?7Jz z^I9HEY0krU01C~;!<*GDumS)mm&;Ndwptz#$1$Z+2>`7%?RI+%am*Tk*XeZT`dXiX zD2k}HKWCmK2>`|z0D>SONfK%|Hvq(OWNT~R0b@+0lzJ|z{wcK9G@H#WrBt`oYR&bv zzJ^MvZkA;yT5F6kGgE6#mSrbOsjjUrB4V9snj#{Rh+L&{g V_@tr*5fA_X002ovPDHLkV1i!G%?tnl literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json index f6910b12aa..acc4195b3f 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/meta.json @@ -23,8 +23,11 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 + "name": "inhand-right", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/deathsquad.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 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 Ze*nFAI!&egNY(%V002ovPDHLkV1fw%v>pHe literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json index ef5e62cca4..0c75fe63b5 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/engineering-white.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..2217a8685712c7747e80e089d4d7e365a3434cab GIT binary patch literal 476 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json index 0249e35995..61121c1bff 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/meta.json @@ -19,8 +19,11 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 + "name": "inhand-right", + "directions": 4 + }, + { + "name": "segment" } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/lingspacesuit.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 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 b&PtjWXUU}2fwph900000NkvXXu0mjftp4pK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json index 3641da6f50..0a10fc9d33 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/meta.json @@ -19,8 +19,11 @@ "directions": 4 }, { - "name": "inhand-right", - "directions": 4 + "name": "inhand-right", + "directions": 4 + }, + { + "name": "segment" } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/maxim.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1{q02K~#8N?V3?& z97Pz%=W2avBsM`2lD5XANlL1iQuLudC~DL`C>PO}3TnlahKp2DYAp@5q-ZIMiaAoO zSbeUTppd9(K_4QBiUl<^NfS$LBBCTU(7vcS?>D(`nQrfHXYOwAK=%jB%+BuZ|NFlA zc6O6*RYXKYL_|bHM8yA;Sf&l6zrR0~>1uj_y;CG|9dVKt4m`76ojU!M zZoz-tR^KWEP8@qxjgF3L$4qegz{zvEPs?%6_2k;74autNOm8{pa@<8f?}A~b zl3euO?JwyR$9Vzgw=7Luc8*Z!qSUwXx>!y3%S)NvE3W&v?zKSth{gs(E zC+2-m)S=;qD%DW8O84RH+$DAPw~Lv*Ww;+pfq5NM9}*WAReQSq;9!rZf9m{&rQ6eO zw)H9-R<{7Dg~RLb-{nQ$yai<8Av4Z=_LdHaWJ@v6<$U@qeqF!(sE)3^S?z!Om>w%c zKkq?SQkm(VSDsgoY~7>#`7+?ckwdC~@9VnHxZDzj5TyUb_rI&VHeFwozEuDaZ@P9- zB|lyjm;s50E~)81tF;lu1mN*o8&)i?{OcdTeh{wufySNr;YbSc*t*>@n->gHE_Lp3 z3M1Cvva=xPP5kLUvBdgh-m`h+ z3G&PZS#W??(bm@1k_W)A57=O8Lsd^J{0jHG^;p052tSzwPKd>TN=)UVefY85z;7Xv=;fIA;J04R2(7 zcWm=E_Wk!~7!Z7%HEp0}pK+NS7n}lslL+$ipyQd-A})dmwpvalgkFtuDWrf8XFsP(snx8G~o2l7xWlx zxM_9h&I^7Uiq$U2STVvRY{yM1tsfB)5fKp)5fSlU!1?uYaB%R7*HGx}>@4f6XhrPc z-{c6(zrSeN2ijall@ierO}{O+Rbj#U{{iNOrA|)^^yBfk?w13!yJokwCRYf`AbsN~K5w z5+*nge3XH<1fM>(f!Jz;^@5R1oln&beUsT+uE?*sL=^v?S%3eOVZ}C0sJV$xv2TGu5aDXR8*6QkqJ`qb}3+7D3Yn zU{YKv(#`>pSq941FFe^-(F}O){a){T0AMV%0APUW=o`tdv{-XlW?%4UL45O+dM>eC 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 kzwZGr6~`I;%p>Le0%BEVnx&QzG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json index 8840689d9e..8a58b1f623 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/meta.json @@ -21,6 +21,9 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/piratecaptain.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj5JWxzjMV69T*wdUTDJecaK3^hdtfy$gy?li?nO09p zZYOst%>Mv{|2d5RIr#s5{Qq9U|F^PoD11?EKK~z{r?Uw73 zn=lN8jSR#g+culL|GV}(wg5pOJDvV&XHRC=MwesBSEc7);+x>#BS?bx9r1JSpOL22 zb=GxTitv$Au5I2A;^@;bTDEaWy-S4EwohZq0&TRI(O+P&V)$Qzej(^D3{Z1qh-l&H zFV{XB1eW`2(9ZJanLu-Q6EmCPW+_iw0#ZmwZOTjl zy)^6z@F#^D0V!a+O@UoXegu)dU1oV{@t-^bQdwu&fg17|7`S{PAV>mpFpx`EnBw-0 zmTd7~3Fr>@QMfPpZBYq6D}hUdNB|f?jZ3zWB7N5XE)gOD`4hm)CYqrD*gy)wCBly2 ze!rg+XokhV>;WMXKs^lnZ46f6iZTsv2$)?!>yj;Cmw_6W2$6v0dpsUmPM2)KIBJdHk{8tCfl^^e#}SA?)yLUxswz@oDvu(-RYig( zskmqdX)wSnAFYCp0@cgc5y;LZAP}$x%x+q%ppVcxr<+mihG_~ty?dI6&p^5buR9BY zQ794Cjubz+}Z(c_;p7$9|w2a0MEA4rIydh`?g;#twTEk`VQZ?uP)u>vn vMj>CKQYHJ&zcDBa|J)E%iZA^4HqYm8_R;BYQ(Knl00000NkvXXu0mjf44})c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/rd.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..972865cd17c916bd017e9d28d0797c479f358d6e GIT binary patch literal 446 zcmV;v0YUzWP)3e0{8ajj^Gg80^UKpld=z&boxDb8fO&Pa zT4#{5fOs20%3|qj9S2~{hY+ueHfWjAEnw`RGGFxlub6FSQ~@bJE90v8y6;~AmSU4B zlC)o0i=$KHuQvvelj&02^E@b}002aUB<&-PjP>2QT=EP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2W3e_K~#8N?V5XN zmQ@_bfAf-TOOtfY3l4O`W)^OOWe#1Y8EK*IowiD=X<*nA#0bqUm{%eZWJ&#DtF&6R z4TVxrL=@Iu+L5<{D9Zk6|Sk-hD6_WZ`P$L)R3^X`3D^uAwsIL|rH<@^2p&hMP( z@;gZvHq}WyqlZ(*EfNlJ%D6?s0ZtjWNI1YL;}!`AIAz?z*PGzWWjlgj_1z|S4sDbd zCmu+0nq~E&{NQJ22g>+M^JP`>?6&r3!_8kbYl_ne}=^@F`+ zaKGO2%=F&A`K=tFf@%l!Q2;r(g)&ch3|<$`DYv&)Zd4*<}ZK z`IXm=viB=x#c+i<869^k~;0~^SF-dyMm7RO^CN}zFJc% zcYIK4O2$5&LGSzJ_x&EgjGLC$>TP-gP^Y~+pgi6Pa1TR22ZANDa=(Yz(dP1ogaN#d2)Y3>xfA~X9k0TuRG9QH934sQO9NAiO?+5IIoImH~i z(sZ@m{?YHw%d%X5{MN6+7@t2jUHYc>ksW0Lx$W_@&JmHX-x(^ii!0^Ql|SXcvHEu3 z3DJZ)AbmiZT)ujx%>g&2q)Pp-4Q&o^PPc;fQ$XLuR#sdUK1i4Vb)!x@(DR~=eND64 zj0YI)E@|gD=a~jeSUZ5%%MqEQWNl%J`Rd~ls2g?KInH^p0KIDi+w&Bi4uPAN4tDlh z@$8(e;1dOTvZ(Zgsjqmd$dq9H8|9{avm{I2uBw*TK0XokA@I^;S?wagI|P6ZgIC_Q zEt z)?sPqHND)tZt{PSCl2`%?Gzr5js6K*u11x=AS!O8)Uu35gs zWM03&a9DPyWSfNwx>%wqc}&z&VWH7#8(eV0tvb+zHZ-Euwll0FKn-NfLjpM)`(4cd z*<#G870zC3*2t>^ZNN`wSUG^@CoF~0ygM6&Y=AnsxLD)(hz+KM3r?Uq+}hBJW*b;J zfEkr#C_wY>5HSgn6C`I(TXz92IN?SET4>X?1ddiK+pLE`&FbrW7|(xHGsI+Oz5fYg zfpxiC%(#XNPPjD+-9T$gr$u)Tn6f!wvcaWWw>vGZOJe4Z{>Ai!MnEi|1bT0{;Dj3u z3bdgSt+uds!2Ttb&R%N|FbOde(-W-R(g=v>TeD|^ENoh3+8|yw^P1e9 zn;{3wi%ps;)|j7nS942YoB-d&qf1RrQu6|6TfQqx=H?GFbsHyy{TR}l=*kSu#ACUvF z8-$94utT6Dh49qOwl z&_|KmV0{Mj80wB3A-O>`0rz`{SDU`C0CaU^YuHK9?F4=1cJ$%nCNeuQgeFJT32wMG zdNoDl0H99L#R&@abfmfYu0WlDCg9c8k*0_p0MrRUNx{Eiyu#}Qpn8B;Qjk2f in~xU!=(*ljk$(V=dhi#%CuZ9K0000a*3lDdzlZIexK^W^>2t}dN&6-*dcVX%>#C*J)#=sF{!A6US$b6s zxwko;{TChGo-uX%$@AGhcQl2|z3So?hu(AR&QE;dc`i>*cp`JkZX@}=GzOF1+-y

r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2cJnqK~#8N?VAs1 zRaG3v&omvIn>O3bZ8EW1n>uJEiId1@qG=k1DQFQ=k|9V+Mk%ABBGgJK5d@<`q>K!S z{%MLiA<`^s{h6t&Y%8a^vE^pUTI{vYdGGgjyuSDDx$nK}MBf(VT0b!z1JT`4oF(*T=Z8ld^V`7=wE6b)5vr#n>M zkX&`>m*XmMqtg5fp6v3(-!GiIV*lIAg4tOERY`uP8j_Q(Mh+huWZ)#q)N`G7;Vvn~ z>PIRg{4)5Cf4X!&=7!=3KkdR@tYBpT2KmAM4%O9Ep}O+E)pZP75}=;zw4=SQOc5~l zJ9}Cp{4)6bS)WCWApEqWeYmSDTn(`L*=51|W>$s%-g;bHIXeq$J5!JKd#(f8(@z(Y z084E8q{`qOw^e8k?mwXI7FBsoi#l`moGN%USLc+e59!NPw5OkQ2}gsg0e(Kxs4YCY ztXP-Np8HoVUvyHJCyp=IIc4erW!lp(72rNRMT}5X(V%j&vsBBmGdia%gQp$s zZTaJF7)+(Yg1nx=b*j^6&g$v@^wKudkiaGYuCDt_Emq=~Sn>LmL}A{o)53 z)zv*~jWP}hIc4g(PMP-fO9i;kk+#8lV|)Jb4!z+nU-XxL^1+=!ox@E%*J($4TmHBk z1g{dD3YsQq^SoD&jWZGp=5K*S z_)Yz>;JOD0MwgXnQb-{C{>ZdQGDXqO5BSAzZ2&wgEdA-;ae7ZML7954r^*9#!Y_Vn z1Aw&~hpWK&ed?}B2Q{fAspGnz@Ppse9w06*kk=j%VsV-M+5^1u+w1{x4PXKR>`QM4aFMjKWd}zSCDjGIemrYO4tiu6W@p}AsZz7Nn9pYj~n>Mgv;Vgf=vy)fQF; zU>XsN=Zh;uP9Q`+Px*_Gec^)B3ACXRt+ue90mR|3Zr$M~osKoMs-yLP=x=lq7bHO8 zC&nIIsX5>hUNoRZbfFQgwy<9UqjGdUc}!5J>6KUMvVf-|YtS#$jascaoU;urq6>&t z8+e)l60MCE`sS%zEJWi%lSG75J_C52m{xUu6C^UbVY5FGAro^SeoQ}NxZpHlYC@~6 zGvsLoa6XU^pYrkZ{>l0J`#j&}IVV7%(oaW;d&2=2oN%K7h%PkxvIh{0CpcMiG~{q_ z27m*LtVe_pp&=sdH{?u$1V+$+7Bry^jcB!nwE=#A?{*z|6*M-r>aVdJjFMwBc!_>P zIN*dE4QLUd5v{hcHh=^jn~t|=cT@fbMaB8LjdRdLxT!PM9H`Py0U@$a_zigA zgBSj2x&XRmImCkN3~;-F39KzgWBr@~EK9GtV$FcK29S`n99EQwtP|pe;fPFl!2cz{ z|0Hw9`XWLcOOtKL+*+_1k~T?`iOnaAXhsk{ oz($j2(WW5;eKB}Ja(a~d9~i|#F_vZ+_W%F@07*qoM6N<$f;?&6Y5)KL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json index f6a942a895..a52fc0259e 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/meta.json @@ -1,13 +1,12 @@ - { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Original by Emisse, modified by EmoGarbage404", + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Original by Emisse, modified by EmoGarbage404, lamia & segment by @noctyrnal", - "size": { - "x": 32, - "y": 32 - }, + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -27,6 +26,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/spatio.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..68fc755c56d0ec73a44b5b40719ea2bb5a9c4866 GIT binary patch literal 513 zcmV+c0{;DpP)OW9$@8GO!1)-aD6V1|QP!L7hgoL_0mo^d+d;vv=JP6#E%RA@eToRrl zgy1jN*q^#500}?>kN_kA2|xmn0Q?7l@wf-feD1qDoYHxGk=BcqfSJ#U30>p3;*y`9 zj6BB`mkC`15N19ntr;tUg?WRWEt}R&iG$rHe((l>rlx4!lsMXNa(ZUPkwlTb6>k)m z#LkwDAG{3>i;@1?Vl(WWo>^Qp+lq{?^ayV69L_IS(9{&?mn*#X+_3lBb0fXmJ4aSl zK7rBvH8suNwiB8G6jxhlYKoKkEPgPc=lOIVU!)R<4FI62X@C&qq&^FP9}EC~4`5V} zKt8XY=ZCc{fb>_ew`l-iOr@Ed$pY~3)CY*{o#%n9BoHHkOjZ}wvK2ynwMOQ(hK<|z zel~$>*-~l^TdXfza6drTR6IWbh}2itHr28vWgZLQu-*oilv=|U0PD*iKOD~wxVp9( zzLz$K7$X44WOV=vhDq1yL=F}VQvv8Y9RS?EC#CrgXWp$CB|mF!00000NkvXXu0mjf DvY*&g literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..040ad09939c68277637f695a1ef9605218e440dd GIT binary patch literal 1039 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1=2l#}zCNVQ-y1IKhTKGF!nkcEfQkB{&$5*ee-CmZt-rVZCh5Aw7;805& z4+BGn1_y@!459M!ZYJhoR<_&ac&)@$#iDE&?yChjS%xVnTIlEonp^IaO7%C%DE(&BKAE&dGn?BfB%njq%?9#p+n=Rxl`i=8s}I z)csQUf|{`$*KBU4O@W1MKdu~?w0rze;s5a`ncA{d4=1nru+Js?-XvcGraFD5kX?Hk zv^`nAsU7C3cy!=}lqKuS>RF2f6$Ck6RKD@HZfw0j-NM=+>dB@9y;B5w^RGJE$Xw`k zV|d-LO?3NonJqD@p*}JXzIH8&ExvGwp?wasNp9B6*L#|0?Q{*ATUhW`mXC4mdQ$^u zUiN)u7OEKx9x@ek@+CsA9N<}@=!kDmGbo2e%5|}9R;<)pIn4kU44;((XiRH0W z9XQz4VDZ9Gc!BV*RVLwE;(O0Fe$#m?o|)V)H+f;fo7=l17i(@gs9YH4qNvFGcIrn% z&9u3beay^$?)mG#&@wG4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd00F&8L_t(o zN9~hcD+Ey($NvnIm(jAC3CkqOOExaV4RNm&Nx3HZ25wx)g|DEb_D+f9!Y5d9LkbaU zlZN#&leLpwv>9Wc(@eQg&Rn>1e)V+z^ZcLYJm)zx5C{YUfj}S-{Cf(#m77UPay|JY zF~1C}QC9=%)doG6=^PK6;WHwL}+=Yf=D2L+{FPc`1uyu;TCKcwQ z$vkaNL;T7@N{zxa@6o-nR-x;9hMB*>-N1ZnhkKK_z<8t#v4SvcwFZ^m1k(8lgscZl zx+!cVU(wLqhK0*Bu6GxD>#xw}Q$r(IZjK`PF5{@B80)K#EJ#z1JgT8uUbq_|XuLCt zQ`DD!py|ZM=tMOO(v%~QYJw1`fupp|PI>!QgsaXFw$`3lkft1YR1*a5Z-D*)y4&8j z8x-La+l685DV5CY%cL>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1A1^9%xCNVSDt7~Vvx|=AeT(?m7ceD((wAm`hm*?rr(BQ!EpJBbZ)luJI z4+Fzcd3iSz^Dryh?Q*6fJag1I;aW%JJkV$QkPB`Py69 z>FF5BE6rAt0b2F)-+X=`rBo8+7yO?PVBo!QxDcqCv%n*=n1O-s2naJy)#j6CU|?qQ zba4!caDN+ibJAl4o+%9uMwV*xexFMD^WT1_ZuBuG`J1b1@4Q?UvLVVOH!(WkcmEI3 zAN;Hy3zCmkoNPF}f3l;z)&ZX6fuJKH{p{qKV zG2a7iYl9lOiVF8unL3|~*(EI>G#F%Z3YRO}b1XPw`0K?Y>t7Oq8NK{3wkeeH6$rP5 zGcIE;pRK}Y^KoI2L!#qq<_edCQ%^GezLLhCd&{4NsiKrYZfjWD9#$R3T#Fl3J*R)p zw9o4o&Cfcpqujzl_leVE=BhZ^h&q7@?d+!tF8p1tXvc6l(2BK8<#VKh%H)RXD?b=+ zD%;(ifByMz;nQ}RHr!i+e!G>OGT$UGCEF-qZ)0a`YiqY5hQ~nLaQ>go#s5rx8#U!$ zaZIjMcIdUr$og;l!c}%p#6E!lc5kM$uW$eU{rh(I!Dz-x$p;MYH@kV=DVvbJL1BWO z-Tr<1?CiU2w=qpW{rzjz-+eJ+EFM1}#cpRRVXWUfjg!qqHvUqp#Izsl#55dO_AOei z-Prfs;PCpT|3&Lq>sVP@5A;6Y;5;{3zre+ze%{M&NxMar)0eYbr}@2z{ITivSC$1F znn%qqb9h(_H11gPK(>lGXu@K_0~{xAa?CgWxh8Xo)Ai}Ub$S_EnJpt1WUsMw2%mg- zk{g3^LHn;qY}aKK7&FVI7_-=a7_GNpNf(0H5ACE?(~z;_R~F)w=D)I2w8!yeX- zdk69^GM;$1X4yn8g#?Cf9g718nKq{`7H4gl?0$3)Uz*DvMSasb@82~XH)K73$&G8_ z!a#=4^|PL}Uz8JPjdFYa=JF<|fA60)M-^Y_YPQqWPHC*OW0@CQX3BW5@fok~9gZ&z z&7zEj7m}46!oP%OuFKdjHJj;e!x2x y?e$cX=Ks0n@AV5Zo7ep-XDCdrn|pa%Jp;?}c`5I5GqwY>2!p4qpUXO@geCw00>2&r literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json index 4aa4d60ccb..fc4030c881 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from vg at commit https://github.com/vgstation-coders/vgstation13/commit/a16e41020a93479e9a7e2af343b1b74f7f2a61bd, lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiecommander.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9469334f398230e1d7720c7d507461f1133891 GIT binary patch literal 947 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json index 41c1418992..5af55490ad 100644 --- a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json +++ b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/meta.json @@ -25,6 +25,13 @@ { "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 + }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Hardsuits/syndiemedic.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..0687aa9d0d799b9133c80c2340ec781d23c73122 GIT binary patch literal 576 zcmV-G0>AxHj0uGb-rPaxaWD{M zu=9%DZU2B5Fa8U{7^|m&%;UhD2VsgZg-$lyp$yYdyQXC(w3QmN#e<9VB)>pqm%P&t z-k0}2yx*6{lYHOjDr4kIyGH;KKm-s0L;w*$1P}p40Dvqilq3m&)zQ&^9+Bnqa|uB7 z))WQ^nmyU?cG_2cYz;Qs4ZsZ1u*94f%G`J8W7k6BK~DN9p0T8hcb3D~ZS+B)T4sYEiF z1fWzZ2~9!Rgl6@a;^HGVW^>g0F)DLo>})sL*=|yq8>8Njkr!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2O3F4K~#8N?V4|B zl~o+a&)Qfs?CP4$M&g9zE|s)ESSfM|Lnts1`a>@yFneQvEMNF$;tSbcWMEm%H(3x8 zQ3Spa45Wx5S_7dpRCY1kq*ziNLKInQ~{^L&55 z-*e8n=RW7CgoK2IgoOVuH9`8XA(P4Eg6u8y^z?Z9<8?ziozAtiw3HOWu))DWmCa^j z3#vGejtzE!ZxEa-<2>oQb?elH3m0@5Vq({Z{2JSaOb8CYHLG>+WFa9 zRX_OqjDlddJo1f=jXGafSEo~$oSf9@$jC@hUGic2cLZr!Z~|vK?(fj&ix)4}sp&jO zIrYT(Y9r2>&V!trtd_Q_YPj^~A=L>g5i%pCcPv|J%Na;7akY0hj@R$J^?i^(z|o@B<5S z;*4!XXJ==S%m3!?+7;xc#U*Gz{(RZnc|r66Z5%fpwUO)C051BWW5C^W>I=>Y2;nqG zcXxMDOQ0V0xvv`V92e(->(ryZtA6O);VqET{9U0Nz)ar0fWE0M!8XUDOP4O`)C>?d zxafzr03I^Bs7>b)=V)(lFC0KB*MR!fa2|LLvr(qw0zYr{_4S3roGVa|`mXw+0RX1L zILF9J3qkc8vdCV^u6isJMDCau$eDs~7B$Ejud*;CO!&h%gt5b)k=Lajd zO;3TNjQr&&r*9KQ-`PlvpsD|rS*_3c4{rV^2PQhECRsH?_+7MDXD3{SVE_go9-?(u@rBbP)l=3M0UICCP zC@>8j8ynMyU|x>{o{zKh=g-#xN1K#$%A@Ez2cW5`NsW(>>%8eS$T`=k7Y8(Jo)01Gb1=zBomx)Zj<6<14JWYePPgrdIfMEmy9dRXO`ZEIUG2{<3WY zmsa2$01+?;8!2N~2zz(rL+O`Wx5pBIXAbVqi3a&^!mR16%^&H3r}uqUOg(bBSuUv6sg6;|ao(QtmV;?&=2^dS#TRVyv4?3glnX*=0N9kUdh>HZNo7tQ`a<>hoQO35 zuq3lK=VKF_CL#x*p`k&oTD2-DxfQy=@bIwCvql$J|2M%d)&`-uxw&K)5Kf;yU2)Mg zGytRop|!PDmz82*U_hr)R%fFiF9yQw!X}6m05F44i7=sRQcatjj1@tmZHkJ3w1C-g zUNCI}+b&m|oDCL1Fq_@&a9*&30Adfg*yL@r83^HaI4{i19;N;P^u3X0T)Oa$00000 LNkvXXu0mjfgnF|P literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/atmos_firesuit.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2b136ebd9afd13587f40c8404abd1d853c3cb8 GIT binary patch literal 457 zcmV;)0XF`LP)I<&z+$hvN=PC82phX=ELAN1 z0hadqH>}d7Ng*MS>Y8J%;-%PFU6LwAV65&?P~4M%%?=Fg$Lu=~`!Q@wMEFlT_}ADU?zGD5YwkFbo-uMm<+uXMi+Km)2VDZ^l2y+~16`){>^_(pA^_ z2&(OWV@LM%QjedUYi7@{03=tZLce@?y^}6nt zWm!GL{R3oKb_B59ZUMd|uG-aH6}wk}BuU=$Jii4n#t=mjK@iaCbcmves_^7_ew!r8 zyQ?lD;_O;$M5HGoL#?%Zb`cqhNKb2B#X0#04rJJyFKPx#1ZP1_K>z@;j|==^1poj5Ay7D0)RXyuB{zNhbBUbBz*o6ufQuH z=mmnn#sesQad5K;mr~+?G)oWoEa>@DAjFbWtu^HmM^Pv*==nAbWhrSDq_X6@LdZ)t zo{`)4_^m|(h%rhCrCt?weuYQC^T#075@KBVgeAsMYBKu)_zX_~@Y(Supga-aKm?tK z!g%`x&o==Mw+S%33C#E=P?K|z=}s7omjH;s^X&{Uw{OI?UoSk@zw-%)lRpGPE+VYA zpkuQiz{aZm7E*A06DaDyEvQ4e3uMXB9f@=_dlMkfanMZDky%fOwJ6U{j(48$L>MC; zX6Z5J-8d)7BQhyvv-BAAK7!^jiD1Zg0&)p@4QA;v=Dh%kBp@Tq(qqhb0^A^2rvfA1 zjU|!UK$6)kJy;4Sx$Jo_pn0U3WR?qBqS;*GqtPuc8+1^I3*CRNexr>?81TKoAMgsi z0)qc6@T0KF00X`gkOrdg^xE_WUgRPjhD{ZILe-2~#3u?6=u@0M?*tOnJyY1?nunB4*qWI4r2ZKJfw8S*!YAXIH0?ho$)1OPrb zn#l`fA#r%egPh0g79&w@r3{Y002ovPDHLkV1k@wTPgqm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/bombsuit.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..bc07da7e782249ad432221865d0a0694afb7024b GIT binary patch literal 445 zcmV;u0Yd(XP)lIvB7?=7+I z6q!s~Igg?(LhPti^SC*O$KlM^(<@LcUNN749Q2L}Z4;Ku*Ah?+7)4tE zPx#1ZP1_K>z@;j|==^1poj5LQqUpMVXkG+1S{%v$M?1%zAoy<>locJzy|ch8ka) zAbG_!G&Dj&LRnc^vL7EGAhIYZC^9fGCnqOGL_`-C7d<^a0000cWYqBh000(rQchF< z|NsC0|NsC0|NsC0|NsC0|NsC000Gj#7%(Vw&e`3cy)(AT4WEf}8m8?Z^#;5FEDe}U z{xT!zWSud_*~V8FL}ZOO7T+?`s_!3wIoJsv(PYCcV_E~h0_G4rWRau^9m2>j01Cl4 zvJQXv4B=eG(60aw-{B747?f%*fa?3!7r-36BlB_luzZj+ry_QrOW;HM0w9aJ%x$?@ zK2Wc1Q`r3i(0&Er^%%b(V8Izzx*MY1uNf-80AgHY1>iiM0PxA&JTf#lOUf?~5k8sE z<AVsQd#U8E^n!$av8`rM!xErF56^3fPd;p?IDT!ky$bI-+}> ze*hLdsQQ|4byoHr7Lsdy1(pTD#((6)>Z%xi20D~i`YEd z8o&{docGl6TfkrF4R`}s{~5qL0AuB%BX&=_hX#O_6)q7<%tuJmHZ_3fqxqh?niA&Y zC$%Lg0JZ?!y2k{b&mFYcJ!k;t<{!?>=0KGDJ9l|~2L-?$z`#ZO9RXnF5M4u)!5n7t z*dUAmusk7XkO85oCi3X-!x9$nDXnn?pp|0EfNvRU^qm1IB5VLiaFWL+fqrDD(GOwo z;L+ugrwl<20G%Ns13SvVA_F84M}WtJcM;Pxjh;bZFQvyr)o=iKs>i?gQ@h2hns=9@ z4nhTBJ{D<~%BqzLse}@Y`RKd5hJa1Q6hZ}XcA~)}fUru6%7Z!phh6|Af^`BspXhqr z*`cS5UByAX3*aD$s`WmfFralUR!0bus2X%Uu$}O7ekG`&0{|25>-jqYF-MRBWW+D? c&oSHf2Z`Shmk{&VL;wH)07*qoM6N<$g8T)OfdBvi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..5a21938ecac206e3b9cee8254ab5cd90dbfdde24 GIT binary patch literal 419 zcmV;U0bKrxP)3j``!=V8XLR11pQ8WaLqCjg6K$d0Q4k7!g zHdde>7Q~(jA)Lga{jWHv3u&zzYb*W}Px#1ZP1_K>z@;j|==^1poj5NKi~vMS6OA!BYU;X8^oQ0G2!e%*@RGegMo^0OjT7 z&RhT*Uzs3z#mr&=G&D3qLPA+tS+_|5nV6U|Ffb=4Cq+a=7Z(>jJv{&b0AccE7XSbN z7<5ujQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC00L>FF>Hq)$32;bRa{vGi!TxRaP64w$k6vop;WfV64L#w@Hz&;p^6~0B5|12Wju^nc!mI-vG{p zVF)4IkmE2Q4Q}5AKUCiczXD)-OyL%-^U;_S0DffON}mB3z(f}@LV#)I5JkcdthH zQw88W9RS52!+0Of*!Wu}DJx|@r_UP>t5ia;BGL0^mhPfKml~Y?VG5nEF+Ti zH^73VcBNzg)yG}b^cbaI0n_4OQb5oSS4U0DLt~BLeG2*^d;!q3R0%NXE}-vMz%n_! z4MoA7`(OGypu8_-gwu<#s_#nxrbu%%;R4Y0B_Q(%`2x`O1%TE{&h&GBh@_O*ZyvG) zV0{#IRzVR5w6*|HKq?1cpG4--mH>)?_`Ii%-vWN2H{cB*{a*k!2&kKpuR0~Bcagq#RD~}H%Aq@b7^BER0^oWTiNGxfQU9oX`%&BhRQ(P8 zTzyp6uWF=UF~knQ9VjIn<@X8z3v`MT-T0pY$^~o?t^lxtTjRLtFol$7?1iT5DNG@_ zIj8;X0a+?G!U@J8TY!KWxH#Pcpu)>UQ`z%sy0H_QJ8N{m$ zA~HY%=?d_C&NDWm8s)t!XUUuA=Tod^aSzaS&{Vom|GRql;!@O3r~vdYwHwmhbdm_E zgbjfHsJp8!0gH&)2o*rtu`X@_L_22IcB6K{t{(s#K{^0lFH}9M?9hwb&Y~dN1yB%2 z)tmTw!GLn!td0=GQ8lOnnDAr&N)SOi04Cg@`>zDV>_Gxh5P#`^j9HdHj>RdTJL54I P00000NkvXXu0mjfkwT&H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..b2cf94d4cfc2ec3dc3361fa083bef55530139ac4 GIT binary patch literal 409 zcmV;K0cQS*P)_jMbyY(xVGuzX$TW)j}rr^g96k7S5FfXZH1hj z1MS97<|DoYUIi{a_YEq+a%HdSCIj92gDr)7#@B)X#zUL#ZVz;QSBiSCM-B$?u%5yi zo-Y?^6JB7T$Y$AH$+341m^}G))0$ng*b^7O|gSmgQla5Zl$p33SbYxO-Y_ zFL4O}6|1h0i1d6X{u|`K0m`!6LhOr(2wLkOaUc5z>dSfC>Ln_a00000NkvXXu0mjf DfKRPm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f1a4d41a8a98854693acbec63baf5630b90a47 GIT binary patch literal 903 zcmV;219<$2P)Px#1ZP1_K>z@;j|==^1poj5KTu3mMV34O!BYU;X8^oQ0L)kb{(b<*001B$AR1qp zAbG_!G&D_3O+rFKSy@?ndU`T2FefJ`MMOjw7Z*J}JpcdzZjy3!0000LbW%=J|NsC0 z|NsC0|NsC0|NsC0|NsC004v#j>Hq)$32;bRa{vGi!Th6A~tBg23d<>BU%MX{>edpuxEY!8kXFKWP7K8S7aSSBWwteyZzd z08ED|OrVd>+8dzfO9KN~XBDe`5FI`=(TDa6U^MnI zKPFr#vH^fk-vO@5KLJZvg7q^JW;>$2TmbA#g_SS&5aSv{m{H;!0@^VghUoAg9u?Y0 z<)5IqZW~u%QNgyYQR1h%egUj8C(wh$Pf>`M5lQ=bsq*mM4 zfK^6VJAkII+O$^Il|Jq-krbo&)l1d@tPfUW6|f|swskeM-uaT}o5;M{^>op{-yLfB zHQ+Dw0ek?Y{|ms*kA2h0Q$yt9m>^Fq{Xl;?lrYNkO}sI``A5R$3t2aH2;)TEA-!?x zCc_;OByth;cSn{)pwgrQs6Re?02-eOsszhz#mA*@?Wd`S3~Sfy`1JEXX+n1{qP;05-!C9dE{ zLY02Ff`tF}v`7e20F$sYL;zf`0tWyJh)MU7J7k{El;|MZIV)q5?By^KX$%K3_W*>kv#;Hum0IE)utGbC!%%XFi1yJ+`AQ_|!VBfLp z(asL-61$6%=oCOnl9fl>cNoyRo>oIhlB}Fm$~_2g`)7hmQuE!(ec%5eAg3fL03&|s df6aNl{s6w^0st}I<_Q1*002ovPDHLkV1f#viZlQK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_prisoner.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..4ab04aee9919bf27efa710928fe911422381a692 GIT binary patch literal 369 zcmV-%0gnEOP)GjT-{4ZULn*6kB%zA|VE@5i66H`JX6Spz+>wOS`+NdI2Z^1)u;FfC5ke z3P1q>?sGplcIK}k(!37obEe4|N{^lKtw7hVvB9nW;J|4fL{!%mZdu0H^TOE@DAwn&XNDkPiosiFvb*V47p0?e1X#32Ra<3!tvz z3Ix$$0mfbQ$Zh~{=L4MK{ow>$SK#IA06@nnIcM^3*!R5$5D}WD0bm?QfXG)}wr{Q7 zw+UIg+6RHH1(5JgM3TfI|0*_HAyti@gZOWd{|2zu{yk44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0#2l#}zN=Qg(YHEgsg=J=DCNVQ_mE)Vnz);S|{Xl?8FI?o^8s7DNT_z?b zk*sVQ8X9Vgwu7Mn>Y|;!aLZ+JQoM=kq>&`V?q3)A7hu zASGK8pZP?R)*XzMh=Z3C|b3O?@V#knw~+k)vq)-^KSD%o|h~W99j3xo>@!pMLu3 z;`^5)lp!(8{{e7irx{~ur28EOI- zet4|%>$t_M+aFTb9iA?Gy#0B_l=_18wzX1(&4f8RZ~XY9V${ElC4lY7{_IshR3GSnVcWyFKcrDaM*pOtOqWlI}%M zUXai_#f(At#f7?Ph6q04n`~#!yIOwvF6O|0Zsk+U?F`>`p7UnVkW)`D-eA z=SyQ{#5l8_1uTsGD^s^KH8xPaeF2lfVwRAEXwis}2Bv3f3_+)^h_4b@o5-79=)sin zBH#J_L2ibfQ>JoqHhjFZ_u@ZkA3^Cc&I zWjY|agju2F-i3V^>nzKz-J9ne^=4wGkfTI%T*>pOASRd3SARqWu^r$M-6z$*WP*~O l5(DGMPrsHJrQiO?z!s2iE&jV~7BB%bc)I$ztaD0e0ss(>gxmlC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png b/Resources/Textures/Clothing/OuterClothing/Suits/eva_syndicate.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..1a6df55d0509e8227d431f51fa338b7659a8fb36 GIT binary patch literal 434 zcmV;j0ZsmiP);3mb{xoa1NlEw;-CA1!arsoh7QysiOOP70a@ZRI{{=d9;2`9AH?9%pjs%`-+ zfCaDs7Qg~n01IFN0JrD^UDy5Z5-IMNOXGT?$fdOFy1E_5Tpau~ZZKPA@nE)M=s1NS z3U#0z$297aQ9d~f8OaI&4G9Eck&@P0DwslLS548C2yXeKfp*Pgi}l7RJ`PQM&eNXS1j^Eky2}ZDxUfq1sMB&2Ju@YQi_u2 c{mGly7pvxwi5dYNr~m)}07*qoM6N<$f;?QbrT_o{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/Clothing/OuterClothing/Suits/fire.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..979a4eb20e56d53ade735e8c56dfa1e7bcf44d43 GIT binary patch literal 1579 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 A?*IS* literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json index 4844e816bd..cf10d74aed 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson.", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -25,6 +29,9 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/advanced.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW0000*XNP)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002l(OjJcIE-)D#CJ+-DUuJS4Cp1k_S5O=su)WGJbhvLlL;#=2 zDKJ4~F*H~uC;+kGIz2-GkhTEm{{Wr;JU>G+H$p^5O)f4j0001lGZRJt000OtMQ`u$48t&v zc)q{2gyeVL|08mh|1f9*nt7hdOw^7SKL#%TMgbt@-z|KfD*#xMj9SS*V+LIN9{?g_ z4Fv#}WVKTezXjj}fXcrEkQdA`gvA?|TD7D{05Sus{l%cqPr@n_k@r|>MCJZn(jz(e zkR0Uj;wXbf18Ajx2OxdH zlpG*{L+O7=y6}Nn+P{-Rz*~x>(MtSrS=Jb1DuGmH0 zxBXTxzzZO%064je^+Y(-iSN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/hos.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..7b79d271d540baae884704ef3dbda631b0863462 GIT binary patch literal 1328 zcmV-01<(44P)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002%Q_8JLozo)WHB^Q934bQP0EZn@9J1CE-nB70HN7J6#xJL z8gx=lQ~&?}|NsC0|NsC0|NsC0|NsC0|NsC0|Nj6KA^_R|000SaNLh0L01FWS01FWT ze`H^g0008tNklyo1&5QUptlemUiW1N}1|BLQvM5R?SQ?-9{s*<#v<_jPN zP0#<-8}J5*Dgc=hm~$$8YmBkl-(qrP1Yr!Kxk*WUZ>hfHH+9fJdysZVokIV64#N(Vhb5MQj6lo~Frr?i+x97H(#5mG8HTus9ds{!vr*2!x8kJ4}UL<)eDyF@R9L%l><^@H3i*v#eWRM_dbfK{jR3(1j&Yl9jE3KR`&oar^8 z4lkcqBsl#Km8k0+60VPv(8R08HpwwIQRaziD0*l%t zG)^=qdR%Wkii7hJNEwAP1lMe7ILP7RwMo}tI{>ck<{Bacizqcf1CVO~9Gou>Rn$+C zp*odck&Hgz59oL|X9c>EmD-^R$VC9wsR=+4nsZ8nsEV-#@diYt;V3bYQx|bnM0Xgt zJKKwhRg@L7_xncJ0?HTf&j3lO2;s&2O^#GeEtLB8$a0HQdXP*0000SN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..5cef9a52822e8761365c07c6ad090c6133b6b9b9 GIT binary patch literal 1242 zcmV<01SR{4P)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn001^nOjJcIE-)D#CJ+-DUuJS4Cp1k_R{)>LDKJ4gJwpJo-~f=e z0O0O3>3ybNL!%!|DU~G zSpmsl+L^v)Ga*7NEk-y<^86#-0&fAr2^{9ND!fBVX^6bb8YLzCrUa|H0?6lK7;@xy zQ^q2LAOOd5p-}mZPvl=#;cGDCB392t3rx zzYCyzGd7Xd00Ct-{|j{K4HBN;mF5{&G4P}X`DIyFd;{;6DrM1qu$&5DkYy|@_&|FB z@KxbjKzRs^f%gKIfAv=)ej#AD&=ml;^3W4l3M#bV*cH$s_64T05oPKKOv_gASpx3` z=CWZQYCrFM!QPxNR0u0~$Jr<$_mQ$({Tf(9-eD-nw06yb7|}hVIpV zi?_gAfCvJ3bDMPoywuH7_!D#mHZVK81a>;3?2K?WUTON$PvHt4l4@`83f|QG_6iQV zLRIJppaW0nZfH*CX@I_k#)mP&SHYQ&gnS(``T`tNrXfAd1DsdD_Gg|3O5Lo0V-UxX zUOp8xpj$*VeH}jf0(Fk*3UEdcPJtZ-i~yjU;UU;MB!EBnX2lFjXNRsp9Re_gn4!ENMqK)@w0fsn*{a5or_ctQI zy;#F`gvnelyU?Oe zMSLk7(wE>uL%tJu<~(3&ZToIuF-K6i+)v{H5o4au|1?V5CHit@OaK4?07*qoM6N<$ Ef=lKs<^TWy literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json index 4844e816bd..cf10d74aed 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson.", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -25,6 +29,9 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/medical.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..c97ab674f25fbabfbafb91deae76af681f51a629 GIT binary patch literal 372 zcmV-)0gL{LP)r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW00005?GP)4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002l(OjJcIE-(-i85tcWAty9nW^zqYS5O=sSS2VrJwq`*S}-?7 zZ#_iM%UUTgL1ZyB|NNfs>Q_8JLozo)L`O|9I#2KFSS~Iu0000N(Xo*L000Y55)8)J0qA2C@{8sAzWN<)prH(G1c`XwaGqzPAWn)recedl#RR_#9{y4}f; zwRW2DeZQRv$)DT@F5mbCKs4hb%*$dCQ3oJmvfllnU=baD3G{3T=L5iGW+_H1#qhoR zO94JV>s`;l;NCa{4}dloGeGeG_z-}q`~pB-CQx37zP(bbY$XD ztK`QSw0;FZ?P3k2hF1WZjq`GT;}-zgU@$#iJQ)$Ggl092|0Yg&n?j3W4p z0Bqye06AX(-6BZ(1t8zT5P(OtA!i6!85MGFdJJ@Xq_%_%$H# z9j#PZ@?QMY5-JPgcnjTehbzz7IQwj6jnOh=7m$m@=BB4f6$;nPQk`Iy(ZM*?emTV z^auk2O_N2!{j=^K>JUPYf%oDF5MQ|1LF+11;g@>$2rmG!c~D<@1ZroX=eTW+0O%dC zHR{m}q>V!BfF>aibdugd`ixN#r4N(lV+=s=piWI(oh&_oJcbd0+ywj7JT$R1378@E zdvjE93n}RxhJe%rgfYOU-e3TbRhF8FJkZIBi5%QV9;pFD8w~87qlF03goQwQ+YZ7J zP~3Qb21rUpDBtmX*yDu=5td>~D}(|_=STiafFwxX)&rt;d|m)t$`G9agx-LqLE!Hf zfbWSN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/riot.rsi/equipped-OUTERCLOTHING-lamia.png new file mode 100644 index 0000000000000000000000000000000000000000..454939d731a8152f30ab186d5f292cf28e09df18 GIT binary patch literal 1259 zcmV4Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn001*kOjJcIE-(-i8DC~{O;J}F9VR+GLm?+L&&ygVFhT$Pp6}{c zJU>G+H$p^5P4DVhE-o$r000}(G{67=01z1S-41}Xx)?Ia{-~Va%D~Sp! zJ#)_f?dqdODikEp5_|n8J^~*B;S?|%+#2jjR{S8e{9)P{43h4Hh4HSi@zMCT{BFS~ z*a13Px+^%J__h2Y03XJ2G_HWhO#nVyuwPuc<_`h0DS)Kg#GAM85I@*xzqy8*Ka3&A ztush5@A*6duh{=67d3y*fap^~nj6Ww&p`Z02xH5;A>9|vjE^f3U$W?Y38CS40dj;F z!zb>qTNVpXD@k-~XZ)erM|6#`mqxD+M)wJc&)qLkcYuYujIZsCeS^_Co-Q zGh`vOx~1^$fQ(!!>B4gBVYuLV+A z*~+W->J!Z94ZU_(fz2jV+pI-#xX_JQ4l%}%JN=8pm2Tf6AKmEo6LK74cH7Y%?Wgz% zd<2AAfUn{GNV|dRpy}jKpf6HlGyCf!*y((d>n~1i(qE^4>`H6}2LH$UtJ?_Bf7*%! zZ@FNr9VRJs1VAoDg1212(9{lDe%=Bq^Y0L0<@H8@gKLVzUvB~J45myG(EA|Cf!ZLq z^~-7M+|AQKsT92B2C|n1W?3&oWtI8ePWB4oN|a9mr3TP8=_x2WIW$AmCe)ZBHBc{! z@DZ0z4m5(c5&?Dvs5a%(bn+)4!3v_$zd&S4EY;~!S+>NSIXinB5$Nxdb6l2F;WTVJ zc)u5rOQmo;xBk#vZv@r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW00004Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn001*kOjJcIE-(-i85tcWAty9nW^zqYS2{gI&&ygVFhT$Pp6}{c zJU>G+H$p^5P4DVhE-o$r002B~y+;55014{kx_<|b(TY3Gb-helNQUGx^aQ9UBK7`<{f5ozh^LY0TQE4)wAH4U$`Yn_t ziWhtWuJMLY{Nz*TpAr2a3x)TQP<{Ep%lHi-vZ52UAd&$f5@kv9DQQ7;`7Q7(z(o>P zCd0}__({Gb!H;LY^$Y@@EvA$J@Zn|#NFD$m1UTh40G>)x!rXAlcUIX40FMxj-vDR^ zmpPP>@2rZSXJCB=K<-Kkki$EGAWMnkjo$!BF?@_i4KUkLYr>;teE zUjyp+yPp#E2S9y63dl*E1J-y@ah(9x?TGl>jIRMH9#{tlzVO;& zC4$kg53|ZN0E>-M%gm~D=xhTE5qlnf_w{}dJM^}_^Umdsb*A8*4>hiue%fF42D|~3 z0Z1zm9^@W=3(FF*nCsoGu+k&Wo_a^Am|Gf8|4D%Y!9s~(_dFfq$BGU--D*pxY=OYj zu}OyzY6$F#GeF*Oaf0eBsPNmJHNpcR7Z2{cwm^0Uo~PezOXHr$qtVZ1z%mG>1M7o{ z=&{b2C6RR)i;p>gbxK#n>CUVH_%+N3C;?!1#e<1iBw&Uzp3PYamSgQO1(YHHRY+~< z#PVcFvWoK>0sb)uxd_8^)D{g8*H)&afCWPQc>w(69=!CAKti6|F+JTOtisxB zNa9Jj(6{15&3FZP;r}U2tv|jy)jn4z^KrkG2bAsedi?|Sx6TP5Y(!}Q0000r!GkAb40-=22!zlO@L(JW zo$5bL3+mLmOYOSUp;o|T(QVS{bf1359TIKZa!Ye=n%x3e01IFNEPw^D02aUk0C%PV zagzS`i4>2!?d1D}$)_|<(smU_GGG<9iu-E@FB zN!t%c0#H9cT|D=FX0ohC3Iv`r`ufhoC?W97M7^pD#-zSRelY9;=_~SVH(KwZ@1?2c z0RX7ZpGY4Ti{(Y1i5Zok$TOt-6QZ?7Yu&G<>vU~63xEK4Jy(75A;{3T3L`NGKo7A$ zS S1V1tW00004Tx04UFuk-ba9Kp4iKen_QOI;bEbn4yY83q?U3rGj0mLtDYBOL9$GAxXm} zMT)E7;!to9UHlsS4|Ek=6$C*MMBLo{TBOAHnnH`{;2oFu$8&jJ?w$ku8J!t+FbNo@ z!?Wp>v{YD@LN5qo1R(@5AT!&V&&}oW=lHyXPt@Cl=!O4{o}y|qz}HPY#Vqa+&k$$U z9ZT>waX%}|MdCx^IHv;=UkP3D_*rnt<9ES4pPi+6B8?OzD5zo$IvgaZnv~h^zGTz4fC_mSeJ#|$$x%X?ym3;i)K#Ub zk*?CzQ4_iU%+uB;C%o>F6wvkLx^JUEXa{K2UH9wAbsNV(;1Rem+x`mWH2pz(y{*L# zfaoT0cG=dHUEq8R7<{l~E;pqBEx)D#uctt70qDB{!Yf`@t$m!_1NjYlqHADp9~h(m zqpRP^u4nP+sZ%rn002l(OjJcIE-(-i8DC~{O;J}F9VSp59XdTjSS2Xm-`|;;nQuKr zAty9sF*MK1S}8C=|NNfs>Q_8JLozo)L`O}$yu9z~SS~Iu00016;1z)Y000vE(Z5QQ6?%Z#{Y)g-?Eo9<~qZB!(LiSxC$iM_;;71zVA7VU}zXOOyhWs!vk9aHPo5VNNyASHfXnzk(v|b1RcpJCzJOrP(cYkFp zw12b!gX2As3mzkJ(*p5(bfK&L5(sxiFnwRWOZ+K>d77rmS4}0J(mI$<1GtH3>W7(ms`{q^QbvYMIr_2`9UPMYh&*Y}C&QXS;s0*mP})?-Z@E zvBX8qul-hUz#Aaa0PKd>BkdyG4ysD!3CWJ+v6##2t+3LuCF>nWho~>7zilFLCgO4c zLId#ld}33POF}6*Dcv1LdVcELgASpXFA1gOqpzC7`t-t>hf;2C=@s9HE@MaWo!dSxPP%2J!~2)YG6MG#!M?$*x2pppnwcJ3zhz z$TDdW$U7$q)hBcatMe9jpw=K#=q*xOvmgfpmJ&MH1oVR}qpF3PWukPV;-4g@_n4|9 zMMX5*7;$#C79vDFbBuPL55f^pI(UBuNQxrt&r}~aelGx6%Q3SflbJq1AwEZLtNyh&B00000NkvXXu0mjfu|Q}_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json index 4844e816bd..cf10d74aed 100644 --- a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json +++ b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/meta.json @@ -1,11 +1,11 @@ { - "version": 1, - "license": "CC0-1.0", - "copyright": "Original work by TJohnson.", - "size": { - "x": 32, - "y": 32 - }, + "version": 1, + "license": "CC0-1.0", + "copyright": "Original work by TJohnson. lamia & segment by @noctyrnal", + "size": { + "x": 32, + "y": 32 + }, "states": [ { "name": "icon" @@ -18,6 +18,10 @@ "name": "equipped-OUTERCLOTHING-harpy", "directions": 4 }, + { + "name": "equipped-OUTERCLOTHING-lamia", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 @@ -25,6 +29,9 @@ { "name": "inhand-right", "directions": 4 + }, + { + "name": "segment" } ] } diff --git a/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png b/Resources/Textures/DeltaV/Clothing/OuterClothing/Hardsuits/Combat/warden.rsi/segment.png new file mode 100644 index 0000000000000000000000000000000000000000..481ab8594d04477c05ed6030bc1eb25584cc3658 GIT binary patch literal 399 zcmV;A0dW3_P)SN>wVHIf4 zkSwM@@_n&>+WT&U+V`Aq8^;tYu-$zC&}wz|qur&|?*8yeOazc73v}=MNKq6#T;J4l z-E*okJPCjTc-d|1%PXrOD&HUo)hPgKh}k^BH->b%B3-WVjbS$5H>AGnD~SryP6)st t2pNwjR2ar=V#k`~(mIa61Nxg(?65002ovPDHLkV1o1PrE~xQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone1.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9c6f02cc6656475f0c242c84e3bd3a1b4fac76 GIT binary patch literal 625 zcmV-%0*?KOP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd005OqL_t(o zNA1ut4gw(%1yJlDnU-*rwc5%Hc$xJKdKnL(2Uw3nXi14Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOaH+x6y4h*!`M{1brwAP*c-;-h9 z5F+jEO6dY3mdsl(ViPdRM_tO*a*DAU=iH5MJPh$cBZpetR!#LY%z-hUAE1W9qLJna h5HyKzPyQze@dBI!rV*$>*oy!F002ovPDHLkV1o9TJ~RLT literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/body3tone3.png new file mode 100644 index 0000000000000000000000000000000000000000..826c099ab85a872ccdfab67c7ebb2fea5134dddc GIT binary patch literal 648 zcmV;30(bq1P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOL_t(o zN9~Zo4Z<)CMWdb>q(d+SQWoIA5FLjFa$^Wa;G6?+yX!n4?g i|0`5H@{#KSQu+YA(0uP8fCR1p00004Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVs#&MV!SzsjAow-{d#i42X2Kp5GJSMLC3hdS}!omgvxt^08lhz>I8l~F) zf5{0w;d1YH@7fyx00000000000GA=O=cJ-2oc)}X=ehU1r{*2Bsw(dTNYnJ+9Dq0H z+`4UBH&r^$J~=={dwmiX;WN#+wIL&d;2qQe9J++gZr=a^002ovPDHLkV1ki>Uc&$Y literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/bottom3tone2.png new file mode 100644 index 0000000000000000000000000000000000000000..9b26288a2686bdd1a7ca970aec325dd9a054681f GIT binary patch literal 869 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone2.png new file mode 100644 index 0000000000000000000000000000000000000000..7a37e083a7f34a3c3a721d2e342191811c0381cc GIT binary patch literal 551 zcmV+?0@(eDP)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd002u#L_t(o zNA1tO4FDksfKhZtMqvzg)?lbES15&d#rG1zPXR#y0002sYc2CJcOO|UW>(&H?0G!A p&35$6C8|0ivb`_9u6~Z65SbXM5{4Y!WwZbQ002ovPDHLkV1jV&^$!35 literal 0 HcmV?d00001 diff --git a/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png b/Resources/Textures/DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi/tip3tone3.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9abed6ab4cb8cdbc4fe4432d89eb2647878dcd GIT binary patch literal 567 zcmV-70?7S|P)4Tx04UFukxeK>Q5?m828~3DSx6RdffXerONN>hH4SP83-7%#V`|=;>AjJS zrLvu}@Uii=u(4)qVXKt#QL?nMA~w?Vzi-q`YLr{I`|I3$PWPS*frG4RxpnWNE@v*(5#zoek>ZDqU!j#rADnceJYFpjppRCYeJ1CJZk2hg7A{?@LD0S zct<#7uINeOQ{i4mE+~Ajbfd&Ciqk#^RA$JTjg1S3gtc@98x?G>IF|5`a97f@B|i`^ zaZ>TRVk^69{@hc&uxZ(zn^C&VP9jV)O%x4-RWf8L&?l=cic3uP!&UqpzCS81LtGh5 zaZHfILihcsKlt6Pn;IM_B{hYi{>k&+x*@m)Uq#RRJoLP;BdC3Z3%l&k9l*%D=*6INv!Rv{9Qv%wqp>d(q+s{77cQ7kmOVGd003J_L_t(o zNA1qB4uBvGgkjtusjrLAps#C_vLVDS#svoB@_)&tcUuDh00000e_Q+xQ`Kx{yU&M| z(k3E@&mq$flv1Rf^Ik7&j8VORr`9Shxy3xa_s1rMZ~>5(A>$FEX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TBG{N9>XdFwmAx<_wJJj=q>dJsB7=~dOhG7_nVHoCrLfo|jCNvri@_iqc zWdQ)9_E%R|jmC7(L`+1KrV&C+C8)mdLn#FS!yt@J`dUWi{b&kUmSr-jMghoWtTRGN37r&>(rElfDbUYYXT>zv` zmja`@G)z{&PXJFfb(xdPV=>XBdWI7=~dOhG7_nVHk$_r_ugb zczb*M{mRP9=JD|{Y}+0dB*KM>N~MBYtv2!R102U8&+||$79;&wUtdS3)7jhD*m#>} zE43~_L}k}?mFIbAHk+_*8=mI@KxCnE8pKtFf=OsLn@~#C9mlEf?(SBE5NC0=5(7X) z1=n>|)Bxk0mi2)Eoz_x7w7;eM+!S*g!fUb{mq~5VT&rAI>EKIRj zocL3~)Tg<*xz^(1;^U~c)Te-L+fKXPu9K74h p5mAFi$gG3$e2St$L|Z!7{{{}G*oQsXOUVEL002ovPDHLkV1ipdIH>>t literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json new file mode 100644 index 0000000000..ebfd0e2dc7 --- /dev/null +++ b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/meta.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Archer2150#2528 using assets from Rane. Fangs by discord user @Hyenh6078", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "placeholder" + }, + { + "name": "bottom", + "directions": 4 + }, + { + "name": "tip" + }, + { + "name": "verbiconfangs" + }, + { + "name": "underscales", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..e0cb4814daf69c8d4488c2563bc810ab2b73b82e GIT binary patch literal 815 zcmV+~1JL}5P)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TEX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TTOp@q11ES=LF zpqJ=H)VU7M3OYOI5;;ms4v?{H3+eW|s8G=17o7Y*2!!{@4>8*Yg;w}5l*6k~+edZByo zVT{=VxN`DV+yZ4;?w)&VEv&UKuj{%qH;+AmBuP+J6#$^F>xD){+&KOln5L0Px# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_f.png new file mode 100644 index 0000000000000000000000000000000000000000..f818a478944e6aafe10e6febbd232745c1ccb64e GIT binary patch literal 8155 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 bc>MY>_x1eBbC)sO`*o+QX{eE>b~X4vQ3J`u literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/torso_m.png new file mode 100644 index 0000000000000000000000000000000000000000..f818a478944e6aafe10e6febbd232745c1ccb64e GIT binary patch literal 8155 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 bc>MY>_x1eBbC)sO`*o+QX{eE>b~X4vQ3J`u literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png b/Resources/Textures/Nyanotrasen/Mobs/Species/lamia.rsi/underscales.png new file mode 100644 index 0000000000000000000000000000000000000000..edc457a79b7e3bbb117a90a32d9016829319a14e GIT binary patch literal 621 zcmV-z0+RiSP)EX>4Tx04R}tkv&MmKpe$iTct%>1lvKxAwzYtAS&XhRVYG*P%E_RU~=gfG-*gu zTpR`0f`cE6RRx%k-{RDAVPqQIx48bLV{L}6cZWRPkQ)=9KT2|nOqex zax9<*6_Voz|AXJ%n#IWpHz}M1dS7h&V+0890jVfq16NwdUuyz0pQJZB zTKov;-v%zOJDR))TFiG>?GT@Au4+FX^000000Ki>5B8z(O@855&wNR~WugIcO%Itll2_3+; zZL{~0Mgk&>BtQcGCjsHnwXW-T6xLcVIRXIy0001PXZSWZ<92vv&(OQTUd9{2%$~ys zknu`1v!?`%7LWi5kboKcIDOAU`EX>4Tx04R}tkv&MmKpe$iQ%gmv4(%Y~kfG{gK~%(1s#pXIrLEAagUO{ILX(Ch z#l=x@EjakGSaoo5*44pP5ClI!9G#pLU8KbSC509-9vt`M-Mz=%J3weum}+*71FB{j z=|o)2ga5(rZq4H4gqswK1A!OY{ul;=yFjyU+uz5w-8=#O&%l+|_E#Ig%qQvf zwiZ1C`nQ3L>$WEE0hc?#z>_W+k|X(P3dJJuen#Jv2g0{N&#K#7Yagc%K$f~%x&aOj zfsqnruX((?yR)}{&$Rmc0bv|+px1XgZU6uP24YJ`L;$(~0001^G^@%0000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2j&MA6)yp%*g)a{006>CL_t(o!|jy85yT(}MKJ}K z-t8d8aHJU0z~2)yhQVxHvp3!;6X65;l_*J)ByqIX001I_)*9Z>6A=J-rl+bfR23ou zA|ey%*P?);cx$D6f=KZW~Zl%odwzYTx%u&CLfL#}Ovl zL{AGv@sajdADDR}4@BR+fk&Qsd=m`s=H6)Dp#AOfLrk4lFZ%15N6mV+(E>A1o%@|1 sn0f6{TG@f+$81I5jh8e@k|g;%AKqC_gmCBwWdHyG07*qoM6N<$g2eMRN&o-= literal 0 HcmV?d00001 From 16ea95a3dd024768b22a3aa51fcd3a2ad889854c Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 23:36:24 -0400 Subject: [PATCH 78/85] Update skills.yml --- Resources/Prototypes/Traits/skills.yml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml index 3936a3125d..921069e680 100644 --- a/Resources/Prototypes/Traits/skills.yml +++ b/Resources/Prototypes/Traits/skills.yml @@ -14,24 +14,6 @@ components: - type: CPRTraining -- type: trait - id: HeavyweightDrunk - category: Physical - points: -2 - requirements: - - !type:CharacterJobRequirement - inverted: true - jobs: - - Borg - - MedicalBorg - - !type:CharacterTraitRequirement - inverted: true - traits: - - LightweightDrunk - components: - - type: LightweightDrunk - boozeStrengthMultiplier: 0.5 - - type: trait id: HeavyweightDrunk category: Physical From f1866b686121eccefe63a7a269ae3ed5d9e4d3b6 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 23:42:30 -0400 Subject: [PATCH 79/85] More lamia stuff somehow missed --- .../DeltaV/Catalog/Fills/Boxes/pda.yml | 4 +- .../DeltaV/Datasets/Names/cyno_female.yml | 41 +++++++ .../DeltaV/Datasets/Names/cyno_last.yml | 40 +++++++ .../DeltaV/Datasets/Names/cyno_male.yml | 22 ++++ .../Mobs/Customization/Markings/lamia.yml | 16 +++ .../Customization/Markings/lamiasegment.yml | 16 +++ .../lamia_inventory_template.yml | 112 ++++++++++++++++++ Resources/Prototypes/DeltaV/Species/lamia.yml | 68 +++++++++++ 8 files changed, 317 insertions(+), 2 deletions(-) create mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml create mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml create mode 100644 Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml create mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml create mode 100644 Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml create mode 100644 Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml create mode 100644 Resources/Prototypes/DeltaV/Species/lamia.yml diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Boxes/pda.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Boxes/pda.yml index b0917006be..b6140daae5 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Boxes/pda.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Boxes/pda.yml @@ -36,10 +36,10 @@ - id: ParamedicPDA - type: entity - name: science PDA box + name: epistemics PDA box parent: BoxPDA id: BoxPDAScience - description: A box of spare PDA microcomputers for the science department. + description: A box of spare PDA microcomputers for the epistemics department. components: - type: StorageFill contents: diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml new file mode 100644 index 0000000000..eea73f1e68 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_female.yml @@ -0,0 +1,41 @@ +- type: dataset + id: names_cyno_female + values: + - Abigaia + - Aggeliki + - Alexandra + - Anna + - Anastasia + - Baslikike + - Calliope + - Demetra + - Despoina + - Eirene + - Eleni + - Ephrath + - Esther + - Eunike + - Evangelia + - Georgia + - Ioanna + - Ioudith + - Kandake + - Konstantina + - Kyriake + - Leia + - Lois + - Lydia + - Maria + - Mariam + - Martha + - Orpha + - Paraskeve + - Phoebe + - Priska + - Priskilla + - Rhachel + - Rhode + - Rhouth + - Salome + - Sophia + - Zoe diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml new file mode 100644 index 0000000000..3ed9f62f11 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_last.yml @@ -0,0 +1,40 @@ +- type: dataset + id: names_cyno_last + values: + - Alexiou + - Antoniou + - Antonopoulos + - Athanasiou + - Christodoulou + - Dimitriou + - Dimopoulos + - Georgiadis + - Georgiou + - Giannopoulos + - Ioannidis + - Ioannou + - Karagianni + - Karagiannis + - Konstantinidis + - Konstantinou + - Lamprou + - Makris + - Michailidis + - Nikolaidis + - Nikolaou + - Panagiotopoulos + - Papadakis + - Papadimitriou + - Papadopoulos + - Papadopoulou + - Papageorgiou + - Papaioannou + - Papakonstantinou + - Papanikolaou + - Papathanasiou + - Pappas + - Oikonomou + - Theodorou + - Triantafyllou + - Vasileiou + - Vlachos diff --git a/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml new file mode 100644 index 0000000000..ca72b07fd9 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Datasets/Names/cyno_male.yml @@ -0,0 +1,22 @@ +- type: dataset + id: names_cyno_male + values: + - Amos + - Antonis + - Alexandros + - Athanasios + - Charalampos + - Christos + - Dimitris + - Elias + - Emmanuel + - Evangelos + - Ioannis + - Konstantinos + - Loukas + - Michalis + - Pavlos + - Petros + - Spiros + - Theodoros + - Vasilis diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml new file mode 100644 index 0000000000..65af873fe6 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamia.yml @@ -0,0 +1,16 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + +- type: marking + id: LamiaBottom + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Lamia] + sprites: + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: bottom3tone1 + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: bottom3tone2 + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: bottom3tone3 diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml new file mode 100644 index 0000000000..432b2ee841 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/lamiasegment.yml @@ -0,0 +1,16 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + +- type: marking + id: LamiaBottom-LamiaSegment + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [LamiaSegment] + sprites: + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: body3tone1 + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: body3tone2 + - sprite: DeltaV/Mobs/Customization/Lamia/lamia_tails.rsi + state: body3tone3 diff --git a/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml b/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml new file mode 100644 index 0000000000..546d0746b7 --- /dev/null +++ b/Resources/Prototypes/DeltaV/InventoryTemplates/lamia_inventory_template.yml @@ -0,0 +1,112 @@ +- type: inventoryTemplate + id: lamia + slots: + - name: jumpsuit + slotTexture: uniform + slotFlags: INNERCLOTHING + stripTime: 6 + uiWindowPos: 0,2 + strippingWindowPos: 0,2 + displayName: Jumpsuit + whitelist: + tags: + - Skirt + - name: outerClothing + slotTexture: suit + slotFlags: OUTERCLOTHING + slotGroup: MainHotbar + stripTime: 6 + uiWindowPos: 1,2 + strippingWindowPos: 1,2 + displayName: Suit + - name: gloves + slotTexture: gloves + slotFlags: GLOVES + uiWindowPos: 2,2 + strippingWindowPos: 2,2 + displayName: Gloves + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,1 + strippingWindowPos: 0,1 + displayName: Neck + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,1 + strippingWindowPos: 1,1 + displayName: Mask + - name: eyes + slotTexture: glasses + slotFlags: EYES + stripTime: 3 + uiWindowPos: 0,0 + strippingWindowPos: 0,0 + displayName: Eyes + - name: ears + slotTexture: ears + slotFlags: EARS + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,0 + displayName: Ears + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,0 + strippingWindowPos: 1,0 + displayName: Head + - name: pocket1 + slotTexture: pocket + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + dependsOn: jumpsuit + displayName: Pocket 2 + stripHidden: true + - name: suitstorage + slotTexture: suit_storage + slotFlags: SUITSTORAGE + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,5 + dependsOn: outerClothing + displayName: Suit Storage + - name: id + slotTexture: id + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: belt + slotTexture: belt + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: back + slotTexture: back + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back diff --git a/Resources/Prototypes/DeltaV/Species/lamia.yml b/Resources/Prototypes/DeltaV/Species/lamia.yml new file mode 100644 index 0000000000..a6cfbf90fe --- /dev/null +++ b/Resources/Prototypes/DeltaV/Species/lamia.yml @@ -0,0 +1,68 @@ +# Delta-V - This file is licensed under AGPLv3 +# Copyright (c) 2024 Delta-V Contributors +# See AGPLv3.txt for details. + +- type: species + id: Lamia + name: Lamia + roundStart: true + prototype: MobLamia + dollPrototype: MobLamiaDummy + sprites: MobLamiaSprites + markingLimits: MobLamiaMarkingLimits + skinColoration: HumanToned + maleFirstNames: names_cyno_male + femaleFirstNames: names_cyno_female + lastNames: names_cyno_last + sexes: + - Female + +- type: species + id: LamiaSegment + name: LamiaSegment + roundStart: false + prototype: LamiaSegment + dollPrototype: MobLamiaDummy + sprites: MobLamiaSegmentSprites + markingLimits: MobLamiaSegmentMarkingLimits + skinColoration: HumanToned + sexes: + - Female + + +- type: markingPoints + id: MobLamiaMarkingLimits + points: + Hair: + points: 1 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [ LamiaBottom ] + +- type: markingPoints + id: MobLamiaSegmentMarkingLimits + points: + Tail: + points: 1 + required: false + + +- type: speciesBaseSprites + id: MobLamiaSprites + sprites: + Head: MobHumanHead + Hair: MobHumanoidAnyMarking + Chest: MobHumanTorso + Eyes: MobHumanoidEyes + LArm: MobHumanLArm + RArm: MobHumanRArm + LHand: MobHumanLHand + RHand: MobHumanRHand + Tail: MobHumanoidAnyMarking + +- type: speciesBaseSprites + id: MobLamiaSegmentSprites + sprites: + Tail: MobHumanoidAnyMarking From 83bfe60d74cdfc83300009daa0f84e5498ed26b2 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 21 Jul 2024 23:47:57 -0400 Subject: [PATCH 80/85] More missing textures AAAAAAA --- .../brute_damage.rsi/Chest_Brute_120.png | Bin 0 -> 358 bytes .../brute_damage.rsi/Chest_Brute_200.png | Bin 0 -> 755 bytes .../Lamia/brute_damage.rsi/Chest_Brute_60.png | Bin 0 -> 172 bytes .../Lamia/brute_damage.rsi/Head_Brute_120.png | Bin 0 -> 207 bytes .../Lamia/brute_damage.rsi/Head_Brute_200.png | Bin 0 -> 604 bytes .../Lamia/brute_damage.rsi/Head_Brute_60.png | Bin 0 -> 148 bytes .../Lamia/brute_damage.rsi/LArm_Brute_120.png | Bin 0 -> 178 bytes .../Lamia/brute_damage.rsi/LArm_Brute_200.png | Bin 0 -> 363 bytes .../Lamia/brute_damage.rsi/LArm_Brute_60.png | Bin 0 -> 148 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_120.png | Bin 0 -> 5504 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_200.png | Bin 0 -> 518 bytes .../Lamia/brute_damage.rsi/LLeg_Brute_60.png | Bin 0 -> 161 bytes .../Lamia/brute_damage.rsi/RArm_Brute_120.png | Bin 0 -> 5587 bytes .../Lamia/brute_damage.rsi/RArm_Brute_200.png | Bin 0 -> 6173 bytes .../Lamia/brute_damage.rsi/RArm_Brute_60.png | Bin 0 -> 145 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_120.png | Bin 0 -> 5575 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_200.png | Bin 0 -> 465 bytes .../Lamia/brute_damage.rsi/RLeg_Brute_60.png | Bin 0 -> 163 bytes .../Effects/Lamia/brute_damage.rsi/meta.json | 26 ++++++++++++++++++ .../Lamia/burn_damage.rsi/Chest_Burn_120.png | Bin 0 -> 275 bytes .../Lamia/burn_damage.rsi/Chest_Burn_200.png | Bin 0 -> 732 bytes .../Lamia/burn_damage.rsi/Chest_Burn_60.png | Bin 0 -> 135 bytes .../Lamia/burn_damage.rsi/Head_Burn_120.png | Bin 0 -> 163 bytes .../Lamia/burn_damage.rsi/Head_Burn_200.png | Bin 0 -> 299 bytes .../Lamia/burn_damage.rsi/Head_Burn_60.png | Bin 0 -> 135 bytes .../Lamia/burn_damage.rsi/LArm_Burn_120.png | Bin 0 -> 229 bytes .../Lamia/burn_damage.rsi/LArm_Burn_200.png | Bin 0 -> 317 bytes .../Lamia/burn_damage.rsi/LArm_Burn_60.png | Bin 0 -> 146 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_120.png | Bin 0 -> 177 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_200.png | Bin 0 -> 337 bytes .../Lamia/burn_damage.rsi/LLeg_Burn_60.png | Bin 0 -> 127 bytes .../Lamia/burn_damage.rsi/RArm_Burn_120.png | Bin 0 -> 237 bytes .../Lamia/burn_damage.rsi/RArm_Burn_200.png | Bin 0 -> 325 bytes .../Lamia/burn_damage.rsi/RArm_Burn_60.png | Bin 0 -> 167 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_120.png | Bin 0 -> 180 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_200.png | Bin 0 -> 241 bytes .../Lamia/burn_damage.rsi/RLeg_Burn_60.png | Bin 0 -> 137 bytes .../Effects/Lamia/burn_damage.rsi/meta.json | 26 ++++++++++++++++++ 38 files changed, 52 insertions(+) create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_60.png create mode 100644 Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/meta.json diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Chest_Brute_120.png new file mode 100644 index 0000000000000000000000000000000000000000..404f932b64e8a140622a7bb3263dfdb19b12941d GIT binary patch literal 358 zcmV-s0h#`ZP)wQ0Hp`pO~p-n+XgdSSiI~j6>I%l~QWG1~VI~<6|T^#<(4Wl}afVLKvQe zp#eAsn`sxp*@+k)fEeS}gF^_*7r{RGvRAO*uyQe!)sS=k5vbk=nEkG4c@e68fb{1$ z=iJnFa#Xe7PS@EBXZXegCdu#?%v_>JfNVZ@|lnS$Rx-%zB$XC3j!C7_QE{r0fxp z_Xa%Lh^*cRyv2q{)gvJ74LHAlibBqr@-+bf0N}s*0?!i=k{(iRx-Es!xj?z6_M8k8u(!KyMe!JTF zq$pM*^A9t_jAZ~AhG7_nVVM7uOU+HU+bz-c+uPg4IhTwvRb$madPh5I#`;lu!#vMP z2mv9)!|!`zUdd61Y?Fb!{@_S=M!Z&>V&#+fzeP1~}&uiNzQZLdgI1eP5l1&oa+*qR9h52mvw1>;&gr zv3`*QVvLYdf>K^eiDg;xI@~+t6@(D7*0L;+QUbUy2`MFFjKyOXS5D{L!==&Z*2xzT;>k6+zDV24BdmU)Wydsa? zZnq?aK#VaPK-cvB%I5*+TsrC><2S?OU z9IbI26M)=yy!TK_!FzvN4In+G6o3!MT(8&Do<_4V&bdTRIg4=|lXEV;y6ry2cNy_l zO#bZ1|84pV!!QiPFbu;m48t%C^AFPW8hISY)O8&IVB5CSUQ2(aZuR*9;A3xK+qP_2 z%XrT~8l+jfElxB!z*-Aq47#q%pI5WjGR8FTMm0GAxNlP#V{$~!VB0nrW2&~pj}-3? z@6lRgSrz~|CHh3ybvg1{>!z`qGGJMjY{0f{r)0riXCHuCnwJ0>&>D#nNUL@7K%oPU zRi4_AK!JzF;M;sv z=M9pv4emb+0<-lec&j)lB?Fc12?*7mo47oC-TPNYA2a$a(@QvB{<z@qLn`LHy=BdJSb>Kj;L30P zJI&cYWnNBE^eD*);W=BaEc7Y;L(+7nn$=s&-po7v`rPvlk6fqhw;dgG9&Ekl{m@wY z;_+9-Gu0Mzo))vO`aOMzxHixJxG2Ay&Ia0MKpPks4t##IPjXkOe1O-zUWZq?2VP!$ z{V|Yff6k##NBi%U^?twTwfg0km`!aD-pl~2fAfyl(4|h3<@jtK5Z}|)&t;ucLK6Uw C8dqun literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/Head_Brute_200.png new file mode 100644 index 0000000000000000000000000000000000000000..f1de5695c5adc09012210e68ce278db3418f53e0 GIT binary patch literal 604 zcmV-i0;BzjP)0sdQqWRTaRScZHbr~@A0Um}oWUoca+%iB^96{MDiRVG@D`C- zv|4Ew=fUbp^EE_K!iqKVttVrSzYlpLjeT@8%HY ze!s(73n9c?MTjZ@=iCE8mSs2`4&a=7t@SRQV2trX2w#>Zs;WX+mTwhdbpgWSrIc(O zM*zU_ctqEAZ0jNzV|>#ztgdSSfVCE<(}@9yE&^Nge|3j4}RvKKpPC-z|?@$6p?oxx~beYFQzKpQZ_Enxd|2OM{}`@;SWOFU-jB;gZB-JInu3x)WxuR_{B<4%7$)bxV>J|7jIh%J#j8 q%vgKKWYwx`>nF^VwPplK<~(N<2@$UM6E>d>;(EIJxvXARDpvb;L>0H zHwOjQJ#hJVS$;w1Ewg>*42+_DLW~Ry2W)0q-jm4g7Uh($<(RMiuVSXmWTU%&h{fl94CvRRN|6XxsK7@|^s-t|l?3 zY5GY*(=-p0ps!%nusj;yZ|1MS)wm?Ux*2+IuPzCws>(E8Q52@}T&Zfx@9oh_$SXgN zWAgsUGN-EP=++fuyxzn`o-1cH@Jp^f000000002MQ9g_4x^DO1<6E5#mSrh>lW>a! zgb-w&XQ`@6>bl@5v!8+uhKDPU3|NROC006)z`v!x_nOBEXZsPy|002ov JPDHLkV1j2tqGJF6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LArm_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcf2e505a1897df1f36f5b3f381079d437dfd64 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=(Vi}jAr*7p-q^_7V8FxT(EZo_ zr{bo_6)P8bu!xm2N37T1S0D;hcYkV%+RXgt6-#_Ctg_vDkNJ^q+kUyP~!- q&Sm?$D7OHpjDg|BL2Wq@y`z|ErJ~%-doj#cL0nH)KbLh*2~7b1+AwJV literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_120.png new file mode 100644 index 0000000000000000000000000000000000000000..680ec3009a5017c345f61bb7d2ec136d38c22057 GIT binary patch literal 5504 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 qdkx7Mfj2k;+*3=&m}^= zv{)=eiyd5mvMl+0K2zWK68XH;G!5l>{yE2CyWKJok+qin_f&Sf9XCzG{#zpEcW8j+ za(QpbGSGsdtnW|pLiqTr$^KI;x3B1+R#tSz5$&T$;aKi2&S z#u%P@^PY1~v;%_A?Bm6!wWh=2AbuAZWB7W#{`e=cPVf=XT9ekA(ljL^qG1@skHX)Z zkK>q>Qlyj;i5*;kVHij$MO9TrT5E}%o>EFtUDpva(_=RP0000000000006*ClfLFo zt!Wzea|vD7QB_s{y&sVY5&vdCw>;0IuIs36TUxDFqhg2@V6N$qN7hh(7U_V?>Y#*OX-$Wmy)qu4n;Hr;}v3r;;S0&1MrNNfNx~A7om{6uKUw761SM07*qo IM6N<$f-vysivR!s literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/LLeg_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..2670821090fb2abb277f7fdc72ac5351a697be70 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=8J;eVAr*7p-rUH0K!JzFVai|k zL=OHVd`rCK1Cl1}h(561d{Ln$P$3X7XRWo(4s%&@R%()H&TXbmDf_lvS6Y;wmv&mH zFJ1fTeWAYpe;_L5Hn&fH{aRu5mTO_|5yxYN8Z6D%EYY5%?+`x+q`=eF&t;ucLK6UH Czc#Y~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_120.png new file mode 100644 index 0000000000000000000000000000000000000000..f68f0c4f15f84d288af693e957fa8e6a5a67e8de GIT binary patch literal 5587 zcmeHLX;c$u7fx7YQ$eAM3K)X8q-I|rfv_V)2t;-?txhHr7$J*EAORFDDu_}=1qy;2 zYE=*^2(4AX1vjW41uZThNLWQGV{LoKJR^=d*{wfGI>FM z6HKR@qEM&_9Dkn>b7?@_ND=Cu`qu#z2 zYlwUsa3UFQpx@PxJW?U|K4^2dHIeIgYpAY!$oTE;tc+Ls7qa){K9x3Hf8FlfVOYfV zCbErjJ;}|t-40!!$lqn~&5X>rbN4O>@M;ZAcAMXu+#GalGk=rYj^^t(n+hHKYSu;; zFB$&k($lwx20H_-t?oF^GFqOe#$i%Jv+tNE?j%3Cu_|vJtAT6j+?%_5vr*YuDsIHC zmim{$#$JW%vaT}f)7n+cp#JKo^@&gFn<$T6PEFg=({$7+Xt+H-Z`sd54;EjR!F5?D z3My0bZ`dy!uFNVvZu#;=fbTr?LtBp+yPkV<*W$=EQY$#bVPAE-r#^1Mw?|?NjMn^F zfo;squtCTA5`{-XpoM6W{-EiC7e~z=t$NTY;hnj#owVKLtnt^*>LJ^{Z#+doNyYna ztum~=k!eb|VV0B4)?|06bADbc?Rz2T8yf%k=#HL#drR;ncFXy)pBf%|n9ZJD6%&=+ z6oBHdtF_FrN9*~`=H&GAM2=}Q%?4qMFbmo(H2T0f%f)glpG|V$_KdikVSdoci4HO7 z4YQ)Hn#17JIBdmt?$gbj|Jb%aKctZp%Ar@!XWq$CTzlA1emM4z{n6o@BE-H6=O6AZ zKCmt%ppwP!hHh0ojnR_9*Y&KKiK_YYul@}iy$)z$g za;k|_o&8js69XOuXXOB9geoEO3RBy%yw5JURNuTa+4!uvWdzLMF?0D$N&Nufxx+oD zw$5VP)`c`wm2ujUnCd+7wYv0#3PZ}xqS~)-P?SN1zuM@v9oeYxoNB(5FQ}y33I_L% zdq4(j?sPhqGw)8v{n#N$QMHuPHH!_dX)eVt840e|wCek$FS^z(+SVR)G~Cd=w858{y$`a7K;E-&H zd$DoV<)7U4Wfl(lY#g*zKIFN1q|`{-vI?WvxGKN&=G>n-dH16_e{-PDk8-k;==%px zKD(w_$!(h-9~VCvM=9s#*PGX^)HE6;rinB$yEL}13|)4{lJswidrxdmy+Ui8E=Zq> zBe~fBHdIl7yOiO=AkF%zq4mCh-%MHf^DOC-UmT(}RDR28d-UB~Yf@X~UJKJpyZTLc z{@LHXZT%jMO@1n#y^?MDX411$Rzj1T0^6=|z3o$aTm*Z|zzn~OGXna0mu8r_zh$vp zmWtg8{wYI;JT7_dO`hvDdHG}E+Q7761A`$jJibLDXUonMdqhib}y5hUuXXH)+bxjaVmW^`egWpmFqgJ z7a=WA^pCv`mMKAPuVZgKGhq$S*n1#QW9*?R?Xj*ilG@#JXPmn+E>@lUAa!A0#P~B) z>{0?Jy!_#0E-T`K{=~lgVC$-p*v0$j6r|aD{y8gc{lNO1sm}(dMmwZD2uGpN>tJth z9>?4JU3W#+DO$Ca?O*R9<_n$~5sp|Eg!@ur;Tr}j5vudVG#tvNYzJjKX(h;sGF(G?z7 z#njvln+hJ5SgU<4fM=i;m2xbL$yr$3^ZZ1{mU0z&SL=&gyZ1%@FM9l7=DA~+N#gDa z-TmD5u9{#Qz&F~_ZH^taKkeKWexz$^4__ADRWOOVbH|*`7Ms>HBHHr5;(o8*=v=a# z)n_(sOL)_gqH1|AeV}2fbz}e6zwr+;*BMNyFfhSdg)Q=$#t>B9-yh}Ql3KHNb@Na_ zZ^)%^J%@{WxMs}B)Is;>9c8(@iw3uOt=RMG{0g`9?@kk%4>6lYDtc%^sJB$vfnQ$d zvPe%k$z=z8x2zdt$X0Y*$zgZNjjYuaVQ8YGJJ)`awt&#~V)0P>ocL3=b5DR=c-1$XiHm`-+jf;2RjZ+eL8$S)f!*0EAKjL{N)m zNNJ!@uI_3X0LDQ|i~x#(C2Z`#$x~PiEM#LN>0A<5<_*Qd{>gGEG&v{?OpXJYLae)+ zsjHfW0Ei(afKiL%B?^|Bjn(0@kYnvI5sT58DC5}JC@v4`8jumm1QJm!CVuRp zQ2Hh!AY%djqlY34d1xSpKniJs9E5xmA&JuAV+bMm-d~m=kJr%=fHJ7N**B9ZYVCl-l>CI0smMF7a4&=7VM21S5S zB-8QEG!jCQ3DGG|pny(y9?jstNRdKk(P^JjbR}vV*Sn;;68|slqXr*!Iz*b$F{Fbc z4Vn19Badl@#QR@<#>(x#TmpmnvdCxY`$euVa($KppJn`|y1vNuSqglX@t5lQ*W@z& z@Jvfv?OTcr!5kmYFyx=nn`cZ;W5ydcH@_i1-fCazHM`Ow$BW1q=vY7a zz3FT{6sqgY;<(b5Ci9YL7hAitG1XhxdaTngepn{_(E@=%p)Qn^yg9hL`@y5M$D223 osQUVr_Nc1^-?fB-L}b=xV4RBPn(gzjPG4)x@eT4h>a{HGZ*TxzjQ{`u literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_200.png new file mode 100644 index 0000000000000000000000000000000000000000..6b99414d0be62c8814460c118b82a3c7effd6ded GIT binary patch literal 6173 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RArm_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4a031f15166f01e7cfbdce1b3f580854ff090c GIT binary patch literal 145 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 Hu0mjf9l6Tm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/RLeg_Brute_60.png new file mode 100644 index 0000000000000000000000000000000000000000..44aae3c0bfb91ebf9003c1a337b4e3bd96c7f5ec GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=S)MMAAr*7p-aN?JU?9M9AmRVg zB^}xtwnz3WbY$$AJhMI_(rkS;FHj`|!vhzWGwY3IzTUf@dMd&po4Z&y*Lro1s>_ix zyL`ebYp05;O?#Wo1XgMv@X({^YT5IP5|3ZXe6?_947ktdbwGR4;WHNJKngrv{an^L HB{Ts5vF$nj literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json new file mode 100644 index 0000000000..583346556e --- /dev/null +++ b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/brute_damage.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/Citadel-Station-13/Citadel-Station-13/blob/971ddef989f7f4f365a714ef3d4df5dea2d53d9a/icons/mob/dam_mob.dmi", + "size": {"x": 32, "y": 32}, + "states": [ + {"name": "Head_Brute_60", "directions": 4}, + {"name": "LArm_Brute_60", "directions": 4}, + {"name": "LLeg_Brute_60", "directions": 4}, + {"name": "RArm_Brute_60", "directions": 4}, + {"name": "RLeg_Brute_60", "directions": 4}, + {"name": "Chest_Brute_60", "directions": 4}, + {"name": "Head_Brute_120", "directions": 4}, + {"name": "LArm_Brute_120", "directions": 4}, + {"name": "LLeg_Brute_120", "directions": 4}, + {"name": "RArm_Brute_120", "directions": 4}, + {"name": "RLeg_Brute_120", "directions": 4}, + {"name": "Chest_Brute_120", "directions": 4}, + {"name": "Head_Brute_200", "directions": 4}, + {"name": "LArm_Brute_200", "directions": 4}, + {"name": "LLeg_Brute_200", "directions": 4}, + {"name": "RArm_Brute_200", "directions": 4}, + {"name": "RLeg_Brute_200", "directions": 4}, + {"name": "Chest_Brute_200", "directions": 4} + ] +} diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..5a68c6fd86142ec705e4a3fdfc31362539c99527 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=w>(`OLn`LHy`{+4Y#?&%W7_ls zNtT>_!U`TADnx{BPK#EpK6~z+$lO<#Civv2zMuN$|K}&aZ#kVkYzfrN@Z+G-*N10r zPQSxcdQ~Ru+3c9-b5^fD_KsnX#|Ndf3Vd}V3AH|2H64xAM(E) z=IDLc;`+>e8uO(RgH>~TSG3$c|8~OH?lX@o&sY8tcqXgk{zSFs`N0Yqp!x%ndl`KG VH|^bN+w=^i-_zC4Wt~$(69C9tdyoJC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Chest_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca0dc67f153aeab95b43905762a2ef11afc6ea5 GIT binary patch literal 732 zcmV<20wev2P)OnB%y`~1$%+~T0GsP;T2?`|QX;pO6*VYtnS+&}qyAtC)}$oMGy*NZpsJM; zS*AfXDaqTL3gs=Z6b_?kr)k5sMJP0fZo7TuTu>cPmA6*6-9{)hhYi~nMLSJP;jr>} z!cPO=zJA8s%ws%TdXE12PrNDDmB+aWdCR2P`KS2N`i}0O-+1xz6=KQEWP5SH0q>sQ z-z{k02Hu)(FMd|webqOd967K|gUa=W*xxPCr(fr&A3CbT1Xe$EP_)zZ`pG;ZTLod6 z2Av$K_n~wK6zw!^%N?<>I12!XY!$?%bAYbXRxa#^_mJy4ZCpABh-?)E04yxdVq5O$ z*@|u>xm05CZ_v*P9JIa_HOSkGuKL#+(OtY+DNXl--v-mXe=x=vV~jDz7-Nhv#{OeL zf1kf=b+2(BOUrDWbUdQYr4l5w@!Ro8d{jBqU#5~z0H8l7Fe(=i z#Es0Hn-l2tE(R&CNy()W^ytAuxVeC!<0+j1>#F}ZicY5fA{LT1`yBF)z4*}Q$iB}5+Ev@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..90d69223b6d72eaa60f7cc6f0db1e382c471f0b7 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=S)MMAAr*7p-rC69V8Fw2Am_ML zPUC{}GA3_0YgM$CJaK&|_G5eWZjlE5Z>2la&&<0WnSJNk?(!_=^~tZp7Mzu`t7$so z2Q&u=K8SOE|JlMZ+!5aw3`tm>CnJl7G|{e*ykymKwM8(KbLh* G2~7afpFL6l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/Head_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..36b911481623f94d094667de464ded479f148ba2 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=pFCY0Ln`LHy=BPP z;kJ&BIsUy}9Wwk&D+SCiry2x{&U}{n$z+R`(PoA9X-_j31smzu{Y{WOeyObXiP^&n zjjdWndwH+>PoMS1EM}>eQR#LCf8pHSc2UPR`ZjpS+L!&R$uha3Z?Ny*W1nY^O+0)y z(m=ODz~}Q^M2>!(}fN+hJEVT!P^~odTaTfovc7@Kp=42zwnU%c7b!JBOEmt a!9vk$ii)D0!fO`mgSeiqelF{r5}E*XE+$<7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8da637caf5e57123777180ed856099f3d9a25f GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ydl>XLn`LHy=BP97%0H@!2OQn z>ZeM2ijP>7qyld~+gf#1E$=Z?$)Z4uqpQ9#omqF{_de!7Gf%2qKC^^{fkEKGhB%Y| zGklj^&J(sYjFSdhu4C*-xzv1Lpn0hfg@wr5ep!X7#*i zz5DO0d+t1oE#eMJ&97%* b_;E*Ca+c+*#_&@wK?Zud`njxgN@xNAQ7&Fy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc53776594eda8616ae777b1fe7f36586905cd8 GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}W)haSW-L^Y)f4*C7XiwucwP zX2%>Zu3*+>J$TBCN32PStBHfr)nnm=OU5^k9&_T>c6=M7?RY88%>K=9nFq;|X=UA! zf2z#g3JH_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LArm_Burn_60.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8f7bf9cae96ef3cea682d8565b29613da562f1 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k)AG&Ar*7p-t^>UP~>57n6ikK zRhudBM&o%cg;s|df)~Dc+52(=6*^s+^qbdkdR9EAw}p||ZkKg$N?-H$DF9`FU_+bu oFU>OlL(hMFFHxSSC&$3>jAw$4vH_dU0!xs*r>mdKI;Vst065GmP5=M^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..a84ef88da87977eec2d0cbbe110b03200b365640 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=6`n4RAr*7p-g4w^FyLXmz*ca`c=j~M54gKgaE${Gx%7ZK5D%9MEVCuTKAlzN*P<$-+lD5cenb#`^;y~ z@L6w9^wR_y2?7UxKhiK+m;J-VQOQH5_1P2^p@l&+d8(7nie)-%x4-oLbf{8@)});- zQUX8btu%cFlm(JnANJPt&Nebs$0 zW{8^@7$(F&_A`#ZoizK}=gMV=yVo3xvATC|op(cUe%aMowW~+D=HP8 de%W5WQAe(?DWX@r#n>HWgr}>Y%Q~loCIC+AjaUEx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/LLeg_Burn_60.png new file mode 100644 index 0000000000000000000000000000000000000000..70b91d8824484b7eb0d26e2f4a9204086bd1fc89 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Zk{fVAr*7p-U{SoP!MoA=$$1d zEO98{+C{Fe2aRV$D&&9f76d8-f&-lwU;Wv5v@h=TXIGl4mi-{tr2VRY@S^jLA5`0WO!f?qP<$27bx5>-)avwJ(2yP#gb>Bx}@MZYU-^p>aa zADnWV5oiEIgP>*DQihZ$W#2c?-Bb7eU*-Oj h#ez{c=d&^}OjyUi&A=p-f2ASV08dvxmvv4FO#t4~U0nbG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..77e463d02f25c942442c9631580c675c1c40de16 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC3<1aSW-L^Y)fK*C7Lu;~$r| ze~@@L?*Q`-Eh{Tg7lHpgvMvHH1qEMJ?k!!{wIjmi&MO7RLIYplXrcY{Emim1$z?tW zWdR!3@Ve}FXwomAt0^B#E|}k2kfE1y#&;T@N2=WmtMJh5ndT2Q1PfPh4GEk2SABBa z<(cCDr>O1zCh+EpblIgT3ch8zjNh*Bo@$WlF*!E6p;+d5`L1UPmeOiU>-7&=_HBK= zm34(}UQve<_r)&5xHZ~JO6?kxZaoewlL1-{0uAypvqWo>ztlH8y0pN=y#6NRd*kxy z%Ur`&e*3mdKI;Vst0K3J75C8xG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RArm_Burn_60.png new file mode 100644 index 0000000000000000000000000000000000000000..96b96b566bfdcc8fe9294152e98b75b18f72bed0 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=d7dtgAr*7p-a5$HV8G*W@eu>x zL!NVwb><#WlsQ#e!sy6-RPDpPo$dY_dzUN)sz0!Jao+V8ZDEqLlTX>4)PH;Vc4KMW zuPZzgcFr|8w|7}Bv(a{DpfaE>EHnS}T)2Gy_H_gE^S5?NFflNwlrwk5$eFx$b^HTT N;pyt{O)K5hU2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_120.png new file mode 100644 index 0000000000000000000000000000000000000000..efe3ad8b53949254861fd643dc9be21a0e3ba863 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=)t)YnAr*7p-rUIR;2_bKxN(l| z5h<(QYg|Ikk?me91uf<0r8k`Z9sh3C{#8Kb3=9p%wbyg}&F5%dGwV;jqpD)|F|zag z+KAvsAKH_0Uz;3>b=tTrHRExcy~=h*u!e%GvDF8D^*Pt+R!0BH?38|0|7v&IXWokS YvU{Ah-&>p9ItxFVdQ&MBb@0AKk;DF6Tf literal 0 HcmV?d00001 diff --git a/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png b/Resources/Textures/Nyanotrasen/Mobs/Effects/Lamia/burn_damage.rsi/RLeg_Burn_200.png new file mode 100644 index 0000000000000000000000000000000000000000..978e01358f9916f1bafbbe11dc05604611641e98 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=J3L(+Ln`LHy=BOC$UuZG;bYOg zMHW-n$?A&6?BbetAbO|8uBvvcR6&+bv)XI#Z!_0B#c}M}9>oaM%5cCt_I3{t6+f>C z)486vn{)fmB@x>`8?;!r-0^um$MyPe-SnGFl+vP>t;;>OZ{4A(4)NisatAxU&KEgd zW+`___Ry1=m%duPef*bk(iGiC_N*X78Ga;Ae9qFd*4Senrv;tljbpuYZdO{ Date: Wed, 24 Jul 2024 20:53:36 -0400 Subject: [PATCH 81/85] Update PsionicAbilitiesSystem.cs --- Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs b/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs index 24e6bbb8d3..14a4f65a1c 100644 --- a/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs +++ b/Content.Server/Psionics/Abilities/PsionicAbilitiesSystem.cs @@ -7,6 +7,7 @@ using Robust.Shared.Random; using Robust.Shared.Prototypes; using Content.Shared.Popups; +using Robust.Shared.Serialization.Manager; namespace Content.Server.Psionics.Abilities { @@ -19,6 +20,7 @@ public sealed class PsionicAbilitiesSystem : EntitySystem [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedPopupSystem _popups = default!; + [Dependency] private readonly ISerializationManager _serialization = default!; public override void Initialize() { @@ -50,7 +52,7 @@ public void AddRandomPsionicPower(EntityUid uid) return; } - var newPool = pool; + var newPool = _serialization.CreateCopy(pool, null, false, true); foreach (var component in pool.Weights.Keys) { var checkedComponent = _componentFactory.GetComponent(component); From a26c4c940df6a2239bfc5fa2aabe310cafab775b Mon Sep 17 00:00:00 2001 From: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com> Date: Sat, 27 Jul 2024 13:21:34 +0100 Subject: [PATCH 82/85] make everything --- .../Locale/en-US/_ds14/loadouts/categories.ftl | 1 + .../en-US/_ds14/loadouts/personaldefense.ftl | 2 ++ .../Prototypes/_ds14/Loadouts/categories.yml | 2 ++ .../Prototypes/_ds14/Loadouts/personaldefense.yml | 15 +++++++++++++++ 4 files changed, 20 insertions(+) create mode 100644 Resources/Locale/en-US/_ds14/loadouts/categories.ftl create mode 100644 Resources/Locale/en-US/_ds14/loadouts/personaldefense.ftl create mode 100644 Resources/Prototypes/_ds14/Loadouts/categories.yml create mode 100644 Resources/Prototypes/_ds14/Loadouts/personaldefense.yml diff --git a/Resources/Locale/en-US/_ds14/loadouts/categories.ftl b/Resources/Locale/en-US/_ds14/loadouts/categories.ftl new file mode 100644 index 0000000000..915979fd7e --- /dev/null +++ b/Resources/Locale/en-US/_ds14/loadouts/categories.ftl @@ -0,0 +1 @@ +loadout-category-PersonalDefense = Personal Defense \ No newline at end of file diff --git a/Resources/Locale/en-US/_ds14/loadouts/personaldefense.ftl b/Resources/Locale/en-US/_ds14/loadouts/personaldefense.ftl new file mode 100644 index 0000000000..073a2ab93b --- /dev/null +++ b/Resources/Locale/en-US/_ds14/loadouts/personaldefense.ftl @@ -0,0 +1,2 @@ +loadout-description-LoadoutItemMk58 = personal defense handgun, loaded with live rounds. May be confiscated by Security. +loadout-description-LoadoutItemMk58NonLethal = personal defense handgun, loaded with rubber rounds. May be confiscated by Security. \ No newline at end of file diff --git a/Resources/Prototypes/_ds14/Loadouts/categories.yml b/Resources/Prototypes/_ds14/Loadouts/categories.yml new file mode 100644 index 0000000000..08719cd875 --- /dev/null +++ b/Resources/Prototypes/_ds14/Loadouts/categories.yml @@ -0,0 +1,2 @@ +- type: loadoutCategory + id: PersonalDefense \ No newline at end of file diff --git a/Resources/Prototypes/_ds14/Loadouts/personaldefense.yml b/Resources/Prototypes/_ds14/Loadouts/personaldefense.yml new file mode 100644 index 0000000000..a1cf353c66 --- /dev/null +++ b/Resources/Prototypes/_ds14/Loadouts/personaldefense.yml @@ -0,0 +1,15 @@ +- type: loadout + id: LoadoutItemMk58 + category: PersonalDefense + cost: 5 + items: + - WeaponPistolMk58 + - MagazinePistol # Gun comes with a mag loaded. + +- type: loadout + id: LoadoutItemMk58NonLethal + category: PersonalDefense + cost: 3 + items: + - WeaponPistolMk58Nonlethal + - MagazinePistolRubber # Gun comes with a mag loaded. \ No newline at end of file From 0c56653a1ff9c09dcb882e29b7822ab8b4c1e0d6 Mon Sep 17 00:00:00 2001 From: Peptide90 <78795277+Peptide90@users.noreply.github.com> Date: Sun, 28 Jul 2024 13:25:22 +0100 Subject: [PATCH 83/85] Update Patrons.yml --- Resources/Credits/Patrons.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Credits/Patrons.yml b/Resources/Credits/Patrons.yml index ff3cc28689..bb7812481a 100644 --- a/Resources/Credits/Patrons.yml +++ b/Resources/Credits/Patrons.yml @@ -2,5 +2,5 @@ Tier: Nuclear - Name: "TheGungeonologist" Tier: Nuclear -#- Name: "nameinquotes" -# Tier: teirnotinquotes +- Name: "dankiskhan" + Tier: Nuclear \ No newline at end of file From 932738c9ab9f433b6538fa2793dd486152429d3d Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 29 Jul 2024 16:46:36 -0400 Subject: [PATCH 84/85] Update personaldefense.yml --- Resources/Prototypes/_ds14/Loadouts/personaldefense.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/_ds14/Loadouts/personaldefense.yml b/Resources/Prototypes/_ds14/Loadouts/personaldefense.yml index a1cf353c66..1adc692ff8 100644 --- a/Resources/Prototypes/_ds14/Loadouts/personaldefense.yml +++ b/Resources/Prototypes/_ds14/Loadouts/personaldefense.yml @@ -1,7 +1,7 @@ - type: loadout id: LoadoutItemMk58 category: PersonalDefense - cost: 5 + cost: 8 items: - WeaponPistolMk58 - MagazinePistol # Gun comes with a mag loaded. @@ -9,7 +9,7 @@ - type: loadout id: LoadoutItemMk58NonLethal category: PersonalDefense - cost: 3 + cost: 6 items: - WeaponPistolMk58Nonlethal - - MagazinePistolRubber # Gun comes with a mag loaded. \ No newline at end of file + - MagazinePistolRubber # Gun comes with a mag loaded. From efc50b903024cabac7777d02c5be18ab87bf5be9 Mon Sep 17 00:00:00 2001 From: Peptide90 Date: Wed, 31 Jul 2024 10:27:02 +0100 Subject: [PATCH 85/85] adds bobbys patron shoes and loadout --- .../_ds14/Entities/Clothing/Shoes/misc.yml | 10 +++++++ Resources/Prototypes/_ds14/Loadouts/shoes.yml | 7 +++++ .../Shoes/sneakers.rsi/equipped-FEET.png | Bin 0 -> 624 bytes .../Clothing/Shoes/sneakers.rsi/icon.png | Bin 0 -> 360 bytes .../Shoes/sneakers.rsi/inhand-left.png | Bin 0 -> 323 bytes .../Shoes/sneakers.rsi/inhand-right.png | Bin 0 -> 340 bytes .../Clothing/Shoes/sneakers.rsi/meta.json | 26 ++++++++++++++++++ 7 files changed, 43 insertions(+) create mode 100644 Resources/Prototypes/_ds14/Entities/Clothing/Shoes/misc.yml create mode 100644 Resources/Prototypes/_ds14/Loadouts/shoes.yml create mode 100644 Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/equipped-FEET.png create mode 100644 Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/icon.png create mode 100644 Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/inhand-left.png create mode 100644 Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/inhand-right.png create mode 100644 Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/meta.json diff --git a/Resources/Prototypes/_ds14/Entities/Clothing/Shoes/misc.yml b/Resources/Prototypes/_ds14/Entities/Clothing/Shoes/misc.yml new file mode 100644 index 0000000000..68caee46e9 --- /dev/null +++ b/Resources/Prototypes/_ds14/Entities/Clothing/Shoes/misc.yml @@ -0,0 +1,10 @@ +- type: entity + parent: ClothingShoesBase + id: DS14ClothingShoesSneakers + name: sneakers + description: A pair of sporty sneakers with the name "Bobby" written in the tongue. + components: + - type: Sprite + sprite: _ds14/Clothing/Shoes/sneakers.rsi + - type: Clothing + sprite: _ds14/Clothing/Shoes/sneakers.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_ds14/Loadouts/shoes.yml b/Resources/Prototypes/_ds14/Loadouts/shoes.yml new file mode 100644 index 0000000000..f01a73f4f1 --- /dev/null +++ b/Resources/Prototypes/_ds14/Loadouts/shoes.yml @@ -0,0 +1,7 @@ +# Patron Items +- type: loadout + id: LoadoutShoesDS14Sneakers + category: Shoes + cost: 1 + items: + - DS14ClothingShoesSneakers \ No newline at end of file diff --git a/Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/equipped-FEET.png b/Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/equipped-FEET.png new file mode 100644 index 0000000000000000000000000000000000000000..3e3b72eade82257c9ea8c617b1bab4239c616fef GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-HD>VAAq*aSW-L z^Y+&MY~e%+_7Cq{9jupH?U^YeI=$rz-*SO10*hJ;VwIjo$;h_&2^I;tI~H^ZXn3&w zZ*iJ*(vwA6TV<_tf#(W0mZfu*gnA{lrr7ZPboBGD+L*cE$KM0I-}muunPTHEo#_-{5p%gD#wvZ`!-wO!~me z%R$4`ouN(9Blup!<1B;tAE~T?M(arUvz`eO69u;ckYub=bEpd&vR_s{cZi1j@!@H&-Z!q zoJSfM0*S1#)06b{kH*v~{X7~I$F(c(^+B&CPtKiv+WF*gfLGVfKMH&9Pgpob!b`Tg ztp0HOXWpeLuKSDD++=>467=NwZ~J*AMw;KJP4f%+rr&RD624%?g0;XT#Ng@b=d#Wz Gp$PyK$RXwc literal 0 HcmV?d00001 diff --git a/Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/icon.png b/Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..efff57125ec68e00f95bfeed31a0d5fa952da4ad GIT binary patch literal 360 zcmV-u0hj)XP)Px$B1uF+R9J=WlCeudQ5431PaK-sbbHX+(x5|7Akw6Z%QG5V8g)=~^e<3!NN{O) z@HN!bR2CRC=pRr^@J6?2Xo#+Z-phOOo&{0}p5JugeCNCOeD{DL2!bF8!lq*_E9Mdj z1#o8DMqivvel&GcDFtxhd8Y4XIt|sve)rD5BfhM-dvXeZbKV4CIB?Y+aQ*P4C03`~ zqEf0UfI?;;fb4M*fKj;)z?=69S8nJX|B}GAy%Sjr-2pvOdoj7@GMxrsbZ}(){RtdC z-U8r^$AP};A_=YcvtBz8HTiH5{(n(uz1{`wS1s37rBtKSZJFfPD}iMEbAEV#4v4b( zz4;;E2jHdA1K{J!3iLVm{h<3dALH+1r3AKOYL#|D0AL2yRZnfvb@br?0000I$f@PVL01S#5KR6_@~B8%R?PTznI>+OyP??wOI4i|Lq%X9=10=+$;$+2M8Ke z@9fRf{O&9H>|N>oZKqD`uD!i3sA&yD`Fc%N>yo)zpJqE>kM#14Yg*Fq^W^3SYy!(3R zd)*@$mgz4aojoG&Sjw5LUuXI*ZmM;{+IR)98$iUil$TdLtfXt&mKvWpD=v@}Q<9c& zne|NfKa06_dxgt>-TqZQe|qQ5S4--~J<)#0dDO3&e78sm}`&b`8=^x+yjj^}? zMJTV|WX534=lm(PMP@DMfwJ7{-8~Ae^3A4)*{%t>c6Be$tM?*f_W>FVdQ&MBb@0M3k$`v3p{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/meta.json b/Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/meta.json new file mode 100644 index 0000000000..0f0356e9d5 --- /dev/null +++ b/Resources/Textures/_ds14/Clothing/Shoes/sneakers.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made for murdume on discord as a Patron benefit.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +}