Перенос Бумыча и Кавказский акцент
@@ -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
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -88,8 +88,6 @@
|
|||||||
- map: [ "enum.HumanoidVisualLayers.RArm" ]
|
- map: [ "enum.HumanoidVisualLayers.RArm" ]
|
||||||
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
- map: [ "enum.HumanoidVisualLayers.LArm" ]
|
||||||
- map: [ "enum.GenitalVisualLayers.BreastFront" ] # AMOUR
|
- map: [ "enum.GenitalVisualLayers.BreastFront" ] # AMOUR
|
||||||
- map: [ "underwearb" ] #White
|
|
||||||
- map: [ "underweart" ] #White
|
|
||||||
- shader: StencilClear
|
- 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
|
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.
|
# 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.
|
||||||
|
|||||||
9
Resources/Prototypes/_Honk/Catalog/uplink_catalog.yml
Normal 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
|
||||||
41
Resources/Prototypes/_Honk/Datasets/Names/arab.yml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
- type: dataset
|
||||||
|
id: NamesFirstArab
|
||||||
|
values:
|
||||||
|
- Ахмед
|
||||||
|
- Абдула
|
||||||
|
- Амин
|
||||||
|
- Амир
|
||||||
|
- Анас
|
||||||
|
- Абу
|
||||||
|
- Азим
|
||||||
|
- Акиф
|
||||||
|
- Асад
|
||||||
|
- Басим
|
||||||
|
- Басир
|
||||||
|
- Билях
|
||||||
|
- Башир
|
||||||
|
- Вахадж
|
||||||
|
- Гази
|
||||||
|
- Джабир
|
||||||
|
- Джамал
|
||||||
|
- Захид
|
||||||
|
- Иршад
|
||||||
|
- Исмаил
|
||||||
|
- Муаммар
|
||||||
|
- Низам
|
||||||
|
- Салиф
|
||||||
|
- Фалих
|
||||||
|
|
||||||
|
- type: dataset
|
||||||
|
id: NamesLastArab
|
||||||
|
values:
|
||||||
|
- Намазов
|
||||||
|
- Абдулла
|
||||||
|
- Абдалкадир
|
||||||
|
- Аббас
|
||||||
|
- Адил
|
||||||
|
- Хусейн
|
||||||
|
- Гульзар
|
||||||
|
- Гавдат
|
||||||
|
- Вассим
|
||||||
|
- Вахида
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: entity
|
||||||
|
parent: RemoteSignaller
|
||||||
|
id: RemoteSignallerSyndicate
|
||||||
|
name: передатчик сигналов синдиката
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: _Honk/Devices/signallersyndicate.rsi
|
||||||
|
state: signaller
|
||||||
21
Resources/Prototypes/_Honk/Entities/Clothing/Belt/belts.yml
Normal 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
|
||||||
10
Resources/Prototypes/_Honk/Entities/Clothing/Mask/mask.yml
Normal 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
|
||||||
@@ -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
|
||||||
19
Resources/Prototypes/_Honk/Entities/Mobs/Player/human.yml
Normal 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
|
||||||
@@ -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
|
||||||
12
Resources/Prototypes/_Honk/GameRules/events.yml
Normal 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
|
||||||
9
Resources/Prototypes/_Honk/GameRules/midround.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
- type: entity
|
||||||
|
noSpawn: true
|
||||||
|
parent: BaseGameRule
|
||||||
|
id: Destroy
|
||||||
|
components:
|
||||||
|
- type: GenericAntagRule
|
||||||
|
agentName: подрывник
|
||||||
|
objectives:
|
||||||
|
- DemolitionistObjective
|
||||||
22
Resources/Prototypes/_Honk/Objectives/demolitionist.yml
Normal 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
|
||||||
6
Resources/Prototypes/_Honk/Role/Antags/demolitionist.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- type: antag
|
||||||
|
id: Demolitionist
|
||||||
|
name: Подрывник синдиката
|
||||||
|
antagonist: true
|
||||||
|
setPreference: false
|
||||||
|
objective: Искусство - это взрыв!
|
||||||
@@ -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
|
||||||
6
Resources/Prototypes/_Honk/Traits/neutral.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- type: trait
|
||||||
|
id: Caucasian
|
||||||
|
name: Кавказский акцент
|
||||||
|
description: Эу брат, пачэму ты нэ вибрал чэрту
|
||||||
|
components:
|
||||||
|
- type: CaucasianAccent
|
||||||
|
After Width: | Height: | Size: 734 B |
BIN
Resources/Textures/_Honk/Clothing/Belt/shahidbelt.rsi/icon.png
Normal file
|
After Width: | Height: | Size: 375 B |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 368 B |
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 530 B |
BIN
Resources/Textures/_Honk/Clothing/Mask/balaclava.rsi/icon.png
Normal file
|
After Width: | Height: | Size: 439 B |
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 235 B |
BIN
Resources/Textures/_Honk/Clothing/Mask/keffiyeh.rsi/icon.png
Normal file
|
After Width: | Height: | Size: 219 B |
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 306 B |
|
After Width: | Height: | Size: 316 B |
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 648 B |