From 17e1bb9c9a0c30c876908b6c87790b00bc7825ce Mon Sep 17 00:00:00 2001 From: iertis Date: Fri, 14 Feb 2025 19:50:04 +0300 Subject: [PATCH 1/2] add pussy and fix markings --- .../Humanoid/HumanoidAppearanceSystem.cs | 8 ++- .../_Sunrise/ERP/InteractionWindow.xaml.cs | 2 + .../ERP/Interactions/cock_interactions.yml | 2 + .../ERP/Interactions/horn_interactions.yml | 4 ++ .../ERP/Interactions/pussy_interactions.yml | 13 ++++ .../ERP/Interactions/toyInteractions.yml | 2 + .../Prototypes/_Lust/Futanari/futanari.yml | 72 +++++++++++++++++++ 7 files changed, 101 insertions(+), 2 deletions(-) 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 From 4560e17e933f5dbc5043fc7b6e237e28b0726bdf Mon Sep 17 00:00:00 2001 From: iertis Date: Fri, 14 Feb 2025 19:50:35 +0300 Subject: [PATCH 2/2] forgot about some sprites --- .../_Lust/Mobs/Species/Demon/parts.rsi/meta.json | 15 +++++++++++++++ .../Mobs/Species/Demon/parts.rsi/torso_fut.png | Bin 0 -> 1147 bytes .../Mobs/Species/Tajaran/parts.rsi/meta.json | 15 +++++++++++++++ .../Mobs/Species/Tajaran/parts.rsi/torso_fut.png | Bin 0 -> 1035 bytes 4 files changed, 30 insertions(+) create mode 100644 Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/meta.json create mode 100644 Resources/Textures/_Lust/Mobs/Species/Demon/parts.rsi/torso_fut.png create mode 100644 Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/meta.json create mode 100644 Resources/Textures/_Lust/Mobs/Species/Tajaran/parts.rsi/torso_fut.png 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 0000000000000000000000000000000000000000..68996f2a3bbb06931ee2a784e6d0ef916354978e GIT binary patch literal 1147 zcmV->1cdvEP)6oyx!e1Aj&JsgQaF1X~v1fxH}7|+i=sYop<)$Q@XZ@nJHijm;$DNDPRhi0;a(4sX!@Z*_+Q_WKx-u z@$qrl*w_dkU07I7R1zw}kpz=n%F#PT9?X1;m`GqSWZA73}g9L5HcW>z;F+Lbt z>h*f?HI|BB?v$v%#B+nk#>V98>dF_oPESvBBf8ggyDdXQL(<>h?@NAW<#B#~p6_bg z?rYoorE_j>uC%qaB}1(%*qt{J$&pXqaIQ@)cyzlJNALgsoYQo|!E-r%5CnqN! z0pW?$&$tx)jsyS&fLG6|QklQw7mbfmBLZ=J#ua7HSO1gC%S#y<8Tkr=HgWn3x7C$@ zGYa?L@$s>*HC8yd1Ni6f6@TA@%|noy`=9tt@RKgpYPFip&(C|D(b3U>r1&7I?qAEA`rzzv@^#$1XL6IQ@m&`uciC0f^&|I*!pU(!k{Z0{x#u zedSUlw#{t{m;$DNDPRhi0;Yf|U<#N5rhqA63YY?>fGJ=K{EiBcs;0z7nylAafEk%grq=E+)^JpQl}$G~Dd$>^DPn=PQ*;5`NM%fcNlp;R>is@@>;) zTjOE9km<$l2SDent*wRU5%Gb>QK2tt$JpkZ0;Yf|U<#N5rogYE!2fnrQrvpUGi%#DwayGo_vy!Y<>{M=n!Tm)51 zOG_%9TKw+rZr9t}>-ziqL;C#u>>eK<9qH@qtJC6FQw>;IS@8^TOtkj8&*Zf-&mLMA6Cll8_r+T|}V zFMYLIb#HHP!SlMhxGtNL+ zehi$HGM+%YR+0%=Utf1GFE2s=-Q8VC_xASwD$`ECGK6&w!R>^0`e~%5>CAu^7Z+Vm zPmen~I&upO3y!+N2>-_6a<&~q~^K zcVnOf0|R00OUx;z!rkBByP268HGXmoz=E~4HKx68Oq`*f_PFj}=g}|QAG!&CBGl*L ze`yd+ij+aeYfOGx&*#iEue0-z3O;{4&g!Dw?lEvVRsAP`M-IjzF%@rLBw<47rdI?4RKL zn1Jo=?K=ML?QK0@Rwl-Xv2*d%H$!}kB%jIvIy*b-#E_w(pWpmw4x@U z*(D@~;EsiBmb(5K-2D7}h2Yn?{%OOu*h8rMPJX-uz61E*+f@V*U0b;syFe$lLNLH; zCfKIg0nni$AZMR#W@wppS{qdaV0g0_Kz#?6KQKXBVYRYN-fNbs2|!8XRWy;g_;#rD zLlD>;w7_cIaT;x+Z;Gf0V104YVy(r1L|$$5O);)jpGG`v!6xk~5dA6wcmWbHAP$Cy zhllFmgRWe`1~5gi1)H=1P~NxH7%&Em0b{@zFa~}n1D{qRF*A)H2`&Ht002ovPDHLk FV1oYU=)C{{ literal 0 HcmV?d00001