Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Эльзуосы #12

Merged
merged 11 commits into from
Aug 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions Content.Server/Corvax/Elzuosa/ElzuosaColorComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Robust.Shared.Audio;

namespace Content.Server.Corvax.Elzuosa
{
[RegisterComponent]
public sealed partial class ElzuosaColorComponent : Component
{
public Color SkinColor { get; set; }

public bool Hacked { get; set; } = false;

[DataField("cycleRate")]
public float CycleRate = 1f;
}
}
37 changes: 37 additions & 0 deletions Content.Server/Corvax/Elzuosa/ElzuosaColorSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using Content.Shared.Humanoid;
using Content.Shared.Preferences;
using Robust.Server.GameObjects;
using Content.Server.GameTicking;
namespace Content.Server.Corvax.Elzuosa
{
public sealed class ElzuosaColorSystem : EntitySystem
{
[Dependency] private readonly PointLightSystem _pointLightSystem = default!;
public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<ElzuosaColorComponent, PlayerSpawnCompleteEvent>(OnPlayerSpawn);
}

private void OnPlayerSpawn(EntityUid uid, ElzuosaColorComponent comp, PlayerSpawnCompleteEvent args)
{
if (!HasComp<HumanoidAppearanceComponent>(uid))
return;
if (args == null)
return;
var profile = args.Profile;
SetEntityPointLightColor(uid, profile);
}

public void SetEntityPointLightColor(EntityUid uid, HumanoidCharacterProfile? profile)
{
if (profile == null)
return;

var color = profile.Appearance.SkinColor;
_pointLightSystem.SetColor(uid,color);

}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
### Corvax Interaction

## Elzuosa

pat-success-elzuosa = вы обнимаете { $target }, чувствуя, как по вам проходит высоковольтный ток.
pat-success-elzuosa-others = { CAPITALIZE($user) } обнимает { $target }, наэлектризовываясь.
pat-success-elzuosa-target = { CAPITALIZE($user) } обнимает вас.
41 changes: 41 additions & 0 deletions Resources/Locale/ru-RU/corvax/markings/elzuosa.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
marking-EtherealPartsMElzuHornsClipped = рога (вросшие)
marking-EtherealPartsMElzuHornsClipped-ethereal_parts_m_elzu_horns_clipped_ADJ = рога
marking-EtherealPartsMElzuHornsClipped-ethereal_parts_m_elzu_horns_clipped_FRONT = рога (вросшие, передние)
marking-EtherealPartsMElzuHornsHelm = рога (шлем)
marking-EtherealPartsMElzuHornsHelm-ethereal_parts_m_elzu_horns_helm_ADJ = рога (шлем)
marking-EtherealPartsMElzuHornsHelm-ethereal_parts_m_elzu_horns_helm_FRONT = рога (шлем, передние)
marking-EtherealPartsMElzuHornsInward = рога (загнутые назад)
marking-EtherealPartsMElzuHornsInward-ethereal_parts_m_elzu_horns_inward_ADJ = рога (загнутые назад)
marking-EtherealPartsMElzuHornsInward-ethereal_parts_m_elzu_horns_inward_FRONT = рога (загнутые назад, передние)
marking-EtherealPartsMElzuHornsLunar = рога (лунные)
marking-EtherealPartsMElzuHornsLunar-ethereal_parts_m_elzu_horns_lunar_ADJ = рога (лунные)
marking-EtherealPartsMElzuHornsLunar-ethereal_parts_m_elzu_horns_lunar_FRONT = рога (лунные, передние)
marking-EtherealPartsMElzuHornsMajesty = рога (величественные)
marking-EtherealPartsMElzuHornsMajesty-ethereal_parts_m_elzu_horns_majesty_ADJ = рога (величественные)
marking-EtherealPartsMElzuHornsMajesty-ethereal_parts_m_elzu_horns_majesty_FRONT = рога (величественные, передние)
marking-EtherealPartsMElzuHornsSharp = рога (острые)
marking-EtherealPartsMElzuHornsSharp-ethereal_parts_m_elzu_horns_sharp_ADJ = рога (острые)
marking-EtherealPartsMElzuHornsSharp-ethereal_parts_m_elzu_horns_sharp_FRONT = рога (острые, передние)
marking-EtherealPartsMElzuHornsShort = рога (короткие)
marking-EtherealPartsMElzuHornsShort-ethereal_parts_m_elzu_horns_short_ADJ = рога (короткие)
marking-EtherealPartsMElzuHornsShort-ethereal_parts_m_elzu_horns_short_FRONT = рога (короткие, передние)
marking-EtherealPartsMTailBifurcated = хвост (разделённый)
marking-EtherealPartsMTailBifurcated-ethereal_parts_m_tail_bifurcated_BEHIND = хвост (разделённый)
marking-EtherealPartsMTailBifurcated-ethereal_parts_m_tail_bifurcated_FRONT = хвост (разделённый, кончик)
marking-EtherealPartsMTailLong = хвост (длинный)
marking-EtherealPartsMTailLong-ethereal_parts_m_tail_long_BEHIND = хвост (длинный)
marking-EtherealPartsMTailLong-ethereal_parts_m_tail_long_FRONT = хвост (длинный, кончик)
marking-EtherealPartsMTailStubby = хвост (коренастый)
marking-EtherealPartsMTailStubby-ethereal_parts_m_tail_stubby_BEHIND = хвост (коренастый)
marking-EtherealPartsMTailStubby-ethereal_parts_m_tail_stubby_FRONT = хвост (коренастый, кончик)
marking-EtherealPartsMAnimatedtailBifurcated = хвост (разделённый, анимированный)
marking-EtherealPartsMAnimatedtailBifurcated-ethereal_parts_m_waggingtail_bifurcated_BEHIND = хвост (разделённый, анимированный)
marking-EtherealPartsMAnimatedtailBifurcated-ethereal_parts_m_waggingtail_bifurcated_FRONT = хвост (разделённый, анимированный, кончик)
marking-EtherealPartsMAnimatedtailLong = хвост (длинный, анимированный)
marking-EtherealPartsMAnimatedtailLong-ethereal_parts_m_waggingtail_long_BEHIND = хвост (длинный, анимированный)
marking-EtherealPartsMAnimatedtailLong-ethereal_parts_m_waggingtail_long_FRONT = хвост (длинный, анимированный, кончик)
marking-EtherealPartsMAnimatedtailStubby = хвост (коренастый, анимированный)
marking-EtherealPartsMAnimatedtailStubby-ethereal_parts_m_waggingtail_stubby_BEHIND = хвост (коренастый, анимированный)
marking-EtherealPartsMAnimatedtailStubby-ethereal_parts_m_waggingtail_stubby_FRONT = хвост (коренастый, анимированный, кончик)
marking-EtherealPartsEyesGlowGs = глаза (светящиеся)
marking-EtherealPartsEyesGlowGs-ethereal_parts_eyes_glow_gs = глаза
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
metabolizer-type-elzuosa = Elzuosa
2 changes: 2 additions & 0 deletions Resources/Locale/ru-RU/corvax/reagents/bilogical.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
reagent-name-electroblood = электрокровь
reagent-desc-electroblood = На вид искрится.
1 change: 1 addition & 0 deletions Resources/Locale/ru-RU/corvax/species/species.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
species-name-elzuosa = Эльзуос
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,4 @@ hugging-success-generic-others = { CAPITALIZE($user) } обнимает { $targe
fence-rattle-success = *бдзынь*
hugging-success-generic-target = { CAPITALIZE($user) } обнимает вас.
petting-success-tesla = Вы гладите { $target }, попутно нарушая законы природы и физики.
petting-failure-tesla = Вы тянетесь погладить { $target }, но разряд заставляет вас отдёрнуть руку.
petting-failure-tesla = Вы тянетесь погладить { $target }, но разряд заставляет вас отдёрнуть руку.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
ent-BaseElzuosaOrgan = { ent-BaseHumanOrganUnGibbable }
.desc = { ent-BaseHumanOrganUnGibbable.desc }
ent-OrganElzuosaBrain = мозг
.desc = Источник невероятного интеллекта. Хонк!
ent-OrganElzuosaLungs = лёгкие
.desc = Позволяют вам наслаждаться свежим воздухом.
ent-OrganElzuosaHeart = сердце
.desc = Только бессердечный ублюдок мог потерять его.
ent-OrganElzuosaStomach = желудок
.desc = Мерзость. Это будет сложно переварить.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
ent-PartElzuosa = часть тела эльзуоза
.desc = { ent-BasePart.desc }
ent-TorsoElzuosa = торс эльзуоза
.desc = { ent-PartElzuosa.desc }
ent-HeadElzuosa = голова эльзуоза
.desc = { ent-PartElzuosa.desc }
ent-LeftArmElzuosa = левая рука эльзуоза
.desc = { ent-PartElzuosa.desc }
ent-RightArmElzuosa = правая эльзуоза
.desc = { ent-PartElzuosa.desc }
ent-LeftHandElzuosa = левая ладонь эльзуоза
.desc = { ent-PartElzuosa.desc }
ent-RightHandElzuosa = прававая ладонь эльзуоза
.desc = { ent-PartElzuosa.desc }
ent-LeftLegElzuosa = левая нога эльзуоза
.desc = { ent-PartElzuosa.desc }
ent-RightLegElzuosa = правая нога эльзуоза
.desc = { ent-PartElzuosa.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ent-MobElzuosa = Урист МакЭльзуос
.desc = { ent-BaseMobElzuosa.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ent-BaseMobElzuosa = Урист МакЭлсуоза
.desc = { ent-BaseMobSpeciesOrganic.desc }
ent-MobElzuosaDummy = { ent-BaseSpeciesDummy }
.desc = { ent-BaseSpeciesDummy.desc }
127 changes: 127 additions & 0 deletions Resources/Prototypes/Corvax/Body/Organs/elzuosa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
- type: entity
id: BaseElzuosaOrgan
parent: BaseHumanOrganUnGibbable
abstract: true
components:
- type: Sprite
sprite: Structures/Specific/Anomalies/Cores/electric_core.rsi
- type: Gibbable
- type: Electrified
requirePower: false
shockDamage: 2
shockTime: 2

- type: entity
id: OrganElzuosaBrain
parent: BaseElzuosaOrgan
name: brain
description: "The source of incredible, unending intelligence. Honk."
components:
- type: Sprite
layer:
- state: core
- state: pulse
- type: Organ
- type: Input
context: "ghost"
- type: Brain
- type: InputMover
- type: Examiner
- type: BlockMovement
- type: BadFood
- type: Tag
tags:
- Meat
- type: SolutionContainerManager
solutions:
organ:
reagents:
- ReagentId: Nutriment
Quantity: 10
food:
maxVol: 5
reagents:
- ReagentId: GreyMatter
Quantity: 5
- type: FlavorProfile
flavors:
- people

- type: entity
id: OrganElzuosaLungs
parent: BaseElzuosaOrgan
name: lungs
description: "Filters oxygen from an atmosphere, which is then sent into the bloodstream to be used as an electron carrier."
components:
- type: Sprite
state: core
- type: Lung
- type: Metabolizer
removeEmpty: true
solutionOnBody: false
solution: "Lung"
metabolizerTypes: [ Human ]
groups:
- id: Gas
rateModifier: 100.0
- type: SolutionContainerManager
solutions:
organ:
reagents:
- ReagentId: Nutriment
Quantity: 10
Lung:
maxVol: 100.0
canReact: false
food:
maxVol: 5
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 5

- type: entity
id: OrganElzuosaHeart
parent: BaseElzuosaOrgan
name: heart
description: "I feel bad for the heartless bastard who lost this."
components:
- type: Sprite
layer:
- state: core
- state: pulse
- type: Metabolizer
maxReagents: 2
metabolizerTypes: [Human]
groups:
- id: Medicine
- id: Poison
- id: Narcotic

- type: entity
id: OrganElzuosaStomach
parent: BaseElzuosaOrgan
name: stomach
description: "Gross. This is hard to stomach."
components:
- type: Sprite
state: core
- type: SolutionContainerManager
solutions:
stomach:
maxVol: 50
food:
maxVol: 5
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 5
- type: Stomach
specialDigestible:
tags:
- PowerCellSmall
- PowerCell
- type: Metabolizer
maxReagents: 3
metabolizerTypes: [Elzuosa]
groups:
- id: Food
- id: Drink
93 changes: 93 additions & 0 deletions Resources/Prototypes/Corvax/Body/Parts/elzuosa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
- type: entity
id: PartElzuosa
parent: [BaseItem, BasePart]
name: "elzuosa body part"
abstract: true
components:
- type: Extractable
juiceSolution:
reagents:
- ReagentId: ElectroBlood
Quantity: 10

- type: entity
id: TorsoElzuosa
name: "elzuosa torso"
parent: [PartElzuosa, BaseTorso]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "torso_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: ElectroBlood
Quantity: 20

- type: entity
id: HeadElzuosa
name: "elzuosa head"
parent: [PartElzuosa, BaseHead]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "head_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: ElectroBlood
Quantity: 10

- type: entity
id: LeftArmElzuosa
name: "left elzuosa arm"
parent: [PartElzuosa, BaseLeftArm]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "l_arm"

- type: entity
id: RightArmElzuosa
name: "right elzuosa arm"
parent: [PartElzuosa, BaseRightArm]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "r_arm"

- type: entity
id: LeftHandElzuosa
name: "left elzuosa hand"
parent: [PartElzuosa, BaseLeftHand]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "l_hand"

- type: entity
id: RightHandElzuosa
name: "right elzuosa hand"
parent: [PartElzuosa, BaseRightHand]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "r_hand"

- type: entity
id: LeftLegElzuosa
name: "left elzuosa leg"
parent: [PartElzuosa, BaseLeftLeg]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "l_leg"

- type: entity
id: RightLegElzuosa
name: "right elzuosa leg"
parent: [PartElzuosa, BaseRightLeg]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Elzuosa/parts.rsi
state: "r_leg"
Loading
Loading