Skip to content
Open
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
57 changes: 57 additions & 0 deletions Content.Server/_Wega/Chaplain/ChaplainEquipmentSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
using Content.Shared.Inventory.Events;
using Content.Shared.Hands;
using Content.Shared._Wega.Chaplain.Components;
using Content.Shared.Popups;
using Content.Shared.Throwing;
using Robust.Shared.Random;
using Content.Server.Bible.Components;

namespace Content.Server._Wega.Chaplain;

public sealed partial class ChaplainEquipmentSystem : EntitySystem
{
[Dependency] private SharedTransformSystem _transform = default!;
[Dependency] private ThrowingSystem _throwing = default!;
[Dependency] private SharedPopupSystem _popup = default!;
[Dependency] private IRobustRandom _random = default!;

public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<ChaplainItemComponent, GotEquippedEvent>(OnEquipped);
SubscribeLocalEvent<ChaplainItemComponent, BeforeGettingEquippedHandEvent>(OnPickUp);
}

private void OnEquipped(Entity<ChaplainItemComponent> ent, ref GotEquippedEvent args)
{
var target = args.EquipTarget;

if (HasComp<BibleUserComponent>(target))
return;

_transform.SetCoordinates(ent, Transform(target).Coordinates);
_transform.AttachToGridOrMap(ent);
_throwing.TryThrow(ent, _random.NextVector2(), 1);
_popup.PopupEntity(Loc.GetString("chaplain-pickup-fail"),
target, target, PopupType.MediumCaution);
}

