mirror of
https://github.com/wega-team/ss14-wega.git
synced 2026-06-09 10:06:49 +02:00
Ратвар Альфа 0.2 (#434)
* lalala * Update VeilCultSystem.cs * Update antagonist.yml * nya * commit crime * Update magic.yml * Update magic.yml * Update magic.yml
This commit is contained in:
@@ -29,7 +29,10 @@ public sealed partial class BloodCultSystem
|
||||
|
||||
if (HasComp<VeilCultistComponent>(args.EquipTarget) && ent.Comp.Cult == CultType.Veil)
|
||||
return;
|
||||
|
||||
|
||||
if (HasComp<AllowCultEquipmentComponent>(args.EquipTarget))
|
||||
return;
|
||||
|
||||
_transform.SetCoordinates(ent, Transform(args.EquipTarget).Coordinates);
|
||||
_transform.AttachToGridOrMap(ent);
|
||||
_throwing.TryThrow(ent, _random.NextVector2(), 1);
|
||||
@@ -48,6 +51,9 @@ public sealed partial class BloodCultSystem
|
||||
if (HasComp<VeilCultistComponent>(args.User) && ent.Comp.Cult == CultType.Veil)
|
||||
return;
|
||||
|
||||
if (HasComp<AllowCultEquipmentComponent>(args.User))
|
||||
return;
|
||||
|
||||
args.Cancelled = true;
|
||||
|
||||
_transform.SetCoordinates(ent, Transform(args.User).Coordinates);
|
||||
|
||||
@@ -197,6 +197,9 @@ public sealed partial class BloodCultSystem : SharedBloodCultSystem
|
||||
if (HasComp<VeilCultistComponent>(user) && entity.Comp.Cult == CultType.Veil)
|
||||
return;
|
||||
|
||||
if (HasComp<AllowCultEquipmentComponent>(user))
|
||||
return;
|
||||
|
||||
_popup.PopupEntity(Loc.GetString("blood-cult-failed-attack"), user, user, PopupType.SmallCaution);
|
||||
|
||||
var dropEvent = new DropHandItemsEvent();
|
||||
|
||||
@@ -62,19 +62,21 @@ public sealed partial class VeilCultSystem
|
||||
SubscribeLocalEvent<EnchantedComponent, CrusherEnchantActionEvent>(OnActivateCrusher);
|
||||
SubscribeLocalEvent<EnchantedComponent, ConfusionEnchantActionEvent>(OnActivateConfusion);
|
||||
SubscribeLocalEvent<EnchantedComponent, KnockbackEnchantActionEvent>(OnActivateKnockback);
|
||||
SubscribeLocalEvent<EnchantedComponent, DismantlingEnchantActionEvent>(OnActivateDismantling);
|
||||
SubscribeLocalEvent<EnchantedComponent, SwordsmenEnchantActionEvent>(OnActivateSwordsmen);
|
||||
SubscribeLocalEvent<EnchantedComponent, BloodshedEnchantActionEvent>(OnActivateBloodShed);
|
||||
SubscribeLocalEvent<EnchantedComponent, HasteEnchantActionEvent>(OnActivateHaste);
|
||||
SubscribeLocalEvent<EnchantedComponent, ReflectionEnchantActionEvent>(OnActivateReflection);
|
||||
SubscribeLocalEvent<EnchantedComponent, CamouflageEnchantActionEvent>(OnActivateCamouflage);
|
||||
SubscribeLocalEvent<EnchantedComponent, AbsorbEnchantActionEvent>(OnActivateAbsorb);
|
||||
SubscribeLocalEvent<EnchantedComponent, FlashEnchantActionEvent>(OnActivateFlash);
|
||||
SubscribeLocalEvent<EnchantedComponent, SmokeEnchantActionEvent>(OnActivateSmoke);
|
||||
SubscribeLocalEvent<EnchantedComponent, HardenPlatesEnchantActionEvent>(OnActivateHardenPlates);
|
||||
SubscribeLocalEvent<EnchantedComponent, NorthStarEnchantActionEvent>(OnActivateNorthStar);
|
||||
SubscribeLocalEvent<EnchantedComponent, RedFlameEnchantActionEvent>(OnActivateRedFlame);
|
||||
|
||||
// Enchants
|
||||
SubscribeLocalEvent<CrusherEnchantComponent, MeleeHitEvent>(CrusherOnMeleeHit);
|
||||
SubscribeLocalEvent<DismantlingEnchantComponent, MeleeHitEvent>(DismantlingOnMeleeHit);
|
||||
SubscribeLocalEvent<ConfusionEnchantComponent, MeleeHitEvent>(ConfusionOnMeleeHit);
|
||||
SubscribeLocalEvent<KnockbackEnchantComponent, MeleeHitEvent>(KnockbackOnMeleeHit);
|
||||
SubscribeLocalEvent<StunEnchantComponent, MeleeHitEvent>(StunOnMeleeHit);
|
||||
@@ -91,7 +93,7 @@ public sealed partial class VeilCultSystem
|
||||
SubscribeLocalEvent<TimeStopEnchantComponent, UseInHandEvent>(TimeStopOnUseInHand);
|
||||
SubscribeLocalEvent<HidingsClockEnchantComponent, UseInHandEvent>(HidingCloacksOnUseInHand);
|
||||
|
||||
SubscribeLocalEvent<SealWoundsEnchantComponent, AfterInteractEvent>(SealWoundOnUse);
|
||||
SubscribeLocalEvent<SealWoundsEnchantComponent, MeleeHitEvent>(SealWoundOnUse);
|
||||
|
||||
SubscribeLocalEvent<EnchantableComponent, EnchantingDoAfterEvent>(EnchantDoAfter);
|
||||
}
|
||||
@@ -116,12 +118,20 @@ public sealed partial class VeilCultSystem
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private void OnActivateDismantling(EntityUid uid, EnchantedComponent comp, DismantlingEnchantActionEvent args)
|
||||
{
|
||||
EnsureComp<DismantlingEnchantComponent>(uid);
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private void OnActivateKnockback(EntityUid uid, EnchantedComponent comp, KnockbackEnchantActionEvent args)
|
||||
{
|
||||
EnsureComp<KnockbackEnchantComponent>(uid, out var kb);
|
||||
EnsureComp<MeleeThrowOnHitComponent>(uid, out var throwOnHit);
|
||||
throwOnHit.Speed = kb.Speed;
|
||||
throwOnHit.Distance = kb.Distance;
|
||||
if (TryComp<StaminaDamageOnHitComponent>(uid, out var stam))
|
||||
stam.Damage *= 2.5f;
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
@@ -209,7 +219,7 @@ public sealed partial class VeilCultSystem
|
||||
private void OnActivateCamouflage(EntityUid uid, EnchantedComponent comp, CamouflageEnchantActionEvent args)
|
||||
{
|
||||
EnsureComp<StealthComponent>(args.Performer, out var stealth);
|
||||
stealth.LastVisibility = 0.2f;
|
||||
stealth.LastVisibility = 0.15f;
|
||||
Dirty(args.Performer, stealth);
|
||||
Timer.Spawn(TimeSpan.FromSeconds(10), () =>
|
||||
{
|
||||
@@ -221,24 +231,12 @@ public sealed partial class VeilCultSystem
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private void OnActivateFlash(EntityUid uid, EnchantedComponent comp, FlashEnchantActionEvent args)
|
||||
private void OnActivateSmoke(EntityUid uid, EnchantedComponent comp, SmokeEnchantActionEvent args)
|
||||
{
|
||||
var nearbyCultists = _entityLookup.GetEntitiesInRange<VeilCultistComponent>(Transform(uid).Coordinates, 10f);
|
||||
foreach (var cultist in nearbyCultists)
|
||||
{
|
||||
EnsureComp<FlashImmunityComponent>(cultist.Owner);
|
||||
Timer.Spawn(TimeSpan.FromSeconds(1), () => RemComp<FlashImmunityComponent>(cultist.Owner));
|
||||
}
|
||||
|
||||
var nearbyConstruct = _entityLookup.GetEntitiesInRange<VeilCultConstructComponent>(Transform(uid).Coordinates, 10f);
|
||||
foreach (var construct in nearbyConstruct)
|
||||
{
|
||||
EnsureComp<FlashImmunityComponent>(construct.Owner);
|
||||
Timer.Spawn(TimeSpan.FromSeconds(1), () => RemComp<FlashImmunityComponent>(construct.Owner));
|
||||
}
|
||||
|
||||
_flash.FlashArea(args.Performer, args.Performer, 10f, TimeSpan.FromSeconds(3));
|
||||
RemComp<FlashEnchantComponent>(uid);
|
||||
var effect = _random.Prob(0.75f) ? "AdminInstantEffectSmoke3" : "AdminInstantEffectSmoke10";
|
||||
Spawn(effect, Transform(uid).Coordinates);
|
||||
|
||||
RemComp<SmokeEnchantComponent>(uid);
|
||||
RemComp<EnchantedComponent>(uid);
|
||||
|
||||
args.Handled = true;
|
||||
@@ -253,9 +251,9 @@ public sealed partial class VeilCultSystem
|
||||
var oldPiercing = armor.Modifiers.Coefficients["Piercing"];
|
||||
var oldSlash = armor.Modifiers.Coefficients["Slash"];
|
||||
var oldBlunt = armor.Modifiers.Coefficients["Blunt"];
|
||||
armor.Modifiers.Coefficients["Blunt"] = 0.3f;
|
||||
armor.Modifiers.Coefficients["Slash"] = 0.3f;
|
||||
armor.Modifiers.Coefficients["Piercing"] = 0.4f;
|
||||
armor.Modifiers.Coefficients["Blunt"] = 0.5f;
|
||||
armor.Modifiers.Coefficients["Slash"] = 0.5f;
|
||||
armor.Modifiers.Coefficients["Piercing"] = 0.35f;
|
||||
armor.Modifiers.Coefficients["Heat"] = 0.4f;
|
||||
Timer.Spawn(plate.Time, () =>
|
||||
{
|
||||
@@ -278,7 +276,7 @@ public sealed partial class VeilCultSystem
|
||||
{
|
||||
var oldRate = weapon.AttackRate;
|
||||
weapon.AttackRate = enchant.AttackRate;
|
||||
Timer.Spawn(TimeSpan.FromSeconds(6), () =>
|
||||
Timer.Spawn(TimeSpan.FromSeconds(7), () =>
|
||||
{
|
||||
weapon.AttackRate = oldRate;
|
||||
RemComp<EnchantedComponent>(uid);
|
||||
@@ -293,7 +291,7 @@ public sealed partial class VeilCultSystem
|
||||
{
|
||||
EnsureComp<RedFlameEnchantComponent>(uid, out var enchant);
|
||||
EnsureComp<IgniteOnMeleeHitComponent>(uid, out var flame);
|
||||
flame.FireStacks = 1;
|
||||
flame.FireStacks = 2;
|
||||
Timer.Spawn(enchant.Time, () =>
|
||||
{
|
||||
RemComp<RedFlameEnchantComponent>(uid);
|
||||
@@ -314,6 +312,8 @@ public sealed partial class VeilCultSystem
|
||||
RemComp<KnockbackEnchantComponent>(uid);
|
||||
RemComp<MeleeThrowOnHitComponent>(uid);
|
||||
RemComp<EnchantedComponent>(uid);
|
||||
if (TryComp<StaminaDamageOnHitComponent>(uid, out var stam))
|
||||
stam.Damage /= 2.5f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,17 +323,29 @@ public sealed partial class VeilCultSystem
|
||||
{
|
||||
if (wield.Wielded && args.HitEntities != null)
|
||||
{
|
||||
args.BonusDamage += new DamageSpecifier { DamageDict = { { "Blunt", 40 } } };
|
||||
args.BonusDamage += new DamageSpecifier { DamageDict = { { "Blunt", 30 } } };
|
||||
foreach (var target in args.HitEntities)
|
||||
{
|
||||
var selectedInjury = _random.Pick(new[] { "OpenFracture", "ClosedFracture" });
|
||||
_surgery.TryAddInternalDamage(target, selectedInjury);
|
||||
}
|
||||
RemComp<CrusherEnchantComponent>(uid);
|
||||
RemComp<EnchantedComponent>(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DismantlingOnMeleeHit(EntityUid uid, DismantlingEnchantComponent comp, MeleeHitEvent args)
|
||||
{
|
||||
if (TryComp<WieldableComponent>(uid, out var wield))
|
||||
{
|
||||
if (wield.Wielded && args.HitEntities != null)
|
||||
{
|
||||
args.BonusDamage += new DamageSpecifier { DamageDict = { { "Structural", 800 } } };
|
||||
RemComp<DismantlingEnchantComponent>(uid);
|
||||
RemComp<EnchantedComponent>(uid);
|
||||
}
|
||||
}
|
||||
|
||||
RemComp<CrusherEnchantComponent>(uid);
|
||||
RemComp<EnchantedComponent>(uid);
|
||||
}
|
||||
|
||||
private void ConfusionOnMeleeHit(EntityUid uid, ConfusionEnchantComponent comp, MeleeHitEvent args)
|
||||
@@ -378,15 +390,18 @@ public sealed partial class VeilCultSystem
|
||||
{
|
||||
foreach (var target in args.HitEntities)
|
||||
{
|
||||
if (HasComp<StaminaComponent>(target))
|
||||
if (comp.Knockout)
|
||||
_stun.TryKnockdown(target, comp.StunTime, true, true, true);
|
||||
else
|
||||
_stun.TryUpdateParalyzeDuration(target, comp.StunTime);
|
||||
|
||||
if (comp.Mute)
|
||||
{
|
||||
if (HasComp<MutedComponent>(target))
|
||||
continue;
|
||||
EnsureComp<MutedComponent>(target);
|
||||
Timer.Spawn(comp.MuteTime, () => RemComp<MutedComponent>(target));
|
||||
if (!HasComp<MutedComponent>(target))
|
||||
{
|
||||
EnsureComp<MutedComponent>(target);
|
||||
Timer.Spawn(comp.MuteTime, () => RemComp<MutedComponent>(target));
|
||||
}
|
||||
}
|
||||
|
||||
if (comp.EmpBorgs && HasComp<BorgChassisComponent>(target) || HasComp<AndroidComponent>(target))
|
||||
@@ -548,7 +563,7 @@ public sealed partial class VeilCultSystem
|
||||
foreach (var cultist in nearbyCultists)
|
||||
{
|
||||
EnsureComp<PacifiedComponent>(cultist);
|
||||
Timer.Spawn(TimeSpan.FromSeconds(3), () => RemComp<PacifiedComponent>(cultist));
|
||||
Timer.Spawn(TimeSpan.FromSeconds(4), () => RemComp<PacifiedComponent>(cultist));
|
||||
}
|
||||
|
||||
Spawn("Chronofield", Transform(args.User).Coordinates);
|
||||
@@ -601,18 +616,23 @@ public sealed partial class VeilCultSystem
|
||||
}
|
||||
}
|
||||
|
||||
private void SealWoundOnUse(EntityUid uid, SealWoundsEnchantComponent comp, AfterInteractEvent args)
|
||||
private void SealWoundOnUse(EntityUid uid, SealWoundsEnchantComponent comp, MeleeHitEvent args)
|
||||
{
|
||||
if (args.Target != null && HasComp<VeilCultistComponent>(args.Target.Value))
|
||||
if (args.HitEntities != null)
|
||||
{
|
||||
var damage = new DamageSpecifier { DamageDict = { { "Blunt", -15 }, { "Slash", -15 }, { "Piercing", -20 }, { "Heat", -30 } } };
|
||||
_damage.TryChangeDamage(args.Target.Value, damage, true);
|
||||
foreach (var target in args.HitEntities)
|
||||
{
|
||||
if (!HasComp<VeilCultistComponent>(target))
|
||||
continue;
|
||||
|
||||
var damage = new DamageSpecifier { DamageDict = { { "Blunt", -10 }, { "Slash", -10 }, { "Piercing", -15 }, { "Heat", -20 } } };
|
||||
_damage.TryChangeDamage(target, damage, true);
|
||||
|
||||
if (TryComp<BloodstreamComponent>(args.Target.Value, out var bloodstream))
|
||||
_blood.TryModifyBleedAmount((args.Target.Value, bloodstream), -5f);
|
||||
|
||||
RemComp<EnchantedComponent>(args.Used);
|
||||
RemComp<SealWoundsEnchantComponent>(args.Used);
|
||||
if (TryComp<BloodstreamComponent>(target, out var bloodstream))
|
||||
_blood.TryModifyBleedAmount((target, bloodstream), -5f);
|
||||
}
|
||||
RemComp<EnchantedComponent>(uid);
|
||||
RemComp<SealWoundsEnchantComponent>(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,11 +91,11 @@ public sealed partial class VeilCultSystem : SharedVeilCultSystem
|
||||
if (beaconComponent.NextTimeTick <= 0 && transform.Anchored)
|
||||
{
|
||||
beaconComponent.NextTimeTick = 5;
|
||||
var nearbyCultists = _entityLookup.GetEntitiesInRange<VeilCultistComponent>(transform.Coordinates, 11f)
|
||||
var nearbyCultists = _entityLookup.GetEntitiesInRange<VeilCultistComponent>(transform.Coordinates, 6f)
|
||||
.Where(cultist => !_mobState.IsDead(cultist))
|
||||
.ToList();
|
||||
|
||||
var nearbyConstruct = _entityLookup.GetEntitiesInRange<VeilCultConstructComponent>(transform.Coordinates, 11f)
|
||||
var nearbyConstruct = _entityLookup.GetEntitiesInRange<VeilCultConstructComponent>(transform.Coordinates, 6f)
|
||||
.Where(cultist => !_mobState.IsDead(cultist))
|
||||
.ToList();
|
||||
|
||||
@@ -179,7 +179,7 @@ public sealed partial class VeilCultSystem : SharedVeilCultSystem
|
||||
|
||||
private void OnAnchor(EntityUid uid, VeilCultBeaconComponent component, AnchorAttemptEvent args)
|
||||
{
|
||||
var beacons = _entityLookup.GetEntitiesInRange<VeilCultBeaconComponent>(Transform(uid).Coordinates, 20f);
|
||||
var beacons = _entityLookup.GetEntitiesInRange<VeilCultBeaconComponent>(Transform(uid).Coordinates, 10f);
|
||||
|
||||
if (beacons.Count > 1)
|
||||
{
|
||||
@@ -206,7 +206,7 @@ public sealed partial class VeilCultSystem : SharedVeilCultSystem
|
||||
private void OnInit(EntityUid uid, VeilCultBeaconComponent component, ComponentInit args)
|
||||
{
|
||||
var beacons = _entityLookup.GetEntitiesInRange<VeilCultBeaconComponent>(
|
||||
Transform(uid).Coordinates, 20f);
|
||||
Transform(uid).Coordinates, 10f);
|
||||
|
||||
if (beacons.Count > 1)
|
||||
{
|
||||
@@ -261,9 +261,6 @@ public sealed partial class VeilCultSystem : SharedVeilCultSystem
|
||||
}
|
||||
else
|
||||
{
|
||||
if (HasComp<MindShieldComponent>(target) || HasComp<BibleUserComponent>(target))
|
||||
continue;
|
||||
|
||||
if (!TryComp<MindContainerComponent>(target, out var mindContainer) || mindContainer.Mind == null)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -62,6 +62,9 @@ public sealed partial class CultEquipmentComponent : Component
|
||||
public CultType Cult = default!;
|
||||
}
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class AllowCultEquipmentComponent : Component;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class BloodDaggerComponent : Component
|
||||
{
|
||||
|
||||
@@ -30,7 +30,10 @@ public abstract partial class SharedTeleportationEnchantSystem : EntitySystem
|
||||
private void Teleport(EntityUid user, NetEntity beacon, EntityUid used)
|
||||
{
|
||||
var doAfterEventArgs = new DoAfterArgs(EntityManager, user, TimeSpan.FromSeconds(4),
|
||||
new VeilCultTeleportDoAfterEvent(beacon), user, used)
|
||||
new VeilCultTeleportDoAfterEvent() { Beacon = beacon },
|
||||
eventTarget: user,
|
||||
used: used
|
||||
)
|
||||
{
|
||||
BreakOnMove = false,
|
||||
BreakOnDamage = true,
|
||||
|
||||
@@ -123,11 +123,14 @@ public sealed partial class AbsorbedByVeilComponent : Component;
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class StunEnchantComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public bool Knockout = false;
|
||||
|
||||
[DataField]
|
||||
public TimeSpan StunTime = TimeSpan.FromSeconds(5);
|
||||
|
||||
[DataField]
|
||||
public TimeSpan MuteTime = TimeSpan.FromSeconds(10);
|
||||
public TimeSpan MuteTime = TimeSpan.FromSeconds(8);
|
||||
|
||||
[DataField]
|
||||
public bool Mute = true;
|
||||
@@ -186,6 +189,9 @@ public sealed partial class ConfusionEnchantComponent : Component
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class CrusherEnchantComponent : Component;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class DismantlingEnchantComponent : Component;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class KnockbackEnchantComponent : Component
|
||||
{
|
||||
@@ -236,7 +242,7 @@ public sealed partial class CamouflageEnchantComponent : Component;
|
||||
public sealed partial class AbsorbEnchantComponent : Component;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class FlashEnchantComponent : Component;
|
||||
public sealed partial class SmokeEnchantComponent : Component;
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class HardenPlatesEnchantComponent : Component
|
||||
@@ -263,7 +269,7 @@ public sealed partial class RedFlameEnchantComponent : Component
|
||||
public sealed partial class TimeStopEnchantComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public TimeSpan Time = TimeSpan.FromSeconds(5);
|
||||
public TimeSpan Time = TimeSpan.FromSeconds(7);
|
||||
}
|
||||
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
|
||||
@@ -38,6 +38,10 @@ public sealed partial class CrusherEnchantActionEvent : InstantActionEvent
|
||||
{
|
||||
}
|
||||
|
||||
public sealed partial class DismantlingEnchantActionEvent : InstantActionEvent
|
||||
{
|
||||
}
|
||||
|
||||
public sealed partial class ConfusionEnchantActionEvent : InstantActionEvent
|
||||
{
|
||||
}
|
||||
@@ -70,7 +74,7 @@ public sealed partial class AbsorbEnchantActionEvent : InstantActionEvent
|
||||
{
|
||||
}
|
||||
|
||||
public sealed partial class FlashEnchantActionEvent : InstantActionEvent
|
||||
public sealed partial class SmokeEnchantActionEvent : InstantActionEvent
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ ent-ActionVeilCultActivateNorthStar = Активировать Зачарова
|
||||
.desc = Активирует зачарование "Северная Звезда".
|
||||
ent-ActionVeilCultActivateHardenPlates = Активировать Зачарование
|
||||
.desc = Активирует зачарование "Защитные Пластины".
|
||||
ent-ActionVeilCultActivateFlash = Активировать Зачарование
|
||||
.desc = Активирует зачарование "Вспышка".
|
||||
ent-ActionVeilCultActivateSmoke = Активировать Зачарование
|
||||
.desc = Активирует зачарование "Дымовая завеса".
|
||||
ent-ActionVeilCultActivateAbsorb = Активировать Зачарование
|
||||
.desc = Активирует зачарование "Поглощение".
|
||||
ent-ActionVeilCultActivateCamouflage = Активировать Зачарование
|
||||
@@ -25,4 +25,6 @@ ent-ActionVeilCultActivateSwordsmen = Активировать Зачарова
|
||||
ent-ActionVeilCultActivateKnockback = Активировать Зачарование
|
||||
.desc = Активирует зачарование "Отдача".
|
||||
ent-ActionVeilCultActivateConfusion = Активировать Зачарование
|
||||
.desc = Активирует зачарование "Запутанность".
|
||||
.desc = Активирует зачарование "Запутанность".
|
||||
ent-ActionVeilCultActivateDismantling = Активировать Зачарование
|
||||
.desc = Активирует зачарование "Демонтаж".
|
||||
+2
-2
@@ -35,6 +35,6 @@ ent-VeilCultBrassCuirassAbsorb = { ent-VeilCultBrassCuirass }
|
||||
ent-VeilCultBrassCuirassReflection = { ent-VeilCultBrassCuirass }
|
||||
.desc = { ent-VeilCultBrassCuirass.desc }
|
||||
.suffix = Отражение
|
||||
ent-VeilCultBrassCuirassFlash = { ent-VeilCultBrassCuirass }
|
||||
ent-VeilCultBrassCuirassSmoke = { ent-VeilCultBrassCuirass }
|
||||
.desc = { ent-VeilCultBrassCuirass.desc }
|
||||
.suffix = Вспышка
|
||||
.suffix = Дымовая завеса
|
||||
|
||||
+3
@@ -62,5 +62,8 @@ ent-WeaponClockHammerCrusher = { ent-WeaponClockHammer }
|
||||
ent-WeaponClockHammerKnockback = { ent-WeaponClockHammer }
|
||||
.desc = { ent-WeaponClockHammer.desc }
|
||||
.suffix = Отдача
|
||||
ent-WeaponClockHammerDismantling = { ent-WeaponClockHammer }
|
||||
.desc = { ent-WeaponClockHammer.desc }
|
||||
.suffix = Демонтаж
|
||||
ent-VeilCultMidasTouch = касание Мидаса
|
||||
.desc = По легендам, превращает всё в золото.
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
baseWalkSpeed: 30
|
||||
# Corvax-End
|
||||
- type: AdminMindLinkListener # Corvax-Wega-MindChat
|
||||
- type: AllowCultEquipment # Corvax-Wega-Cults
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
|
||||
@@ -28,6 +28,21 @@
|
||||
- type: LimitedCharges
|
||||
maxCharges: 1
|
||||
|
||||
- type: entity
|
||||
parent: BaseAction
|
||||
id: ActionVeilCultActivateDismantling
|
||||
name: Activate Enchant
|
||||
description: Toggle enchant of this item.
|
||||
components:
|
||||
- type: Action
|
||||
itemIconStyle: BigItem
|
||||
priority: -20
|
||||
useDelay: 1
|
||||
- type: InstantAction
|
||||
event: !type:DismantlingEnchantActionEvent
|
||||
- type: LimitedCharges
|
||||
maxCharges: 1
|
||||
|
||||
- type: entity
|
||||
parent: BaseAction
|
||||
id: ActionVeilCultActivateConfusion
|
||||
@@ -150,7 +165,7 @@
|
||||
|
||||
- type: entity
|
||||
parent: BaseAction
|
||||
id: ActionVeilCultActivateFlash
|
||||
id: ActionVeilCultActivateSmoke
|
||||
name: Activate Enchant
|
||||
description: Toggle enchant of this item.
|
||||
components:
|
||||
@@ -159,7 +174,7 @@
|
||||
priority: -20
|
||||
useDelay: 1
|
||||
- type: InstantAction
|
||||
event: !type:FlashEnchantActionEvent
|
||||
event: !type:SmokeEnchantActionEvent
|
||||
- type: LimitedCharges
|
||||
maxCharges: 1
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
- type: IdentityBlocker
|
||||
coverage: EYES
|
||||
|
||||
# VeilCult
|
||||
# VeilCults
|
||||
- type: entity
|
||||
parent: ClothingEyesBase
|
||||
id: ClothingEyesJudicialVisor
|
||||
@@ -118,6 +118,9 @@
|
||||
coverage: EYES
|
||||
- type: NightVision
|
||||
tint: "#c242bb00"
|
||||
brightness: 0.5
|
||||
luminanceThreshold: 0.05
|
||||
noiseAmount: 0.02
|
||||
- type: ItemToggle
|
||||
soundActivate: /Audio/_Wega/Items/activate.ogg
|
||||
soundDeactivate: /Audio/_Wega/Items/deactivate.ogg
|
||||
@@ -130,7 +133,6 @@
|
||||
enum.ToggleableVisuals.Layer:
|
||||
True: { state: "icon" }
|
||||
False: { state: "icon-off" }
|
||||
- type: FlashImmunity
|
||||
- type: ShowHealthBars
|
||||
- type: EyeProtection
|
||||
- type: CultEquipment
|
||||
|
||||
@@ -221,6 +221,10 @@
|
||||
Slash: 0.8
|
||||
Piercing: 0.9
|
||||
Heat: 0.85
|
||||
- type: FireProtection
|
||||
reduction: 0.95
|
||||
- type: TemperatureProtection
|
||||
heatingCoefficient: 0.9
|
||||
- type: Sprite
|
||||
sprite: _Wega/Clothing/Hands/clockwork_gauntlets.rsi
|
||||
state: icon
|
||||
|
||||
@@ -200,6 +200,9 @@
|
||||
categories: [ HideSpawnMenu ]
|
||||
name: clockwork robe's hood
|
||||
components:
|
||||
- type: HideLayerClothing
|
||||
slots:
|
||||
- HeadTop
|
||||
- type: Sprite
|
||||
sprite: _Wega/Clothing/Head/Hoods/Coat/clockwork_hood.rsi
|
||||
- type: Clothing
|
||||
|
||||
@@ -286,6 +286,13 @@
|
||||
Slash: 0.6
|
||||
Piercing: 0.6
|
||||
Heat: 0.55
|
||||
- type: ExplosionResistance
|
||||
damageCoefficient: 0.6
|
||||
- type: FireProtection
|
||||
reduction: 0.65
|
||||
- type: TemperatureProtection
|
||||
heatingCoefficient: 0.6
|
||||
coolingCoefficient: 0.8
|
||||
- type: GroupExamine
|
||||
- type: ToggleableClothing
|
||||
clothingPrototype: ClothingHeadHelmetClockworkCuirass
|
||||
@@ -296,4 +303,4 @@
|
||||
- VeilCultBrassCuirassHardenPlates
|
||||
- VeilCultBrassCuirassReflection
|
||||
- VeilCultBrassCuirassAbsorb
|
||||
- VeilCultBrassCuirassFlash
|
||||
- VeilCultBrassCuirassSmoke
|
||||
|
||||
@@ -237,7 +237,12 @@
|
||||
Piercing: 0.7
|
||||
Heat: 0.7
|
||||
- type: ExplosionResistance
|
||||
damageCoefficient: 0.9
|
||||
damageCoefficient: 0.8
|
||||
- type: FireProtection
|
||||
reduction: 0.75
|
||||
- type: TemperatureProtection
|
||||
heatingCoefficient: 0.7
|
||||
coolingCoefficient: 0.7
|
||||
- type: Enchantable
|
||||
enchants:
|
||||
- ClothingOuterVeilCultRobesCamouflage
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
|
||||
- type: entity
|
||||
parent: VeilCultBrassCuirass
|
||||
id: VeilCultBrassCuirassFlash
|
||||
suffix: Flash
|
||||
id: VeilCultBrassCuirassSmoke
|
||||
suffix: Smoke
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Wega/Clothing/OuterClothing/Armor/cuirass.rsi
|
||||
@@ -59,13 +59,13 @@
|
||||
shader: unshaded
|
||||
visible: true
|
||||
- type: Enchanted
|
||||
- type: FlashEnchant
|
||||
- type: SmokeEnchant
|
||||
- type: ActionGrant
|
||||
actions:
|
||||
- ActionVeilCultActivateFlash
|
||||
- ActionVeilCultActivateSmoke
|
||||
- type: ItemActionGrant
|
||||
actions:
|
||||
- ActionVeilCultActivateFlash
|
||||
- ActionVeilCultActivateSmoke
|
||||
activeIfWorn: true
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
sprite: _Wega/Clothing/Shoes/Boots/clockwork_treads.rsi
|
||||
# equipSound: /Audio/Mecha/mechmove03.ogg FOR FUTURE SOUNDS
|
||||
# unequipSound: /Audio/Mecha/mechmove03.ogg FOR FUTURE SOUNDS
|
||||
equipDelay: 3
|
||||
unequipDelay: 3
|
||||
equipDelay: 1.5
|
||||
unequipDelay: 1.5
|
||||
- type: ClothingSlowOnDamageModifier
|
||||
modifier: 0.35
|
||||
|
||||
|
||||
@@ -104,6 +104,12 @@
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 2.5
|
||||
baseSprintSpeed : 5
|
||||
- type: MeleeWeapon
|
||||
damage:
|
||||
types:
|
||||
Piercing: 5
|
||||
- type: StaminaDamageOnHit
|
||||
damage: 15
|
||||
- type: Damageable
|
||||
damageModifierSet: Metallic
|
||||
- type: Injurable
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
visible: true
|
||||
- type: Enchanted
|
||||
- type: StunEnchant
|
||||
knockout: true
|
||||
stunTime: 4
|
||||
|
||||
- type: entity
|
||||
id: VeilCultClockworkSlabTeleportation
|
||||
|
||||
@@ -125,6 +125,27 @@
|
||||
- ActionVeilCultActivateCrusher
|
||||
activeIfWorn: false
|
||||
|
||||
- type: entity
|
||||
id: WeaponClockHammerDismantling
|
||||
parent: WeaponClockHammer
|
||||
suffix: Dismantling
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Wega/Objects/Weapons/Melee/clock_hammer.rsi
|
||||
layers:
|
||||
- state: icon
|
||||
- state: dismantling
|
||||
shader: unshaded
|
||||
visible: true
|
||||
- type: Enchanted
|
||||
- type: ActionGrant
|
||||
actions:
|
||||
- ActionVeilCultActivateDismantling
|
||||
- type: ItemActionGrant
|
||||
actions:
|
||||
- ActionVeilCultActivateDismantling
|
||||
activeIfWorn: false
|
||||
|
||||
# GLOVES
|
||||
|
||||
- type: entity
|
||||
@@ -187,4 +208,4 @@
|
||||
- type: StunEnchant
|
||||
mute: false
|
||||
empBorgs: false
|
||||
stunTime: 3
|
||||
stunTime: 2
|
||||
@@ -593,6 +593,8 @@
|
||||
- 0,0,0,2
|
||||
- type: CultWeapon
|
||||
cult: Veil
|
||||
- type: CultEquipment
|
||||
cult: Veil
|
||||
- type: MeleeWeapon
|
||||
wideAnimationRotation: -135
|
||||
# resistanceBypassPercentage: 0.1 # for future
|
||||
@@ -618,6 +620,11 @@
|
||||
- type: Sprite
|
||||
sprite: _Wega/Objects/Weapons/Melee/clockwork_sword.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
quickEquip: false
|
||||
slots:
|
||||
- back
|
||||
- suitStorage
|
||||
- type: Item
|
||||
storedRotation: -45
|
||||
size: Normal
|
||||
@@ -629,7 +636,7 @@
|
||||
attackRate: 1
|
||||
damage:
|
||||
types:
|
||||
Slash: 20
|
||||
Slash: 25
|
||||
soundHit:
|
||||
path: /Audio/Weapons/bladeslice.ogg
|
||||
- type: DisarmMalus
|
||||
@@ -643,15 +650,21 @@
|
||||
- type: Sprite
|
||||
sprite: _Wega/Objects/Weapons/Melee/clock_hammer.rsi
|
||||
state: icon
|
||||
- type: Clothing
|
||||
quickEquip: false
|
||||
slots:
|
||||
- back
|
||||
- type: Item
|
||||
storedRotation: -45
|
||||
size: Large
|
||||
- type: CultWeapon
|
||||
cult: Veil
|
||||
- type: CultEquipment
|
||||
cult: Veil
|
||||
- type: MeleeWeapon
|
||||
# resistanceBypassPercentage: 0.4 #for future
|
||||
wideAnimationRotation: -135
|
||||
attackRate: 0.7
|
||||
attackRate: 0.8
|
||||
damage:
|
||||
types:
|
||||
Blunt: 10
|
||||
@@ -661,27 +674,28 @@
|
||||
- type: IncreaseDamageOnWield
|
||||
damage:
|
||||
types:
|
||||
Blunt: 15
|
||||
Structural: 40
|
||||
Blunt: 20
|
||||
Structural: 50
|
||||
- type: Reflect
|
||||
reflectProb: 0.2
|
||||
reflectProb: 0.15
|
||||
spread: 90
|
||||
- type: DamageOtherOnHit
|
||||
damage:
|
||||
types:
|
||||
Blunt: 25
|
||||
Blunt: 15
|
||||
- type: StaminaDamageOnHit
|
||||
damage: 25
|
||||
- type: StaminaDamageOnCollide
|
||||
damage: 25
|
||||
damage: 15
|
||||
- type: HeldSpeedModifier
|
||||
walkModifier: 0.8
|
||||
sprintModifier: 0.8
|
||||
walkModifier: 0.9
|
||||
sprintModifier: 0.85
|
||||
- type: Wieldable
|
||||
- type: Enchantable
|
||||
enchants:
|
||||
- WeaponClockHammerKnockback
|
||||
- WeaponClockHammerCrusher
|
||||
- WeaponClockHammerDismantling
|
||||
|
||||
- type: entity
|
||||
parent: BaseEnchantable
|
||||
@@ -713,19 +727,28 @@
|
||||
- type: Clothing
|
||||
quickEquip: false
|
||||
slots:
|
||||
- back
|
||||
- suitStorage
|
||||
- belt
|
||||
- type: Item
|
||||
size: Normal
|
||||
shape:
|
||||
- 0,0,0,3
|
||||
- 0,0,0,4 # Теперь нельзя носить в сумке.
|
||||
- type: Wieldable
|
||||
- type: CultWeapon
|
||||
cult: Veil
|
||||
- type: CultEquipment
|
||||
cult: Veil
|
||||
- type: EmbeddableProjectile
|
||||
sound: /Audio/Weapons/star_hit.ogg
|
||||
offset: -0.15,0.0
|
||||
removalTime: 3
|
||||
- type: MeleeWeapon
|
||||
wideAnimationRotation: -135
|
||||
range: 2
|
||||
damage:
|
||||
types:
|
||||
Piercing: 15
|
||||
Piercing: 10
|
||||
angle: 0
|
||||
animation: WeaponArcThrust
|
||||
soundHit:
|
||||
@@ -734,11 +757,11 @@
|
||||
# resistanceBypassPercentage: 0.4 # for future
|
||||
damage:
|
||||
types:
|
||||
Piercing: 50
|
||||
Piercing: 35
|
||||
- type: IncreaseDamageOnWield
|
||||
damage:
|
||||
types:
|
||||
Piercing: 10
|
||||
Piercing: 15
|
||||
- type: Enchantable
|
||||
enchants:
|
||||
- WeaponRatvarianSpearElectricalTouch
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
При нажатии на дверь, стеклянную дверь или шкаф открывает их, снимая доступы, действует как ЕМАГ. Работает через удар на ЛКМ.
|
||||
|
||||
- [bold]Излечивание:[/bold]
|
||||
Позволяет лечить собратьев-Праведников, себя и конструктов Ратвара. Работает через взаймодействие.
|
||||
Позволяет лечить собратьев-Праведников, себя и конструктов Ратвара. Работает через удар.
|
||||
|
||||
- [bold]Сокрытие шестерней:[/bold]
|
||||
Маскирует постройки праведников, делая их невидимыми. Работает через использование в руках. Имеет 2 заряда
|
||||
@@ -65,6 +65,9 @@
|
||||
|
||||
- [bold]Крушитель:[/bold]
|
||||
После удара (необходимо держать молот в обеих руках) гарантированно останется перелом. Также повышает урон при ударе на 40 единиц.
|
||||
|
||||
- [bold]Демонтаж:[/bold]
|
||||
При ударе (необходимо держать молот в обеих руках) структурный урон молота повышается на 800 единиц, работает 1 раз.
|
||||
|
||||
- [bold]Отдача:[/bold]
|
||||
После удара (необходимо держать молот в обеих руках) отбросит противника на небольшое расстояние. Работает несколько раз.
|
||||
@@ -90,8 +93,8 @@
|
||||
- [bold]Защитные пластины:[/bold]
|
||||
Укрепляет пластины у Кирасы на 12 секунд, повышая её защиту по всем показателям.
|
||||
|
||||
- [bold]Вспышка:[/bold]
|
||||
Испускает белое свечение, что ослепляет заблудших. Не действует на праведников и боргов.
|
||||
- [bold]Дымовая завеса:[/bold]
|
||||
При использовании создаётся дымка (75% - на 3 секунды, 25% - на 10.).
|
||||
|
||||
- [bold]Северная Звезда:[/bold]
|
||||
После активации наделяет перчатки эффектом Кулака Полярной Звезды, троекратно повышая скорость атаки кулаками/когтями. Эффект длится 6 секунд.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 451 B |
Binary file not shown.
|
After Width: | Height: | Size: 560 B |
@@ -27,10 +27,17 @@
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "crusher"
|
||||
"name": "equipped-BACK",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "knockback"
|
||||
"name": "crusher"
|
||||
},
|
||||
{
|
||||
"name": "dismantling"
|
||||
},
|
||||
{
|
||||
"name": "knockback"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
@@ -14,6 +14,14 @@
|
||||
"name": "equipped-BELT",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "equipped-SUITSTORAGE",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "equipped-BACK",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 567 B |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 567 B |
@@ -14,6 +14,14 @@
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "equipped-SUITSTORAGE",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "equipped-BACK",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
|
||||
Reference in New Issue
Block a user