diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellResurrection.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellResurrection.cs new file mode 100644 index 0000000000..272968e4be --- /dev/null +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellResurrection.cs @@ -0,0 +1,25 @@ +using Content.Shared.EntityEffects; +using Content.Shared.Mind; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Systems; + +namespace Content.Shared._CP14.MagicSpell.Spells; + +public sealed partial class CP14SpellResurrectionEffect : CP14SpellEffect +{ + [DataField(required: true, serverOnly: true)] + public List Effects = new(); + + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) + { + if (args.Target is null) + return; + + var targetEntity = args.Target.Value; + + var mobState = entManager.System(); + + if (mobState.IsDead(targetEntity)) + mobState.ChangeMobState(targetEntity, MobState.Critical); + } +} diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14ThrowToUser.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowToUser.cs similarity index 100% rename from Content.Shared/_CP14/MagicSpell/Spells/CP14ThrowToUser.cs rename to Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowToUser.cs diff --git a/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl b/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl index f74e1399c3..fb43c247a9 100644 --- a/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl +++ b/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl @@ -6,6 +6,7 @@ cp14-magic-type-light-darkness = Light and darkness cp14-magic-type-meta = Metamagic cp14-magic-type-gate = Gate cp14-magic-type-movement = Movement +cp14-magic-type-necro = Necromancy cp14-magic-manacost = Manacost cp14-magic-magic-type = Magic type diff --git a/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl b/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl index 0fe2218a30..fe1b308257 100644 --- a/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl +++ b/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl @@ -6,6 +6,7 @@ cp14-magic-type-light-darkness = Свет и тьма cp14-magic-type-meta = Метамагия cp14-magic-type-gate = Пространство cp14-magic-type-movement = Движение +cp14-magic-type-necro = Некромантия cp14-magic-manacost = Затраты маны cp14-magic-magic-type = Тип магии diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml index 735506ffb9..77ddb91e6a 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml @@ -29,11 +29,10 @@ Cold: -10 Heat: -10 Shock: -10 - Asphyxiation: -50 - Bloodloss: -10 - !type:Jitter - !type:ModifyBleedAmount - !type:ModifyBloodLevel + amount: 5 - type: CP14MagicEffectVerbalAspect startSpeech: "Et curabuntur..." endSpeech: "vulnera tua" diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml new file mode 100644 index 0000000000..cec0191ddf --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml @@ -0,0 +1,91 @@ +- type: entity + id: CP14ActionSpellResurrection + name: Resurrection + description: You're trying to put the soul back into the body. + components: + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.2 + - type: CP14MagicEffect + magicType: Necromancy + manaCost: 100 + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectResurrection + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectResurrection + - !type:CP14SpellResurrectionEffect + - !type:CP14SpellApplyEntityEffect + effects: + - !type:ChemVomit + probability: 0.25 + - !type:Emote + showInChat: false + emote: Cough + probability: 0.3 + - !type:HealthChange + damage: + types: + Asphyxiation: -50 + Bloodloss: -10 + - !type:Jitter + - type: CP14MagicEffectVerbalAspect + startSpeech: "Redi animam meam..." + endSpeech: "Eu rezei por ti" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneResurrection + - type: EntityTargetAction + whitelist: + components: + - MobState + range: 7 + itemIconStyle: BigAction + interactOnMiss: false + canTargetSelf: false + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: resurrection + event: !type:CP14DelayedEntityTargetActionEvent + cooldown: 300 + castDelay: 10 + breakOnMove: true + +- type: entity + id: CP14RuneResurrection + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#328643" + - type: Sprite + layers: + - state: sun + color: "#366357" + shader: unshaded + - state: medium_circle + color: "#55877a" + shader: unshaded + +- type: entity + id: CP14ImpactEffectResurrection + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: wave_up + color: "#55877a" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollNecromancy + id: CP14SpellScrollResurrection + name: resurrection spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellResurrection \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml index 7d24b2ff80..9da69237b6 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml @@ -146,6 +146,18 @@ shader: unshaded color: "#63ceff" +- type: entity + abstract: true + id: CP14BaseSpellScrollNecromancy + parent: CP14BaseSpellScroll + components: + - type: Sprite + layers: + - state: paper_filled + - state: magic + shader: unshaded + color: "#55877a" + - type: entity abstract: true id: CP14BaseSpellScrollWater diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml index 7f0b1a039a..f54b4debbe 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml @@ -89,6 +89,7 @@ - id: CP14ClothingRingManaGift - id: CP14ClothingRingSphereOfLight - id: CP14ClothingRingFlashLight + - id: CP14SpellScrollResurrection - !type:GroupSelector children: - id: CP14ClothingCloakArmoredRed diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml index 8418206c21..6a342dc656 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml @@ -44,6 +44,7 @@ - type: CP14SpellStorage spells: - CP14ActionSpellCureWounds + - CP14ActionSpellResurrection #- type: CP14MagicManacostModify # modifiers: # Healing: 1.1 diff --git a/Resources/Prototypes/_CP14/MagicTypes/magic.yml b/Resources/Prototypes/_CP14/MagicTypes/magic.yml index 0f22125c60..9aa4acb852 100644 --- a/Resources/Prototypes/_CP14/MagicTypes/magic.yml +++ b/Resources/Prototypes/_CP14/MagicTypes/magic.yml @@ -36,4 +36,9 @@ - type: magicType id: Water name: cp14-magic-type-water - color: "#1c94d9" \ No newline at end of file + color: "#1c94d9" + +- type: magicType + id: Necromancy + name: cp14-magic-type-necro + color: "#55877a" \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Reagents/basic-effects.yml b/Resources/Prototypes/_CP14/Reagents/basic-effects.yml index 764beb2473..9b1b95c622 100644 --- a/Resources/Prototypes/_CP14/Reagents/basic-effects.yml +++ b/Resources/Prototypes/_CP14/Reagents/basic-effects.yml @@ -212,7 +212,7 @@ Medicine: effects: - !type:Emote - showInChat: true + showInChat: false emote: Cough probability: 0.3 diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json index 66981a14e9..20af02057e 100644 --- a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json +++ b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CLA", - "copyright": "Created by .kreks., mana_gift by TheShuEd", + "copyright": "Created by .kreks., mana_gift and resurrection by TheShuEd", "states": [ { "name": "cure_wounds" @@ -31,6 +31,9 @@ { "name": "mana_gift" }, + { + "name": "resurrection" + }, { "name": "shadow_grab" }, diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/resurrection.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/resurrection.png new file mode 100644 index 0000000000..aece08cdfe Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/resurrection.png differ