From 6f0bb473d2003657edf2ee0a1b94008de5ddea56 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sun, 10 Nov 2024 19:17:04 +0300 Subject: [PATCH] Simple resurrection spell (#575) * resurrection spell * Update spawners.yml --- .../Spells/CP14SpellResurrection.cs | 25 +++++ ...ThrowToUser.cs => CP14SpellThrowToUser.cs} | 0 .../Locale/en-US/_CP14/magicTypes/magic.ftl | 1 + .../Locale/ru-RU/_CP14/magicTypes/magic.ftl | 1 + .../Actions/Spells/Healing/T1_cure_wounds.yml | 3 +- .../Spells/Necromancy/T1_resurrection.yml | 91 ++++++++++++++++++ .../_CP14/Entities/Actions/Spells/scrolls.yml | 12 +++ .../Markers/Spawners/Random/Loot/spawners.yml | 1 + .../Objects/Weapons/Magic/twoHandedStaffs.yml | 1 + .../Prototypes/_CP14/MagicTypes/magic.yml | 7 +- .../_CP14/Reagents/basic-effects.yml | 2 +- .../Effects/Magic/spells_icons.rsi/meta.json | 5 +- .../Magic/spells_icons.rsi/resurrection.png | Bin 0 -> 407 bytes 13 files changed, 144 insertions(+), 5 deletions(-) create mode 100644 Content.Shared/_CP14/MagicSpell/Spells/CP14SpellResurrection.cs rename Content.Shared/_CP14/MagicSpell/Spells/{CP14ThrowToUser.cs => CP14SpellThrowToUser.cs} (100%) create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml create mode 100644 Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/resurrection.png 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 0000000000000000000000000000000000000000..aece08cdfe463a3b5bcf5e4f8459ae579067e063 GIT binary patch literal 407 zcmV;I0cie-P)Px$QAtEWR9J;$U>FX-w79f>$Xd=sEr$#UphnOScnC0)tI@Q$w4PCctwBo5g5lZm zV+YAKhoTVp|KL{xCHff{Cv4c`t77U+Wes}nI z^9$JtkZcDaJA&cE-vi`YJ_;BZC@6?v1rP%RYMnr8bdco$N=rY24nQtskS)R206{O5 zh;eYO0cHnA0cMA%+YdJ~FhI(Rr`r!VN@-bOwVZ*0$V7-9C8u&*G4!EVPB1lQldJz@ zQ%{luV2KYs8i;WSp~Og1HYC;|=(%OIs2&CQ001h*t`@37iQE7H002ovPDHLkV1jTL Bp%4H7 literal 0 HcmV?d00001