From 4d0d2e4c5a13987f27401d981c892a7fca8d876a Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 3 Jan 2024 19:39:00 -0500 Subject: [PATCH] Kobold variety - allows kobolds to have random colors and horns (+ allows RandomSpriteComponent to uh. Actually choose random sprites for specific layers) (#23393) * kobold variety - allows kobolds to have random colors and horns * hey lets maybe not crash in this case, lets maybe let the color continue being null in this case * excuse us vscode what the fuck is this * brightens kob base, makes kob outline more bold, fixes to the prototype because our code spaghett * okay yeah angler horns just dont work At All. the floppy kobold ears, however? MWAH. chef's kis * we've been staring at these critters all day - makes base color line up with the base color of some of the markings --- Content.Server/Sprite/RandomSpriteSystem.cs | 20 ++++++-- .../Sprite/RandomSpriteComponent.cs | 2 +- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 26 ++++++++++- Resources/Prototypes/Palettes/critters.yml | 43 ++++++++++++++++++ .../Mobs/Animals/kobold.rsi/kobold.png | Bin 2851 -> 10385 bytes .../Mobs/Animals/kobold.rsi/meta.json | 6 ++- .../Mobs/Animals/kobold.rsi/outline.png | Bin 0 -> 10243 bytes 7 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 Resources/Prototypes/Palettes/critters.yml create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/outline.png diff --git a/Content.Server/Sprite/RandomSpriteSystem.cs b/Content.Server/Sprite/RandomSpriteSystem.cs index 035f7c6903..5d04dd2f5a 100644 --- a/Content.Server/Sprite/RandomSpriteSystem.cs +++ b/Content.Server/Sprite/RandomSpriteSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Decals; +using Content.Shared.Random.Helpers; using Content.Shared.Sprite; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; @@ -26,7 +27,7 @@ public sealed class RandomSpriteSystem: SharedRandomSpriteSystem if (component.Available.Count == 0) return; - var groups = new List>(); + var groups = new List>>(); if (component.GetAllGroups) { groups = component.Available; @@ -38,16 +39,27 @@ public sealed class RandomSpriteSystem: SharedRandomSpriteSystem component.Selected.EnsureCapacity(groups.Count); + Color? previousColor = null; + foreach (var group in groups) { foreach (var layer in group) { Color? color = null; - if (!string.IsNullOrEmpty(layer.Value.Item2)) - color = _random.Pick(_prototype.Index(layer.Value.Item2).Colors.Values); + var selectedState = _random.Pick(layer.Value); + if (!string.IsNullOrEmpty(selectedState.Value)) + { + if (selectedState.Value == $"Inherit") + color = previousColor; + else + { + color = _random.Pick(_prototype.Index(selectedState.Value).Colors.Values); + previousColor = color; + } + } - component.Selected.Add(layer.Key, (layer.Value.Item1, color)); + component.Selected.Add(layer.Key, (selectedState.Key, color)); } } diff --git a/Content.Shared/Sprite/RandomSpriteComponent.cs b/Content.Shared/Sprite/RandomSpriteComponent.cs index 4082771e93..0e9133d1c8 100644 --- a/Content.Shared/Sprite/RandomSpriteComponent.cs +++ b/Content.Shared/Sprite/RandomSpriteComponent.cs @@ -17,7 +17,7 @@ public sealed partial class RandomSpriteComponent : Component /// Stored as a list so we can have groups of random sprites (e.g. tech_base + tech_flare for holoparasite) /// [ViewVariables(VVAccess.ReadWrite), DataField("available")] - public List> Available = new(); + public List>> Available = new(); /// /// Selected colors diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 36288b1c83..a78e61f393 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1160,7 +1160,7 @@ name: kobold id: MobKobold parent: MobMonkey - description: Cousins to the sentient race of lizard people, kobolds blend in with industrial tiling and are as nasty as monkeys; ready to pull out your hair and stab you to death. + description: Cousins to the sentient race of lizard people, kobolds blend in with their natural habitat and are as nasty as monkeys; ready to pull out your hair and stab you to death. components: - type: LizardAccent - type: Speech # I don't know how to get it to work and i want someone to make them speak like a lizard with normal accents (or optionally another language altogether) @@ -1195,8 +1195,14 @@ drawdepth: Mobs layers: - map: ["enum.DamageStateVisualLayers.Base"] - state: kobold sprite: Mobs/Animals/kobold.rsi + state: kobold + - map: [ "outline" ] + sprite: Mobs/Animals/kobold.rsi + state: outline + - map: [ "horns" ] + sprite: Mobs/Customization/reptilian_parts.rsi + state: horns_short - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] color: "#ffffff" sprite: Objects/Misc/handcuffs.rsi @@ -1210,6 +1216,22 @@ sprite: "Effects/creampie.rsi" state: "creampie_human" visible: false + - type: RandomSprite + getAllGroups: true + available: + - enum.DamageStateVisualLayers.Base: + kobold: KoboldColors + - horns: + horns_curled: KoboldHornColors + horns_ram: KoboldHornColors + horns_short: KoboldHornColors + horns_myrsore: KoboldHornColors + horns_bighorn: KoboldHornColors + horns_argali: KoboldHornColors + horns_ayrshire: KoboldHornColors + horns_floppy_kobold_ears: Inherit + horns_double: Inherit + horns_kobold_ears: Inherit - type: Butcherable butcheringType: Spike spawned: diff --git a/Resources/Prototypes/Palettes/critters.yml b/Resources/Prototypes/Palettes/critters.yml new file mode 100644 index 0000000000..2f027b4b9c --- /dev/null +++ b/Resources/Prototypes/Palettes/critters.yml @@ -0,0 +1,43 @@ +- type: palette + id: KoboldColors + name: KoboldColors + colors: + ForestA: "#71a457" + ForestB: "#536f18" + ForestC: "#1e5026" + ForestD: "#519b71" + ForestE: "#61a003" + ForestF: "#729953" + DesertA: "#999453" + DesertB: "#daa976" + DesertC: "#a4582f" + DesertD: "#af9369" + DesertE: "#c27d3b" + DesertF: "#ddc3a1" + SwampA: "#635033" + SwampB: "#455132" + SwampC: "#4a4d12" + SwampD: "#452d1d" + SwampE: "#5f544c" + SwampF: "#413b0a" + CaveA: "#4a4260" + CaveB: "#3f3330" + CaveC: "#4a4542" + CaveD: "#413d32" + CaveE: "#726f6a" + CaveF: "#d4c8bf" + TechniRed: "#b32828" + TechniOrange: "#da8929" + TechniGreen: "#28df58" + TechniBlue: "#144bb3" + TechniCyan: "#1ddfbe" + TechniPurple: "#792da9" + TechniFuchsia: "#d11a82" + +- type: palette + id: KoboldHornColors + name: KoboldHornColors + colors: + HornA: "#d4c8bf" + hornB: "#eec7ab" + hornC: "#ad9584" diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/kobold.png b/Resources/Textures/Mobs/Animals/kobold.rsi/kobold.png index 1abd0e22eb9515dfb379152e9bfc1a246590c971..4be7d2591e14555ebc01585ffe422ba7f93494b7 100644 GIT binary patch literal 10385 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 Wv|4?(r7}nUgG#n{C05!6B>W#kYN>1h diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json b/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json index 33b5878391..05e21930b6 100644 --- a/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json +++ b/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json @@ -5,11 +5,15 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Drawn by Ubaser", + "copyright": "Drawn by Ubaser, modified by Bhijn and Myr", "states": [ { "name": "kobold", "directions": 4 + }, + { + "name": "outline", + "directions": 4 } ] } diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/outline.png b/Resources/Textures/Mobs/Animals/kobold.rsi/outline.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a62aac6cbf720671645eb65d23ec4174be8327 GIT binary patch literal 10243 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 JPDHLkV1i?Pw