finish shadow step
This commit is contained in:
@@ -89,6 +89,7 @@ public partial class CP14SharedMagicSystem : EntitySystem
|
||||
{
|
||||
BreakOnMove = delayedEffect.BreakOnMove,
|
||||
BreakOnDamage = delayedEffect.BreakOnDamage,
|
||||
Hidden = delayedEffect.Hidden,
|
||||
BlockDuplicate = true,
|
||||
};
|
||||
|
||||
@@ -126,6 +127,7 @@ public partial class CP14SharedMagicSystem : EntitySystem
|
||||
{
|
||||
BreakOnMove = delayedEffect.BreakOnMove,
|
||||
BreakOnDamage = delayedEffect.BreakOnDamage,
|
||||
Hidden = delayedEffect.Hidden,
|
||||
BlockDuplicate = true,
|
||||
};
|
||||
|
||||
@@ -158,6 +160,7 @@ public partial class CP14SharedMagicSystem : EntitySystem
|
||||
{
|
||||
BreakOnMove = delayedEffect.BreakOnMove,
|
||||
BreakOnDamage = delayedEffect.BreakOnDamage,
|
||||
Hidden = delayedEffect.Hidden,
|
||||
BlockDuplicate = true,
|
||||
};
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@ public sealed partial class CP14DelayedWorldTargetActionEvent : WorldTargetActio
|
||||
|
||||
[DataField]
|
||||
public bool BreakOnDamage { get; private set; } = true;
|
||||
|
||||
[DataField]
|
||||
public bool Hidden { get; private set; } = false;
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
@@ -38,6 +41,9 @@ public sealed partial class CP14DelayedEntityTargetActionEvent : EntityTargetAct
|
||||
|
||||
[DataField]
|
||||
public bool BreakOnDamage { get; private set; } = true;
|
||||
|
||||
[DataField]
|
||||
public bool Hidden { get; private set; } = false;
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
@@ -56,6 +62,9 @@ public sealed partial class CP14DelayedInstantActionEvent : InstantActionEvent,
|
||||
|
||||
[DataField]
|
||||
public bool BreakOnDamage { get; private set; } = true;
|
||||
|
||||
[DataField]
|
||||
public bool Hidden { get; private set; } = false;
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
|
||||
@@ -10,4 +10,6 @@ public interface ICP14DelayedMagicEffect // The speak n spell interface
|
||||
public bool BreakOnMove { get; }
|
||||
|
||||
public bool BreakOnDamage { get; }
|
||||
|
||||
public bool Hidden{ get; }
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
@@ -5,6 +7,9 @@ namespace Content.Shared._CP14.MagicSpell.Spells;
|
||||
|
||||
public sealed partial class CP14SpellCasterTeleport : CP14SpellEffect
|
||||
{
|
||||
[DataField]
|
||||
public bool NeedVision = true;
|
||||
|
||||
public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args)
|
||||
{
|
||||
EntityCoordinates? targetPoint = null;
|
||||
@@ -17,6 +22,15 @@ public sealed partial class CP14SpellCasterTeleport : CP14SpellEffect
|
||||
return;
|
||||
|
||||
var transform = entManager.System<SharedTransformSystem>();
|
||||
var examine = entManager.System<ExamineSystemShared>();
|
||||
var popup = entManager.System<SharedPopupSystem>();
|
||||
|
||||
if (NeedVision && !examine.InRangeUnOccluded(args.User.Value, targetPoint.Value))
|
||||
{
|
||||
// can only dash if the destination is visible on screen
|
||||
popup.PopupEntity(Loc.GetString("dash-ability-cant-see"), args.User.Value, args.User.Value);
|
||||
return;
|
||||
}
|
||||
|
||||
transform.SetCoordinates(args.User.Value, targetPoint.Value);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.MagicSpell.Spells;
|
||||
|
||||
public sealed partial class CP14SpellSpawnEntity : CP14SpellEffect
|
||||
public sealed partial class CP14SpellSpawnEntityOnTarget : CP14SpellEffect
|
||||
{
|
||||
[DataField]
|
||||
public List<EntProtoId> Spawns = new();
|
||||
@@ -0,0 +1,21 @@
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._CP14.MagicSpell.Spells;
|
||||
|
||||
public sealed partial class CP14SpellSpawnEntityOnUser : CP14SpellEffect
|
||||
{
|
||||
[DataField]
|
||||
public List<EntProtoId> Spawns = new();
|
||||
|
||||
public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args)
|
||||
{
|
||||
if (args.User is null || !entManager.TryGetComponent<TransformComponent>(args.User.Value, out var transformComponent))
|
||||
return;
|
||||
|
||||
foreach (var spawn in Spawns)
|
||||
{
|
||||
entManager.SpawnAtPosition(spawn, transformComponent.Coordinates);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,11 +6,11 @@
|
||||
- type: CP14MagicEffect
|
||||
manaCost: 15
|
||||
telegraphyEffects:
|
||||
- !type:CP14SpellSpawnEntity
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectCureWounds
|
||||
effects:
|
||||
- !type:CP14SpellSpawnEntity
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectCureWounds
|
||||
- !type:CP14SpellApplyEntityEffect
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
- type: CP14MagicEffect
|
||||
manaCost: 5
|
||||
effects:
|
||||
- !type:CP14SpellSpawnEntity
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectFlameCreation
|
||||
- !type:CP14SpellSpawnInHandEntity
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
- type: CP14MagicEffect
|
||||
manaCost: 15
|
||||
effects:
|
||||
- !type:CP14SpellSpawnEntity
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectIceDagger
|
||||
- !type:CP14SpellSpawnInHandEntity
|
||||
|
||||
@@ -1,26 +1,24 @@
|
||||
- type: entity
|
||||
id: CP14ActionSpellShadowStep
|
||||
name: Shadow step
|
||||
description: A step through the gash of reality that allows you to cover a lot of distance quickly
|
||||
description: A step through the gash of reality that allows you to cover a small of distance quickly
|
||||
components:
|
||||
- type: CP14MagicEffect
|
||||
manaCost: 40
|
||||
manaCost: 20
|
||||
telegraphyEffects:
|
||||
- !type:CP14SpellSpawnEntity
|
||||
- !type:CP14SpellSpawnEntityOnTarget
|
||||
spawns:
|
||||
- CP14ImpactEffectShadowStep
|
||||
- !type:CP14SpellSpawnEntityOnUser
|
||||
spawns:
|
||||
- CP14ImpactEffectShadowStep
|
||||
effects:
|
||||
- !type:CP14SpellSpawnEntity
|
||||
spawns:
|
||||
- CP14ImpactEffectShadowStep
|
||||
- !type:CP14SpellCasterTeleport
|
||||
- type: CP14MagicEffectVerbalAspect
|
||||
startSpeech: "Tenebrae, accipe me..."
|
||||
endSpeech: "in alium locum"
|
||||
- type: CP14MagicEffectSomaticAspect
|
||||
- type: WorldTargetAction
|
||||
useDelay: 15
|
||||
range: 10
|
||||
checkCanAccess: false
|
||||
useDelay: 10
|
||||
range: 7
|
||||
checkCanAccess: true
|
||||
itemIconStyle: BigAction
|
||||
sound: !type:SoundPathSpecifier
|
||||
path: /Audio/Magic/rumble.ogg
|
||||
@@ -29,6 +27,7 @@
|
||||
state: shadow_step
|
||||
event: !type:CP14DelayedWorldTargetActionEvent
|
||||
delay: 1
|
||||
hidden: true
|
||||
|
||||
- type: entity
|
||||
id: CP14ImpactEffectShadowStep
|
||||
@@ -37,6 +36,5 @@
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: particles_up
|
||||
color: "#79b330"
|
||||
shader: unshaded
|
||||
- state: wave_up
|
||||
color: "#5e427e"
|
||||
@@ -63,4 +63,22 @@
|
||||
- type: CP14SpellStorageAccessWearing
|
||||
- type: CP14SpellStorage
|
||||
spells:
|
||||
- CP14ActionSpellCureWounds
|
||||
- CP14ActionSpellCureWounds
|
||||
|
||||
- type: entity
|
||||
id: CP14ClothingRingShadowStep
|
||||
parent: CP14ClothingRingBase
|
||||
name: conductive ring
|
||||
description: A standard mana-conductive ring that allows the user to step throught shadows.
|
||||
suffix: Shadow step
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: brass_ring
|
||||
- state: emerald_stone_small
|
||||
- type: CP14SpellStorageRequireAttune
|
||||
- type: CP14MagicAttuningItem
|
||||
- type: CP14SpellStorageAccessWearing
|
||||
- type: CP14SpellStorage
|
||||
spells:
|
||||
- CP14ActionSpellShadowStep
|
||||
@@ -21,6 +21,21 @@
|
||||
0.2
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "wave_up",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
Reference in New Issue
Block a user