- add: dildos

This commit is contained in:
2024-02-12 18:00:47 +03:00
parent 7bc240ade4
commit 443bacc44c
42 changed files with 510 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
using System.Numerics;
using Content.Shared._Amour.Vibrator;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
using Robust.Shared.Animations;
namespace Content.Client._Amour.Vibrator;
public sealed class VibratorSystem : SharedVibratorSystem
{
[Dependency] private readonly AnimationPlayerSystem _animationSystem = default!;
private readonly string _vibration = "vibration";
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<VibratorComponent, AnimationCompletedEvent>(OnAnimationCompleted);
}
private void OnAnimationCompleted(EntityUid uid, VibratorComponent component, AnimationCompletedEvent args)
{
if(args.Key != _vibration || !component.IsVibrating)
return;
_animationSystem.Play(uid,GetAnimation(), _vibration);
}
public override void ToggleVibrate(EntityUid uid, VibratorComponent component)
{
if (component.IsVibrating)
_animationSystem.Play(uid,GetAnimation(), _vibration);
}
private Animation GetAnimation()
{
return new Animation
{
Length = TimeSpan.FromMilliseconds(100),
AnimationTracks =
{
new AnimationTrackComponentProperty
{
ComponentType = typeof(SpriteComponent),
Property = nameof(SpriteComponent.Offset),
InterpolationMode = AnimationInterpolationMode.Cubic,
KeyFrames =
{
new AnimationTrackProperty.KeyFrame(Vector2.Zero, 0f),
new AnimationTrackProperty.KeyFrame(new Vector2(0.1f, 0), 0.25f),
new AnimationTrackProperty.KeyFrame(Vector2.Zero, 0.25f),
new AnimationTrackProperty.KeyFrame(new Vector2(-0.1f, 0), 0.25f),
new AnimationTrackProperty.KeyFrame(Vector2.Zero, 0.25f),
}
}
}
};
}
}

View File

@@ -0,0 +1,38 @@
using Content.Server.DeviceLinking.Events;
using Content.Server.DeviceLinking.Systems;
using Content.Shared._Amour.Vibrator;
using Content.Shared.Interaction.Events;
namespace Content.Server._Amour.Vibrator;
public sealed class VibratorSystem : SharedVibratorSystem
{
[Dependency] private readonly DeviceLinkSystem _signalSystem = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<VibratorComponent,UseInHandEvent>(OnUseInHand);
SubscribeLocalEvent<VibratorComponent,ComponentInit>(OnInit);
SubscribeLocalEvent<VibratorComponent,SignalReceivedEvent>(OnsignalReceived);
}
private void OnsignalReceived(EntityUid uid, VibratorComponent component,ref SignalReceivedEvent args)
{
if(args.Port != component.TogglePort)
return;
ToggleVibration(uid,component);
}
private void OnInit(EntityUid uid, VibratorComponent component, ComponentInit args)
{
_signalSystem.EnsureSinkPorts(uid,component.TogglePort);
}
private void OnUseInHand(EntityUid uid, VibratorComponent component, UseInHandEvent args)
{
ToggleVibration(uid,component);
}
}

View File

@@ -0,0 +1,28 @@
using Content.Shared.DeviceLinking;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Shared._Amour.Vibrator;
[RegisterComponent, NetworkedComponent]
public sealed partial class VibratorComponent : Component
{
[DataField("isVibrating")] public bool IsVibrating = false;
[DataField("togglePort", customTypeSerializer: typeof(PrototypeIdSerializer<SinkPortPrototype>))]
public string TogglePort = "Toggle";
}
[Serializable, NetSerializable]
public sealed class VibratorComponentState : ComponentState
{
public bool IsVibrating;
public VibratorComponentState(bool isVibrating)
{
IsVibrating = isVibrating;
}
}

View File

