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

Novakid (Пересоздал) #140

Closed
wants to merge 5 commits into from
Closed
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
31 changes: 31 additions & 0 deletions Content.Client/ADT/NovakidFeatures/NovakidFeaturesSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using Content.Shared.ADT.NovakidFeatures;
using Robust.Client.GameObjects;

namespace Content.Client.ADT.NovakidFeatures;
public sealed partial class NovakidFeaturesSystem : EntitySystem
{
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly PointLightSystem _lights = default!;
public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<NovakidGlowingComponent, ComponentInit>(OnEntityInit);
}
/// <summary>
/// Makes Novakid to glow with color of his skin — layer number 0 of SpriteComponent.
/// </summary>
/// <param name="uid">Novakid</param>
/// <param name="component">Компонент отвечающий за свечение новакида. Вообще-то говоря он нужен пока только для того, чтобы не пришлось перебирать сущности в поисках новакида.</param>
/// <param name="args"></param>
private void OnEntityInit(EntityUid uid, NovakidGlowingComponent component, ComponentInit args)
{
_entityManager.GetComponent<SpriteComponent>(uid).TryGetLayer(0, out var layer);

component.GlowingColor = _entityManager.GetComponent<SpriteComponent>(uid).Color;
if (layer == null) return;
_lights.SetColor(uid, layer.Color);
//_lights.SetEnergy(uid, 0.6f);
_entityManager.Dirty(_entityManager.GetComponent<SpriteComponent>(uid));
}
}
13 changes: 13 additions & 0 deletions Content.Shared/ADT/NovakidFeatures/NovakidGlowingComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace Content.Shared.ADT.NovakidFeatures;

