Сперма
This commit is contained in:
98
Content.Server/_Honk/Cunt/CuntSystems.cs
Normal file
98
Content.Server/_Honk/Cunt/CuntSystems.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
using Content.Server.Chat.Systems;
|
||||
using Content.Server.Chemistry.Containers.EntitySystems;
|
||||
using Content.Server.Fluids.EntitySystems;
|
||||
using Content.Shared._Honk.Cunt;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server._Honk.Cunt;
|
||||
|
||||
public sealed class CuntSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly PuddleSystem _puddle = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly SolutionContainerSystem _solutionContainer = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
SubscribeLocalEvent<CuntableComponent,EmoteEvent>(OnCunt);
|
||||
SubscribeLocalEvent<CuntableComponent,ComponentStartup>(OnStartup);
|
||||
SubscribeLocalEvent<CuntableComponent,EntityUnpausedEvent>(OnUnpaused);
|
||||
}
|
||||
|
||||
private void OnStartup(EntityUid uid, CuntableComponent component, ComponentStartup args)
|
||||
{
|
||||
var cuntSolution = _solutionContainer.EnsureSolution(uid, CuntableComponent.CuntSolutionName);
|
||||
cuntSolution.MaxVolume = 10;
|
||||
}
|
||||
|
||||
private void OnCunt(EntityUid uid, CuntableComponent component, ref EmoteEvent args)
|
||||
{
|
||||
if (args.Emote.ID == "Squelch")
|
||||
{
|
||||
GenCum(uid, component);
|
||||
TryCunt(uid, component);
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryCunt(EntityUid uid, CuntableComponent? component = null)
|
||||
{
|
||||
if (!Resolve(uid, ref component))
|
||||
return false;
|
||||
|
||||
if(!_solutionContainer.TryGetSolution(uid,CuntableComponent.CuntSolutionName,out var cuntSolution))
|
||||
return false;
|
||||
|
||||
if(cuntSolution.Volume < 5)
|
||||
return false;
|
||||
|
||||
_puddle.TrySpillAt(uid, cuntSolution, out _);
|
||||
_solutionContainer.SplitSolution(uid,cuntSolution,50);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void GenCum(EntityUid uid, CuntableComponent? component = null)
|
||||
{
|
||||
if (!Resolve(uid, ref component))
|
||||
return ;
|
||||
|
||||
if (_solutionContainer.TryGetSolution(uid, CuntableComponent.CuntSolutionName, out var solution))
|
||||
{
|
||||
if (solution.AvailableVolume <= FixedPoint2.Zero)
|
||||
return;
|
||||
|
||||
var generated = new Solution("Cunt", 2);
|
||||
|
||||
_solutionContainer.TryAddSolution(uid, solution, generated);
|
||||
}
|
||||
}
|
||||
//public override void Update(float frameTime)
|
||||
//{
|
||||
// base.Update(frameTime);
|
||||
//
|
||||
// var query = EntityQueryEnumerator<CuntableComponent, SolutionContainerManagerComponent>();
|
||||
// while (query.MoveNext(out var uid, out var regen, out var manager))
|
||||
// {
|
||||
// if (_timing.CurTime < regen.NextRegenTime)
|
||||
// continue;
|
||||
|
||||
// regen.NextRegenTime = _timing.CurTime + regen.Duration;
|
||||
// if (_solutionContainer.TryGetSolution(uid, CuntableComponent.CuntSolutionName, out var solution, manager))
|
||||
// {
|
||||
// if (solution.AvailableVolume <= FixedPoint2.Zero)
|
||||
// continue;
|
||||
//
|
||||
// var generated = new Solution("Cunt", 5);
|
||||
//
|
||||
// _solutionContainer.TryAddSolution(uid, solution, generated);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
private void OnUnpaused(EntityUid uid, CuntableComponent comp, ref EntityUnpausedEvent args)
|
||||
{
|
||||
comp.NextRegenTime += args.PausedTime;
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,6 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Power\Components\" />
|
||||
<Folder Include="_Honk\" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\RobustToolbox\MSBuild\Robust.Properties.targets" />
|
||||
<Import Project="..\RobustToolbox\MSBuild\Robust.CompNetworkGenerator.targets" />
|
||||
|
||||
10
Content.Shared/_Honk/Cunt/CuntableComponent.cs
Normal file
10
Content.Shared/_Honk/Cunt/CuntableComponent.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace Content.Shared._Honk.Cunt;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class CuntableComponent : Component
|
||||
{
|
||||
public const string CuntSolutionName = "cunt";
|
||||
|
||||
[ViewVariables] public TimeSpan NextRegenTime = TimeSpan.Zero;
|
||||
[ViewVariables] public TimeSpan Duration = TimeSpan.FromSeconds(1);
|
||||
}
|
||||
5
Resources/Locale/ru-RU/_honk/reagents/cunt.ftl
Normal file
5
Resources/Locale/ru-RU/_honk/reagents/cunt.ftl
Normal file
@@ -0,0 +1,5 @@
|
||||
reagent-name-cunt = конча
|
||||
reagent-desc-cunt = на вкус как сперма
|
||||
reagent-physical-desc-cunt = густой и тёплый
|
||||
|
||||
flavor-base-cunt = солёное
|
||||
@@ -287,6 +287,7 @@
|
||||
- type: RoleplayInfo
|
||||
- type: Mood # WD
|
||||
- type: OfferItem # WD-EDIT
|
||||
- type: Cuntable #Honk Edit
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
|
||||
12
Resources/Prototypes/_Honk/Actions/cunt.yml
Normal file
12
Resources/Prototypes/_Honk/Actions/cunt.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
- type: emote
|
||||
id: Squelch
|
||||
category: Gesture
|
||||
buttonText: Кончать
|
||||
chatMessages: [ кончает ]
|
||||
chatTriggers:
|
||||
- кончит
|
||||
- кончает
|
||||
- кончил
|
||||
- кончила
|
||||
- кончило
|
||||
allowMenu: true
|
||||
13
Resources/Prototypes/_Honk/Reagents/cunt.yml
Normal file
13
Resources/Prototypes/_Honk/Reagents/cunt.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
- type: reagent
|
||||
id: Cunt
|
||||
name: reagent-name-cunt
|
||||
desc: reagent-desc-cunt
|
||||
physicalDesc: reagent-physical-desc-cunt
|
||||
recognizable: true
|
||||
flavor: cunt
|
||||
color: "#AAAAAA"
|
||||
|
||||
- type: flavor
|
||||
id: cunt
|
||||
flavorType: Base
|
||||
description: flavor-base-cunt
|
||||
Reference in New Issue
Block a user