diff --git a/data/campaigns/Dead_Water/scenarios/08_Talking_to_Tyegea.cfg b/data/campaigns/Dead_Water/scenarios/08_Talking_to_Tyegea.cfg index 87786345db1a3..cddf8aa8a4e1c 100644 --- a/data/campaigns/Dead_Water/scenarios/08_Talking_to_Tyegea.cfg +++ b/data/campaigns/Dead_Water/scenarios/08_Talking_to_Tyegea.cfg @@ -261,7 +261,10 @@ [effect] apply_to=attack range=melee - set_type=arcane + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] [/effect] [effect] apply_to=overlay diff --git a/data/campaigns/Delfadors_Memoirs/scenarios/14_Shadows.cfg b/data/campaigns/Delfadors_Memoirs/scenarios/14_Shadows.cfg index c723d1cbae17c..833f9c6d527ec 100644 --- a/data/campaigns/Delfadors_Memoirs/scenarios/14_Shadows.cfg +++ b/data/campaigns/Delfadors_Memoirs/scenarios/14_Shadows.cfg @@ -146,9 +146,9 @@ [/gold_carryover] [/objectives] - {OBJ_POTION_HOLY 16 5 shadows_holywater1} - {OBJ_POTION_HOLY 32 5 shadows_holywater2} - {OBJ_POTION_HOLY 20 10 shadows_holywater3} + {OBJ_POTION_HOLY_ALT 16 5 shadows_holywater1} + {OBJ_POTION_HOLY_ALT 32 5 shadows_holywater2} + {OBJ_POTION_HOLY_ALT 20 10 shadows_holywater3} [/event] [event] diff --git a/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg b/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg index bfdc0d417a37f..396b2056012cb 100644 --- a/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg +++ b/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg @@ -201,9 +201,9 @@ [/note] [/objectives] - {OBJ_POTION_HOLY 26 19 showdown_holywater1} - {OBJ_POTION_HOLY 30 20 showdown_holywater2} - {OBJ_POTION_HOLY 29 20 showdown_holywater3} + {OBJ_POTION_HOLY_ALT 26 19 showdown_holywater1} + {OBJ_POTION_HOLY_ALT 30 20 showdown_holywater2} + {OBJ_POTION_HOLY_ALT 29 20 showdown_holywater3} [remove_shroud] side=1,2 diff --git a/data/campaigns/Delfadors_Memoirs/scenarios/22_Face_of_the_Enemy.cfg b/data/campaigns/Delfadors_Memoirs/scenarios/22_Face_of_the_Enemy.cfg index 8a6f1c2d87b84..ac68bf4bb29f3 100644 --- a/data/campaigns/Delfadors_Memoirs/scenarios/22_Face_of_the_Enemy.cfg +++ b/data/campaigns/Delfadors_Memoirs/scenarios/22_Face_of_the_Enemy.cfg @@ -113,7 +113,7 @@ {TURNS_RUN_OUT} {IS_LAST_SCENARIO} [/objectives] - {OBJ_POTION_HOLY 23 3 object7_holywater} + {OBJ_POTION_HOLY_ALT 23 3 object7_holywater} [/event] [event] diff --git a/data/campaigns/Eastern_Invasion/utils/items.cfg b/data/campaigns/Eastern_Invasion/utils/items.cfg index 231aee45bf8bb..02c994427f893 100644 --- a/data/campaigns/Eastern_Invasion/utils/items.cfg +++ b/data/campaigns/Eastern_Invasion/utils/items.cfg @@ -142,7 +142,10 @@ crystal_quiver #enddef [effect] apply_to=attack range=ranged - set_type=arcane + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] name=bow,crossbow,composite bow [/effect] [effect] @@ -196,7 +199,10 @@ holy_amulet_3 #enddef ( [effect] apply_to=attack - set_type=arcane + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] [/effect] [effect] apply_to=overlay diff --git a/data/campaigns/Heir_To_The_Throne/scenarios/05b_Isle_of_the_Damned.cfg b/data/campaigns/Heir_To_The_Throne/scenarios/05b_Isle_of_the_Damned.cfg index ff4847249de91..4bc1212b7333e 100644 --- a/data/campaigns/Heir_To_The_Throne/scenarios/05b_Isle_of_the_Damned.cfg +++ b/data/campaigns/Heir_To_The_Throne/scenarios/05b_Isle_of_the_Damned.cfg @@ -313,7 +313,10 @@ set_name=holy sword set_description=_ "holy sword" set_icon=attacks/sword-holy.png - set_type=arcane + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] increase_damage=1 increase_attacks=2 [/effect] diff --git a/data/campaigns/Heir_To_The_Throne/scenarios/09_The_Valley_of_Death.cfg b/data/campaigns/Heir_To_The_Throne/scenarios/09_The_Valley_of_Death.cfg index cc141acd5c0bf..19624ebadad5f 100644 --- a/data/campaigns/Heir_To_The_Throne/scenarios/09_The_Valley_of_Death.cfg +++ b/data/campaigns/Heir_To_The_Throne/scenarios/09_The_Valley_of_Death.cfg @@ -190,8 +190,8 @@ {STARTING_VILLAGES 4 6} - {OBJ_POTION_HOLY 5 23 object7_holywater} - {OBJ_POTION_HOLY 31 43 object7_holywater2} + {OBJ_POTION_HOLY_ALT 5 23 object7_holywater} + {OBJ_POTION_HOLY_ALT 31 43 object7_holywater2} [event] name=prestart @@ -270,7 +270,10 @@ set_name=holy sword set_description=_ "holy sword" set_icon=attacks/sword-holy.png - set_type=arcane + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] increase_damage=1 increase_attacks=2 [/effect] diff --git a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg index 4d20fbdd8b1e4..28f0ab60fff1d 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg @@ -285,11 +285,11 @@ {PLACE_IMAGE items/bonestack.png 34 6} # Place holy water - uses core macro to set up required pickup event as well - {OBJ_POTION_HOLY 34 26 object7_holywater} - {OBJ_POTION_HOLY 33 27 object7_holywater2} - {OBJ_POTION_HOLY 33 28 object7_holywater3} - {OBJ_POTION_HOLY 32 26 object7_holywater4} - {OBJ_POTION_HOLY 32 27 object7_holywater5} + {OBJ_POTION_HOLY_ALT 34 26 object7_holywater} + {OBJ_POTION_HOLY_ALT 33 27 object7_holywater2} + {OBJ_POTION_HOLY_ALT 33 28 object7_holywater3} + {OBJ_POTION_HOLY_ALT 32 26 object7_holywater4} + {OBJ_POTION_HOLY_ALT 32 27 object7_holywater5} [event] name=prestart diff --git a/data/campaigns/The_Rise_Of_Wesnoth/scenarios/06_Temple_in_the_Deep.cfg b/data/campaigns/The_Rise_Of_Wesnoth/scenarios/06_Temple_in_the_Deep.cfg index fd28ff2fff42b..ccc170ceff473 100644 --- a/data/campaigns/The_Rise_Of_Wesnoth/scenarios/06_Temple_in_the_Deep.cfg +++ b/data/campaigns/The_Rise_Of_Wesnoth/scenarios/06_Temple_in_the_Deep.cfg @@ -87,7 +87,7 @@ {PLACE_IMAGE (items/dragonstatue.png) 12 1} {PLACE_IMAGE "items/dragonstatue.png~FL(horiz)" 14 1} - {OBJ_POTION_HOLY 13 19 (holy_helper)} + {OBJ_POTION_HOLY_ALT 13 19 (holy_helper)} [recall] id=Burin the Lost diff --git a/data/campaigns/The_Rise_Of_Wesnoth/scenarios/17d_Cursed_Isle.cfg b/data/campaigns/The_Rise_Of_Wesnoth/scenarios/17d_Cursed_Isle.cfg index e144904e36ed8..29a7b59093973 100644 --- a/data/campaigns/The_Rise_Of_Wesnoth/scenarios/17d_Cursed_Isle.cfg +++ b/data/campaigns/The_Rise_Of_Wesnoth/scenarios/17d_Cursed_Isle.cfg @@ -200,7 +200,7 @@ {PLACE_IMAGE (scenery/temple1.png) 10 17} {PLACE_IMAGE (scenery/temple1.png) 9 15} - {OBJ_POTION_HOLY 29 24 (holy_water1)} + {OBJ_POTION_HOLY_ALT 29 24 (holy_water1)} [set_variable] name=queen_awake @@ -276,7 +276,7 @@ {CLEAR_VARIABLE random} #ifdef EASY - {OBJ_POTION_HOLY 28 26 (holy_water2)} + {OBJ_POTION_HOLY_ALT 28 26 (holy_water2)} #endif [objectives] diff --git a/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg b/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg index 1cb731532ff84..924de4e053f2d 100644 --- a/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg +++ b/data/campaigns/Under_the_Burning_Suns/scenarios/02_Across_the_Harsh_Sands.cfg @@ -1555,10 +1555,7 @@ range=melee [set_specials] mode=append - [damage] - id=arcane_damage - alternative_type=arcane - [/damage] + {WEAPON_SPECIAL_ARCANE} [/set_specials] [/effect] [/object] diff --git a/data/campaigns/World_Conquest/resources/data/artifacts.cfg b/data/campaigns/World_Conquest/resources/data/artifacts.cfg index d91e52e1f3a51..b3bc581afcdae 100644 --- a/data/campaigns/World_Conquest/resources/data/artifacts.cfg +++ b/data/campaigns/World_Conquest/resources/data/artifacts.cfg @@ -314,7 +314,10 @@ [effect] apply_to=attack range=melee - set_type=arcane + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] increase_damage=25% [/effect] [effect] diff --git a/data/campaigns/World_Conquest/resources/data/training.cfg b/data/campaigns/World_Conquest/resources/data/training.cfg index 93c7a5c028066..1576590ac55bb 100644 --- a/data/campaigns/World_Conquest/resources/data/training.cfg +++ b/data/campaigns/World_Conquest/resources/data/training.cfg @@ -769,7 +769,10 @@ [effect] apply_to=attack range={WC_STR_ID_{RANGE}} - set_type=arcane + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] increase_damage=25% [/effect] [/chance] diff --git a/data/core/macros/items.cfg b/data/core/macros/items.cfg index 561270a2c6c63..7e4b2066915c4 100644 --- a/data/core/macros/items.cfg +++ b/data/core/macros/items.cfg @@ -267,7 +267,7 @@ [/event] #enddef -#define OBJ_POTION_HOLY X Y ID +#define OBJ_POTION_HOLY_COMMON X Y ID ARCANE # Places holy water that turns the unit's melee attacks into arcane attacks. It can only be used once. {PICKUPPABLE_ITEM {ID} {X} {Y} ( side=1 @@ -290,7 +290,7 @@ [effect] apply_to=attack range=melee - set_type=arcane + {ARCANE} [/effect] [/object] [sound] @@ -299,6 +299,21 @@ )} #enddef +#define OBJ_POTION_HOLY X Y ID + {OBJ_POTION_HOLY_COMMON {X} {Y} {ID} (set_type=arcane)} +#enddef + +#define SET_WEAPON_ARCANE + [set_specials] + mode=append + {WEAPON_SPECIAL_ARCANE} + [/set_specials] +#enddef + +#define OBJ_POTION_HOLY_ALT X Y ID + {OBJ_POTION_HOLY_COMMON {X} {Y} {ID} {SET_WEAPON_ARCANE}} +#enddef + #define OBJ_POTION_STRONG X Y ID # Places a potion of strength that increases the unit's damage by 1 per strike on melee attacks. It can only be used once. [item] diff --git a/data/core/macros/weapon_specials.cfg b/data/core/macros/weapon_specials.cfg index 8a78d9e22dcbd..ed232a84a4ce3 100644 --- a/data/core/macros/weapon_specials.cfg +++ b/data/core/macros/weapon_specials.cfg @@ -201,3 +201,13 @@ special_note=_ "This unit is able to stun its enemies, disrupting their zones of control." [/stun] #enddef + +#define WEAPON_SPECIAL_ARCANE + [damage] + id=arcane_damage + name= _ "arcane" + description= _ "This attack combines the arcane type with the type of weapon used so that resistance to the arcane type does not penalize the user." + special_note=_ "This unit can use the arcane type when the opponent is particularly sensitive to it in relation to the weapon on which it is applied." + alternative_type=arcane + [/damage] +#enddef diff --git a/data/test/scenarios/manual_tests/scenario-test.cfg b/data/test/scenarios/manual_tests/scenario-test.cfg index 0c2fe0d0e2bfc..cda980349768d 100644 --- a/data/test/scenarios/manual_tests/scenario-test.cfg +++ b/data/test/scenarios/manual_tests/scenario-test.cfg @@ -2745,7 +2745,7 @@ For game purposes, the races group into factions; for example, orcs often cooper {OBJ_RING_SLOW 11 4 OBJ2} {OBJ_POTION_HEALING 12 4 OBJ3} {OBJ_POTION_POISON 13 5 OBJ4} - {OBJ_POTION_HOLY 14 4 OBJ5} + {OBJ_POTION_HOLY_ALT 14 4 OBJ5} {OBJ_POTION_STRONG 15 4 OBJ6} {OBJ_POTION_DECAY 11 5 OBJ7} {OBJ_TRIDENT_STORM 12 5 OBJ8}