Integrate special ability events into these abilities.

This had not yet been done in the mainline.
This commit is contained in:
newfrenchy83 2025-02-14 20:40:05 +01:00 committed by Pentarctagon
parent cee370683d
commit 140d0a6ea4
6 changed files with 28 additions and 38 deletions

View File

@ -243,9 +243,6 @@
icon=attacks/dark-missile.png
[/attack]
{DID_FROST_NOVA}
{DID_SOUL_REND}
{DID_SHADOW_VEIL_HANDLER}
[animation]
apply_to=pre_teleport
start_time=-1200

View File

@ -134,6 +134,7 @@
name_inactive= _ "shadow veil"
description= _ "Allied undead units within a 5 hex radius are hidden."
description_inactive= _ "Allied undead units within a 5 hex radius are hidden."
{DID_SHADOW_VEIL_HANDLER}
[/dummy]
#enddef
@ -239,6 +240,7 @@
name_inactive= _ "frost nova"
description= _ "On offense, this attack will additionally deal 70% of its damage in cold damage to all enemies adjacent to the target."
description_inactive= _ "On offense, this attack will additionally deal 70% of its damage in cold damage to all enemies adjacent to the target."
{DID_FROST_NOVA}
[/dummy]
#enddef
@ -334,6 +336,7 @@
name_inactive= _ "soul rend"
description= _ "Every turn, this unit loses 3 hitpoints, but drains 6 hitpoints from each adjacent enemy."
description_inactive= _ "Every turn, this unit loses 3 hitpoints, but drains 6 hitpoints from each adjacent enemy."
{DID_SOUL_REND}
[/dummy]
#enddef

View File

@ -148,10 +148,6 @@
name=_"And special thanks to everyone else who I forgot to mention."
[/entry]
[/about]
[load_resource]
id=utbs_ability_events
[/load_resource]
[/campaign]
#ifdef CAMPAIGN_UNDER_THE_BURNING_SUNS

View File

@ -570,7 +570,6 @@
{GARAK}
side=1
x,y=29,34
{ABILITY_TEACHING_EVENT}
[/unit]
{NAMED_GENERIC_UNIT 1 "Quenoth Fighter" 30 33 "Jorazan" ( _ "Jorazan")}

View File

