Некоторые балансные изменения (#72)
* - balance: Chainsaw can only be crafted using advanced saw.
* - balance: Tweak some melee weapon damage and sizes.
* - balance: Tweak stun baton.
* - balance: No flash heavy attack.
* - balance: Tweak modifier sets.
* - tweak: Stunprod and snatcherprod tweaks.
* - tweak: Auto cycle tweaks.
* - balance: Nerf flamethrower.
* - tweak: Remove old stunprod construction.
* - balance: Tweak shotgun ammo.
* - tweak: Cartridge ejecting tweaks.
* - fix: Fix stunprod held prefix.
* Revert "Makes external & shuttle airlocks bump-openable (#22706)"
This reverts commit 6a73aed6d5.
* - balance: Tweak modifier sets once again.
* - balance: Tweak IED timer.
* - tweak: Chemical explosions can't create vacuum.
This commit is contained in:
@@ -113,7 +113,7 @@ public sealed partial class MeleeWeaponSystem : SharedMeleeWeaponSystem
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Heavy attack.
|
// Heavy attack.
|
||||||
if (altDown == BoundKeyState.Down)
|
if (altDown == BoundKeyState.Down && weapon.CanHeavyAttack) // WD EDIT
|
||||||
{
|
{
|
||||||
// If it's an unarmed attack then do a disarm
|
// If it's an unarmed attack then do a disarm
|
||||||
if (weapon.AltDisarm && weaponUid == entity)
|
if (weapon.AltDisarm && weaponUid == entity)
|
||||||
|
|||||||
@@ -28,9 +28,6 @@ public sealed partial class GunSystem
|
|||||||
if (!Timing.IsFirstTimePredicted)
|
if (!Timing.IsFirstTimePredicted)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!component.IsCycled)
|
|
||||||
return;
|
|
||||||
|
|
||||||
EntityUid? ent = null;
|
EntityUid? ent = null;
|
||||||
|
|
||||||
// TODO: Combine with TakeAmmo
|
// TODO: Combine with TakeAmmo
|
||||||
@@ -39,9 +36,12 @@ public sealed partial class GunSystem
|
|||||||
var existing = component.Entities[^1];
|
var existing = component.Entities[^1];
|
||||||
component.Entities.RemoveAt(component.Entities.Count - 1);
|
component.Entities.RemoveAt(component.Entities.Count - 1);
|
||||||
|
|
||||||
|
if (Containers.CanRemove(existing, component.Container)) // WD EDIT
|
||||||
|
{
|
||||||
Containers.Remove(existing, component.Container);
|
Containers.Remove(existing, component.Container);
|
||||||
EnsureShootable(existing);
|
EnsureShootable(existing);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (component.UnspawnedCount > 0)
|
else if (component.UnspawnedCount > 0)
|
||||||
{
|
{
|
||||||
component.UnspawnedCount--;
|
component.UnspawnedCount--;
|
||||||
@@ -54,6 +54,5 @@ public sealed partial class GunSystem
|
|||||||
|
|
||||||
var cycledEvent = new GunCycledEvent();
|
var cycledEvent = new GunCycledEvent();
|
||||||
RaiseLocalEvent(uid, ref cycledEvent);
|
RaiseLocalEvent(uid, ref cycledEvent);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,8 @@ namespace Content.Server.Chemistry.ReactionEffects
|
|||||||
ExplosionType,
|
ExplosionType,
|
||||||
intensity,
|
intensity,
|
||||||
IntensitySlope,
|
IntensitySlope,
|
||||||
MaxIntensity);
|
MaxIntensity,
|
||||||
|
canCreateVacuum: false); // WD EDIT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ public sealed partial class GunSystem
|
|||||||
|
|
||||||
protected override void Cycle(EntityUid uid, BallisticAmmoProviderComponent component, MapCoordinates coordinates)
|
protected override void Cycle(EntityUid uid, BallisticAmmoProviderComponent component, MapCoordinates coordinates)
|
||||||
{
|
{
|
||||||
if (!component.IsCycled)
|
|
||||||
return;
|
|
||||||
|
|
||||||
EntityUid? ent = null;
|
EntityUid? ent = null;
|
||||||
|
|
||||||
// TODO: Combine with TakeAmmo
|
// TODO: Combine with TakeAmmo
|
||||||
|
|||||||
@@ -179,10 +179,12 @@ public sealed partial class GunSystem : SharedGunSystem
|
|||||||
{
|
{
|
||||||
userImpulse = false;
|
userImpulse = false;
|
||||||
Audio.PlayPredicted(gun.SoundEmpty, gunUid, user);
|
Audio.PlayPredicted(gun.SoundEmpty, gunUid, user);
|
||||||
|
break; // WD EDIT
|
||||||
}
|
}
|
||||||
|
|
||||||
// Something like ballistic might want to leave it in the container still
|
// Something like ballistic might want to leave it in the container still
|
||||||
if (!cartridge.DeleteOnSpawn && !Containers.IsEntityInContainer(ent!.Value))
|
if (!cartridge.DeleteOnSpawn && !Containers.IsEntityInContainer(ent!.Value) &&
|
||||||
|
(!TryComp(gunUid, out BallisticAmmoProviderComponent? ballistic) || ballistic.AutoCycle)) // WD EDIT
|
||||||
EjectCartridge(ent.Value, angle);
|
EjectCartridge(ent.Value, angle);
|
||||||
|
|
||||||
Dirty(ent!.Value, cartridge);
|
Dirty(ent!.Value, cartridge);
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
namespace Content.Server._White.Snatcherprod;
|
|
||||||
|
|
||||||
[RegisterComponent, Access(typeof(SnatcherprodSystem))]
|
|
||||||
public sealed partial class SnatcherprodComponent : Component
|
|
||||||
{
|
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
|
||||||
[DataField("energyPerUse")]
|
|
||||||
public float EnergyPerUse { get; set; } = 36;
|
|
||||||
}
|
|
||||||
6
Content.Server/_White/Stunprod/SnatcherprodComponent.cs
Normal file
6
Content.Server/_White/Stunprod/SnatcherprodComponent.cs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
namespace Content.Server._White.Stunprod;
|
||||||
|
|
||||||
|
[RegisterComponent]
|
||||||
|
public sealed partial class SnatcherprodComponent : Component
|
||||||
|
{
|
||||||
|
}
|
||||||
56
Content.Server/_White/Stunprod/SnatcherprodSystem.cs
Normal file
56
Content.Server/_White/Stunprod/SnatcherprodSystem.cs
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using Content.Shared.Damage.Events;
|
||||||
|
using Content.Shared.Hands.Components;
|
||||||
|
using Content.Shared.Hands.EntitySystems;
|
||||||
|
using Content.Shared.Item.ItemToggle;
|
||||||
|
|
||||||
|
namespace Content.Server._White.Stunprod;
|
||||||
|
|
||||||
|
public sealed class SnatcherprodSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly SharedHandsSystem _hands = default!;
|
||||||
|
[Dependency] private readonly SharedItemToggleSystem _itemToggle = default!;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<SnatcherprodComponent, StaminaMeleeHitEvent>(OnHit);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void OnHit(EntityUid uid, SnatcherprodComponent component, StaminaMeleeHitEvent args)
|
||||||
|
{
|
||||||
|
if (!_itemToggle.IsActivated(uid) || args.HitList.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var entity = args.HitList.First().Entity;
|
||||||
|
|
||||||
|
if (entity == uid || !TryComp(entity, out HandsComponent? hands))
|
||||||
|
return;
|
||||||
|
|
||||||
|
EntityUid? heldEntity = null;
|
||||||
|
|
||||||
|
if (hands.ActiveHandEntity != null)
|
||||||
|
heldEntity = hands.ActiveHandEntity;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var hand in hands.Hands)
|
||||||
|
{
|
||||||
|
if (hand.Value.HeldEntity == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
heldEntity = hand.Value.HeldEntity;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (heldEntity == null)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_hands.TryDrop(entity, heldEntity.Value, null, false, false, handsComp: hands))
|
||||||
|
return;
|
||||||
|
|
||||||
|
_hands.PickupOrDrop(args.User, heldEntity.Value, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Content.Server/_White/Stunprod/StunprodComponent.cs
Normal file
11
Content.Server/_White/Stunprod/StunprodComponent.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
namespace Content.Server._White.Stunprod;
|
||||||
|
|
||||||
|
[RegisterComponent]
|
||||||
|
public sealed partial class StunprodComponent : Component
|
||||||
|
{
|
||||||
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||||
|
public float EnergyPerUse { get; set; } = 72;
|
||||||
|
|
||||||
|
[DataField]
|
||||||
|
public bool HasHeldPrefix = true;
|
||||||
|
}
|
||||||
@@ -1,27 +1,25 @@
|
|||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
|
||||||
using Content.Server.Popups;
|
using Content.Server.Popups;
|
||||||
using Content.Server.Power.Components;
|
using Content.Server.Power.Components;
|
||||||
using Content.Server.Power.EntitySystems;
|
using Content.Server.Power.EntitySystems;
|
||||||
using Content.Shared.Damage.Events;
|
using Content.Shared.Damage.Events;
|
||||||
using Content.Shared.Examine;
|
using Content.Shared.Examine;
|
||||||
using Content.Shared.Hands.Components;
|
using Content.Shared.Item;
|
||||||
using Content.Shared.Hands.EntitySystems;
|
|
||||||
using Content.Shared.Item.ItemToggle;
|
using Content.Shared.Item.ItemToggle;
|
||||||
using Content.Shared.Item.ItemToggle.Components;
|
using Content.Shared.Item.ItemToggle.Components;
|
||||||
using Content.Shared.Toggleable;
|
using Content.Shared.Toggleable;
|
||||||
using Robust.Shared.Containers;
|
using Robust.Shared.Containers;
|
||||||
|
|
||||||
namespace Content.Server._White.Snatcherprod;
|
namespace Content.Server._White.Stunprod;
|
||||||
|
|
||||||
public sealed class SnatcherprodSystem : EntitySystem
|
public sealed class StunprodSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||||
[Dependency] private readonly SharedContainerSystem _containers = default!;
|
[Dependency] private readonly SharedContainerSystem _containers = default!;
|
||||||
[Dependency] private readonly BatterySystem _battery = default!;
|
[Dependency] private readonly BatterySystem _battery = default!;
|
||||||
[Dependency] private readonly PopupSystem _popup = default!;
|
[Dependency] private readonly PopupSystem _popup = default!;
|
||||||
[Dependency] private readonly SharedHandsSystem _hands = default!;
|
|
||||||
[Dependency] private readonly SharedItemToggleSystem _itemToggle = default!;
|
[Dependency] private readonly SharedItemToggleSystem _itemToggle = default!;
|
||||||
|
[Dependency] private readonly SharedItemSystem _item = default!;
|
||||||
|
|
||||||
private const string CellSlot = "cell_slot";
|
private const string CellSlot = "cell_slot";
|
||||||
|
|
||||||
@@ -29,16 +27,15 @@ public sealed class SnatcherprodSystem : EntitySystem
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
SubscribeLocalEvent<SnatcherprodComponent, ExaminedEvent>(OnExamined);
|
SubscribeLocalEvent<StunprodComponent, ExaminedEvent>(OnExamined);
|
||||||
SubscribeLocalEvent<SnatcherprodComponent, StaminaDamageOnHitAttemptEvent>(OnStaminaHitAttempt);
|
SubscribeLocalEvent<StunprodComponent, StaminaDamageOnHitAttemptEvent>(OnStaminaHitAttempt);
|
||||||
SubscribeLocalEvent<SnatcherprodComponent, StaminaMeleeHitEvent>(OnHit);
|
SubscribeLocalEvent<StunprodComponent, EntRemovedFromContainerMessage>(OnEntRemoved);
|
||||||
SubscribeLocalEvent<SnatcherprodComponent, EntRemovedFromContainerMessage>(OnEntRemoved);
|
SubscribeLocalEvent<StunprodComponent, EntInsertedIntoContainerMessage>(OnEntInserted);
|
||||||
SubscribeLocalEvent<SnatcherprodComponent, EntInsertedIntoContainerMessage>(OnEntInserted);
|
SubscribeLocalEvent<StunprodComponent, ItemToggleActivateAttemptEvent>(TryTurnOn);
|
||||||
SubscribeLocalEvent<SnatcherprodComponent, ItemToggleActivateAttemptEvent>(TryTurnOn);
|
SubscribeLocalEvent<StunprodComponent, ItemToggledEvent>(ToggleDone);
|
||||||
SubscribeLocalEvent<SnatcherprodComponent, ItemToggledEvent>(ToggleDone);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnEntInserted(EntityUid uid, SnatcherprodComponent component, EntInsertedIntoContainerMessage args)
|
private void OnEntInserted(EntityUid uid, StunprodComponent component, EntInsertedIntoContainerMessage args)
|
||||||
{
|
{
|
||||||
_itemToggle.TryDeactivate(uid, predicted: false);
|
_itemToggle.TryDeactivate(uid, predicted: false);
|
||||||
|
|
||||||
@@ -48,7 +45,7 @@ public sealed class SnatcherprodSystem : EntitySystem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnEntRemoved(EntityUid uid, SnatcherprodComponent component, EntRemovedFromContainerMessage args)
|
private void OnEntRemoved(EntityUid uid, StunprodComponent component, EntRemovedFromContainerMessage args)
|
||||||
{
|
{
|
||||||
if (TerminatingOrDeleted(uid))
|
if (TerminatingOrDeleted(uid))
|
||||||
return;
|
return;
|
||||||
@@ -64,42 +61,8 @@ public sealed class SnatcherprodSystem : EntitySystem
|
|||||||
_itemToggle.TryDeactivate(uid, predicted: false);
|
_itemToggle.TryDeactivate(uid, predicted: false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnHit(EntityUid uid, SnatcherprodComponent component, StaminaMeleeHitEvent args)
|
private void OnStaminaHitAttempt(EntityUid uid, StunprodComponent component,
|
||||||
{
|
ref StaminaDamageOnHitAttemptEvent args)
|
||||||
if (!_itemToggle.IsActivated(uid) || args.HitList.Count == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var entity = args.HitList.First().Entity;
|
|
||||||
|
|
||||||
if (!TryComp(entity, out HandsComponent? hands))
|
|
||||||
return;
|
|
||||||
|
|
||||||
EntityUid? heldEntity = null;
|
|
||||||
|
|
||||||
if (hands.ActiveHandEntity != null)
|
|
||||||
heldEntity = hands.ActiveHandEntity;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (var hand in hands.Hands)
|
|
||||||
{
|
|
||||||
if (hand.Value.HeldEntity == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
heldEntity = hand.Value.HeldEntity;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (heldEntity == null)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!_hands.TryDrop(entity, heldEntity.Value, null, false, false, handsComp: hands))
|
|
||||||
return;
|
|
||||||
|
|
||||||
_hands.PickupOrDrop(args.User, heldEntity.Value, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnStaminaHitAttempt(EntityUid uid, SnatcherprodComponent component, ref StaminaDamageOnHitAttemptEvent args)
|
|
||||||
{
|
{
|
||||||
if (!_itemToggle.IsActivated(uid) || !TryGetBatteryComponent(uid, out var battery, out var batteryUid) ||
|
if (!_itemToggle.IsActivated(uid) || !TryGetBatteryComponent(uid, out var battery, out var batteryUid) ||
|
||||||
!_battery.TryUseCharge(batteryUid.Value, component.EnergyPerUse, battery))
|
!_battery.TryUseCharge(batteryUid.Value, component.EnergyPerUse, battery))
|
||||||
@@ -114,23 +77,26 @@ public sealed class SnatcherprodSystem : EntitySystem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnExamined(EntityUid uid, SnatcherprodComponent comp, ExaminedEvent args)
|
private void OnExamined(EntityUid uid, StunprodComponent comp, ExaminedEvent args)
|
||||||
{
|
{
|
||||||
var msg = _itemToggle.IsActivated(uid)
|
var msg = _itemToggle.IsActivated(uid)
|
||||||
? Loc.GetString("comp-snatcherprod-examined-on")
|
? Loc.GetString("comp-stunprod-examined-on")
|
||||||
: Loc.GetString("comp-snatcherprod-examined-off");
|
: Loc.GetString("comp-stunprod-examined-off");
|
||||||
args.PushMarkup(msg);
|
args.PushMarkup(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ToggleDone(Entity<SnatcherprodComponent> entity, ref ItemToggledEvent args)
|
private void ToggleDone(Entity<StunprodComponent> entity, ref ItemToggledEvent args)
|
||||||
{
|
{
|
||||||
|
if (entity.Comp.HasHeldPrefix && TryComp<ItemComponent>(entity, out var item))
|
||||||
|
_item.SetHeldPrefix(entity.Owner, args.Activated ? "on" : "off", component: item);
|
||||||
|
|
||||||
if (TryGetBatteryComponent(entity, out _, out _) || !TryComp<AppearanceComponent>(entity, out var appearance))
|
if (TryGetBatteryComponent(entity, out _, out _) || !TryComp<AppearanceComponent>(entity, out var appearance))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_appearance.SetData(entity, ToggleVisuals.Toggled, "nocell", appearance);
|
_appearance.SetData(entity, ToggleVisuals.Toggled, "nocell", appearance);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TryTurnOn(Entity<SnatcherprodComponent> entity, ref ItemToggleActivateAttemptEvent args)
|
private void TryTurnOn(Entity<StunprodComponent> entity, ref ItemToggleActivateAttemptEvent args)
|
||||||
{
|
{
|
||||||
if (TryGetBatteryComponent(entity, out var battery, out _) &&
|
if (TryGetBatteryComponent(entity, out var battery, out _) &&
|
||||||
battery.CurrentCharge >= entity.Comp.EnergyPerUse)
|
battery.CurrentCharge >= entity.Comp.EnergyPerUse)
|
||||||
@@ -60,6 +60,10 @@ public sealed partial class MeleeWeaponComponent : Component
|
|||||||
[ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
[ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
|
||||||
public bool Attacking = false;
|
public bool Attacking = false;
|
||||||
|
|
||||||
|
// WD
|
||||||
|
[ViewVariables(VVAccess.ReadWrite), DataField]
|
||||||
|
public bool CanHeavyAttack = true;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// If true, attacks will be repeated automatically without requiring the mouse button to be lifted.
|
/// If true, attacks will be repeated automatically without requiring the mouse button to be lifted.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using Content.Server.Stunnable.Components;
|
|
||||||
using Content.Shared.ActionBlocker;
|
using Content.Shared.ActionBlocker;
|
||||||
using Content.Shared.Administration.Logs;
|
using Content.Shared.Administration.Logs;
|
||||||
using Content.Shared.CombatMode;
|
using Content.Shared.CombatMode;
|
||||||
@@ -218,13 +217,6 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// WD EDIT START
|
|
||||||
if (TryComp<StunbatonComponent>(weaponUid, out _))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// WD EDIT END
|
|
||||||
|
|
||||||
AttemptAttack(args.SenderSession.AttachedEntity.Value, weaponUid, weapon, msg, args.SenderSession);
|
AttemptAttack(args.SenderSession.AttachedEntity.Value, weaponUid, weapon, msg, args.SenderSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -256,14 +256,22 @@ public abstract partial class SharedGunSystem
|
|||||||
entity = component.Entities[^1];
|
entity = component.Entities[^1];
|
||||||
|
|
||||||
args.Ammo.Add((entity, EnsureShootable(entity)));
|
args.Ammo.Add((entity, EnsureShootable(entity)));
|
||||||
|
if (component.AutoCycle && (!TryComp(entity, out CartridgeAmmoComponent? cartridge) || !cartridge.Spent)) // WD EDIT
|
||||||
|
{
|
||||||
component.Entities.RemoveAt(component.Entities.Count - 1);
|
component.Entities.RemoveAt(component.Entities.Count - 1);
|
||||||
Containers.Remove(entity, component.Container);
|
Containers.Remove(entity, component.Container);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (component.UnspawnedCount > 0)
|
else if (component.UnspawnedCount > 0)
|
||||||
{
|
{
|
||||||
component.UnspawnedCount--;
|
component.UnspawnedCount--;
|
||||||
entity = Spawn(component.Proto, args.Coordinates);
|
entity = Spawn(component.Proto, args.Coordinates);
|
||||||
args.Ammo.Add((entity, EnsureShootable(entity)));
|
args.Ammo.Add((entity, EnsureShootable(entity)));
|
||||||
|
if (!component.AutoCycle && HasComp<CartridgeAmmoComponent>(entity)) // WD EDIT
|
||||||
|
{
|
||||||
|
component.Entities.Add(entity);
|
||||||
|
Containers.Insert(entity, component.Container);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
comp-snatcherprod-examined-on = Хваталка [color=darkgreen]включена[/color].
|
|
||||||
comp-snatcherprod-examined-off = Хваталка [color=darkred]выключена[/color].
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
comp-stunprod-examined-on = Она [color=darkgreen]включена[/color].
|
||||||
|
comp-stunprod-examined-off = Она [color=darkred]выключена[/color].
|
||||||
@@ -331,21 +331,3 @@
|
|||||||
flatReductions:
|
flatReductions:
|
||||||
# can't punch the endoskeleton to death
|
# can't punch the endoskeleton to death
|
||||||
Blunt: 5
|
Blunt: 5
|
||||||
|
|
||||||
- type: damageModifierSet
|
|
||||||
id: Harpy
|
|
||||||
coefficients:
|
|
||||||
Blunt: 1.15
|
|
||||||
Slash: 1.15
|
|
||||||
Piercing: 1.15
|
|
||||||
|
|
||||||
- type: damageModifierSet
|
|
||||||
id: CultRobe
|
|
||||||
coefficients:
|
|
||||||
Blunt: 1.45
|
|
||||||
Slash: 1.45
|
|
||||||
Piercing: 1.45
|
|
||||||
Shock: 1.45
|
|
||||||
Cold: 1.45
|
|
||||||
Heat: 1.45
|
|
||||||
Laser: 1.45
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@
|
|||||||
friction: 0.2
|
friction: 0.2
|
||||||
- type: Construction
|
- type: Construction
|
||||||
deconstructionTarget: null
|
deconstructionTarget: null
|
||||||
graph: SnatcherprodGraph
|
graph: StunprodGraph
|
||||||
node: rod
|
node: rod
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -78,6 +78,8 @@
|
|||||||
rating: 1
|
rating: 1
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- PowerCell
|
||||||
- PowerCellSmall
|
- PowerCellSmall
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -218,10 +218,6 @@
|
|||||||
qualities:
|
qualities:
|
||||||
- Sawing
|
- Sawing
|
||||||
speed: 1.5
|
speed: 1.5
|
||||||
- type: Construction
|
|
||||||
deconstructionTarget: null
|
|
||||||
graph: ChainsawGraph
|
|
||||||
node: circular
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: advanced circular saw
|
name: advanced circular saw
|
||||||
|
|||||||
@@ -25,8 +25,8 @@
|
|||||||
params:
|
params:
|
||||||
volume: 1
|
volume: 1
|
||||||
- type: RandomTimerTrigger
|
- type: RandomTimerTrigger
|
||||||
min: 0
|
min: 3
|
||||||
max: 60
|
max: 8
|
||||||
- type: Explosive # Weak explosion in a very small radius. Doesn't break underplating.
|
- type: Explosive # Weak explosion in a very small radius. Doesn't break underplating.
|
||||||
explosionType: Default
|
explosionType: Default
|
||||||
totalIntensity: 20
|
totalIntensity: 20
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: BaseShellShotgun
|
id: BaseShellShotgun
|
||||||
name: shell (.50)
|
name: shell (.50)
|
||||||
parent: BaseCartridge
|
parent: BaseCartridge
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
map: [ "enum.AmmoVisualLayers.Base" ]
|
map: [ "enum.AmmoVisualLayers.Base" ]
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
count: 10
|
count: 10
|
||||||
spread: 45 #deadly if you can get up close... otherwise, good luck doing any kind of real damage
|
spread: 35 #deadly if you can get up close... otherwise, good luck doing any kind of real damage
|
||||||
proto: PelletShotgunImprovised
|
proto: PelletShotgunImprovised
|
||||||
- type: SpentAmmoVisuals
|
- type: SpentAmmoVisuals
|
||||||
state: "improvised"
|
state: "improvised"
|
||||||
@@ -164,8 +164,6 @@
|
|||||||
- state: depleted-uranium
|
- state: depleted-uranium
|
||||||
map: [ "enum.AmmoVisualLayers.Base" ]
|
map: [ "enum.AmmoVisualLayers.Base" ]
|
||||||
- type: CartridgeAmmo
|
- type: CartridgeAmmo
|
||||||
count: 5
|
|
||||||
spread: 6
|
|
||||||
proto: PelletShotgunUranium
|
proto: PelletShotgunUranium
|
||||||
- type: SpentAmmoVisuals
|
- type: SpentAmmoVisuals
|
||||||
state: "depleted-uranium"
|
state: "depleted-uranium"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: PelletShotgunSlug
|
id: PelletShotgunSlug
|
||||||
name: pellet (.50 slug)
|
name: pellet (.50 slug)
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
@@ -85,8 +85,8 @@
|
|||||||
- type: Projectile
|
- type: Projectile
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
Piercing: 5
|
Piercing: 4
|
||||||
Slash: 5 #remember, it's metal shrapnel!
|
Slash: 4 #remember, it's metal shrapnel!
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: PelletShotgunTranquilizer
|
id: PelletShotgunTranquilizer
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
fireRate: 2
|
fireRate: 2
|
||||||
- type: BallisticAmmoProvider
|
- type: BallisticAmmoProvider
|
||||||
capacity: 2
|
capacity: 2
|
||||||
|
autoCycle: true
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: ShotgunSawn
|
graph: ShotgunSawn
|
||||||
node: start
|
node: start
|
||||||
@@ -196,6 +197,7 @@
|
|||||||
fireRate: 4
|
fireRate: 4
|
||||||
- type: BallisticAmmoProvider
|
- type: BallisticAmmoProvider
|
||||||
capacity: 2
|
capacity: 2
|
||||||
|
autoCycle: true
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: ShotgunSawn
|
graph: ShotgunSawn
|
||||||
node: shotgunsawn
|
node: shotgunsawn
|
||||||
|
|||||||
@@ -64,7 +64,6 @@
|
|||||||
- CartridgeAntiMateriel
|
- CartridgeAntiMateriel
|
||||||
capacity: 5
|
capacity: 5
|
||||||
proto: CartridgeAntiMateriel
|
proto: CartridgeAntiMateriel
|
||||||
autoCycle: true
|
|
||||||
- type: Wieldable
|
- type: Wieldable
|
||||||
wieldTime: 0
|
wieldTime: 0
|
||||||
forceTwoHanded: True
|
forceTwoHanded: True
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
Slash: 4
|
Slash: 4
|
||||||
Structural: 4
|
Structural: 4
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Huge
|
||||||
sprite: Objects/Weapons/Melee/chainsaw.rsi
|
sprite: Objects/Weapons/Melee/chainsaw.rsi
|
||||||
- type: DisarmMalus
|
- type: DisarmMalus
|
||||||
- type: RefillableSolution
|
- type: RefillableSolution
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
soundHit:
|
soundHit:
|
||||||
path: /Audio/Weapons/bladeslice.ogg
|
path: /Audio/Weapons/bladeslice.ogg
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Huge
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Objects/Weapons/Melee/cult_blade.rsi
|
sprite: Objects/Weapons/Melee/cult_blade.rsi
|
||||||
slots:
|
slots:
|
||||||
|
|||||||
@@ -206,11 +206,6 @@
|
|||||||
components:
|
components:
|
||||||
- type: EnergySword
|
- type: EnergySword
|
||||||
- type: ItemToggleMeleeWeapon
|
- type: ItemToggleMeleeWeapon
|
||||||
activatedDamage:
|
|
||||||
types:
|
|
||||||
Slash: 10
|
|
||||||
Heat: 12
|
|
||||||
deactivatedSecret: true
|
|
||||||
- type: ItemToggleDisarmMalus
|
- type: ItemToggleDisarmMalus
|
||||||
activatedDisarmMalus: 0.6
|
activatedDisarmMalus: 0.6
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
attackRate: 1.5
|
attackRate: 1.5
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
Slash: 13
|
Slash: 12
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Normal
|
||||||
sprite: Objects/Weapons/Melee/cleaver.rsi
|
sprite: Objects/Weapons/Melee/cleaver.rsi
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Objects/Weapons/Melee/stunprod.rsi
|
sprite: Objects/Weapons/Melee/stunprod.rsi
|
||||||
layers:
|
layers:
|
||||||
- state: stunprod_off
|
- state: stunprod_nocell
|
||||||
map: [ "enum.ToggleVisuals.Layer" ]
|
map: [ "enum.ToggleVisuals.Layer" ]
|
||||||
- type: ItemToggle
|
- type: ItemToggle
|
||||||
soundActivate:
|
soundActivate:
|
||||||
@@ -26,24 +26,22 @@
|
|||||||
activatedDamage:
|
activatedDamage:
|
||||||
types:
|
types:
|
||||||
Blunt: 0
|
Blunt: 0
|
||||||
- type: Stunbaton
|
- type: Stunprod
|
||||||
energyPerUse: 70
|
|
||||||
- type: MeleeWeapon
|
- type: MeleeWeapon
|
||||||
|
attackRate: 1.25
|
||||||
|
canHeavyAttack: false
|
||||||
wideAnimationRotation: -135
|
wideAnimationRotation: -135
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
Blunt: 9
|
Blunt: 9
|
||||||
angle: 60
|
angle: 0
|
||||||
animation: WeaponArcThrust
|
animation: WeaponArcThrust
|
||||||
- type: StaminaDamageOnHit
|
- type: StaminaDamageOnHit
|
||||||
damage: 20
|
damage: 30
|
||||||
sound: /Audio/Weapons/egloves.ogg
|
sound: /Audio/Weapons/egloves.ogg
|
||||||
- type: StaminaDamageOnCollide
|
- type: StaminaDamageOnCollide
|
||||||
damage: 20
|
damage: 30
|
||||||
sound: /Audio/Weapons/egloves.ogg
|
sound: /Audio/Weapons/egloves.ogg
|
||||||
- type: Battery
|
|
||||||
maxCharge: 360
|
|
||||||
startingCharge: 360
|
|
||||||
- type: UseDelay
|
- type: UseDelay
|
||||||
- type: Item
|
- type: Item
|
||||||
heldPrefix: off
|
heldPrefix: off
|
||||||
@@ -60,10 +58,21 @@
|
|||||||
visuals:
|
visuals:
|
||||||
enum.ToggleVisuals.Toggled:
|
enum.ToggleVisuals.Toggled:
|
||||||
enum.ToggleVisuals.Layer:
|
enum.ToggleVisuals.Layer:
|
||||||
|
nocell: {state: stunprod_nocell}
|
||||||
True: {state: stunprod_on}
|
True: {state: stunprod_on}
|
||||||
False: {state: stunprod_off}
|
False: {state: stunprod_off}
|
||||||
- type: StaticPrice
|
- type: StaticPrice
|
||||||
price: 100
|
price: 100
|
||||||
|
- type: PowerCellSlot
|
||||||
|
cellSlotId: cell_slot
|
||||||
|
- type: ItemSlots
|
||||||
|
slots:
|
||||||
|
cell_slot:
|
||||||
|
name: power-cell-slot-component-slot-name-default
|
||||||
|
- type: ContainerContainer
|
||||||
|
containers:
|
||||||
|
cell_slot: !type:ContainerSlot {}
|
||||||
- type: Construction
|
- type: Construction
|
||||||
graph: makeshiftstunprod
|
deconstructionTarget: rod
|
||||||
node: msstunprod
|
graph: StunprodGraph
|
||||||
|
node: stunprod
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
path: /Audio/White/Items/handling/sabre_drop.ogg
|
path: /Audio/White/Items/handling/sabre_drop.ogg
|
||||||
# WD edit sounds start
|
# WD edit sounds start
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Large
|
||||||
sprite: Objects/Weapons/Melee/captain_sabre.rsi
|
sprite: Objects/Weapons/Melee/captain_sabre.rsi
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
soundHit:
|
soundHit:
|
||||||
path: /Audio/Weapons/bladeslice.ogg
|
path: /Audio/Weapons/bladeslice.ogg
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Large
|
||||||
sprite: Objects/Weapons/Melee/katana.rsi
|
sprite: Objects/Weapons/Melee/katana.rsi
|
||||||
- type: DisarmMalus
|
- type: DisarmMalus
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
types:
|
types:
|
||||||
Slash: 30
|
Slash: 30
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Large
|
||||||
sprite: Objects/Weapons/Melee/energykatana.rsi
|
sprite: Objects/Weapons/Melee/energykatana.rsi
|
||||||
- type: EnergyKatana
|
- type: EnergyKatana
|
||||||
- type: DashAbility
|
- type: DashAbility
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
soundHit:
|
soundHit:
|
||||||
path: /Audio/Weapons/bladeslice.ogg
|
path: /Audio/Weapons/bladeslice.ogg
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Large
|
||||||
sprite: Objects/Weapons/Melee/machete.rsi
|
sprite: Objects/Weapons/Melee/machete.rsi
|
||||||
- type: DisarmMalus
|
- type: DisarmMalus
|
||||||
- type: Construction
|
- type: Construction
|
||||||
@@ -129,11 +129,11 @@
|
|||||||
attackRate: 0.75
|
attackRate: 0.75
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
Slash: 33
|
Slash: 30
|
||||||
soundHit:
|
soundHit:
|
||||||
path: /Audio/Weapons/bladeslice.ogg
|
path: /Audio/Weapons/bladeslice.ogg
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Huge
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Objects/Weapons/Melee/claymore.rsi
|
sprite: Objects/Weapons/Melee/claymore.rsi
|
||||||
slots:
|
slots:
|
||||||
@@ -161,11 +161,11 @@
|
|||||||
wideAnimationRotation: -135
|
wideAnimationRotation: -135
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
Slash: 16
|
Slash: 20
|
||||||
soundHit:
|
soundHit:
|
||||||
path: /Audio/Weapons/bladeslice.ogg
|
path: /Audio/Weapons/bladeslice.ogg
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Large
|
||||||
sprite: Objects/Weapons/Melee/cutlass.rsi
|
sprite: Objects/Weapons/Melee/cutlass.rsi
|
||||||
- type: DisarmMalus
|
- type: DisarmMalus
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
types:
|
types:
|
||||||
Blunt: 0
|
Blunt: 0
|
||||||
- type: MeleeWeapon
|
- type: MeleeWeapon
|
||||||
|
attackRate: 1.25
|
||||||
|
canHeavyAttack: false
|
||||||
wideAnimationRotation: -135
|
wideAnimationRotation: -135
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
@@ -38,10 +40,10 @@
|
|||||||
angle: 60
|
angle: 60
|
||||||
animation: WeaponArcSlash
|
animation: WeaponArcSlash
|
||||||
- type: StaminaDamageOnHit
|
- type: StaminaDamageOnHit
|
||||||
damage: 35
|
damage: 40
|
||||||
sound: /Audio/Weapons/egloves.ogg
|
sound: /Audio/Weapons/egloves.ogg
|
||||||
- type: StaminaDamageOnCollide
|
- type: StaminaDamageOnCollide
|
||||||
damage: 35
|
damage: 40
|
||||||
sound: /Audio/Weapons/egloves.ogg
|
sound: /Audio/Weapons/egloves.ogg
|
||||||
- type: Battery
|
- type: Battery
|
||||||
maxCharge: 1000
|
maxCharge: 1000
|
||||||
@@ -134,6 +136,7 @@
|
|||||||
maxCharges: 5
|
maxCharges: 5
|
||||||
charges: 5
|
charges: 5
|
||||||
- type: MeleeWeapon
|
- type: MeleeWeapon
|
||||||
|
canHeavyAttack: false
|
||||||
wideAnimationRotation: 180
|
wideAnimationRotation: 180
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
|
|||||||
@@ -2,9 +2,10 @@
|
|||||||
parent: Airlock
|
parent: Airlock
|
||||||
id: AirlockExternal
|
id: AirlockExternal
|
||||||
suffix: External
|
suffix: External
|
||||||
description: It opens, it closes, it might crush you, and there might be only space behind it.
|
description: It opens, it closes, it might crush you, and there might be only space behind it. Has to be manually activated.
|
||||||
components:
|
components:
|
||||||
- type: Door
|
- type: Door
|
||||||
|
bumpOpen: false
|
||||||
crushDamage:
|
crushDamage:
|
||||||
types:
|
types:
|
||||||
Blunt: 15
|
Blunt: 15
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
- type: Wires
|
- type: Wires
|
||||||
layoutId: Docking
|
layoutId: Docking
|
||||||
- type: Door
|
- type: Door
|
||||||
|
bumpOpen: false
|
||||||
closeTimeTwo: 0.4
|
closeTimeTwo: 0.4
|
||||||
openTimeTwo: 0.4
|
openTimeTwo: 0.4
|
||||||
crushDamage:
|
crushDamage:
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
- type: constructionGraph
|
#- type: constructionGraph
|
||||||
id: makeshiftstunprod
|
# id: makeshiftstunprod
|
||||||
start: start
|
# start: start
|
||||||
graph:
|
# graph:
|
||||||
- node: start
|
# - node: start
|
||||||
edges:
|
# edges:
|
||||||
- to: msstunprod
|
# - to: msstunprod
|
||||||
steps:
|
# steps:
|
||||||
- material: MetalRod
|
# - material: MetalRod
|
||||||
amount: 1
|
# amount: 1
|
||||||
- material: Cable
|
# - material: Cable
|
||||||
amount: 15
|
# amount: 15
|
||||||
- tag: DrinkSpaceGlue
|
# - tag: DrinkSpaceGlue
|
||||||
name: Drink Space Glue
|
# name: Drink Space Glue
|
||||||
icon:
|
# icon:
|
||||||
sprite: Objects/Consumable/Drinks/glue-tube.rsi
|
# sprite: Objects/Consumable/Drinks/glue-tube.rsi
|
||||||
state: icon
|
# state: icon
|
||||||
- tag: PowerCellSmall
|
# - tag: PowerCellSmall
|
||||||
name: Power Cell Small
|
# name: Power Cell Small
|
||||||
icon:
|
# icon:
|
||||||
sprite: Objects/Power/power_cells.rsi
|
# sprite: Objects/Power/power_cells.rsi
|
||||||
state: small
|
# state: small
|
||||||
- tag: CapacitorStockPart
|
# - tag: CapacitorStockPart
|
||||||
name: Capacitor Stock Part
|
# name: Capacitor Stock Part
|
||||||
icon:
|
# icon:
|
||||||
sprite: Objects/Misc/stock_parts.rsi
|
# sprite: Objects/Misc/stock_parts.rsi
|
||||||
state: capacitor
|
# state: capacitor
|
||||||
doAfter: 20
|
# doAfter: 20
|
||||||
- node: msstunprod
|
# - node: msstunprod
|
||||||
entity: Stunprod
|
# entity: Stunprod
|
||||||
|
#
|
||||||
|
|||||||
@@ -35,16 +35,16 @@
|
|||||||
icon: { sprite: Objects/Misc/cablecuffs.rsi, state: cuff }
|
icon: { sprite: Objects/Misc/cablecuffs.rsi, state: cuff }
|
||||||
objectType: Item
|
objectType: Item
|
||||||
|
|
||||||
- type: construction
|
#- type: construction
|
||||||
name: makeshift stunprod
|
# name: makeshift stunprod
|
||||||
id: makeshiftstunprod
|
# id: makeshiftstunprod
|
||||||
graph: makeshiftstunprod
|
# graph: makeshiftstunprod
|
||||||
startNode: start
|
# startNode: start
|
||||||
targetNode: msstunprod
|
# targetNode: msstunprod
|
||||||
category: construction-category-weapons
|
# category: construction-category-weapons
|
||||||
description: "Homemade stunprod."
|
# description: "Homemade stunprod."
|
||||||
icon: { sprite: Objects/Weapons/Melee/stunprod.rsi, state: stunprod_off }
|
# icon: { sprite: Objects/Weapons/Melee/stunprod.rsi, state: stunprod_off }
|
||||||
objectType: Item
|
# objectType: Item
|
||||||
|
|
||||||
- type: construction
|
- type: construction
|
||||||
name: muzzle
|
name: muzzle
|
||||||
|
|||||||
@@ -1,5 +1,31 @@
|
|||||||
- type: damageModifierSet
|
- type: damageModifierSet
|
||||||
id: Felinid
|
id: Felinid
|
||||||
coefficients:
|
coefficients:
|
||||||
Blunt: 1.1
|
Blunt: 1.15
|
||||||
Slash: 1.1
|
Slash: 1.15
|
||||||
|
Piercing: 1.15
|
||||||
|
|
||||||
|
- type: damageModifierSet
|
||||||
|
id: Dwarf
|
||||||
|
coefficients:
|
||||||
|
Blunt: 0.7
|
||||||
|
Slash: 1.2
|
||||||
|
Piercing: 1.2
|
||||||
|
|
||||||
|
- type: damageModifierSet
|
||||||
|
id: Harpy
|
||||||
|
coefficients:
|
||||||
|
Blunt: 1.15
|
||||||
|
Slash: 1.15
|
||||||
|
Piercing: 1.15
|
||||||
|
|
||||||
|
- type: damageModifierSet
|
||||||
|
id: CultRobe
|
||||||
|
coefficients:
|
||||||
|
Blunt: 1.45
|
||||||
|
Slash: 1.45
|
||||||
|
Piercing: 1.45
|
||||||
|
Shock: 1.45
|
||||||
|
Cold: 1.45
|
||||||
|
Heat: 1.45
|
||||||
|
Laser: 1.45
|
||||||
|
|||||||
@@ -27,6 +27,6 @@
|
|||||||
- Impassable
|
- Impassable
|
||||||
- BulletImpassable
|
- BulletImpassable
|
||||||
- type: IgnitionSource
|
- type: IgnitionSource
|
||||||
temperature: 4000
|
temperature: 2000
|
||||||
- type: Ammo
|
- type: Ammo
|
||||||
muzzleFlash: null
|
muzzleFlash: null
|
||||||
|
|||||||
@@ -27,6 +27,9 @@
|
|||||||
types:
|
types:
|
||||||
Blunt: 0
|
Blunt: 0
|
||||||
- type: MeleeWeapon
|
- type: MeleeWeapon
|
||||||
|
attackRate: 1.25
|
||||||
|
canHeavyAttack: false
|
||||||
|
wideAnimationRotation: -135
|
||||||
damage:
|
damage:
|
||||||
types:
|
types:
|
||||||
Blunt: 9
|
Blunt: 9
|
||||||
@@ -37,9 +40,16 @@
|
|||||||
sound: /Audio/Weapons/egloves.ogg
|
sound: /Audio/Weapons/egloves.ogg
|
||||||
- type: StaminaDamageOnCollide
|
- type: StaminaDamageOnCollide
|
||||||
damage: 30
|
damage: 30
|
||||||
|
sound: /Audio/Weapons/egloves.ogg
|
||||||
- type: UseDelay
|
- type: UseDelay
|
||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Normal
|
||||||
|
- type: Clothing
|
||||||
|
quickEquip: false
|
||||||
|
slots:
|
||||||
|
- back
|
||||||
|
- type: DisarmMalus
|
||||||
|
malus: 0.225
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
- type: GenericVisualizer
|
- type: GenericVisualizer
|
||||||
visuals:
|
visuals:
|
||||||
@@ -48,6 +58,8 @@
|
|||||||
nocell: {state: snatcherprod_nocell}
|
nocell: {state: snatcherprod_nocell}
|
||||||
True: {state: snatcherprod_on}
|
True: {state: snatcherprod_on}
|
||||||
False: {state: snatcherprod_off}
|
False: {state: snatcherprod_off}
|
||||||
|
- type: StaticPrice
|
||||||
|
price: 100
|
||||||
- type: PowerCellSlot
|
- type: PowerCellSlot
|
||||||
cellSlotId: cell_slot
|
cellSlotId: cell_slot
|
||||||
- type: ItemSlots
|
- type: ItemSlots
|
||||||
@@ -58,13 +70,15 @@
|
|||||||
containers:
|
containers:
|
||||||
cell_slot: !type:ContainerSlot {}
|
cell_slot: !type:ContainerSlot {}
|
||||||
- type: Snatcherprod
|
- type: Snatcherprod
|
||||||
|
- type: Stunprod
|
||||||
|
hasHeldPrefix: false
|
||||||
- type: Construction
|
- type: Construction
|
||||||
deconstructionTarget: null
|
deconstructionTarget: rod
|
||||||
graph: SnatcherprodGraph
|
graph: StunprodGraph
|
||||||
node: snatcherprod
|
node: snatcherprod
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: палка
|
name: обмотанный стержень
|
||||||
parent: BaseItem
|
parent: BaseItem
|
||||||
id: ProdUnfinished
|
id: ProdUnfinished
|
||||||
description: Стержень с проводами.
|
description: Стержень с проводами.
|
||||||
@@ -75,6 +89,6 @@
|
|||||||
- type: Item
|
- type: Item
|
||||||
size: Normal
|
size: Normal
|
||||||
- type: Construction
|
- type: Construction
|
||||||
deconstructionTarget: null
|
deconstructionTarget: rod
|
||||||
graph: SnatcherprodGraph
|
graph: StunprodGraph
|
||||||
node: unfinished
|
node: unfinished
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
entity: WeaponPoweredCrossbow
|
entity: WeaponPoweredCrossbow
|
||||||
|
|
||||||
- type: constructionGraph
|
- type: constructionGraph
|
||||||
id: SnatcherprodGraph
|
id: StunprodGraph
|
||||||
start: rod
|
start: rod
|
||||||
graph:
|
graph:
|
||||||
- node: rod
|
- node: rod
|
||||||
@@ -81,14 +81,28 @@
|
|||||||
- node: unfinished
|
- node: unfinished
|
||||||
entity: ProdUnfinished
|
entity: ProdUnfinished
|
||||||
edges:
|
edges:
|
||||||
- to: capacitor
|
- to: Igniter
|
||||||
steps:
|
steps:
|
||||||
- tag: CapacitorStockPart
|
- tag: Igniter
|
||||||
- node: capacitor
|
- to: rod
|
||||||
|
steps:
|
||||||
|
- tool: Cutting
|
||||||
|
doAfter: 5
|
||||||
|
- node: Igniter
|
||||||
edges:
|
edges:
|
||||||
- to: snatcherprod
|
- to: snatcherprod
|
||||||
steps:
|
steps:
|
||||||
- material: Telecrystal
|
- material: Telecrystal
|
||||||
|
- to: stunprod
|
||||||
|
steps:
|
||||||
|
- tag: PowerCell
|
||||||
|
- to: rod
|
||||||
|
steps:
|
||||||
|
- tool: Cutting
|
||||||
|
doAfter: 5
|
||||||
|
completed:
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: Igniter
|
||||||
- node: snatcherprod
|
- node: snatcherprod
|
||||||
entity: Snatcherprod
|
entity: Snatcherprod
|
||||||
edges:
|
edges:
|
||||||
@@ -99,6 +113,19 @@
|
|||||||
completed:
|
completed:
|
||||||
- !type:SpawnPrototype
|
- !type:SpawnPrototype
|
||||||
prototype: Telecrystal1
|
prototype: Telecrystal1
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: Igniter
|
||||||
|
- !type:EmptyAllContainers
|
||||||
|
- node: stunprod
|
||||||
|
entity: Stunprod
|
||||||
|
edges:
|
||||||
|
- to: rod
|
||||||
|
steps:
|
||||||
|
- tool: Cutting
|
||||||
|
doAfter: 5
|
||||||
|
completed:
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: Igniter
|
||||||
- !type:EmptyAllContainers
|
- !type:EmptyAllContainers
|
||||||
|
|
||||||
- type: constructionGraph
|
- type: constructionGraph
|
||||||
|
|||||||
Reference in New Issue
Block a user