Перенос Бумыча и Кавказский акцент

This commit is contained in:
Bombinos
2024-08-21 16:55:45 +03:00
parent 9f28cb9b2b
commit 6df53b656d
32 changed files with 356 additions and 2 deletions

View File

@@ -0,0 +1,10 @@
using Content.Server._Honk.Speech.EntitySystems;
namespace Content.Server._Honk.Speech.Components;
[RegisterComponent]
[Access(typeof(CaucasianAccentSystem))]
public sealed partial class CaucasianAccentComponent : Component
{
}

View File

@@ -0,0 +1,42 @@
using System.Text.RegularExpressions;
using Content.Server._Honk.Speech.Components;
using Content.Server.Speech;
using Content.Server.Speech.EntitySystems;
namespace Content.Server._Honk.Speech.EntitySystems;
public sealed class CaucasianAccentSystem : EntitySystem
{
[Dependency] private readonly ReplacementAccentSystem _replacement = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CaucasianAccentComponent, AccentGetEvent>(OnAccent);
}
private void OnAccent(EntityUid uid, CaucasianAccentComponent component, AccentGetEvent args)
{
var message = args.Message;
message = _replacement.ApplyReplacements(message, "caucasian");
//They shoulda started runnin' an' hidin' from me!
message = Regex.Replace(message, @"Эй", "Эу");
message = Regex.Replace(message, @"эй", "эу");
message = Regex.Replace(message, @"ые", "ии");
message = Regex.Replace(message, @"Ы", "И");
message = Regex.Replace(message, @"ы", "и");
message = Regex.Replace(message, @"Ё", "Йо");
message = Regex.Replace(message, @"ё", "йо");
message = Regex.Replace(message, @"Е", "Э");
message = Regex.Replace(message, @"е", "э");
args.Message = message;
}
};

View File

@@ -88,8 +88,6 @@
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.GenitalVisualLayers.BreastFront" ] # AMOUR
- map: [ "underwearb" ] #White
- map: [ "underweart" ] #White
- shader: StencilClear
sprite: Mobs/Species/Human/parts.rsi #PJB on stencil clear being on the left leg: "...this is 'fine'" -https://github.com/space-wizards/space-station-14/pull/12217#issuecomment-1291677115
# its fine, but its still very stupid that it has to be done like this instead of allowing sprites to just directly insert a stencil clear.

View File

@@ -0,0 +1,9 @@
- type: listing
id: UplinkReinforcementRadioDemolitionist
name: Радио вызова подрывника
icon: { sprite: Objects/Devices/communication.rsi, state: old-radio }
productEntity: ReinforcementRadioDemolitionist
cost:
Telecrystal: 12
categories:
- UplinkAllies

View File

@@ -0,0 +1,41 @@
- type: dataset
id: NamesFirstArab
values:
- Ахмед
- Абдула
- Амин
- Амир
- Анас
- Абу
- Азим
- Акиф
- Асад
- Басим
- Басир
- Билях
- Башир
- Вахадж
- Гази
- Джабир
- Джамал
- Захид
- Иршад
- Исмаил
- Муаммар
- Низам
- Салиф
- Фалих
- type: dataset
id: NamesLastArab
values:
- Намазов
- Абдулла
- Абдалкадир
- Аббас
- Адил
- Хусейн
- Гульзар
- Гавдат
- Вассим
- Вахида

View File

@@ -0,0 +1,8 @@
- type: entity
parent: RemoteSignaller
id: RemoteSignallerSyndicate
name: передатчик сигналов синдиката
components:
- type: Sprite
sprite: _Honk/Devices/signallersyndicate.rsi
state: signaller

View File

@@ -0,0 +1,21 @@
- type: entity
parent: ClothingBeltBase
id: ClothingBeltShahid
name: пояс подрывника
description: Лучше не стоять рядом
components:
- type: Sprite
sprite: _Honk/Clothing/Belt/shahidbelt.rsi
- type: Clothing
sprite: _Honk/Clothing/Belt/shahidbelt.rsi
- type: TriggerOnSignal
- type: DeviceLinkSink
ports:
- Trigger
- type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating.
explosionType: DemolitionCharge
totalIntensity: 400
intensitySlope: 8
maxIntensity: 75
canCreateVacuum: false
- type: ExplodeOnTrigger

View File