[RegisterComponent]
public sealed partial class NovakidGlowingComponent : Component
{
[DataField]
public Color GlowingColor;

NovakidGlowingComponent(Color color)
{
GlowingColor = color;
}
}
60 changes: 60 additions & 0 deletions Resources/Locale/ru-RU/ADT/Novakid/species.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
novakid-hurt-by-water-popup = Вода заставляет ваше пламя угасать
species-name-novakid = Новакид
marking-NovakidHair1 = сплетение
marking-NovakidHair2 = комета
marking-NovakidHair3 = дуализм
marking-NovakidHair4 = слава
marking-NovakidHair5 = газовое облако
marking-NovakidHair6 = газовая лавина
marking-NovakidHair7 = сияние света
marking-NovakidHair8 = огонек звездного блеска
marking-NovakidHair9 = звездочка
marking-NovakidHair10 = лунный день
marking-NovakidHair11 = метеоритный дождь
marking-NovakidHair12 = млечный путь
marking-NovakidHair13 = туманность
marking-NovakidHair14 = солнечная коронка
marking-NovakidHair15 = звездный дождь
marking-NovakidHair16 = звездопад
marking-NovakidHair17 = пламя звезды
marking-NovakidHair18 = солнечный свет
marking-NovakidHair19 = сверхновая
marking-NovakidHair20 = галактический стиль
marking-NovakidHair21 = дева
marking-NovakidHair22 = галактика
marking-NovakidFace1 = раскол
marking-NovakidFace2 = крест
marking-NovakidFace3 = распятие
marking-NovakidFace4 = двойственность
marking-NovakidFace5 = око
marking-NovakidFace6 = H
marking-NovakidFace7 = сердце
marking-NovakidFace8 = индикатор
marking-NovakidFace9 = нота
marking-NovakidFace10 = призма
marking-NovakidFace11 = руна
marking-NovakidFace12 = квадрат
marking-NovakidFace13 = напряжение
marking-NovakidFace14 = тройственность
marking-NovakidFace15 = перевёрнутое распятие
marking-NovakidFace16 = X
marking-NovakidFace17 = Y
marking-NovakidFace18 = зета
marking-NovakidFace19 = конус
marking-NovakidFace20 = cвязь
marking-NovakidFace21 = окружность
marking-NovakidFace22 = косательная
marking-NovakidFace23 = очи
marking-NovakidFace24 = G
marking-NovakidFace25 = домик
marking-NovakidFace26 = К
marking-NovakidFace27 = лима
marking-NovakidFace28 = обратная косательная
marking-NovakidFace29 = омега
marking-NovakidFace30 = плюс
marking-NovakidFace31 = роза
marking-NovakidFace32 = раскол
marking-NovakidFace33 = звезда
marking-NovakidFace34 = продовольные очки
marking-TorsoNovakidDefolt = белое ядро
marking-HeadNovakidDefolt = белое ядро
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ent-MobNovakid = { ent-BaseMobNovakid }
.desc = { ent-BaseMobNovakid.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ent-BaseMobNovakid = Урист МакНовакид
.desc = { ent-BaseMobSpeciesOrganic.desc }
.suffix = Новакид
31 changes: 31 additions & 0 deletions Resources/Prototypes/ADT/Body/Organs/novakid.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
- type: entity
id: OrganNovakidStomach
parent: OrganAnimalStomach
noSpawn: true
components:
- type: Stomach
maxVol: 50
- type: Metabolizer
maxReagents: 5
metabolizerTypes: [ Novakid ]

- type: entity
id: OrganNovakidLungs
parent: OrganHumanLungs
suffix: "novakid"
components:
- type: Metabolizer
metabolizerTypes: [ Novakid ]

- type: entity
id: OrganNovakidHeart
parent: OrganAnimalHeart
suffix: "novakid"
components:
- type: Metabolizer
maxReagents: 2
metabolizerTypes: [ Novakid ]
groups:
- id: Medicine
- id: Poison
- id: Narcotic
190 changes: 190 additions & 0 deletions Resources/Prototypes/ADT/Body/Parts/novakid.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
# TODO: Add descriptions (many)
# TODO BODY: Part damage
- type: entity
id: PartNovakid
parent: BaseItem
name: "novakid body part"
abstract: true
components:
- type: Damageable
damageContainer: Biological
- type: BodyPart
- type: ContainerContainer
containers:
bodypart: !type:Container
ents: []

- type: entity
id: TorsoNovakid
name: "novakid torso"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "torso_m"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "torso_m"
- type: BodyPart
partType: Torso

- type: entity
id: HeadNovakid
name: "novakid head"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "head_m"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "head_m"
- type: BodyPart
partType: Head
vital: true
- type: Input
context: "ghost"
- type: MovementSpeedModifier
baseWalkSpeed: 0
baseSprintSpeed: 0
- type: InputMover
- type: GhostOnMove
- type: Tag
tags:
- Head

- type: entity
id: LeftArmNovakid
name: "left novakid arm"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_arm"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_arm"
- type: BodyPart
partType: Arm
symmetry: Left

- type: entity
id: RightArmNovakid
name: "right novakid arm"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_arm"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_arm"
- type: BodyPart
partType: Arm
symmetry: Right

- type: entity
id: LeftHandNovakid
name: "left novakid hand"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_hand"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left

- type: entity
id: RightHandNovakid
name: "right novakid hand"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_hand"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right

- type: entity
id: LeftLegNovakid
name: "left novakid leg"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_leg"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
- type: MovementBodyPart
walkSpeed : 2.5
sprintSpeed : 4.5

- type: entity
id: RightLegNovakid
name: "right novakid leg"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_leg"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
- type: MovementBodyPart
walkSpeed : 2.5
sprintSpeed : 4.5

- type: entity
id: LeftFootNovakid
name: "left novakid foot"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_foot"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "l_foot"
- type: BodyPart
partType: Foot
symmetry: Left

- type: entity
id: RightFootNovakid
name: "right novakid foot"
parent: PartNovakid
components:
- type: Sprite
netsync: false
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_foot"
- type: Icon
sprite: ADT/Mobs/Novakid/parts.rsi
state: "r_foot"
- type: BodyPart
partType: Foot
symmetry: Right
1 change: 0 additions & 1 deletion Resources/Prototypes/ADT/Body/Prototypes/fill.txt

This file was deleted.

49 changes: 49 additions & 0 deletions Resources/Prototypes/ADT/Body/Prototypes/novakid.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
- type: body
name: "novakid"
id: Novakid
root: torso
slots:
head:
part: HeadNovakid
connections:
- torso
organs:
brain: OrganHumanBrain
eyes: OrganHumanEyes
torso:
part: TorsoNovakid
organs:
heart: OrganNovakidHeart
lungs: OrganNovakidLungs
stomach: OrganNovakidStomach
liver: OrganAnimalLiver
kidneys: OrganHumanKidneys
connections:
- left arm
- right arm
- left leg
- right leg
right arm:
part: RightArmNovakid
connections:
- right hand
left arm:
part: LeftArmNovakid
connections:
- left hand
right hand:
part: RightHandNovakid
left hand:
part: LeftHandNovakid
right leg:
part: RightLegNovakid
connections:
- right foot
left leg:
part: LeftLegNovakid
connections:
- left foot
right foot:
part: RightFootNovakid
left foot:
part: LeftFootNovakid
Loading
Loading