Skip to content

Commit

Permalink
[Port] Hobo and Maid (#20)
Browse files Browse the repository at this point in the history
* MAID AND BOMZH (#605)

* First

* Second

* oops

* translate

* rework

* resprite

* resprite1

* a

* forgot

* Reorganisation

* whatthefuckiamdoing

* blyat

* REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

* character-requirements, loadouts and other

* burnthis

* *clap*
  • Loading branch information
RedBurningPhoenix committed Sep 1, 2024
1 parent 71ab3cc commit 60d7000
Show file tree
Hide file tree
Showing 84 changed files with 808 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System.Linq;
using Content.Shared.Clothing.Loadouts.Prototypes;
using Content.Shared.Humanoid;
using Content.Shared.Humanoid.Prototypes;
using Content.Shared.Preferences;
using Content.Shared.Roles;
using Content.Shared.Traits;
using JetBrains.Annotations;
using Robust.Shared.Configuration;
using Robust.Shared.Enums;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
Expand Down Expand Up @@ -106,6 +108,8 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile,
}
}



/// <summary>
/// Requires the profile to have one of the specified traits
/// </summary>
Expand Down Expand Up @@ -155,3 +159,60 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile,
return Loadouts.Any(l => profile.LoadoutPreferences.Contains(l.ToString()));
}
}

// White Dream
[UsedImplicitly]
[Serializable, NetSerializable]
public sealed partial class CharacterSexRequirement : CharacterRequirement
{
[DataField(required: true)]
public Sex RequiredSex;

public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile,
Dictionary<string, TimeSpan> playTimes, bool whitelisted,
IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager,
out FormattedMessage? reason)
{
const string color = "green";
reason = FormattedMessage.FromMarkup(Loc.GetString("character-sex-requirement",
("inverted", Inverted),
("sex", $"[color={color}]{string.Join($"[/color], [color={color}]",
RequiredSex.ToString())}[/color]")));

return profile.Sex == RequiredSex;
}
}

[UsedImplicitly]
[Serializable, NetSerializable]
public sealed partial class CharacterGenderRequirement : CharacterRequirement
{
[DataField(required: true)]
public Gender RequiredGender;

public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile,
Dictionary<string, TimeSpan> playTimes, bool whitelisted,
IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager,
out FormattedMessage? reason)
{
const string color = "green";
reason = FormattedMessage.FromMarkup(Loc.GetString("character-gender-requirement",
("inverted", Inverted),
("gender", $"[color={color}]{string.Join($"[/color], [color={color}]",
GenderToString())}[/color]")));

return profile.Gender == RequiredGender;
}

private string GenderToString()
{
return RequiredGender switch
{
Gender.Male => Loc.GetString("humanoid-profile-editor-pronouns-male-text"),
Gender.Female => Loc.GetString("humanoid-profile-editor-pronouns-female-text"),
_ => Loc.GetString("unknown")
};
}
}
// White Dream

6 changes: 6 additions & 0 deletions Resources/Locale/en-US/_white/job/job-names.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
job-name-maid = Maid
job-name-hobo = Hobo
# Role timers - Make these alphabetical or I cut you
JobMaid = Maid
JobHobo = Hobo
10 changes: 10 additions & 0 deletions Resources/Locale/en-US/customization/character-requirements.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ character-clothing-preference-requirement = You must {$inverted ->
*[other] wear
} a [color=white]{$type}[/color]
# White Dream
character-sex-requirement = Your sex must {$inverted ->
[true] not be
*[other] be
} a {$sex}
character-gender-requirement = Your pronouns must {$inverted ->
[true] not be
*[other] be
} a {$gender}
# White Dream

