diff --git a/Content.Shared/Humanoid/Markings/MarkingPrototype.cs b/Content.Shared/Humanoid/Markings/MarkingPrototype.cs index 10da06d860..1c45ceba98 100644 --- a/Content.Shared/Humanoid/Markings/MarkingPrototype.cs +++ b/Content.Shared/Humanoid/Markings/MarkingPrototype.cs @@ -1,20 +1,31 @@ using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; using Robust.Shared.Utility; namespace Content.Shared.Humanoid.Markings { [Prototype] - public sealed partial class MarkingPrototype : IPrototype + public sealed partial class MarkingPrototype : IPrototype, IInheritingPrototype // DEN: Make inheriting { [IdDataField] public string ID { get; private set; } = "uwu"; + // DEN start: Make markings inheriting + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + public string[]? Parents { get; private set; } + + [NeverPushInheritance] + [AbstractDataField] + public bool Abstract { get; private set; } + // End DEN + public string Name { get; private set; } = default!; [DataField("bodyPart", required: true)] public HumanoidVisualLayers BodyPart { get; private set; } = default!; [DataField] + [AlwaysPushInheritance] // DEN public List>? GroupWhitelist; [DataField("sexRestriction")] @@ -36,6 +47,20 @@ public sealed partial class MarkingPrototype : IPrototype [DataField("sprites", required: true)] public List Sprites { get; private set; } = default!; + // DEN start: categorization of markings + + /// + /// A list of "categories" that this marking belongs to. + /// + /// + /// This will eventually be used for in-round marking customization - such as interactions that + /// can change your scars, tattoos, gauze wraps, or underwear in the middle of a round. + /// + [DataField] + public HashSet Categories = new(); + + // DEN end + public Marking AsMarking() { return new Marking(ID, Sprites.Count); diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/diona.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/diona.yml index 7d37edb795..01b6f7d937 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/diona.yml @@ -1,374 +1,410 @@ +# DEN start: base inheritor - type: marking + abstract: true + parent: [BaseColorWhite, BaseGroupSingleDiona] + id: BaseDiona +# end DEN + +- type: marking + parent: BaseDiona # DEN id: DionaThornsHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: thorns_head - type: marking + parent: BaseDiona # DEN id: DionaThornsBody bodyPart: Chest - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: thorns_body - type: marking + parent: BaseDiona # DEN id: DionaFlowersHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: flowers_head - type: marking + parent: BaseDiona # DEN id: DionaFlowersBody bodyPart: Chest - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: flowers_body - type: marking + parent: BaseDiona # DEN id: DionaLeafCover bodyPart: Chest - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SkinColoring + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SkinColoring sprites: - sprite: Mobs/Customization/diona.rsi state: leaf_cover - type: marking + parent: BaseDiona # DEN id: DionaBloomHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: bloom - type: marking + parent: BaseDiona # DEN id: DionaBracketHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: bracket - type: marking + parent: BaseDiona # DEN id: DionaBrushHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SkinColoring + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SkinColoring sprites: - sprite: Mobs/Customization/diona.rsi state: brush - type: marking + parent: BaseDiona # DEN id: DionaCornflowerHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: cornflower - type: marking + parent: BaseDiona # DEN id: DionaFicusHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: ficus - type: marking + parent: BaseDiona # DEN id: DionaGarlandHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: garland - type: marking + parent: BaseDiona # DEN id: DionaKingHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: king - type: marking + parent: BaseDiona # DEN id: DionaLaurelHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: laurel - type: marking + parent: BaseDiona # DEN id: DionaLeafyHeadTop bodyPart: HeadTop - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: leafy - type: marking + parent: BaseDiona # DEN id: DionaLotusHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: lotus - type: marking + parent: BaseDiona # DEN id: DionaMeadowHeadTop bodyPart: HeadTop - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: meadow - type: marking + parent: BaseDiona # DEN id: DionaOakHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: oak - type: marking + parent: BaseDiona # DEN id: DionaPalmHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: palm - type: marking + parent: BaseDiona # DEN id: DionaRootHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: root - type: marking + parent: BaseDiona # DEN id: DionaRoseHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: rose - type: marking + parent: BaseDiona # DEN id: DionaRoseyHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: rosey - type: marking + parent: BaseDiona # DEN id: DionaShrubHeadTop bodyPart: HeadTop - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: shrub - type: marking + parent: BaseDiona # DEN id: DionaSpinnerHeadSide bodyPart: HeadSide - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: spinner - type: marking + parent: BaseDiona # DEN id: DionaSproutHeadSide bodyPart: HeadSide - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: sprout - type: marking + parent: BaseDiona # DEN id: DionaVineHeadTop bodyPart: HeadTop - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: vine - type: marking + parent: BaseDiona # DEN id: DionaVinelHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: vinel - type: marking + parent: BaseDiona # DEN id: DionaVinesHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: vines - type: marking + parent: BaseDiona # DEN id: DionaWildflowerHead bodyPart: Head - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#FFFFFF" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#FFFFFF" sprites: - sprite: Mobs/Customization/diona.rsi state: wildflower - type: marking + parent: BaseDiona # DEN id: DionaVineOverlay bodyPart: Overlay - groupWhitelist: [Diona] - coloring: - default: - type: - !type:SimpleColoring - color: "#5f7039" + # groupWhitelist: [Diona] + # coloring: + # default: + # type: + # !type:SimpleColoring + # color: "#5f7039" sprites: - sprite: Mobs/Customization/diona.rsi state: overlay diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml index 26c223c223..ee12ee0551 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml @@ -1,97 +1,109 @@ - type: marking + parent: BaseScarEye # DEN id: ScarEyeRight - bodyPart: Head - groupWhitelist: [Human, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Head + # groupWhitelist: [Human] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_eye_right - type: marking + parent: BaseScarEye # DEN id: ScarEyeLeft - bodyPart: Head - groupWhitelist: [Human, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Head + # groupWhitelist: [Human] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_eye_left - type: marking + parent: BaseScarChest # DEN id: ScarTopSurgeryShort - bodyPart: Chest - groupWhitelist: [Human, Reptilian, Moth, Arachnid, Diona, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Chest + # groupWhitelist: [Human, Reptilian, Moth, Arachnid, Diona] sexRestriction: [Male] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_top_surgery_short - type: marking + parent: BaseScarChest # DEN id: ScarTopSurgeryLong - bodyPart: Chest - groupWhitelist: [Human, Reptilian, Moth, Arachnid, Diona, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Chest + # groupWhitelist: [Human, Reptilian, Moth, Arachnid, Diona] sexRestriction: [Male] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_top_surgery_long - type: marking + parent: BaseScarChest # DEN id: ScarChest - bodyPart: Chest - groupWhitelist: [Human, Reptilian, Moth, Arachnid, Diona, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Chest + # groupWhitelist: [Human, Reptilian, Moth, Arachnid, Diona] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_chest - type: marking + parent: BaseScarHead # DEN id: ScarNeck - bodyPart: Head - groupWhitelist: [Human, Reptilian, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Head + # groupWhitelist: [Human, Reptilian] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_neck - type: marking + parent: BaseScarChest # DEN id: ScarChestBullets - bodyPart: Chest - groupWhitelist: [Human, Reptilian, Moth, Arachnid, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Chest + # groupWhitelist: [Human, Reptilian, Moth, Arachnid] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_chest_bullets - type: marking + parent: BaseScarChest # DEN id: ScarStomachBullets - bodyPart: Chest - groupWhitelist: [Human, Reptilian, Moth, Arachnid, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Chest + # groupWhitelist: [Human, Reptilian, Moth, Arachnid] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_stomach_bullets - type: marking + parent: BaseScarHead # DEN id: ScarFace1 - bodyPart: Head - groupWhitelist: [Human, Reptilian, Moth, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Head + # groupWhitelist: [Human, Reptilian, Moth] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_face_1 - type: marking + parent: BaseScarHead # DEN id: ScarFace2 - bodyPart: Head - groupWhitelist: [Human, Reptilian, Moth, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Head + # groupWhitelist: [Human, Reptilian, Moth] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_face_2 - type: marking + parent: BaseScarEye # DEN id: ScarEyeRightSmall - bodyPart: Head - groupWhitelist: [Human, Reptilian, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Head + # groupWhitelist: [Human, Reptilian] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_eye_right_small - type: marking + parent: BaseScarEye # DEN id: ScarEyeLeftSmall - bodyPart: Head - groupWhitelist: [Human, Reptilian, Vulpkanin] # DEN - add Vulpkanin + # bodyPart: Head + # groupWhitelist: [Human, Reptilian] sprites: - sprite: Mobs/Customization/scars.rsi state: scar_eye_left_small diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/undergarments.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/undergarments.yml index e1de3807c1..112ceeee15 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/undergarments.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/undergarments.yml @@ -1,291 +1,321 @@ # These options are kept very sparse to not put emphasis on nudity, and to provide a base for players to feel comfortable with. -# It's unlikely more will be added to upstream for cosmetic reasons. +# It's unlikely more will be added to upstream for cosmetic reasons. + +# (DEN comment: Ignore the above two comments.) - type: marking + parent: BaseUndergarmentBottomGeneral # DEN id: UndergarmentBottomBoxers - bodyPart: UndergarmentBottom - groupWhitelist: [Arachnid, Diona, Human, Moth, Slime] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Arachnid, Diona, Human, Moth, Slime] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: boxers - type: marking + parent: BaseUndergarmentBottomGeneral # DEN id: UndergarmentBottomBriefs - bodyPart: UndergarmentBottom - groupWhitelist: [Arachnid, Diona, Human, Moth, Slime] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Arachnid, Diona, Human, Moth, Slime] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: briefs - type: marking + parent: BaseUndergarmentBottomGeneral # DEN id: UndergarmentBottomSatin - bodyPart: UndergarmentBottom - groupWhitelist: [Arachnid, Diona, Human, Moth, Slime] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Arachnid, Diona, Human, Moth, Slime] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: satin - type: marking + parent: BaseUndergarmentTopGeneral # DEN id: UndergarmentTopBra - bodyPart: UndergarmentTop - groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: classic - type: marking + parent: BaseUndergarmentTopGeneral # DEN id: UndergarmentTopSportsbra - bodyPart: UndergarmentTop - groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: sports - type: marking + parent: BaseUndergarmentTopGeneral # DEN id: UndergarmentTopBinder - bodyPart: UndergarmentTop - groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: binder - type: marking + parent: BaseUndergarmentTopGeneral # DEN id: UndergarmentTopTanktop - bodyPart: UndergarmentTop - groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Arachnid, Diona, Human, Moth, Reptilian, Slime] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: tanktop +# ======================================== +# DEN COMMENT: Vox markings start +# ======================================== + - type: marking + parent: BaseUndergarmentBottomVox # DEN id: UndergarmentBottomBoxersVox # Voxers. - bodyPart: UndergarmentBottom - groupWhitelist: [Vox] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Vox] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: boxers_vox - type: marking + parent: BaseUndergarmentBottomVox # DEN id: UndergarmentBottomBriefsVox - bodyPart: UndergarmentBottom - groupWhitelist: [Vox] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Vox] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: briefs_vox - type: marking + parent: BaseUndergarmentBottomVox # DEN id: UndergarmentBottomSatinVox - bodyPart: UndergarmentBottom - groupWhitelist: [Vox] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Vox] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: satin_vox - type: marking + parent: BaseUndergarmentTopVox # DEN id: UndergarmentTopBraVox - bodyPart: UndergarmentTop - groupWhitelist: [Vox] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Vox] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: classic_vox - type: marking + parent: BaseUndergarmentTopVox # DEN id: UndergarmentTopSportsbraVox - bodyPart: UndergarmentTop - groupWhitelist: [Vox] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Vox] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: sports_vox - type: marking + parent: BaseUndergarmentTopVox # DEN id: UndergarmentTopBinderVox - bodyPart: UndergarmentTop - groupWhitelist: [Vox] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Vox] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: binder_vox - type: marking + parent: BaseUndergarmentTopVox # DEN id: UndergarmentTopTanktopVox - bodyPart: UndergarmentTop - groupWhitelist: [Vox] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentTop + # groupWhitelist: [Vox] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: tanktop_vox +# ======================================== +# DEN COMMENT: Reptilian markings start +# ======================================== + - type: marking + parent: BaseUndergarmentBottomReptilian # DEN id: UndergarmentBottomBoxersReptilian - bodyPart: UndergarmentBottom - groupWhitelist: [Reptilian] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Reptilian] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: boxers_reptilian - type: marking + parent: BaseUndergarmentBottomReptilian # DEN id: UndergarmentBottomBriefsReptilian - bodyPart: UndergarmentBottom - groupWhitelist: [Reptilian] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Reptilian] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: briefs_reptilian - type: marking + parent: BaseUndergarmentBottomReptilian # DEN id: UndergarmentBottomSatinReptilian - bodyPart: UndergarmentBottom - groupWhitelist: [Reptilian] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' + # bodyPart: UndergarmentBottom + # groupWhitelist: [Reptilian] + # coloring: + # default: + # type: null + # fallbackColor: '#FFFFFF' sprites: - sprite: Mobs/Customization/undergarments.rsi state: satin_reptilian -- type: marking - id: UndergarmentBottomBoxersVulpkanin - bodyPart: UndergarmentBottom - groupWhitelist: [Vulpkanin] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' - sprites: - - sprite: Mobs/Customization/undergarments.rsi - state: boxers_vulpkanin +# DEN start: Comment out all of these, because we use Paradise sprites -- type: marking - id: UndergarmentBottomBriefsVulpkanin - bodyPart: UndergarmentBottom - groupWhitelist: [Vulpkanin] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' - sprites: - - sprite: Mobs/Customization/undergarments.rsi - state: briefs_vulpkanin +# - type: marking +# id: UndergarmentBottomBoxersVulpkanin +# bodyPart: UndergarmentBottom +# groupWhitelist: [Vulpkanin] +# coloring: +# default: +# type: null +# fallbackColor: '#FFFFFF' +# sprites: +# - sprite: Mobs/Customization/undergarments.rsi +# state: boxers_vulpkanin -- type: marking - id: UndergarmentBottomSatinVulpkanin - bodyPart: UndergarmentBottom - groupWhitelist: [Vulpkanin] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' - sprites: - - sprite: Mobs/Customization/undergarments.rsi - state: satin_vulpkanin +# - type: marking +# id: UndergarmentBottomBriefsVulpkanin +# bodyPart: UndergarmentBottom +# groupWhitelist: [Vulpkanin] +# coloring: +# default: +# type: null +# fallbackColor: '#FFFFFF' +# sprites: +# - sprite: Mobs/Customization/undergarments.rsi +# state: briefs_vulpkanin -- type: marking - id: UndergarmentTopBraVulpkanin - bodyPart: UndergarmentTop - groupWhitelist: [Vulpkanin] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' - sprites: - - sprite: Mobs/Customization/undergarments.rsi - state: classic_vulpkanin +# - type: marking +# id: UndergarmentBottomSatinVulpkanin +# bodyPart: UndergarmentBottom +# groupWhitelist: [Vulpkanin] +# coloring: +# default: +# type: null +# fallbackColor: '#FFFFFF' +# sprites: +# - sprite: Mobs/Customization/undergarments.rsi +# state: satin_vulpkanin -- type: marking - id: UndergarmentTopSportsbraVulpkanin - bodyPart: UndergarmentTop - groupWhitelist: [Vulpkanin] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' - sprites: - - sprite: Mobs/Customization/undergarments.rsi - state: sports_vulpkanin +# - type: marking +# id: UndergarmentTopBraVulpkanin +# bodyPart: UndergarmentTop +# groupWhitelist: [Vulpkanin] +# coloring: +# default: +# type: null +# fallbackColor: '#FFFFFF' +# sprites: +# - sprite: Mobs/Customization/undergarments.rsi +# state: classic_vulpkanin -- type: marking - id: UndergarmentTopBinderVulpkanin - bodyPart: UndergarmentTop - groupWhitelist: [Vulpkanin] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' - sprites: - - sprite: Mobs/Customization/undergarments.rsi - state: binder_vulpkanin +# - type: marking +# id: UndergarmentTopSportsbraVulpkanin +# bodyPart: UndergarmentTop +# groupWhitelist: [Vulpkanin] +# coloring: +# default: +# type: null +# fallbackColor: '#FFFFFF' +# sprites: +# - sprite: Mobs/Customization/undergarments.rsi +# state: sports_vulpkanin -- type: marking - id: UndergarmentTopTanktopVulpkanin - bodyPart: UndergarmentTop - groupWhitelist: [Vulpkanin] - coloring: - default: - type: null - fallbackColor: '#FFFFFF' - sprites: - - sprite: Mobs/Customization/undergarments.rsi - state: tanktop_vulpkanin - \ No newline at end of file +# - type: marking +# id: UndergarmentTopBinderVulpkanin +# bodyPart: UndergarmentTop +# groupWhitelist: [Vulpkanin] +# coloring: +# default: +# type: null +# fallbackColor: '#FFFFFF' +# sprites: +# - sprite: Mobs/Customization/undergarments.rsi +# state: binder_vulpkanin + +# - type: marking +# id: UndergarmentTopTanktopVulpkanin +# bodyPart: UndergarmentTop +# groupWhitelist: [Vulpkanin] +# coloring: +# default: +# type: null +# fallbackColor: '#FFFFFF' +# sprites: +# - sprite: Mobs/Customization/undergarments.rsi +# state: tanktop_vulpkanin + +# DEN end diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_scars.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_scars.yml index ce48e869bb..91a3b9305f 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_scars.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/vox_scars.yml @@ -1,4 +1,5 @@ - type: marking + parent: BaseScar # DEN id: VoxScarEyeRight bodyPart: Head groupWhitelist: [Vox] @@ -7,6 +8,7 @@ state: vox_scar_eye_right - type: marking + parent: BaseScar # DEN id: VoxScarEyeLeft bodyPart: Head groupWhitelist: [Vox] @@ -15,6 +17,7 @@ state: vox_scar_eye_left - type: marking + parent: BaseScar # DEN id: VoxScarTopSurgeryShort bodyPart: Chest groupWhitelist: [Vox] @@ -23,6 +26,7 @@ state: vox_top_surgery_short - type: marking + parent: BaseScar # DEN id: VoxScarTopSurgeryLong bodyPart: Chest groupWhitelist: [Vox] @@ -31,6 +35,7 @@ state: vox_top_surgery_long - type: marking + parent: BaseScar # DEN id: VoxScarChest bodyPart: Chest groupWhitelist: [Vox] @@ -39,6 +44,7 @@ state: vox_scar_chest - type: marking + parent: BaseScar # DEN id: VoxScarNeck bodyPart: Head groupWhitelist: [Vox] @@ -47,6 +53,7 @@ state: vox_scar_neck - type: marking + parent: BaseScar # DEN id: VoxScarChestBullets bodyPart: Chest groupWhitelist: [Vox] @@ -55,6 +62,7 @@ state: vox_scar_chest_bullets - type: marking + parent: BaseScar # DEN id: VoxScarStomachBullets bodyPart: Chest groupWhitelist: [Vox] @@ -63,6 +71,7 @@ state: vox_scar_stomach_bullets - type: marking + parent: BaseScar # DEN id: VoxScarFace1 bodyPart: Head groupWhitelist: [Vox] @@ -71,6 +80,7 @@ state: vox_scar_face_1 - type: marking + parent: BaseScar # DEN id: VoxScarFace2 bodyPart: Head groupWhitelist: [Vox] @@ -79,6 +89,7 @@ state: vox_scar_face_2 - type: marking + parent: BaseScar # DEN id: VoxScarEyeRightSmall bodyPart: Head groupWhitelist: [Vox] @@ -87,9 +98,10 @@ state: vox_scar_eye_right_small - type: marking + parent: BaseScar # DEN id: VoxScarEyeLeftSmall bodyPart: Head groupWhitelist: [Vox] sprites: - sprite: Mobs/Customization/vox_scars.rsi - state: vox_scar_eye_left_small \ No newline at end of file + state: vox_scar_eye_left_small diff --git a/Resources/Prototypes/_DEN/Entities/Mobs/Customization/Markings/base.yml b/Resources/Prototypes/_DEN/Entities/Mobs/Customization/Markings/base.yml new file mode 100644 index 0000000000..53896956b1 --- /dev/null +++ b/Resources/Prototypes/_DEN/Entities/Mobs/Customization/Markings/base.yml @@ -0,0 +1,81 @@ +# Helper base markings + +- type: marking + abstract: true + id: BaseColorWhite + coloring: + default: + type: null + fallbackColor: '#FFFFFF' + +# Marking types + +## Scars + +- type: marking + abstract: true + id: BaseScar + categories: [Scar] + +- type: marking + abstract: true + parent: BaseGroupsGeneralScarHead + id: BaseScarHead + bodyPart: Head + +- type: marking + abstract: true + parent: BaseGroupsGeneralScar + id: BaseScarEye + bodyPart: Head + +- type: marking + abstract: true + parent: BaseGroupsGeneralScarChest + id: BaseScarChest + bodyPart: Chest + +## Undergarments + +- type: marking + abstract: true + parent: BaseColorWhite + id: BaseUndergarmentBottom + bodyPart: UndergarmentBottom + categories: [Undergarment, UndergarmentBottom] + +- type: marking + abstract: true + parent: BaseColorWhite + id: BaseUndergarmentTop + bodyPart: UndergarmentTop + categories: [Undergarment, UndergarmentTop] + +# Abstract inherited markings + +## Undergarments + +- type: marking + abstract: true + parent: [BaseUndergarmentBottom, BaseGroupsGeneralUndergarmentBottom] + id: BaseUndergarmentBottomGeneral + +- type: marking + abstract: true + parent: [BaseUndergarmentBottom, BaseGroupSingleReptilian] + id: BaseUndergarmentBottomReptilian + +- type: marking + abstract: true + parent: [BaseUndergarmentBottom, BaseGroupSingleVox] + id: BaseUndergarmentBottomVox + +- type: marking + abstract: true + parent: [BaseUndergarmentTop, BaseGroupsGeneralUndergarmentTop] + id: BaseUndergarmentTopGeneral + +- type: marking + abstract: true + parent: [BaseUndergarmentTop, BaseGroupSingleVox] + id: BaseUndergarmentTopVox diff --git a/Resources/Prototypes/_DEN/Entities/Mobs/Customization/Markings/base_groups.yml b/Resources/Prototypes/_DEN/Entities/Mobs/Customization/Markings/base_groups.yml new file mode 100644 index 0000000000..c3d74958fe --- /dev/null +++ b/Resources/Prototypes/_DEN/Entities/Mobs/Customization/Markings/base_groups.yml @@ -0,0 +1,54 @@ +# NOTE!! groupWhitelist has partial inheritance. +# This means you can parent a marking with a group whitelist filled out, and then add more species to the groupWhitelist +# field, and the marking will use a combined list of species from those two group whitelists. + +- type: marking + abstract: true + id: BaseGroupsGeneralScar + groupWhitelist: [Human, Reptilian, Vulpkanin] + +- type: marking + abstract: true + id: BaseGroupsGeneralScarHead + groupWhitelist: [Moth] + +- type: marking + abstract: true + id: BaseGroupsGeneralScarChest + groupWhitelist: [Arachnid, Diona] + +- type: marking + abstract: true + id: BaseGroupsGeneralUndergarments + groupWhitelist: [Arachnid, Diona, Human, Moth, Slime, Vulpkanin] + +# Species that can wear generic underwear bottoms, but not tops +- type: marking + abstract: true + parent: BaseGroupsGeneralUndergarments + id: BaseGroupsGeneralUndergarmentBottom + +# Species that can wear generic underwear tops, but not bottoms +- type: marking + abstract: true + parent: BaseGroupsGeneralUndergarments + id: BaseGroupsGeneralUndergarmentTop + groupWhitelist: [Reptilian] + +# Single-species group +# TODO: "Preferred group" functionality + +- type: marking + abstract: true + id: BaseGroupSingleDiona + groupWhitelist: [Diona] + +- type: marking + abstract: true + id: BaseGroupSingleReptilian + groupWhitelist: [Reptilian] + +- type: marking + abstract: true + id: BaseGroupSingleVox + groupWhitelist: [Vox]