@@ -0,0 +1,39 @@
using Robust.Shared.GameStates;
namespace Content.Shared._Amour.Vibrator;
public abstract class SharedVibratorSystem : EntitySystem
{
public override void Initialize()
{
SubscribeLocalEvent<VibratorComponent,ComponentGetState>(OnGetState);
SubscribeLocalEvent<VibratorComponent,ComponentHandleState>(OnHandleState);
}
private void OnHandleState(EntityUid uid, VibratorComponent component, ref ComponentHandleState args)
{
if(args.Current is not VibratorComponentState state)
return;
component.IsVibrating = state.IsVibrating;
ToggleVibrate(uid,component);
}
private void OnGetState(EntityUid uid, VibratorComponent component,ref ComponentGetState args)
{
args.State = new VibratorComponentState(component.IsVibrating);
}
public void ToggleVibration(EntityUid uid, VibratorComponent? component = null)
{
if(!Resolve(uid,ref component))
return;
component.IsVibrating = !component.IsVibrating;
Dirty(uid,component);
}
public virtual void ToggleVibrate(EntityUid uid, VibratorComponent component)
{
}
}

View File

@@ -0,0 +1,6 @@
anus-inspect = Проинспектировать анус
anus-insert = Засунуть внутрь
anus-inspecting = Вы чувствете, будто кто-то копается в вашей заднице!
anus-no-access = Похоже, что нет доступа к заднице
anus-blowing = Вы чувствуете,как разрывается анус!
anus-inserting = Вы чувствуете, будто что-то проталкивают к вашей заднице!

View File

@@ -0,0 +1,42 @@
markings-category-Genitals = Гениталии
markings-category-Breasts = Грудь (Реально)
marking-Penis = Большой член
marking-PenisMid = Средний член
marking-PenisSmall = Размер не имеет значения
marking-Vagina = Вагина
marking-BreastsA = Грудь
marking-BreastsB = Грудь
marking-BreastsC = Грудь
marking-BreastsD = Грудь
marking-BreastsE = Грудь
marking-BreastsF = Грудь
marking-BreastsG = Грудь
marking-BreastsH = Грудь
marking-BreastsI = Грудь
marking-BreastsJ = Грудь
marking-BreastsK = Грудь
marking-BreastsL = Грудь
marking-BreastsM = Грудь
marking-BreastsN = Грудь
marking-BreastsO = Грудь
marking-BreastsHuge = Грудь Доярки
ent-DildoHuman = дилдо
.desc = Дилдо делает Бр-р-р.
ent-DildoAvian = дилдо
.desc = Дилдо делает Бр-р-р.
ent-DildoDragon = дилдо
.desc = Дилдо делает Бр-р-р.
ent-DildoCanine = дилдо
.desc = Дилдо делает Бр-р-р.
ent-DildoEquine = дилдо
.desc = Дилдо делает Бр-р-р.
ent-DildoTentacle = дилдо
.desc = Дилдо делает Бр-р-р.

View File

@@ -0,0 +1,2 @@
advertisement-kink-1 = Да ты горяч!
advertisement-kink-2 = О-о-о да детка! Покажи на что ты способен!

View File

@@ -0,0 +1,2 @@
species-name-vulpkanin = Вульпканин
species-name-tajaran = Таяран

View File