private void OnPickUp(Entity<ChaplainItemComponent> ent, ref BeforeGettingEquippedHandEvent args)
{
if (args.Cancelled)
return;

var user = args.User;

if (HasComp<BibleUserComponent>(user))
return;

args.Cancelled = true;
_transform.SetCoordinates(ent, Transform(user).Coordinates);
_transform.AttachToGridOrMap(ent);
_throwing.TryThrow(ent, _random.NextVector2(), 1);
_popup.PopupEntity(Loc.GetString("chaplain-pickup-fail"),
user, user, PopupType.MediumCaution);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using Robust.Shared.GameStates;

namespace Content.Shared._Wega.Chaplain.Components;

[RegisterComponent, NetworkedComponent]
public sealed partial class ChaplainItemComponent : Component
{
//РП маркер
}
4 changes: 3 additions & 1 deletion Resources/Locale/ru-RU/_wega/bloodcult/bloodcult.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,6 @@ blood-cultist-ritual-message = TOK-LYR RQA-NAP G'OLT-ULOFT!
blood-cultist-default-message = Durn'koth ya'riska thol'mar!

blood-cult-on-equip-hand = Ваша рука теряет возможность сжаться в кулак из-за проклятия и вы роняете предмет.
blood-cult-on-equip = Одежда слетает с вас, как только вы её надели из-за проклятия.
blood-cult-on-equip = Одежда слетает с вас, как только вы её надели из-за проклятия.

chaplain-pickup-fail = Вы не можете взять этот священный предмет!
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ ent-ClothingBeltSheathChaplinFilled = { ent-ClothingBeltSheathChaplin }
.desc = { ent-ClothingBeltSheathChaplin.desc }
ent-ClothingBeltSheathChaplinFilledERT = { ent-ClothingBeltSheathChaplin }
.suffix = Заполненый, ОБР
.desc = { ent-ClothingBeltSheathChaplin.desc }
.desc = { ent-ClothingBeltSheathChaplin.desc }
ent-ClothingBeltHolsterFilledChaplain = пояс священного вооружения
.desc = Наплечная кобура от богов. Содержит два пистолета.
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,19 @@ ent-VeilCultBrassCuirassReflection = { ent-VeilCultBrassCuirass }
ent-VeilCultBrassCuirassSmoke = { ent-VeilCultBrassCuirass }
.desc = { ent-VeilCultBrassCuirass.desc }
.suffix = Дымовая завеса
ent-BaseArmorChaplain = броня крестоносца
.desc = Тяжелые доспехи из усиленных металлических пластин, предназначенны для храмовых служителей.
ent-ArmorChaplainHelldiver = адская броня
.desc = { ent-BaseArmorChaplain.desc}
ent-ArmorChaplainMagic = святая броня
.desc = { ent-BaseArmorChaplain.desc}
ent-ArmorChaplainSchema = схима монаха
.desc = { ent-BaseArmorChaplain.desc}
ent-ArmorChaplainInquisitor = доспехи инквизитора
.desc = { ent-BaseArmorChaplain.desc}
ent-ArmorChaplainWitchHunter = одежда охотника на вампиров
.desc = { ent-BaseArmorChaplain.desc}
ent-ArmorChaplainBrass = латунная броня
.desc = { ent-BaseArmorChaplain.desc}
ent-ClothingOuterArmorGodslayer = доспехи убийцы богов
.desc = Доспехи, сделанные из остатков рыцарских доспехов и частей вендиго.
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ ent-HardsuitOperSelector = преобразователь кровавого-к
ent-HardsuitOperMedSelector = преобразователь медицинского кровавого-красного скафандра
.desc = { ent-HardsuitCESelector.desc }
.suffix = Селектор
ent-HardsuitChaplain = преобразователь священного одеяния
.desc = { ent-HardsuitCESelector.desc }
.suffix = Селектор

# Другие селекторы
ent-OtherCrashSelector = преобразователь крушителя
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,8 @@ ent-WeaponPulseShotgun = импульсный дробовик
.suffix = Дробовик
ent-WeaponPulseSniper = импульсная снайперская винтовка
.desc = Импульсныая винтовка с очень низким показателем скоростельности засчет убойности поподания. Один выстрел - один почти готовый труп.
.suffix = Винтовка
.suffix = Винтовка
ent-WeaponPistolUndead = нежить
.desc = Первый из двух огромных пистолетов, способных стрелять регенерирующими пулями. Не может "жить" без своего «сестринского» пистолета.
ent-WeaponPistolFailure = неудача
.desc = { ent-WeaponPistolCasul.desc}
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@
- 0,0,1,3
# Corvax-Wega-NullRod-start
- type: NullRod
- type: ChaplainItem
- type: Reflect
reflectProb: 0.3
spread: 90
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,11 +125,14 @@
storage:
back:
- BoxCandle
- DrinkWaterBottleFull # Corvax-Wega
- DrinkWaterBottleFull # Corvax-Wega
- HolyWaterGrenade # Corvax-Wega
- HolyWaterGrenade # Corvax-Wega
- HolyWaterGrenade # Corvax-Wega
# Corvax-Wega-Edit-Start
- DrinkWaterBottleFull
- DrinkWaterBottleFull
- HolyWaterGrenade
- HolyWaterGrenade
- HolyWaterGrenade
- HardsuitChaplain
# Corvax-Wega-Edit-End
- Lantern
- Lantern
- Bible
Expand Down
3 changes: 2 additions & 1 deletion Resources/Prototypes/Roles/Jobs/Civilian/chaplain.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@
# shoes: ClothingShoesColorBlack # Corvax-Wega-Edit
id: ChaplainPDA
ears: ClothingHeadsetService
belt: ClothingBeltSheathChaplinFilled
belt: ClothingBeltSheathChaplinFilled #Wega-Chaplain-Edit
storage:
back:
- RubberStampChaplain
- HardsuitChaplain

- type: chameleonOutfit
id: ChaplainChameleonOutfit
Expand Down
22 changes: 21 additions & 1 deletion Resources/Prototypes/_Wega/Catalog/Fills/Items/belt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,24 @@
- type: ContainerFill
containers:
item:
- WeaponNullRodERT
- WeaponNullRodERT

- type: entity
id: ClothingBeltHolsterFilledChaplain
parent: ClothingBeltHolster
name: Chaplains' Holster
description: A shoulder holster from the Gods. Contains a set of dual pistols.
suffix: Filled, Chaplain
components:
- type: Item
size: Ginormous
- type: Sprite
sprite: _Wega/Clothing/Belt/holster.rsi
- type: Clothing
sprite: _Wega/Clothing/Belt/holster.rsi
- type: EntityTableContainerFill
containers:
storagebase: !type:AllSelector
children:
- id: WeaponPistolFailure
- id: WeaponPistolUndead
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,94 @@
- VeilCultBrassCuirassAbsorb
- VeilCultBrassCuirassSmoke

# armor chaplain start
- type: entity
parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing]
id: BaseArmorChaplain
name: crusader armor
description: A heavy armor made of reinforced metal plates for for temple ministers.
components:
- type: Sprite
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/churst_armor.rsi
- type: Clothing
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/churst_armor.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.65
Slash: 0.65
Piercing: 0.65
Heat: 0.75
- type: ExplosionResistance
damageCoefficient: 0.9
- type: FireProtection
reduction: 0.7
- type: ClothingSpeedModifier
walkModifier: 1.0
sprintModifier: 1.0
- type: ChaplainItem

