Skip to content

Commit

Permalink
Add Aqua Mage line from JoaFM
Browse files Browse the repository at this point in the history
  • Loading branch information
babaissarkar committed Jan 6, 2025
1 parent 053b611 commit d5c09d2
Show file tree
Hide file tree
Showing 29 changed files with 585 additions and 0 deletions.
9 changes: 9 additions & 0 deletions campaign.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
type_electric= _ "type^electric"
type_energy= _ "type^energy"
type_natural= _ "type^natural"
type_light= _ "type^light"
type_water= _ "type^water"
special_note_type_electric= "This unit has an electric attack which behaves differently from the <i>fire</i> damage type."
special_note_type_energy= "This unit has an energy attack which behaves differently from the <i>arcane</i> damage type."
[/language]
Expand Down Expand Up @@ -43,6 +45,13 @@
id="natural"
default="(arcane+10)"
[/resistance_defaults]

[resistance_defaults]
# if the enemy is weak to either cold or impact they will be hurt.
id="water"
default="((cold+impact)/2)"
[/resistance_defaults]

# load units
{~add-ons/War_of_Legends/units}
[/units]
Expand Down
Binary file added images/attacks/fog-blue-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/portraits/human-initiate-aqua+female.webp
Binary file not shown.
Binary file added images/portraits/human-mage-aqua+female.webp
Binary file not shown.
Binary file added images/portraits/human-mage-frost+female.webp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/units/human-magi/aqua-initiate+female.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/units/human-magi/aqua-mage+female.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/units/human-magi/frost-mage+female.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 42 additions & 0 deletions macros/animations-aqua-mage.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#textdomain wesnoth-War_of_Legends

#define AQUA_BLAST OFFSET_X OFFSET_Y
magic_missile_start_time=-750

magic_missile_trail_1_start_time=-350
magic_missile_trail_2_start_time=-350
magic_missile_trail_3_start_time=-350

[magic_missile_frame]
duration=400
halo=halo/mage-halo[1~5].png~BLEND(0,0,255,0.4)
halo_x={OFFSET_X}~0
halo_y={OFFSET_Y}~-54
offset=0.001~-0.083,-0.083~-0.25,-0.25~-0.5
[/magic_missile_frame]
[magic_missile_frame]
duration=350
halo=halo/mage-halo[1~5].png~BLEND(0,0,255,0.4)
halo_y=-54~-45,-45~-27,-27~0
offset=-0.5~-0.25,-0.25~0.25,0.25~1.0
[/magic_missile_frame]

[magic_missile_trail_1_frame]
duration=350
halo=misc/blank-hex.png~BLEND(0,0,255,0.4):40,halo/mage-preparation-halo[1~7].png~BLEND(0,0,255,0.4)
halo_y=-54:40,-54~-45,-45~-27,-27~0
offset=0.001:40,-0.5~-0.25,-0.25~0.25,0.25~1.0
[/magic_missile_trail_1_frame]
[magic_missile_trail_2_frame]
duration=350
halo=misc/blank-hex.png~BLEND(0,0,255,0.4):80,halo/mage-preparation-halo[1~7].png~BLEND(0,0,255,0.4)
halo_y=-54:80,-54~-45,-45~-27,-27~0
offset=0.001:80,-0.5~-0.25,-0.25~0.25,0.25~1.0
[/magic_missile_trail_2_frame]
[magic_missile_trail_3_frame]
duration=350
halo=misc/blank-hex.png~BLEND(0,0,255,0.4):120,halo/mage-preparation-halo[1~7].png~BLEND(0,0,255,0.4)
halo_y=-54:120,-54~-45,-45~-27,-27~0
offset=0.001:120,-0.5~-0.25,-0.25~0.25,0.25~1.0
[/magic_missile_trail_3_frame]
#enddef
145 changes: 145 additions & 0 deletions macros/specials-aqua-mage.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
#textdomain wesnoth-War_of_Legends

#define FROZEN_EVENTS

## frozen status icon and description
[event]
name=preload
first_time_only=no
[lua]
code=<<
local old_unit_status = wesnoth.interface.game_display.unit_status
function wesnoth.interface.game_display.unit_status()
local u = wesnoth.interface.get_displayed_unit()
if not u then return {} end
local s = old_unit_status()
if u.status.frozen then
table.insert(s, { "element", {
image = "icons/profiles/cold.png",
tooltip = "<b>frozen</b>: This unit is frozen. Its movement points are reduced by 3, and it loses 4 hp each turn unless healed in a village."
} })
end
return s
end
>>
[/lua]
[/event]

## freeze unit when hit with the special
[event]
name = attacker hits
first_time_only = no

[filter_attack]
special_id = "freezes"
[/filter_attack]

# Freeze only if unit not already frozen
[if]
[variable]
name = second_unit.status.frozen
boolean_equals = no
[/variable]
[then]
[modify_unit]
[filter]
id=$second_unit.id
[/filter]
max_moves=$($second_unit.max_moves - 3)
moves=$($second_unit.moves - 3)
[status]
frozen=yes
[/status]
[object]
id = "freeze_overlay"
[effect]
apply_to="overlay"
add="misc/cold-overlay.png"
[/effect]
[/object]
[/modify_unit]
[floating_text]
[filter]
id=$second_unit.id
[/filter]
text="<span color='#0000ff'>" + _ "frozen" + "</span>"
[/floating_text]
[/then]
[/if]
[/event]