@@ -0,0 +1,10 @@
- type: entity
parent: ClothingMaskPullableBase
id: ClothingBalaclava
name: балаклава
description: Балаклава
components:
- type: Sprite
sprite: _Honk/Clothing/Mask/balaclava.rsi
- type: Clothing
sprite: _Honk/Clothing/Mask/balaclava.rsi

View File

@@ -0,0 +1,16 @@
- type: entity
parent: MarkerBase
id: SpawnPointGhostDemolitionist
name: точка появление подрывника синдиката
components:
- type: GhostRole
name: Подрывник синдиката
description: Пришёл, чтобы красиво уйти
rules: Вы - антагонист и можете убивать всех, кто пытается вам помешать, но убийство цели - всегда ваш наивысший приоритет.
- type: GhostRoleMobSpawner
prototype: MobHumanDemolitionist
- type: Sprite
layers:
- state: green
- sprite: Mobs/Species/Human/parts.rsi
state: full

View File

@@ -0,0 +1,19 @@
# Подрывник синдиката
- type: entity
parent: MobHuman
id: MobHumanDemolitionist
name: подрывник синдиката
suffix: Human, Base
components:
- type: CaucasianAccent
- type: GenericAntag
rule: Destroy
- type: Loadout
prototypes: [SyndicateDemolitionistGearExtremely]
- type: RandomMetadata
nameSegments:
- NamesFirstArab
- NamesLastArab
- type: NpcFactionMember
factions:
- Syndicate

View File

@@ -0,0 +1,21 @@
- type: entity
parent: BaseItem
id: ReinforcementRadioDemolitionist
name: Радио подкрепления подрывника-синдиката
components:
- type: Sprite
sprite: Objects/Devices/communication.rsi
layers:
- state: old-radio
- type: GhostRole
name: Подрывник синдиката
description: Искусство - это взрыв.
rules: Правило 1 - взорваться
raffle:
settings: short
- type: GhostRoleMobSpawner
prototype: MobHumanDemolitionist
- type: EmitSoundOnUse
sound: /Audio/Effects/Emotes/parp1.ogg
- type: UseDelay
delay: 300

View File

@@ -0,0 +1,12 @@
- type: entity
parent: BaseGameRule
id: DemolitionistSpawn
noSpawn: true
components:
- type: StationEvent
weight: 8
duration: 1
earliestStart: 20
minimumPlayers: 20
- type: RandomSpawnRule
prototype: SpawnPointGhostDemolitionist

View File

@@ -0,0 +1,9 @@
- type: entity
noSpawn: true
parent: BaseGameRule
id: Destroy
components:
- type: GenericAntagRule
agentName: подрывник
objectives:
- DemolitionistObjective

View File

@@ -0,0 +1,22 @@
- type: entity
abstract: true
parent: BaseObjective
id: BaseDemolitionistObjective
components:
- type: Objective
difficulty: 1
issuer: Цель
- type: entity
noSpawn: true
parent: [BaseDemolitionistObjective, BaseKillObjective]
id: DemolitionistObjective
description: Враг синдиката должен быть взорван!
components:
- type: Objective
unique: false
- type: TargetObjective
title: Взорви врага синдиката!
- type: PickRandomPerson
- type: KillPersonCondition
requireDead: true

View File

@@ -0,0 +1,6 @@
- type: antag
id: Demolitionist
name: Подрывник синдиката
antagonist: true
setPreference: false
objective: Искусство - это взрыв!

View File

@@ -0,0 +1,12 @@
- type: startingGear
id: SyndicateDemolitionistGearExtremely
equipment:
id: AgentIDCard
belt: ClothingBeltShahid
mask: ClothingBalaclava
jumpsuit: ClothingUniformJumpsuitOperative
back: ClothingBackpackSyndicate
shoes: ClothingShoesBootsCombatFilled
gloves: ClothingHandsGlovesColorBlack
pocket1: Multitool
pocket2: RemoteSignallerSyndicate

View File

@@ -0,0 +1,6 @@
- type: trait
id: Caucasian
name: Кавказский акцент
description: Эу брат, пачэму ты нэ вибрал чэрту
components:
- type: CaucasianAccent

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

View File

@@ -0,0 +1,26 @@
{
"version": 1,
"license": "Нету",
"copyright": "from Arab to Arab",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "equipped-BELT",
"directions": 4
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Hello",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "equipped-MASK",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Hello",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "equipped-MASK",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

View File

@@ -0,0 +1,30 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Маи права хихи хаха",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "signaller",
"delays": [
[
0.4,
0.2,
0.1,
0.1
]
]
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B