- type: entity
parent: BaseArmorChaplain
id: ArmorChaplainHelldiver
name: hell armor
components:
- type: Sprite
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/helldiver.rsi
- type: Clothing
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/helldiver.rsi

- type: entity
parent: BaseArmorChaplain
id: ArmorChaplainMagic
name: magic armor
components:
- type: Sprite
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/magic_armor.rsi
- type: Clothing
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/magic_armor.rsi

- type: entity
parent: BaseArmorChaplain
id: ArmorChaplainBrass
name: brass armor
components:
- type: Sprite
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/clock.rsi
- type: Clothing
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/clock.rsi

- type: entity
parent: BaseArmorChaplain
id: ArmorChaplainInquisitor
name: inquisitor armor
components:
- type: Sprite
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/inquisitor.rsi
- type: Clothing
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/inquisitor.rsi

- type: entity
parent: BaseArmorChaplain
id: ArmorChaplainWitchHunter
name: vampire hunter armor
components:
- type: Sprite
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/witchhunter.rsi
- type: Clothing
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/witchhunter.rsi

- type: entity
parent: BaseArmorChaplain
id: ArmorChaplainSchema
name: vampire hunter armor
components:
- type: Sprite
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/schema_monk.rsi
- type: Clothing
sprite: _Wega/Clothing/OuterClothing/Armor/chaplain_armor/schema_monk.rsi

# armor chaplain end
- type: entity
parent: [ ClothingOuterBaseLarge, AllowSuitStorageClothing ]
id: ClothingOuterArmorGodslayer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,3 +198,23 @@
- ClothingModularControllerSyndicatePreassembled
- ClothingOuterHardsuitSyndieMedic

- type: entity
parent: BaseHardsuitSelector
id: HardsuitChaplain
name: operative med hardsuit selector
description: "An obsidian rod that strikes paranormal things."
suffix: Selector
components:
- type: Sprite
sprite: _Wega/Objects/Misc/HardsuitSelector/advanced.rsi
- type: ItemSelector
items:
- BaseArmorChaplain
- ArmorChaplainHelldiver
- ArmorChaplainMagic
- ArmorChaplainBrass
- ArmorChaplainInquisitor
- ArmorChaplainWitchHunter
- ArmorChaplainSchema
- type: Item
size: Normal # чтоб в лодаут вмещался
Original file line number Diff line number Diff line change
Expand Up @@ -389,3 +389,77 @@
maxCharge: 1000
startingCharge: 1000
- type: Appearance

# Casul & Jackal
- type: entity
name: Casul
parent: BaseWeaponBatterySmall
id: WeaponPistolUndead
description: The first of two huge pistols, capable of firing regenerating silver bullets. Incapable of firing without its sister gun.
components:
- type: ChaplainItem
- type: NullRod
firstNullDamage: 99.99
nullDamage: 0.01
- type: PointLight
radius: 1.2
energy: 2.20 # ///...\\\
castShadows: false
color: "#0639f9"
- type: Sprite
sprite: _Wega/Objects/Weapons/Guns/Battery/casul.rsi
state: icon
- type: Clothing
sprite: _Wega/Objects/Weapons/Guns/Battery/casul.rsi
quickEquip: false
slots:
- suitStorage
- Belt
- type: Gun
minAngle: 1
maxAngle: 5
angleIncrease: 1
angleDecay: 4
fireRate: 6
availableModes:
- SemiAuto
- FullAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/mk58.ogg
- type: Item
heldPrefix: lethal
size: Small
shape:
- 0,0,1,0
- 0,1,0,1
- type: BatteryAmmoProvider
proto: CartridgePistol
fireCost: 100
- type: Battery
maxCharge: 700
startingCharge: 0
- type: BatterySelfRecharger
autoRechargeRate: 50
autoRechargePauseTime: 5
- type: AmmoCounter
- type: ContainerContainer
containers:
ballistic-ammo: !type:Container
- type: Tag
tags:
- Sidearm

- type: entity
name: Jackal
parent: WeaponPistolUndead
id: WeaponPistolFailure
description: The second of two huge pistols, capable of firing regenerating silver bullets. Incapable of firing without its sister gun.
components:
- type: Sprite
sprite: _Wega/Objects/Weapons/Guns/Battery/jackal.rsi
state: icon
- type: Clothing
sprite: _Wega/Objects/Weapons/Guns/Battery/jackal.rsi
- type: Tag
tags:
- Sidearm
Loading
Loading