## frost damage at turn start
[event]
name=new turn
first_time_only = no
[store_unit]
[filter]
status=frozen
[/filter]
variable="frozen_units"
kill=no
[/store_unit]

[foreach]
array=frozen_units
[do]
[if]
[have_unit]
id=$this_item.id
[filter_location]
terrain = "*^V*" # Unit on village, remove frozen
[/filter_location]
[/have_unit]
# Unfreeze
[then]
[modify_unit]
[filter]
id=$this_item.id
[/filter]
max_moves=$($this_item.max_moves + 3)
[status]
frozen=no
[/status]
[/modify_unit]
[remove_object]
id = $this_item.id
object_id = "freeze_overlay"
[/remove_object]
[floating_text]
[filter]
id=$this_item.id
[/filter]
text="<span color='#0000ff'>" + _ "unfrozen" + "</span>"
[/floating_text]
[/then]
[else]
[harm_unit]
[filter]
id=$this_item.id
[and]
[not]
[filter_location]
terrain = "*^V*" # Unit on village, remove frozen
[/filter_location]
[/not]
[/and]
[/filter]
amount=4
kill=no
[/harm_unit]
[/else]
[/if]
[/do]
[/foreach]
[/event]

#enddef

#define WEAPON_SPECIAL_FREEZES
[freezes]
id="freezes"
name= _ "freezes"
description= _ "Freezes the opponent. This reduces their movement point by 3 and the unit loses 4 hp each turn due to being frozen unless healed in a village."
special_note= _ "This unit can freeze the opponent, reducing their movement point by 3. The unit loses 4 hp each turn unless healed in a village."
[/freezes]
#enddef
9 changes: 9 additions & 0 deletions macros/wol-resource-tags.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,9 @@
{ABILITY_DISENGAGE_EVENTS}
# Steelhive
{ABILITY_STEELHIVE_EVENTS}

# Aqua Mage freezes
{FROZEN_EVENTS}
[/resource]

# individual resources
Expand All @@ -188,6 +191,12 @@
{TERRAIN_LINK_GLOBAL_EVENTS}
[/resource]

[resource]
id=WOL_resource_events_freezes

{FROZEN_EVENTS}
[/resource]

[resource]
id=WOL_resource_abilities_events_radiance

Expand Down
101 changes: 101 additions & 0 deletions units/human-mages/Aqua_Initiate.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#textdomain wesnoth-War_of_Legends
[unit_type]
id=Aqua Initiate
# wmllint: general spelling mage mages magery magecraft
race=human
gender=female
hitpoints=33
movement_type=smallfoot
movement=5
experience=52
level=1
alignment=lawful
advances_to=Aqua Mage
cost=20
usage=mixed fighter
description= _ "Some people show an unusual affinity to water and ice, and the corresponding magic, a trait hitherto thought to be found only in merfolk. The results can be astounding, provided they pursue their abilities. This affinity to water magic also grants them higher mobility in water."

name= _ "female^Aqua Initiate"
gender=female
image="units/human-magi/aqua-initiate+female.png"
profile="portraits/human-initiate-aqua+female.webp"
die_sound={SOUND_LIST:HUMAN_FEMALE_DIE}
{DEFENSE_ANIM "units/human-magi/aqua-initiate+female-defend.png" "units/human-magi/aqua-initiate+female.png" {SOUND_LIST:HUMAN_FEMALE_HIT} }


[movement_costs]
deep_water=2
shallow_water=1
swamp_water=2
frozen=2
[/movement_costs]
[defense]
deep_water=60
shallow_water=50
reef=40
swamp_water=60
hills=50
mountains=50
frozen=70
[/defense]
[resistance]
cold=30
arcane=50
fire=90
electric=140
water=10
[/resistance]
[attack]
name=quarterstaff
description=_"quarterstaff"
icon=attacks/quarterstaff.png
type=impact
range=melee
damage=5
number=3
[/attack]
[attack]
name=aquablast
description=_"aqua blast"
icon=attacks/waterspray.png
type=water
range=ranged
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
damage=6
number=4
[/attack]
[attack_anim]
[filter_attack]
name=aquablast
[/filter_attack]

start_time=-420

{MERMAID_WATER_BLAST_HALO}
{MAGIC_MISSILE 11 -20}
{MERMAID_STAFF_FLARE 16 -12}

[frame]
image="units/human-magi/aqua-initiate+female-attack-magic[1,2,1].png:[100,700,200]"
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=quarterstaff
[/filter_attack]
[frame]
image="units/human-magi/aqua-initiate+female.png:50"
[/frame]
[frame]
image="units/human-magi/aqua-initiate+female-attack-staff[1~2].png:[100,200]"
[/frame]
[frame]
image="units/human-magi/aqua-initiate+female-attack-magic1.png:50"
[/frame]
[frame]
image="units/human-magi/aqua-initiate+female.png:50"
[/frame]
[/attack_anim]
[/unit_type]
Loading

0 comments on commit d5c09d2

Please sign in to comment.