@@ -0,0 +1,73 @@
marking-VulpkaninTailBushFluff = Пушистый хвост
marking-VulpkaninTailBushFluff-bushy_a = Внутреняя часть хвоста
marking-VulpkaninTailBushFluff-bushfluffw_s = Внешняя часть хвоста
marking-VulpkaninTailBasic = Обычный хвост
marking-VulpkaninTailBasic-straightbushy_a = Внешняя часть хвоста
marking-VulpkaninTailBasic-sbfadew_s = Внутреняя часть хвоста
marking-VulpkaninTailSilverFade = Хвост необычный
marking-VulpkaninTailSilverFade-straightbushy_a = Внешняя часть хвоста
marking-VulpkaninTailSilverFade-sbsilverfadew_s = Внутреняя часть хвоста
marking-VulpkaninTailStraight = Висящий хвост
marking-VulpkaninTailStraight-straight_a = Висящий хвост
marking-VulpkaninTailTiny = Короткий хвост
marking-VulpkaninTailTiny-tiny_a = Короткий хвост
marking-VulpkaninTailWingler = Полосатый хвост
marking-VulpkaninTailWingler-winglertail_a = Полосатый хвост
marking-VulpkaninMuzzleEarHead = Мордочка 1
marking-VulpkaninMuzzleEarHead-muzzle_ear_s = Ушки
marking-VulpkaninMuzzleHead = Голова 1
marking-VulpkaninMuzzleHead-muzzle_s = Мордочка
marking-VulpkaninNoseAltHead = Нос 1
marking-VulpkaninNoseAltHead-nose_alt_s = Нос
marking-VulpkaninNoseHead = Нос 2
marking-VulpkaninNoseHead-nose_s = Нос
marking-VulpkaninPointsFadeHead = Голова 2
marking-VulpkaninPointsFadeHead-points_fade_s = Голова
marking-VulpkaninPointsSharpHead = Голова 3
marking-VulpkaninPointsSharpHead-points_sharp_s = Голова
marking-VulpkaninTigerFaceHead = Тигр
marking-VulpkaninTigerFaceHead-tiger_face_s = Тигр
marking-VulpkaninTigerHead = Тигр 1
marking-VulpkaninTigerHead-tiger_head_s = Тигр 1
marking-VulpkaninAltPointsFadeBellyChest = Тело 1
marking-VulpkaninAltPointsFadeBellyChest-altpointsfadebelly_s = Тело 1
marking-VulpkaninBellyCrestChest = Тело 2
marking-VulpkaninBellyCrestChest-bellycrest_s = Тело 2
marking-VulpkaninCrestPointsChest = Тело 3
marking-VulpkaninCrestPointsChest-crestpoints_s = Тело 3
marking-VulpkaninFoxBellyChest = Тело 4
marking-VulpkaninFoxBellyChest-foxbelly_s = Тело 4
marking-VulpkaninFullBellyChest = Тело 5
marking-VulpkaninFullBellyChest-fullbelly_s = Тело 5
marking-VulpkaninPointsFadeChest = Тело 6
marking-VulpkaninPointsFadeChest-pointsfade_s = Тело 6
marking-VulpkaninPointsFadeBellyChest = Тело 7
marking-VulpkaninPointsFadeBellyChest-pointsfadebelly_s = Тело 7
marking-VulpkaninSharpPointsChest = Тело 8
marking-VulpkaninSharpPointsChest-sharppoints_s = Тело 8
marking-VulpkaninBlazeFacial = Морда 1
marking-VulpkaninBlazeFacial-blaze_s = Морда 1
marking-VulpkaninBrowsFacial = Морда 2
marking-VulpkaninBrowsFacial-brows_s =Морда 2
marking-VulpkaninEarFluffFacial = Морда 3
marking-VulpkaninEarFluffFacial-earfluff_s = Морда 3
marking-VulpkaninElderChinFacial = Морда 4
marking-VulpkaninElderChinFacial-elder_chin_s = Морда 4
marking-VulpkaninElderFacial = Морда 5
marking-VulpkaninElderFacial-elder_s = Морда 5
marking-VulpkaninKitaFacial = Морда 6
marking-VulpkaninKitaFacial-kita_s = Морда 6
marking-VulpkaninMaskFacial = Морда 7
marking-VulpkaninMaskFacial-mask_s = Морда 7
marking-VulpkaninPatchFacial = Морда 8
marking-VulpkaninPatchFacial-patch_s = Морда 8
marking-VulpkaninRuffFacial = Морда 9
marking-VulpkaninRuffFacial-ruff_s = Морда 9
marking-VulpkaninSlashFacial = Морда 10
marking-VulpkaninSlashFacial-slash_s = Морда 10
marking-VulpkaninSwiftFacial = Морда 11
marking-VulpkaninSwiftFacial-swift_s = Морда 11
marking-VulpkaninVulpineFacial = Морда 12
marking-VulpkaninVulpineFacial-vulpine_s = Морда 12
marking-VulpkaninVulpineFluffFacial = Морда 13
marking-VulpkaninVulpineFluffFacial-vulpinefluff_s = Морда 13

