diff --git a/Content.Client/Humanoid/HumanoidAppearanceSystem.cs b/Content.Client/Humanoid/HumanoidAppearanceSystem.cs index 262bedc523..62b9ec1385 100644 --- a/Content.Client/Humanoid/HumanoidAppearanceSystem.cs +++ b/Content.Client/Humanoid/HumanoidAppearanceSystem.cs @@ -88,9 +88,13 @@ private void SetLayerData( if (sexMorph) protoId = HumanoidVisualLayersExtension.GetSexMorph(key, component.Sex, protoId); - var proto = _prototypeManager.Index(protoId); - component.BaseLayers[key] = proto; + // Lust-start + if (_prototypeManager.TryIndex(protoId, out HumanoidSpeciesSpriteLayer? proto)) + component.BaseLayers[key] = proto; + if (proto == null) + return; + // Lust-end if (proto.MatchSkin) layer.Color = component.SkinColor.WithAlpha(proto.LayerAlpha); diff --git a/Content.Client/_Sunrise/ERP/InteractionWindow.xaml.cs b/Content.Client/_Sunrise/ERP/InteractionWindow.xaml.cs index 44b02a6be6..755e6d0cb3 100644 --- a/Content.Client/_Sunrise/ERP/InteractionWindow.xaml.cs +++ b/Content.Client/_Sunrise/ERP/InteractionWindow.xaml.cs @@ -308,6 +308,7 @@ public void Populate() if (UserSex == Sex.Male) UserDescription.AddChild(new Label { Text = "...Обладаете пенисом" }); if (UserSex == Sex.Female) UserDescription.AddChild(new Label { Text = "...Обладаете вагиной" }); if (UserSex == Sex.Female) UserDescription.AddChild(new Label { Text = "...Обладаете грудью" }); + if (UserSex == Sex.Futanari) UserDescription.AddChild(new Label { Text = "...Обладаете вагиной" }); if (UserSex == Sex.Futanari) UserDescription.AddChild(new Label { Text = "...Обладаете грудью" }); if (UserSex == Sex.Futanari) UserDescription.AddChild(new Label { Text = "...Обладаете пенисом" }); //Таргет @@ -321,6 +322,7 @@ public void Populate() TargetDescription.AddChild(new Label { Text = "...Обладает анусом" }); if (TargetSex == Sex.Male) TargetDescription.AddChild(new Label { Text = "...Обладает пенисом" }); if (TargetSex == Sex.Futanari) TargetDescription.AddChild(new Label { Text = "...Обладаете пенисом" }); + if (TargetSex == Sex.Futanari) TargetDescription.AddChild(new Label { Text = "...Обладаете вагиной" }); if (TargetSex == Sex.Female) TargetDescription.AddChild(new Label { Text = "...Обладает вагиной" }); } if (TargetSex == Sex.Female) TargetDescription.AddChild(new Label { Text = "...Обладает грудью" }); diff --git a/Resources/Prototypes/_Lust/ERP/Interactions/cock_interactions.yml b/Resources/Prototypes/_Lust/ERP/Interactions/cock_interactions.yml index 8194c4a004..e718c27ea4 100644 --- a/Resources/Prototypes/_Lust/ERP/Interactions/cock_interactions.yml +++ b/Resources/Prototypes/_Lust/ERP/Interactions/cock_interactions.yml @@ -248,6 +248,7 @@ - path: /Audio/_Lust/ERP/hlup4.ogg userSex: - Female + - Futanari targetSex: - Male - Futanari @@ -345,6 +346,7 @@ - path: /Audio/_Lust/ERP/hlup4.ogg userSex: - Female + - Futanari targetSex: - Male - Futanari diff --git a/Resources/Prototypes/_Lust/ERP/Interactions/horn_interactions.yml b/Resources/Prototypes/_Lust/ERP/Interactions/horn_interactions.yml index a162265752..7fa309dedd 100644 --- a/Resources/Prototypes/_Lust/ERP/Interactions/horn_interactions.yml +++ b/Resources/Prototypes/_Lust/ERP/Interactions/horn_interactions.yml @@ -138,6 +138,7 @@ - path: /Audio/_Lust/ERP/hlup4.ogg userSex: - Female + - Futanari targetSex: - Male erp: true @@ -183,8 +184,10 @@ - path: /Audio/_Lust/ERP/hlup4.ogg userSex: - Female + - Futanari targetSex: - Female + - Futanari erp: true lovePercentUser: 9 lovePercentTarget: 5 @@ -231,6 +234,7 @@ - Futanari targetSex: - Female + - Futanari erp: true lovePercentUser: 10 lovePercentTarget: 10 diff --git a/Resources/Prototypes/_Lust/ERP/Interactions/pussy_interactions.yml b/Resources/Prototypes/_Lust/ERP/Interactions/pussy_interactions.yml index fe76a686b7..4acd55ed0a 100644 --- a/Resources/Prototypes/_Lust/ERP/Interactions/pussy_interactions.yml +++ b/Resources/Prototypes/_Lust/ERP/Interactions/pussy_interactions.yml @@ -21,6 +21,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true lovePercentUser: 4 lovePercentTarget: 8 @@ -54,6 +55,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true lovePercentUser: 4 lovePercentTarget: 9 @@ -82,6 +84,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true lovePercentUser: 4 lovePercentTarget: 9 @@ -107,8 +110,10 @@ - path: /Audio/_Lust/ERP/hlup4.ogg userSex: - Female + - Futanari targetSex: - Female + - Futanari erp: true lovePercentUser: 9 lovePercentTarget: 9 @@ -146,6 +151,7 @@ - Futanari targetSex: - Female + - Futanari erp: true lovePercentUser: 10 lovePercentTarget: 10 @@ -181,6 +187,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true useSelf: true lovePercentTarget: 8 @@ -209,6 +216,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true useSelf: true lovePercentUser: 4 @@ -237,6 +245,7 @@ - Futanari targetSex: - Female + - Futanari erp: true lovePercentUser: 8 lovePercentTarget: 8 @@ -263,6 +272,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true lovePercentUser: 3 lovePercentTarget: 7 @@ -289,6 +299,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true lovePercentUser: 3 lovePercentTarget: 9 @@ -319,6 +330,7 @@ - Futanari targetSex: - Female + - Futanari erp: true lovePercentUser: 10 lovePercentTarget: 10 @@ -348,6 +360,7 @@ - Unsexed targetSex: - Female + - Futanari erp: true lovePercentUser: 10 lovePercentTarget: 10 diff --git a/Resources/Prototypes/_Lust/ERP/Interactions/toyInteractions.yml b/Resources/Prototypes/_Lust/ERP/Interactions/toyInteractions.yml index a531a5f746..e2477b1013 100644 --- a/Resources/Prototypes/_Lust/ERP/Interactions/toyInteractions.yml +++ b/Resources/Prototypes/_Lust/ERP/Interactions/toyInteractions.yml @@ -64,6 +64,7 @@ - Unsexed targetSex: - Female + - Futanari targetTagBlacklist: - pants - jumpsuit @@ -214,6 +215,7 @@ - path: /Audio/_Lust/ERP/hlup4.ogg userSex: - Female + - Futanari targetSex: - Unsexed targetTagBlacklist: diff --git a/Resources/Prototypes/_Lust/Futanari/futanari.yml b/Resources/Prototypes/_Lust/Futanari/futanari.yml index 2542eea973..c8038a2096 100644 --- a/Resources/Prototypes/_Lust/Futanari/futanari.yml +++ b/Resources/Prototypes/_Lust/Futanari/futanari.yml @@ -9,3 +9,75 @@ baseSprite: sprite: _Lust/Mobs/Species/Human/parts.rsi state: torso_fut + +- type: humanoidBaseSprite + id: MobDemonHeadFutanari + baseSprite: + sprite: _Sunrise/Mobs/Species/Demon/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobDemonTorsoFutanari + baseSprite: + sprite: _Lust/Mobs/Species/Demon/parts.rsi + state: torso_fut + +- type: humanoidBaseSprite + id: MobTajaranHeadFutanari + baseSprite: + sprite: _Sunrise/Mobs/Species/Tajaran/parts.rsi + state: head_f + + +- type: humanoidBaseSprite + id: MobTajaranTorsoFutanari + baseSprite: + sprite: _Lust/Mobs/Species/Tajaran/parts.rsi + state: torso_fut + +- type: humanoidBaseSprite + id: MobVulpkaninHeadFutanari + baseSprite: + sprite: _Sunrise/Mobs/Species/Vulpkanin/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobVulpkaninTorsoFutanari + baseSprite: + sprite: _Sunrise/Mobs/Species/Vulpkanin/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobMothHeadFutanari + baseSprite: + sprite: Mobs/Species/Moth/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobMothTorsoFutanari + baseSprite: + sprite: Mobs/Species/Moth/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobReptilianHeadFutanari + baseSprite: + sprite: Mobs/Species/Reptilian/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobReptilianTorsoFutanari + baseSprite: + sprite: Mobs/Species/Reptilian/parts.rsi + state: torso_f +- type: humanoidBaseSprite + id: MobSlimeHeadFutanari + baseSprite: + sprite: Mobs/Species/Slime/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobSlimeTorsoFutanari + baseSprite: + sprite: Mobs/Species/Slime/parts.rsi + state: torso_f diff --git a/Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/meta.json b/Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/meta.json new file mode 100644 index 0000000000..665c8a0446 --- /dev/null +++ b/Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "torso_fut", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/torso_fut.png b/Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/torso_fut.png new file mode 100644 index 0000000000..68996f2a3b Binary files /dev/null and b/Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/torso_fut.png differ diff --git a/Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/meta.json b/Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/meta.json new file mode 100644 index 0000000000..665c8a0446 --- /dev/null +++ b/Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "torso_fut", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/torso_fut.png b/Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/torso_fut.png new file mode 100644 index 0000000000..4d66a5ca5c Binary files /dev/null and b/Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/torso_fut.png differ