# Whitelist
character-whitelist-requirement = You must {$inverted ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -767,3 +767,5 @@
- state: equipped-INNERCLOTHING-jumpskirt
- state: equipped-INNERCLOTHING-shirt
color: "#b30000"


2 changes: 2 additions & 0 deletions Resources/Prototypes/Roles/Jobs/departments.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
- MartialArtist # Nyanotrasen - MartialArtist, see Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/martialartist.yml
- Prisoner # Nyanotrasen - Prisoner, see Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml
- Gladiator # Nyanotrasen - Gladiator, see Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/gladiator.yml
- Hobo # White Dream

- type: department
id: Command
Expand All @@ -49,6 +50,7 @@
- HeadOfSecurity
- ResearchDirector
- Quartermaster
- Maid # White Dream
primary: false
weight: 100

Expand Down
7 changes: 7 additions & 0 deletions Resources/Prototypes/Roles/play_time_trackers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,3 +165,10 @@

- type: playTimeTracker
id: JobZookeeper

# WHITE
- type: playTimeTracker
id: JobHobo

- type: playTimeTracker
id: JobMaid
15 changes: 15 additions & 0 deletions Resources/Prototypes/_White/Entities/Clothing/Eyes/glasses.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- type: entity
parent: ClothingEyesBase
id: ClothingEyesGlassesMaid
name: maid's sunglasses
description: Maid's sunglasses. Clean and cute.
components:
- type: Sprite
sprite: _White/Clothing/Eyes/Glasses/maidglasses.rsi
- type: Clothing
sprite: _White/Clothing/Eyes/Glasses/maidglasses.rsi
- type: FlashImmunity
- type: Tag
tags:
- WhitelistChameleon
- type: ShowSecurityIcons
43 changes: 43 additions & 0 deletions Resources/Prototypes/_White/Entities/Clothing/Head/hats.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatHoboHat
name: hobo hat
description: An old century hat. It's worn out and looks unkempt.
components:
- type: Sprite
sprite: _White/Clothing/Head/hobohat.rsi
- type: Clothing
sprite: _White/Clothing/Head/hobohat.rsi
- type: Tag
tags:
- HidesHair
- type: Armor
modifiers:
coefficients:
Blunt: 0.95

- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatHoboCap
name: hobo cap
description: Uninvited guest cap. Doesn't inspire confidence.
components:
- type: Sprite
sprite: _White/Clothing/Head/hobocap.rsi
- type: Clothing
sprite: _White/Clothing/Head/hobocap.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.95

- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatMobCap
name: maid's mob cap
description: The headdress of a true servant.
components:
- type: Sprite
sprite: _White/Clothing/Head/maidhat.rsi
- type: Clothing
sprite: _White/Clothing/Head/maidhat.rsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
- type: entity
parent: ClothingOuterStorageBase
id: ClothingOuterOverCoatHobo
name: hobo's overcoat
description: The jacket has been through a lot, time has not been tolerant of it and has left its scars.
components:
- type: Sprite
sprite: _White/Clothing/OuterClothing/Coats/jacket.rsi
- type: Clothing
sprite: _White/Clothing/OuterClothing/Coats/jacket.rsi
- type: StorageFill
contents:
- id: SmokingPipeFilledTobacco
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.90
Piercing: 0.90
Heat: 0.75
10 changes: 10 additions & 0 deletions Resources/Prototypes/_White/Entities/Clothing/Shoes/specific.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
- type: entity
parent: ClothingShoesBaseButcherable
id: ClothingShoesMaid
name: maid shoes
description: The maid's shoes. Shiny.
components:
- type: Sprite
sprite: _White/Clothing/Shoes/maidshoes.rsi
- type: Clothing
sprite: _White/Clothing/Shoes/maidshoes.rsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
- type: entity
parent: ClothingUniformSkirtBase
id: ClothingUniformJumpskirtMaid
name: maid's jumpskirt
description: Elegant maid's dress. Makes you feel comfortable, safe and clean around you.
components:
- type: Sprite
sprite: _White/Clothing/Uniforms/Jumpskirt/maid.rsi
- type: Clothing
sprite: _White/Clothing/Uniforms/Jumpskirt/maid.rsi

- type: entity
parent: ClothingUniformSkirtBase
id: ClothingUniformJumpskirtMaidMini
name: maid's mini jumpskirt
description: Elegant shortened maid's servant's dress. Makes you feel comfortable, safe and clean around you. This view expands your horizon in your eyes.
components:
- type: Sprite
sprite: _White/Clothing/Uniforms/Jumpskirt/maidmini.rsi
- type: Clothing
sprite: _White/Clothing/Uniforms/Jumpskirt/maidmini.rsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitWhiteHobo
name: hobo uniform
description: The ragged form of a man who has been through a lot. It's not so much the holes in all the places that strike you as the smell of her.
components:
- type: Sprite
sprite: _White/Clothing/Uniforms/Jumpsuit/hobo.rsi
- type: Clothing
sprite: _White/Clothing/Uniforms/Jumpsuit/hobo.rsi
23 changes: 23 additions & 0 deletions Resources/Prototypes/_White/Entities/Markers/Spawners/jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
- type: entity
id: SpawnPointHobo
parent: SpawnPointJobBase
name: hobo
components:
- type: SpawnPoint
job_id: Hobo
- type: Sprite
layers:
- state: green
- state: hobo

- type: entity
id: SpawnPointMaid
parent: SpawnPointJobBase
name: maid
components:
- type: SpawnPoint
job_id: Maid
- type: Sprite
layers:
- state: green
- state: maid
19 changes: 19 additions & 0 deletions Resources/Prototypes/_White/Entities/Objects/Devices/pda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
- type: entity
parent: BasePDA
id: HoboPDA
name: hobo PDA
description: Life has passed and all that's left to do is move forward.
components:
- type: Pda
id: HoboIDCard
state: pda-hobo

- type: entity
parent: BasePDA
id: MaidPDA
name: maid PDA
description: Shining from her own purity.
components:
- type: Pda
id: MaidIDCard
state: pda-maid
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
- type: entity
parent: IDCardStandard
id: HoboIDCard
name: Hobo ID card
components:
- type: Sprite
layers:
- state: silver
- state: idhobo
- type: PresetIdCard
job: Passenger

- type: entity
parent: IDCardStandard
id: MaidIDCard
name: Maid ID card
components:
- type: Sprite
layers:
- state: silver
- state: idmaid
- type: PresetIdCard
job: Maid
Loading

0 comments on commit 60d7000

Please sign in to comment.