@ -45,6 +45,7 @@ _ "This attack uses 6 attacks"#enddef
formula = "self.max_attacks < {X}"
[/filter_self]
active_on = offense
{WEAPON_SPECIAL_USES_ATTACKS_EVENTS}
[/disable]
#enddef
@ -112,6 +113,7 @@ _ "third verse"#enddef
# Not listed in the help.
# name = {STR_VERSE_NAME_1}
description = {STR_VERSE_RESTRICT_1}
{SONG_VERSE_EVENTS {MAX}}
[/disable]
#enddef
@ -130,6 +132,7 @@ _ "third verse"#enddef
# Not listed in the help.
# name = {STR_VERSE_NAME_{VERSE}}
description = {STR_VERSE_RESTRICT_{VERSE}}
{SONG_VERSE_EVENTS {MAX}}
[/disable]
#enddef
@ -356,6 +359,7 @@ Any units adjacent to this unit will fight as if it were dusk when it is night,
special_id=sun_incarnate
[/has_attack]
[/filter]
{SONG_VERSE_ILLUMINATES}
[/illuminates]
#enddef
@ -368,6 +372,7 @@ Any units adjacent to this unit will fight as if it were dusk when it is night,
formula = "self.wml_vars.{ATTACK_NAME}_used > 0"
[/filter_self]
active_on = offense
{WEAPON_SPECIAL_ONCE_PER_TURN_EVENTS}
[/disable]
#enddef
@ -448,6 +453,7 @@ Any units adjacent to this unit will fight as if it were dusk when it is night,
" + _ "This attack is the third verse of the Song of Sun Ascension. After using it, the first verse is available in the next turn. Furthermore, invoking this attack will grant illumination for three turns."
special_note=_ "This unit has wide-area attacks centered on the caster."
active_on = offense
{WEAPON_SPECIAL_NOVA_EVENTS}
[/dummy]
#enddef
@ -490,6 +496,7 @@ Any units adjacent to this unit will fight as if it were dusk when it is night,
" + _ "This is the second verse of the Song of Sun Ascension. It is available only when the first verse was sung in the previous turn. If this was the last verse, then the first verse will be available in the next turn."
active_on = offense
{WEAPON_SPECIAL_RAY_EVENTS}
[/dummy]
#enddef
@ -529,6 +536,7 @@ Any units adjacent to this unit will fight as if it were dusk when it is night,
[tailwind]
id = tailwind
value = {X}
{UTBS_TAILWIND_EVENTS}
[/tailwind]
#enddef
@ -784,6 +792,7 @@ A poisoned unit cannot be cured of its poison by a healer, and must seek the car
name= _ "teaching"
female_name= _ "female^teaching"
description= _ "At the start of every turn, this unit redistributes its experience points to all the units of the same side adjacent to it. If no suitable unit is adjacent, its experience just goes back to zero."
{ABILITY_TEACHING_EVENT}
[/dummy]
#enddef
@ -855,6 +864,7 @@ A poisoned unit cannot be cured of its poison by a healer, and must seek the car
female_name= _ "female^disengage"
description= _ "If this unit doesnt move before attacking, it will retain its movement points after the attack."
special_note=_"This unit can move either before or after attacking."
{ABILITY_DISENGAGE_EVENTS}
[/dummy]
#enddef
@ -867,6 +877,7 @@ A poisoned unit cannot be cured of its poison by a healer, and must seek the car
Magical attacks will still have a 70% chance to hit.
Marksman attacks are only affected if the chance to hit is greater than 60%."
special_note=_"This unit can daze its enemies, reducing their accuracy and defense until they end a turn."
{WEAPON_SPECIAL_DAZE_EVENTS}
[/dummy]
#enddef
@ -890,6 +901,7 @@ Marksman attacks are only affected if the chance to hit is greater than 60%."
name= _ "support"
female_name= _ "female^support"
description= _ "The upkeep costs of adjacent friendly units are lowered by 1."
{ABILITY_SUPPORT_EVENTS}
[/dummy]
#enddef
@ -1410,6 +1422,7 @@ Marksman attacks are only affected if the chance to hit is greater than 60%."
id = opportunist
name = _"opportunist"
description= _ "This ability makes Kaleh attack enemies with single strike of bolas when they leave his zone of control."
{ABILITY_OPPORTUNIST_EVENTS}
[/dummy]
#enddef
@ -1484,6 +1497,7 @@ Marksman attacks are only affected if the chance to hit is greater than 60%."
id = taunt
name = _"taunt"
description= _ "Taunts the enemy making them try to attack Kaleh for one turn."
{WEAPON_SPECIAL_TAUNT_EVENTS}
[/dummy]
#enddef
@ -1565,6 +1579,7 @@ _ "After using this attack, you cant use it during your next two turns."#endd
formula = "self.wml_vars.cooldown > 0"
[/filter_self]
active_on = offense
{WEAPON_SPECIAL_COOLDOWN_EVENTS {X}}
[/disable]
#enddef
@ -1614,6 +1629,7 @@ _ "After using this attack, you cant use it during your next two turns."#endd
name = _"pierce"
description= _ "This weapon, when used offensively, can also deal damage to a unit behind the target."
active_on = offense
{WEAPON_SPECIAL_PIERCE_EVENTS}
[/dummy]
#enddef
@ -1684,6 +1700,7 @@ _ "After using this attack, you cant use it during your next two turns."#endd
name = _"puncture"
description= _ "This weapon, when used offensively, can also deal damage to two units behind the target."
active_on = offense
{WEAPON_SPECIAL_PUNCTURE_EVENTS}
[/dummy]
#enddef
@ -1767,6 +1784,7 @@ _ "After using this attack, you cant use it during your next two turns."#endd
name = _"rain of arrows"
description= _ "This weapon, when used offensively, can also deal damage to a unit behind the target and all units adjacent to the unit behind the target."
active_on = offense
{WEAPON_SPECIAL_RAIN_OF_ARROWS_EVENTS}
[/dummy]
#enddef
@ -1887,6 +1905,7 @@ _ "After using this attack, you cant use it during your next two turns."#endd
id = sword_dance
name = _"sword dance"
description= _ "Every time Nym hits an enemy she gains +10% accuracy and 10% parry until the end of the combat."
{WEAPON_SPECIAL_SWORD_DANCE_EVENTS}
[/dummy]
#enddef
@ -1923,23 +1942,3 @@ _ "After using this attack, you cant use it during your next two turns."#endd
[/remove_object]
[/event]
#enddef
[resource]
id=utbs_ability_events
{UTBS_TAILWIND_EVENTS}
{WEAPON_SPECIAL_RAY_EVENTS}
{WEAPON_SPECIAL_PIERCE_EVENTS}
{WEAPON_SPECIAL_PUNCTURE_EVENTS}
{ABILITY_OPPORTUNIST_EVENTS}
{WEAPON_SPECIAL_NOVA_EVENTS}
{WEAPON_SPECIAL_USES_ATTACKS_EVENTS}
{WEAPON_SPECIAL_ONCE_PER_TURN_EVENTS}
{WEAPON_SPECIAL_RAIN_OF_ARROWS_EVENTS}
{WEAPON_SPECIAL_SWORD_DANCE_EVENTS}
{WEAPON_SPECIAL_COOLDOWN_EVENTS 2}
{WEAPON_SPECIAL_COOLDOWN_EVENTS 3}
{WEAPON_SPECIAL_TAUNT_EVENTS}
{SONG_VERSE_EVENTS 2}
{SONG_VERSE_EVENTS 3}
{SONG_VERSE_ILLUMINATES}
[/resource]

View File

@ -1,20 +1,18 @@
#textdomain wesnoth-wof
# wmllint: unbalanced-on
# wmlxgettext: [attack]
# wmlxgettext: [specials]
#define WEAPON_SPECIAL_BLAST ATTACK_NAME DAMAGE DAMAGE_TYPE
[damage]
id=blast
name= _ "blast"
name_inactive= _ "blast"
description= _ "This attack also harms everyone near the opponent."
{WEAPON_SPECIAL_BLAST_EVENT {ATTACK_NAME} {DAMAGE} {DAMAGE_TYPE}}
[/damage]
# wmlindent: start ignoring
[/specials]
[/attack]
# wmlindent: stop ignoring
#enddef
#define WEAPON_SPECIAL_BLAST_EVENT ATTACK_NAME DAMAGE DAMAGE_TYPE
[event]
id=attacker_hits_blast_event_{ATTACK_NAME}_{DAMAGE}_{DAMAGE_TYPE}
name=attacker_hits
first_time_only=no
[filter_attack]
@ -42,6 +40,7 @@
[/harm_unit]
[/event]
[event]
id=defender_hits_blast_event_{ATTACK_NAME}_{DAMAGE}_{DAMAGE_TYPE}
name=defender_hits
first_time_only=no
[filter_second_attack]
@ -68,7 +67,4 @@
animate=yes
[/harm_unit]
[/event]
[+attack] # wmlxgettext: [/attack]
[+specials] # wmlxgettext: [/specials]
#enddef
# wmllint: unbalanced-off