Skip to content

Commit

Permalink
[Race] Vulpkanin (#1595)
Browse files Browse the repository at this point in the history
  • Loading branch information
Morb0 authored Dec 10, 2023
1 parent 83f41e7 commit 3a300a2
Show file tree
Hide file tree
Showing 45 changed files with 700 additions and 0 deletions.
10 changes: 10 additions & 0 deletions Content.Server/Corvax/Speech/Components/GrowlingAccentComponent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Content.Server.Corvax.Speech.Components;

/// <summary>
/// Rrrr!
/// </summary>
[RegisterComponent]
public sealed partial class GrowlingAccentComponent : Component
{

}
50 changes: 50 additions & 0 deletions Content.Server/Corvax/Speech/EntitySystems/GrowlingAccentSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
using System.Text.RegularExpressions;
using Content.Server.Corvax.Speech.Components;
using Content.Server.Speech;
using Robust.Shared.Random;

namespace Content.Server.Corvax.Speech.EntitySystems;

public sealed class GrowlingAccentSystem : EntitySystem
{
[Dependency] private readonly IRobustRandom _random = default!;

public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<GrowlingAccentComponent, AccentGetEvent>(OnAccent);
}

private void OnAccent(EntityUid uid, GrowlingAccentComponent component, AccentGetEvent args)
{
var message = args.Message;

// r => rrr
message = Regex.Replace(
message,
"r+",
_random.Pick(new List<string> { "rr", "rrr" })
);
// R => RRR
message = Regex.Replace(
message,
"R+",
_random.Pick(new List<string> { "RR", "RRR" })
);

// р => ррр
message = Regex.Replace(
message,
"р+",
_random.Pick(new List<string> { "рр", "ррр" })
);
// Р => РРР
message = Regex.Replace(
message,
"Р+",
_random.Pick(new List<string> { "РР", "РРР" })
);

args.Message = message;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ent-OrganVulpkaninStomach = { ent-OrganAnimalStomach }
.desc = { ent-OrganAnimalStomach.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ent-PartVulpkanin = vulpkanin body part
.desc = { ent-BasePart.desc }
ent-TorsoVulpkanin = vulpkanin torso
.desc = { ent-PartVulpkanin.desc }
ent-HeadVulpkanin = vulpkanin head
.desc = { ent-PartVulpkanin.desc }
ent-LeftArmVulpkanin = left vulpkanin arm
.desc = { ent-PartVulpkanin.desc }
ent-RightArmVulpkanin = right vulpkanin arm
.desc = { ent-PartVulpkanin.desc }
ent-LeftHandVulpkanin = left vulpkanin hand
.desc = { ent-PartVulpkanin.desc }
ent-RightHandVulpkanin = right vulpkanin hand
.desc = { ent-PartVulpkanin.desc }
ent-LeftLegVulpkanin = left vulpkanin leg
.desc = { ent-PartVulpkanin.desc }
ent-RightLegVulpkanin = right vulpkanin leg
.desc = { ent-PartVulpkanin.desc }
ent-LeftFootVulpkanin = left vulpkanin foot
.desc = { ent-PartVulpkanin.desc }
ent-RightFootVulpkanin = right vulpkanin foot
.desc = { ent-PartVulpkanin.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ent-MobVulpkanin = Urist McVulp
.desc = { ent-BaseMobVulpkanin.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ent-BaseMobVulpkanin = Urist McVulp
.desc = { ent-BaseMobOrganic.desc }
ent-MobVulpkaninDummy = Urist McHands
.desc = A dummy vulpkanin meant to be used in character setup.
14 changes: 14 additions & 0 deletions Resources/Locale/ru-RU/corvax/markings/vulpkanin.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
marking-PawSocks-pawsocks = Paw socks
marking-PawSocks = Paw socks
marking-FoxTail-vulp_tail = Fox tail
marking-FoxTail = Fox tail
marking-FoxEar-vulp_ear = Fox ear (outer)
marking-FoxEar-vulp_ear_inner = Fox ear (inner)
marking-FoxEar = Fox ear (inner)
marking-WolfTail-wolf_tail = Wolf tail (base)
marking-WolfTail-wolf_tail_inner = Wolf tail (tip)
marking-WolfTail = Wolf tail (tip)
marking-FoxBelly-vulp_belly-torso = Fox belly
marking-FoxBelly = Fox belly
marking-FoxSnout-vulp_face = Fox snout
marking-FoxSnout = Fox snout
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-vulpkanin = Вульпканин
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ent-OrganVulpkaninStomach = { ent-OrganAnimalStomach }
.desc = { ent-OrganAnimalStomach.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ent-PartVulpkanin = vulpkanin body part
.desc = { ent-BasePart.desc }
ent-TorsoVulpkanin = vulpkanin torso
.desc = { ent-PartVulpkanin.desc }
ent-HeadVulpkanin = vulpkanin head
.desc = { ent-PartVulpkanin.desc }
ent-LeftArmVulpkanin = left vulpkanin arm
.desc = { ent-PartVulpkanin.desc }
ent-RightArmVulpkanin = right vulpkanin arm
.desc = { ent-PartVulpkanin.desc }
ent-LeftHandVulpkanin = left vulpkanin hand
.desc = { ent-PartVulpkanin.desc }
ent-RightHandVulpkanin = right vulpkanin hand
.desc = { ent-PartVulpkanin.desc }
ent-LeftLegVulpkanin = left vulpkanin leg
.desc = { ent-PartVulpkanin.desc }
ent-RightLegVulpkanin = right vulpkanin leg
.desc = { ent-PartVulpkanin.desc }
ent-LeftFootVulpkanin = left vulpkanin foot
.desc = { ent-PartVulpkanin.desc }
ent-RightFootVulpkanin = right vulpkanin foot
.desc = { ent-PartVulpkanin.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ent-MobVulpkanin = Urist McVulp
.desc = { ent-BaseMobVulpkanin.desc }
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ent-BaseMobVulpkanin = Urist McVulp
.desc = { ent-BaseMobOrganic.desc }
ent-MobVulpkaninDummy = Urist McHands
.desc = A dummy vulpkanin meant to be used in character setup.
7 changes: 7 additions & 0 deletions Resources/Prototypes/Corvax/Body/Organs/vulpkanin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- type: entity
id: OrganVulpkaninStomach
parent: OrganAnimalStomach
noSpawn: true
components:
- type: Stomach
maxVolume: 50
125 changes: 125 additions & 0 deletions Resources/Prototypes/Corvax/Body/Parts/vulpkanin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# TODO: Add descriptions (many)
# TODO BODY: Part damage
- type: entity
id: PartVulpkanin
parent: [BaseItem, BasePart]
name: "vulpkanin body part"
abstract: true
components:
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 3
- ReagentId: Blood
Quantity: 10

- type: entity
id: TorsoVulpkanin
name: "vulpkanin torso"
parent: [PartVulpkanin, BaseTorso]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "torso_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 10
- ReagentId: Blood
Quantity: 20

- type: entity
id: HeadVulpkanin
name: "vulpkanin head"
parent: [PartVulpkanin, BaseHead]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "head_m"
- type: Extractable
juiceSolution:
reagents:
- ReagentId: Fat
Quantity: 5
- ReagentId: Blood
Quantity: 10

- type: entity
id: LeftArmVulpkanin
name: "left vulpkanin arm"
parent: [PartVulpkanin, BaseLeftArm]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "l_arm"

- type: entity
id: RightArmVulpkanin
name: "right vulpkanin arm"
parent: [PartVulpkanin, BaseRightArm]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "r_arm"

- type: entity
id: LeftHandVulpkanin
name: "left vulpkanin hand"
parent: [PartVulpkanin, BaseLeftHand]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "l_hand"

- type: entity
id: RightHandVulpkanin
name: "right vulpkanin hand"
parent: [PartVulpkanin, BaseRightHand]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "r_hand"

- type: entity
id: LeftLegVulpkanin
name: "left vulpkanin leg"
parent: [PartVulpkanin, BaseLeftLeg]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "l_leg"
- type: MovementBodyPart
walkSpeed : 2.7
sprintSpeed : 4.5

- type: entity
id: RightLegVulpkanin
name: "right vulpkanin leg"
parent: [PartVulpkanin, BaseRightLeg]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "r_leg"
- type: MovementBodyPart
walkSpeed : 2.7
sprintSpeed : 4.5

- type: entity
id: LeftFootVulpkanin
name: "left vulpkanin foot"
parent: [PartVulpkanin, BaseLeftFoot]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "l_foot"

- type: entity
id: RightFootVulpkanin
name: "right vulpkanin foot"
parent: [PartVulpkanin, BaseRightFoot]
components:
- type: Sprite
sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi
state: "r_foot"
49 changes: 49 additions & 0 deletions Resources/Prototypes/Corvax/Body/Prototypes/vulpkanin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
- type: body
name: "vulpkanin"
id: Vulpkanin
root: torso
slots:
head:
part: HeadVulpkanin
connections:
- torso
organs:
brain: OrganHumanBrain
eyes: OrganHumanEyes
torso:
part: TorsoVulpkanin
organs:
heart: OrganAnimalHeart
lungs: OrganHumanLungs
stomach: OrganVulpkaninStomach
liver: OrganAnimalLiver
kidneys: OrganHumanKidneys
connections:
- left arm
- right arm
- left leg
- right leg
right arm:
part: RightArmVulpkanin
connections:
- right hand
left arm:
part: LeftArmVulpkanin
connections:
- left hand
right hand:
part: RightHandVulpkanin
left hand:
part: LeftHandVulpkanin
right leg:
part: RightLegVulpkanin
connections:
- right foot
left leg:
part: LeftLegVulpkanin
connections:
- left foot
right foot:
part: RightFootVulpkanin
left foot:
part: LeftFootVulpkanin
5 changes: 5 additions & 0 deletions Resources/Prototypes/Corvax/Damage/modifier_sets.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- type: damageModifierSet
id: Vulpkanin # Because of fur is more flammable and more resistant to cold.
coefficients:
Cold: 0.5
Heat: 1.5
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
- type: marking
id: PawSocks
markingCategory: Overlay
bodyPart: RFoot #highest possible layer
speciesRestriction: [Vulpkanin]
sprites:
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: pawsocks

- type: marking
id: FoxTail
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Vulpkanin]
sprites:
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: vulp_tail

- type: marking
id: FoxEar
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [Vulpkanin]
sprites:
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: vulp_ear
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: vulp_ear_inner

- type: marking
id: WolfTail
bodyPart: Tail
markingCategory: Tail
speciesRestriction: [Vulpkanin]
sprites:
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: wolf_tail
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: wolf_tail_inner

- type: marking
id: FoxBelly
bodyPart: Chest
markingCategory: Chest
speciesRestriction: [Vulpkanin]
sprites:
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: vulp_belly-torso

- type: marking
id: FoxSnout
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [Vulpkanin]
sprites:
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
state: vulp_face
Loading

0 comments on commit 3a300a2

Please sign in to comment.