нерфоцирк (#203)

* нерф дабла, заебала резня каждый раунд

* ohio

* blood dagger
This commit is contained in:
rhailrake
2023-07-16 16:22:12 +06:00
committed by Aviu00
parent 552eb8341c
commit 20b52d23a5
10 changed files with 159 additions and 6 deletions

View File

@@ -11,6 +11,9 @@ public sealed partial class CritComponent : Component
[ViewVariables(VVAccess.ReadWrite)] [ViewVariables(VVAccess.ReadWrite)]
public float CritMultiplier = 2.5f; public float CritMultiplier = 2.5f;
[DataField("isBloodDagger")]
public bool IsBloodDagger;
[DataField("workingChance")] [DataField("workingChance")]
public int? WorkingChance; public int? WorkingChance;
} }

View File

@@ -2,6 +2,7 @@ using Content.Server.Body.Systems;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Shared.Damage; using Content.Shared.Damage;
using Content.Shared.Damage.Prototypes; using Content.Shared.Damage.Prototypes;
using Content.Shared.Examine;
using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Components;
using Content.Shared.Popups; using Content.Shared.Popups;
using Content.Shared.Weapons.Melee.Events; using Content.Shared.Weapons.Melee.Events;
@@ -16,11 +17,24 @@ public sealed class CritSystem : EntitySystem
[Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly PopupSystem _popup = default!;
[Dependency] private readonly BloodstreamSystem _bloodstream = default!; [Dependency] private readonly BloodstreamSystem _bloodstream = default!;
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
SubscribeLocalEvent<CritComponent, MeleeHitEvent>(HandleHit); SubscribeLocalEvent<CritComponent, MeleeHitEvent>(HandleHit);
SubscribeLocalEvent<CritComponent, ExaminedEvent>(OnExamine);
}
private void OnExamine(EntityUid uid, CritComponent component, ExaminedEvent args)
{
if (component.IsBloodDagger)
{
args.PushMarkup(
"[color=red]Критическая жажда: Кинжал Жажды обладает смертоносной точностью. Его владелец имеет 20% шанс нанести критический урон, поражая врага в его самые уязвимые места.\n" +
"Кровавый абсорб: При каждом успешном критическом ударе, кинжал извлекает кровь из цели, восстанавливая здоровье владельцу пропорционально количеству высосанной крови.[/color]"
);
}
} }
private void HandleHit(EntityUid uid, CritComponent component, MeleeHitEvent args) private void HandleHit(EntityUid uid, CritComponent component, MeleeHitEvent args)
@@ -34,13 +48,21 @@ public sealed class CritSystem : EntitySystem
continue; continue;
var damage = args.BaseDamage.Total * component.CritMultiplier; var damage = args.BaseDamage.Total * component.CritMultiplier;
if (component.IsBloodDagger)
{
var ohio = _random.Next(1, 20); var ohio = _random.Next(1, 20);
var damageGroup = _prototypeManager.Index<DamageGroupPrototype>("Brute");
args.BonusDamage = new DamageSpecifier(_prototypeManager.Index<DamageTypePrototype>("Blunt"), damage);
_popup.PopupEntity($@"Crit! {damage}", args.User, PopupType.MediumCaution);
_bloodstream.TryModifyBloodLevel(target, -ohio); _bloodstream.TryModifyBloodLevel(target, -ohio);
_damageableSystem.TryChangeDamage(args.User, new DamageSpecifier(damageGroup, -ohio));
damage = args.BaseDamage.Total * component.CritMultiplier + ohio;
}
args.BonusDamage = new DamageSpecifier(_prototypeManager.Index<DamageTypePrototype>("Slash"), damage);
_popup.PopupEntity($@"Crit! {damage}", args.User, PopupType.MediumCaution);
} }
} }

View File

@@ -85,6 +85,7 @@ shoes-they = На ногах у них
# Character information # Character information
character-information-verb-message = Информация о персонаже character-information-verb-message = Информация о персонаже
character-information-verb-text = Информация о персонаже
character-information-ui-title = Информация о персонаже character-information-ui-title = Информация о персонаже
character-information-ui-flavor-text-placeholder = character-information-ui-flavor-text-placeholder =
Нет заданного флавора. Нет заданного флавора.

View File

@@ -1,5 +1,20 @@
# TODO: make more categories # TODO: make more categories
# Guns # Guns
- type: listing
id: UplinkBloodDagger
name: кинжал жажды
description: "Критическая жажда: Кинжал Жажды обладает смертоносной точностью. Его владелец имеет 20% шанс нанести критический урон, поражая врага в его самые уязвимые места. Кровавый абсорб: При каждом успешном критическом ударе, кинжал извлекает кровь из цели, восстанавливая здоровье владельцу пропорционально количеству высосанной крови."
icon: { sprite: /Textures/Objects/Weapons/Melee/blood_dagger.rsi, state: icon }
productEntity: BloodSuckerDagger
cost:
Telecrystal: 10
categories:
- UplinkWeapons
conditions:
- !type:StoreWhitelistCondition
blacklist:
tags:
- NukeOpsUplink
- type: listing - type: listing
id: UplinkPistolViper id: UplinkPistolViper

View File

@@ -0,0 +1,28 @@
- type: entity
name: кинжал жажды
parent: BaseItem
id: BloodSuckerDagger
components:
- type: Sharp
- type: Sprite
sprite: Objects/Weapons/Melee/blood_dagger.rsi
state: icon
- type: MeleeWeapon
attackRate: 1.3
damage:
types:
Slash: 10.5
- type: Item
size: 20
- type: Clothing
sprite: Objects/Weapons/Melee/blood_dagger.rsi
slots:
- back
- type: DisarmMalus
- type: Crit
critChance: 20
critMultiplier: 2.2
isBloodDagger: true
- type: Reflect
reflectProb: 0.15
enabled: true

View File

@@ -233,8 +233,8 @@
- type: IncreaseDamageOnWield - type: IncreaseDamageOnWield
damage: damage:
types: types:
Slash: 7.5 Slash: 1.5
Heat: 7.5 Heat: 1.5
- type: MeleeWeapon - type: MeleeWeapon
attackRate: 1 attackRate: 1
- type: Reflect - type: Reflect

Binary file not shown.

After

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

View File

@@ -0,0 +1,84 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "poxuy",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.5
]
]
},
{
"name": "inhand-right",
"directions": 4,
"delays": [
[
0.8,
0.1,
0.1,
0.1
],
[
0.8,
0.1,
0.1,
0.1
],
[
0.8,
0.1,
0.1,
0.1
],
[
0.8,
0.1,
0.1,
0.1
]
]
},
{
"name": "inhand-left",
"directions": 4,
"delays": [
[
0.8,
0.1,
0.1,
0.1
],
[
0.8,
0.1,
0.1,
0.1
],
[
0.8,
0.1,
0.1,
0.1
],
[
0.8,
0.1,
0.1,
0.1
]
]
}
]
}