View File

@@ -0,0 +1,92 @@
- type: entity
parent: BaseItem
id: DildoHuman
name: dildo
description: Dildo goes br-r-r-r.
components:
- type: Sprite
sprite: _Amour/Items/Misc/dildo.rsi
state: dildo_human
- type: Item
inhandVisuals:
left:
- state: dildo_human-inhand-left
right:
- state: dildo_human-inhand-right
- type: DeviceLinkSink
ports:
- Toggle
- type: Vibrator
- type: UseDelay
delay: 2.0
- type: MeleeWeapon
damage:
types:
Blunt: 2
- type: StaticPrice
price: 25
- type: entity
parent: DildoHuman
id: DildoAvian
components:
- type: Sprite
state: dildo_avian
- type: Item
inhandVisuals:
left:
- state: dildo_avian-inhand-left
right:
- state: dildo_avian-inhand-right
- type: entity
parent: DildoHuman
id: DildoDragon
components:
- type: Sprite
state: dildo_dragon
- type: Item
inhandVisuals:
left:
- state: dildo_dragon-inhand-left
right:
- state: dildo_dragon-inhand-right
- type: entity
parent: DildoHuman
id: DildoCanine
components:
- type: Sprite
state: dildo_canine
- type: Item
inhandVisuals:
left:
- state: dildo_canine-inhand-left
right:
- state: dildo_canine-inhand-right
- type: entity
parent: DildoHuman
id: DildoEquine
components:
- type: Sprite
state: dildo_equine
- type: Item
inhandVisuals:
left:
- state: dildo_equine-inhand-left
right:
- state: dildo_equine-inhand-right
- type: entity
parent: DildoHuman
id: DildoTentacle
components:
- type: Sprite
state: dildo_tentacle
- type: Item
inhandVisuals:
left:
- state: dildo_tentacle-inhand-left
right:
- state: dildo_tentacle-inhand-right

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

View File

@@ -0,0 +1,124 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "taken from Skyrat-tg at https://github.com/Skyrat-SS13/Skyrat-tg/ at 08668ffb5e567907783e86d839c144b1f746b252",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "dildo_avian"
},
{
"name": "dildo_canine"
},
{
"name": "dildo_equine"
},
{
"name": "dildo_dragon"
},
{
"name": "dildo_human"
},
{
"name": "dildo_tentacle"
},
{
"name": "polydildo_small"
},
{
"name": "polydildo_medium"
},
{
"name": "polydildo_big"
},
{
"name": "dildo_double"
},
{
"name": "dildo_side"
},
{
"name": "dildo_avian-inhand-left",
"directions": 4
},
{
"name": "dildo_canine-inhand-left",
"directions": 4
},
{
"name": "dildo_dragon-inhand-left",
"directions": 4
},
{
"name": "dildo_equine-inhand-left",
"directions": 4
},
{
"name": "dildo_human-inhand-left",
"directions": 4
},
{
"name": "dildo_tentacle-inhand-left",
"directions": 4
},
{
"name": "polydildo_small-inhand-left",
"directions": 4
},
{
"name": "polydildo_medium-inhand-left",
"directions": 4
},
{
"name": "polydildo_big-inhand-left",
"directions": 4
},
{
"name": "dildo_double-inhand-left",
"directions": 4
},
{
"name": "dildo_avian-inhand-right",
"directions": 4
},
{
"name": "dildo_canine-inhand-right",
"directions": 4
},
{
"name": "dildo_dragon-inhand-right",
"directions": 4
},
{
"name": "dildo_equine-inhand-right",
"directions": 4
},
{
"name": "dildo_human-inhand-right",
"directions": 4
},
{
"name": "dildo_tentacle-inhand-right",
"directions": 4
},
{
"name": "polydildo_small-inhand-right",
"directions": 4
},
{
"name": "polydildo_medium-inhand-right",
"directions": 4
},
{
"name": "polydildo_big-inhand-right",
"directions": 4
},
{
"name": "dildo_double-inhand-right",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B