From 553f62b55030eb5eec96f9104544595548061a69 Mon Sep 17 00:00:00 2001 From: Anton Simakov <67688115+GuardianDll@users.noreply.github.com> Date: Tue, 20 Aug 2024 09:02:35 +0200 Subject: [PATCH] backport #72005, #75806 and #73582 --- data/mods/Magiclysm/Spells/animist.json | 6 +++--- data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json | 2 +- data/mods/Magiclysm/Spells/druid.json | 6 +++--- .../mutations/paraclesians/undine_mutation_spells.json | 6 +++--- data/mods/Xedra_Evolved/player/cbm_spells.json | 4 ++-- src/magic.cpp | 1 + src/magic.h | 1 + src/magic_spell_effect.cpp | 1 + 8 files changed, 15 insertions(+), 12 deletions(-) diff --git a/data/mods/Magiclysm/Spells/animist.json b/data/mods/Magiclysm/Spells/animist.json index b3808730c216d..d23ae717c7cbf 100644 --- a/data/mods/Magiclysm/Spells/animist.json +++ b/data/mods/Magiclysm/Spells/animist.json @@ -119,7 +119,7 @@ "max_range": 3, "min_aoe": 2, "max_aoe": 2, - "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ], "min_duration": 36000, "max_duration": 1080000, "duration_increment": 36000 @@ -235,7 +235,7 @@ "type": "effect_on_condition", "id": "EOC_SUMMON_ZOMBIE_SWARM", "effect": { - "switch": { "u_val": "spell_level", "spell": "summon_undead" }, + "switch": { "u_val": "spell_level", "spell": "summon_undead_swarm" }, "cases": [ { "case": 0, "effect": { "u_cast_spell": { "id": "summon_zombie_dog" } } }, { "case": 5, "effect": { "u_cast_spell": { "id": "summon_dog_skeleton" } } }, @@ -263,7 +263,7 @@ "max_range": 3, "min_aoe": 2, "max_aoe": 2, - "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "NO_CORPSE_QUIET" ], "min_duration": 36000, "max_duration": 1080000, "duration_increment": 36000 diff --git a/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json b/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json index 64c47415c813c..09cc5a8ccff83 100644 --- a/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json +++ b/data/mods/Magiclysm/Spells/attunements/Tundra_Mage.json @@ -61,7 +61,7 @@ "range_increment": 0.2, "min_aoe": 2, "max_aoe": 2, - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN", "NO_CORPSE_QUIET" ], "min_duration": 36000, "max_duration": 180000, "duration_increment": 5000 diff --git a/data/mods/Magiclysm/Spells/druid.json b/data/mods/Magiclysm/Spells/druid.json index b841f1b7d7edb..2cfd711be2cb3 100644 --- a/data/mods/Magiclysm/Spells/druid.json +++ b/data/mods/Magiclysm/Spells/druid.json @@ -236,7 +236,7 @@ "name": { "str": "Bag of Cats" }, "description": "Are you the crazy cat lady?", "valid_targets": [ "ground" ], - "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP" ], + "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP", "NO_CORPSE_QUIET" ], "min_damage": 1, "max_damage": 12, "damage_increment": 1.0, @@ -280,7 +280,7 @@ "base_energy_cost": 675, "final_energy_cost": 475, "energy_increment": -5.0, - "flags": [ "HOSTILE_50", "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS" ], + "flags": [ "HOSTILE_50", "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_CORPSE_QUIET" ], "shape": "blast", "effect": "summon", "effect_str": "mon_bear" @@ -511,7 +511,7 @@ "max_duration": 1080000, "duration_increment": 36000, "base_energy_cost": 400, - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "NO_CORPSE_QUIET" ], "shape": "blast", "effect": "summon", "effect_str": "mon_wolf" diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/undine_mutation_spells.json b/data/mods/Xedra_Evolved/mutations/paraclesians/undine_mutation_spells.json index e92fd5392cb93..92d71c4f438b9 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/undine_mutation_spells.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/undine_mutation_spells.json @@ -271,7 +271,7 @@ "energy_source": "MANA", "base_energy_cost": 50, "base_casting_time": 3000, - "flags": [ "SOMATIC", "VERBAL", "SPAWN_GROUP", "HOSTILE_50" ], + "flags": [ "SOMATIC", "VERBAL", "SPAWN_GROUP", "HOSTILE_50", "NO_CORPSE_QUIET" ], "min_duration": 36000, "max_duration": 1080000, "duration_increment": 36000, @@ -300,7 +300,7 @@ "energy_source": "MANA", "base_energy_cost": 80, "base_casting_time": 3000, - "flags": [ "SOMATIC", "VERBAL", "SPAWN_GROUP" ], + "flags": [ "SOMATIC", "VERBAL", "SPAWN_GROUP", "NO_CORPSE_QUIET" ], "min_duration": 36000, "max_duration": 1080000, "duration_increment": 36000, @@ -329,7 +329,7 @@ "energy_source": "MANA", "base_energy_cost": 400, "base_casting_time": 3000, - "flags": [ "SOMATIC", "VERBAL", "SPAWN_GROUP" ], + "flags": [ "SOMATIC", "VERBAL", "SPAWN_GROUP", "NO_CORPSE_QUIET" ], "min_duration": 36000, "max_duration": 1080000, "duration_increment": 36000 diff --git a/data/mods/Xedra_Evolved/player/cbm_spells.json b/data/mods/Xedra_Evolved/player/cbm_spells.json index 45c2f32e4fb1c..95a51f13ad661 100644 --- a/data/mods/Xedra_Evolved/player/cbm_spells.json +++ b/data/mods/Xedra_Evolved/player/cbm_spells.json @@ -5,7 +5,7 @@ "name": { "str": "Swarm of Bats" }, "description": "Are you the Bat Man?", "valid_targets": [ "ground" ], - "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP" ], + "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP", "NO_CORPSE_QUIET" ], "min_damage": 1, "max_damage": 12, "damage_increment": 1.0, @@ -31,7 +31,7 @@ "name": { "str": "Giant Bat" }, "description": "Are you the Bat Man?", "valid_targets": [ "ground" ], - "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP" ], + "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP", "NO_CORPSE_QUIET" ], "min_damage": 1, "max_damage": 3, "damage_increment": 0.1, diff --git a/src/magic.cpp b/src/magic.cpp index 8261ad2ab4ac6..d09a03f6879f4 100644 --- a/src/magic.cpp +++ b/src/magic.cpp @@ -157,6 +157,7 @@ std::string enum_to_string( spell_flag data ) case spell_flag::EXTRA_EFFECTS_FIRST: return "EXTRA_EFFECTS_FIRST"; case spell_flag::MUST_HAVE_CLASS_TO_LEARN: return "MUST_HAVE_CLASS_TO_LEARN"; case spell_flag::SPAWN_WITH_DEATH_DROPS: return "SPAWN_WITH_DEATH_DROPS"; + case spell_flag::NO_CORPSE_QUIET: return "NO_CORPSE_QUIET"; case spell_flag::NON_MAGICAL: return "NON_MAGICAL"; case spell_flag::PSIONIC: return "PSIONIC"; case spell_flag::RECHARM: return "RECHARM"; diff --git a/src/magic.h b/src/magic.h index f9493ea81c7e6..ac7f0a1126550 100644 --- a/src/magic.h +++ b/src/magic.h @@ -82,6 +82,7 @@ enum class spell_flag : int { IGNITE_FLAMMABLE, // if spell effect area has any thing flammable, a fire will be produced MUST_HAVE_CLASS_TO_LEARN, // you can't learn the spell unless you already have the class. SPAWN_WITH_DEATH_DROPS, // allow summoned monsters to drop their usual death drops + NO_CORPSE_QUIET, // allow summoned monsters to vanish/leave without leaving a corpse NON_MAGICAL, // ignores spell resistance PSIONIC, // psychic powers instead of traditional magic RECHARM, // charm_monster spell adds to duration of existing charm_monster effect diff --git a/src/magic_spell_effect.cpp b/src/magic_spell_effect.cpp index d5b2535b1880b..b531b255fb97b 100644 --- a/src/magic_spell_effect.cpp +++ b/src/magic_spell_effect.cpp @@ -1226,6 +1226,7 @@ static bool add_summoned_mon( const tripoint &pos, const time_duration &time, co spawned_mon.set_summon_time( time ); } spawned_mon.no_extra_death_drops = !sp.has_flag( spell_flag::SPAWN_WITH_DEATH_DROPS ); + spawned_mon.no_corpse_quiet = sp.has_flag( spell_flag::NO_CORPSE_QUIET ); return true; }