merge trunk 2006-12-28T17:56:12Z!koraq@xs4all.nl..2007-01-02T20:21:22Z!david@torangan.de

This commit is contained in:
Mark de Wever 2007-01-03 21:36:38 +00:00
parent 8deb5eab53
commit aa7e2e373d
265 changed files with 32718 additions and 19947 deletions

View file

@ -23,6 +23,53 @@ Version 1.3-terrain-branch: also read README.BRANCH
and no longer makes assumptions about the internal format.
Version 1.3-svn:
Concise list of player-visible changes:
* Graphics
* Item graphic improvements including an animatable campfire.
* Added visible peaks to the impassable mountains.
* Added a recruit animation for Skeleton.
* Fixed animation of gryphon units not being displayed in the center of
the hex.
* Fixed incorrect WML in some units causing female variations to use male
images.
* Improved hex grid.
* Sound
* New sound effects: morning star.
* Added an advanced sound tab to preferences, allowing one to specify the
values used for sample rate and buffer size.
* Unit changes and balancing
* New traits: healthy (+3HP, +4 rest healing), fearless (ignore unfavourable
time of day).
* Dark Adepts no longer get the 'strong' trait.
* Added the 'skirmisher' ability to the Shadow line.
* Increased the HP of the Longbowman from 45 to 51.
* Decreased the XP requirement of the Longbowman from 80 to 68.
* Increased the HP of the Master Bowman from 58 to 67.
* Increased the XP requirement of the Guardsman from 42 to 47.
* Increased the HP of the Stalwart from 48 to 54.
* Increased the XP requirement of the Stalwart from 65 to 85.
* Increased the HP of the Sentinel from 56 to 68.
* Decreased cost of the Mudcrawler from 9 to 5.
* Decreased the HP of the Shadow from 26 to 24.
* Increased the HP of the Goblin Rouser from 26 to 31.
* Increased the melee damage of the Goblin Rouser from 5-3 to 6-3.
* Multiplayer
* Maps
* New maps: The Manzivan Traps
* Revised maps: Blitz
* Map editor
* Maps can now be opened directly from a scenario file and saved back to it.
* Language and translations
* Updated translations: German, Italian.
* Fixed spelling mistakes in the default en_US language.
Detailed changelog and internal changes:
* Campaignd
* first argument is number of threads to use, defaults to 5
* campaigns
@ -44,12 +91,18 @@ Version 1.3-svn:
* added peaks to the impassable mountains
* unit art
* added a recruit animation for Skeleton
* fix gryphon not being in the center of their hex
* Fixed incorrect WML in some units causing female variations to use male
* language and i18n:
* new/updated man pages:
* updated translations: German, Italian
* fixed huge list of spelling mistakes in the en_US version
* multiplayer
* game management
* replace "Downloading next level..." by "Receiving data..."
when scenario don't have next_scenario
* replace "Downloading next level..." by "Downloading next scenario..."
* fixed controler change not sended to all client (bug #8138)
* client now tells the server if a game ended in victory or defeat
* configurable castle size for random map generator (patch #598, FR #3232)
* team names translation now supported
@ -83,6 +136,7 @@ Version 1.3-svn:
* healthy (+3HP, +4 rest healing), fearless (ignore unfavorable ToD)
* new units
* added the Armageddon Drake (not used in any mainline eras)
* added a generic macro to have a standard filter for all idle anim
* user interface
* use "Save Replay" instead of "Save Game" when asking to save a replay (bug #7256)
* fix enemy Gold show twice in debug mode in status table (bug #6895)
@ -106,6 +160,7 @@ Version 1.3-svn:
* add a friend list in MP lobby, they will display a special icon in lobby,
and you can be warned when they join the lobby even when not receiving
lobby joins
* added option to have random time of day in begin of multiplayer game
* WML engine
* added prerecruit event that takes place after the unit is created but
before it is displayed.
@ -138,7 +193,7 @@ Version 1.3-svn:
* units can now have a recruit animations that will be played on unit recruit
* units now have idle animations, played when they've been idle for some time
* units now have leveling up animations
* units can now have victory animations, usable with the WML tag 'victory_anim'
* units can now have victory animations, usable with the WML tag 'victory_anim'
* units can now have healed animations, used when they get healed
* units can now have poison animations, used when they suffer poison
damage
@ -152,11 +207,19 @@ Version 1.3-svn:
* the filtered unit can be accessed in SUF using $_filtered_unit
* the primary unit can be accessed in filter using $_primary_unit
* the secondary unit can be accessed in filter using $_secondary_unit
* added support for random_start_time in [scenario] (feature request #8024)
* extended label to support team only and colors
* gender-specific forms for trait names are now possible.
* seting a WML variable to a random value now works correctly in MP games
* sound
* add advanced sound tab to pref allowing you to play with sample_rate and buffer_size options
* misc:
* --validcache runtime switch to force assumption that cache is valid
* add two new debug command set_var and show_var to check variables within
the game easily
* better handling of SDL_ListModes return code (no user impact)
* first turn of a game is saved again (fixes bug #7909 and bug #8117)
* reduce CPU usage by removing calls to SDL_GetTicks for idle animations
Version 1.2:
* campaigns:
@ -219,7 +282,7 @@ Version 1.1.14:
* fixed glitches with impassable moutains at the edges of maps
* resolved all glitches with cave walls
* units:
* new teamcolored baseframes: Halberdier, Heavy Infanfantry, Pikeman,
* new teamcolored baseframes: Halberdier, Heavy Infanfantry, Pikeman,
Shocktrooper, Siegetrooper
* new baseframe: Yeti
* some new skulls for skeleton units
@ -234,8 +297,8 @@ Version 1.1.14:
* updated man-pages: French, German
* updated translations: Czech, Esperanto, French, Greek, Italian, Russian
* multiplayer maps:
* revised multiplayer maps: 3p Morituri, 4p Morituri, Blue Water Province,
Den of Onis, Hexcake, Isar's Cross, Merkwuerdigliebe, Meteor Lake,
* revised multiplayer maps: 3p Morituri, 4p Morituri, Blue Water Province,
Den of Onis, Hexcake, Isar's Cross, Merkwuerdigliebe, Meteor Lake,
Sablestone Delta, Sulla's Ruins
* misc:
* fixed a crash in the recall event_handler
@ -268,7 +331,7 @@ Version 1.1.13:
* added descriptions to the weapons of some campaign units to make sure they
are correctly translated
* multiplayer maps:
* revised multiplayer maps: Charge, Hamlets, Hornshark Island, Silverhead
* revised multiplayer maps: Charge, Hamlets, Hornshark Island, Silverhead
Crossing, Sulla's Ruins, 3p Morituri
* misc bugfixes:
* several minor bugs

View file

@ -296,31 +296,31 @@ paxed
[about]
title = _ "French Translation"
text = "
Aur<EFBFBD>lien Brevers (Breversa)
Aurélien Brevers (Breversa)
Arnaud Garoux (La vie en wose)
Benoit Astruc
Beno<EFBFBD>t Timbert (Noyga)
Bruno F<EFBFBD>ve (PP)
C<EFBFBD>dric Duval
Benoît Timbert (Noyga)
Bruno Fève (PP)
Cédric Duval
Damien Jacquot
DaringTremayne
Fran<EFBFBD>ois Mariage (Paquito)
Fran<EFBFBD>ois Orieux
Geoffroy Douilli<EFBFBD> (gdou)
G<EFBFBD>rard Bodin
François Mariage (Paquito)
François Orieux
Geoffroy Douillié (gdou)
Gérard Bodin
Guillaume Duwelz-Rebert
Guillaume Massart (Piou2fois)
Guillaume Melquiond (silene)
Jean Privat (Tout)
Jean-Luc Richard (Le Gnome)
Jehan Hysseo (Jey)
J<EFBFBD>r<EFBFBD>my Rosen (Boucman)
Jérémy Rosen (Boucman)
Julien Moncel
Julien Tailleur
Nicolas Boudin (Blurgk)
Philippe Plantier (Ayin)
S<EFBFBD>bastien Raynaud (Galactic turkey)
William Dupr<EFBFBD>
Sébastien Raynaud (Galactic turkey)
William Dupré
Yann Dirson
Zas
"
@ -559,7 +559,7 @@ Selim Farsakoğlu
[about]
title = _ "Valencian Translation"
text = "
Mario Rodr<EFBFBD>guez (Mavorte)
Mario Rodríguez (Mavorte)
"
[/about]
@ -583,6 +583,9 @@ Petr Sobotka (Pietro)
Stéphane Gimenez (gim)
Mark de Wever (Mordante/SkeletonCrew)
Josef Reidinger (qk)
Pauli Nieminen (coren/suokko)
Jonas Lihnell (Roze)
Miguel Zapico (elricz)
"
[/about]

View file

@ -1,311 +0,0 @@
#define DEFENSE_ANIM FRAME BASEFRAME HITSOUND
[defend]
start_time=-126
[frame]
duration=1
image={BASEFRAME}
[/frame]
[frame]
duration=100
image={FRAME}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={FRAME}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={FRAME}
[/frame]
[/else]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_FILTERED FRAME BASEFRAME HITSOUND FILTER
[defend]
start_time=-126
{FILTER}
[frame]
duration=1
image={BASEFRAME}
[/frame]
[frame]
duration=100
image={FRAME}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={FRAME}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={FRAME}
[/frame]
[/else]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_RANGE FRAME BASEFRAME HITSOUND RANGE
[defend]
start_time=-126
[attack_filter]
range={RANGE}
[/attack_filter]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[frame]
duration=100
image={FRAME}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={FRAME}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={FRAME}
[/frame]
[/else]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[/defend]
#enddef
#define MISSILE_FRAME_WAIL
[if]
direction=n,ne,nw
[missile_frame]
begin=-300
end=-230
image="projectiles/wailprojectile-n-1.png"
image_diagonal="projectiles/wailprojectile-ne-1.png"
[/missile_frame]
[missile_frame]
begin=-230
end=-160
image="projectiles/wailprojectile-n-2.png"
image_diagonal="projectiles/wailprojectile-ne-2.png"
[/missile_frame]
[missile_frame]
begin=-160
end=0
image="projectiles/wailprojectile-n-3.png"
image_diagonal="projectiles/wailprojectile-ne-3.png"
[/missile_frame]
[missile_frame]
begin=0
end=40
image="projectiles/wailprojectile-n-4.png"
image_diagonal="projectiles/wailprojectile-ne-4.png"
[/missile_frame]
[missile_frame]
begin=40
end=80
image="projectiles/wailprojectile-n-5.png"
image_diagonal="projectiles/wailprojectile-ne-5.png"
[/missile_frame]
[missile_frame]
begin=80
end=120
image="projectiles/wailprojectile-n-6.png"
image_diagonal="projectiles/wailprojectile-ne-6.png"
[/missile_frame]
[/if]
[else]
direction=s,se,sw
### The price of asymmetrical projectiles - here, we use a conditional because the game automatically flips the images for the south frame. We have a separate set of images for the south part, which are not only flipped vertically, but also have their angle corrected for the sw direction.
[missile_frame]
begin=-300
end=-230
image="projectiles/wailprojectile-s-1.png"
image_diagonal="projectiles/wailprojectile-se-1.png"
[/missile_frame]
[missile_frame]
begin=-230
end=-160
image="projectiles/wailprojectile-s-2.png"
image_diagonal="projectiles/wailprojectile-se-2.png"
[/missile_frame]
[missile_frame]
begin=-160
end=0
image="projectiles/wailprojectile-s-3.png"
image_diagonal="projectiles/wailprojectile-se-3.png"
[/missile_frame]
[missile_frame]
begin=0
end=40
image="projectiles/wailprojectile-s-4.png"
image_diagonal="projectiles/wailprojectile-se-4.png"
[/missile_frame]
[missile_frame]
begin=40
end=80
image="projectiles/wailprojectile-s-5.png"
image_diagonal="projectiles/wailprojectile-se-5.png"
[/missile_frame]
[missile_frame]
begin=80
end=120
image="projectiles/wailprojectile-s-6.png"
image_diagonal="projectiles/wailprojectile-se-6.png"
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_FIRE_BREATH N_OFFSET S_OFFSET N_DIAGONAL_OFFSET S_DIAGONAL_OFFSET
[if]
direction=n
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-n-1.png:80,projectiles/fire-breath-n-2.png:80,projectiles/fire-breath-n-3.png:80,projectiles/fire-breath-n-4.png:80,projectiles/fire-breath-n-5.png:80
halo_x,halo_y={N_OFFSET}
[/missile_frame]
[/if]
[else]
direction=s
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-s-1.png:80,projectiles/fire-breath-s-2.png:80,projectiles/fire-breath-s-3.png:80,projectiles/fire-breath-s-4.png:80,projectiles/fire-breath-s-5.png:80
halo_x,halo_y={S_OFFSET}
[/missile_frame]
[/else]
[else]
direction=ne,nw
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-ne-1.png:80,projectiles/fire-breath-ne-2.png:80,projectiles/fire-breath-ne-3.png:80,projectiles/fire-breath-ne-4.png:80,projectiles/fire-breath-ne-5.png:80
halo_x,halo_y={N_DIAGONAL_OFFSET}
[/missile_frame]
[/else]
[else]
direction=se,sw
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-se-1.png:80,projectiles/fire-breath-se-2.png:80,projectiles/fire-breath-se-3.png:80,projectiles/fire-breath-se-4.png:80,projectiles/fire-breath-se-5.png:80
halo_x,halo_y={S_DIAGONAL_OFFSET}
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_FAERIE_FIRE
[missile_frame]
begin=-500
end=-350
image="projectiles/icemissile-n-1.png"
image_diagonal="projectiles/icemissile-ne-1.png"
halo=halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:100,halo/elven/ice-halo3.png:25
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-350
end=-200
image="projectiles/icemissile-n-2.png"
image_diagonal="projectiles/icemissile-ne-2.png"
halo=halo/elven/ice-halo3.png:75,halo/elven/ice-halo4.png:75
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-200
end=-50
image="projectiles/icemissile-n-3.png"
image_diagonal="projectiles/icemissile-ne-3.png"
halo=halo/elven/ice-halo5.png:100,halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:50
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-50
end=0
image="projectiles/icemissile-n-4.png"
image_diagonal="projectiles/icemissile-ne-4.png"
halo=halo/elven/ice-halo6.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=25
end=75
image="projectiles/icemissile-n-5.png"
image_diagonal="projectiles/icemissile-ne-5.png"
halo=halo/elven/ice-halo7.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=75
end=125
image="projectiles/icemissile-n-6.png"
image_diagonal="projectiles/icemissile-ne-6.png"
halo=halo/elven/ice-halo8.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=125
end=175
image="projectiles/icemissile-n-7.png"
image_diagonal="projectiles/icemissile-ne-7.png"
halo=halo/elven/ice-halo9.png
halo_x,halo_y=0,0
[/missile_frame]
#enddef
#define MISSILE_FRAME_FIREBALL
[missile_frame]
begin=-220
end=-100
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
[/missile_frame]
[missile_frame]
begin=-100
end=25
image="projectiles/fireball-n.png"
image_diagonal="projectiles/fireball-nw.png"
[/missile_frame]
[missile_frame]
begin=25
end=80
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
[/missile_frame]
#enddef

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 941 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -133,7 +133,8 @@
#define SG_STRONG
[trait]
id=strong
name= _ "strong"
male_name= _ "strong"
female_name= _ "female^strong"
[effect]
apply_to=attack
range=melee
@ -150,7 +151,8 @@
#define SG_RESILIENT
[trait]
id=resilient
name= _ "resilient"
male_name= _ "resilient"
female_name= _ "female^resilient"
[effect]
apply_to=hitpoints
increase_total=7
@ -163,7 +165,8 @@
#define SG_QUICK
[trait]
id=quick
name= _ "quick"
male_name= _ "quick"
female_name= _ "female^quick"
[effect]
apply_to=movement
increase=1
@ -179,7 +182,8 @@
#define SG_INTELLIGENT
[trait]
id=intelligent
name= _ "intelligent"
male_name= _ "intelligent"
female_name= _ "female^intelligent"
[effect]
apply_to=max_experience
increase=-20%
@ -190,7 +194,8 @@
#define SG_LOYAL
[trait]
id=loyal
name= _ "loyal"
male_name= _ "loyal"
female_name= _ "female^loyal"
[effect]
apply_to=loyal
[/effect]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View file

@ -18,6 +18,15 @@ elves= _ "Elves"
humans= _ "Humans"
orcs= _ "Orcs"
undead= _ "race^Undead"
dwarves= _ "race^Dwarves"
goblins= _ "race^Goblins"
lizards= _ "race^Lizards"
mechanical= _ "race^Mechanical"
mermen= _ "race^Mermen"
monsters= _ "race^Monsters"
nagas= _ "race^Nagas"
ogres= _ "race^Ogres"
troll= _ "race^Troll"
#naming of terrain features
bridge_name= _ "$name's Bridge,$name's Crossing"
@ -37,4 +46,10 @@ village_name_mountain= _ "$name|ham,$name|bury,$name|ton,$name|mont,$name|mont,$
#ranges
range_melee= _ "melee"
range_ranged= _ "ranged"
#units.wesnoth.org
wesnoth_unit_list= _ "Wesnoth unit list"
based_on_version= _ "Based on version"
race= _ "Race"
advance_from= _ "Advance from"
[/language]

View file

@ -4,11 +4,7 @@
{traits.cfg}
{utils.cfg}
{sound-utils.cfg}
{animation-utils.cfg}
{utils/}
{abilities.cfg}
@ -33,103 +29,103 @@
{campaigns}
[advanced_preference]
field=compress_saves
name=_"Binary Saves"
type=boolean
default=yes
field=compress_saves
name=_"Binary Saves"
type=boolean
default=yes
[/advanced_preference]
[advanced_preference]
field=show_combat
name=_"Show Combat"
type=boolean
default=yes
field=show_combat
name=_"Show Combat"
type=boolean
default=yes
[/advanced_preference]
[advanced_preference]
field=mouse_scrolling
name=_"Mouse Scrolling"
type=boolean
default=yes
field=mouse_scrolling
name=_"Mouse Scrolling"
type=boolean
default=yes
[/advanced_preference]
[game_config]
base_income=2
village_income=1
poison_amount=8
rest_heal_amount=2
recall_cost=20
kill_experience=8
base_income=2
village_income=1
poison_amount=8
rest_heal_amount=2
recall_cost=20
kill_experience=8
title="maps/wesnoth.png"
logo="misc/logo.png"
icon="wesnoth-icon.png"
title_music="main_menu_new.ogg"
anonymous_music="main_menu_new.ogg"
victory_music="victory.ogg"
defeat_music="defeat.ogg"
title="maps/wesnoth.png"
logo="misc/logo.png"
icon="wesnoth-icon.png"
title_music="main_menu_new.ogg"
anonymous_music="main_menu_new.ogg"
victory_music="victory.ogg"
defeat_music="defeat.ogg"
buttons_x=760
buttons_y=330
buttons_padding=20
tinygui_buttons_padding=4
logo_x=292
logo_y=120
tip_x=100
tip_y=500
tip_width=495
tip_padding=20
tinygui_tip_padding=4
buttons_x=760
buttons_y=330
buttons_padding=20
tinygui_buttons_padding=4
logo_x=292
logo_y=120
tip_x=100
tip_y=500
tip_width=495
tip_padding=20
tinygui_tip_padding=4
map_image="maps/wesnoth.png"
sidebar_image="misc/rightside.png"
sidebar_image_bottom="misc/rightside-bottom.png"
map_image="maps/wesnoth.png"
sidebar_image="misc/rightside.png"
sidebar_image_bottom="misc/rightside-bottom.png"
energy_image="misc/bar-energy.png"
moved_ball_image="misc/ball-moved.png"
unmoved_ball_image="misc/ball-unmoved.png"
partmoved_ball_image="misc/ball-partmoved.png"
enemy_ball_image="misc/ball-enemy.png"
ally_ball_image="misc/ball-ally.png"
flag_image="terrain/flag-1.png:150,terrain/flag-2.png:150,terrain/flag-3.png:150,terrain/flag-4.png:150"
flag_rgb=green
energy_image="misc/bar-energy.png"
moved_ball_image="misc/ball-moved.png"
unmoved_ball_image="misc/ball-unmoved.png"
partmoved_ball_image="misc/ball-partmoved.png"
enemy_ball_image="misc/ball-enemy.png"
ally_ball_image="misc/ball-ally.png"
flag_image="terrain/flag-1.png:150,terrain/flag-2.png:150,terrain/flag-3.png:150,terrain/flag-4.png:150"
flag_rgb=green
cross_image="misc/cross.png"
dot_image="misc/dot.png"
cross_image="misc/cross.png"
dot_image="misc/dot.png"
footprint_left_nw=misc/foot-left-nw.png,misc/foot-left-nw-slow.png
footprint_left_n=misc/foot-left-n.png,misc/foot-left-n-slow.png
footprint_right_nw=misc/foot-right-nw.png,misc/foot-right-nw-slow.png
footprint_right_n=misc/foot-right-n.png,misc/foot-right-n-slow.png
footprint_left_nw=misc/foot-left-nw.png,misc/foot-left-nw-slow.png
footprint_left_n=misc/foot-left-n.png,misc/foot-left-n-slow.png
footprint_right_nw=misc/foot-right-nw.png,misc/foot-right-nw-slow.png
footprint_right_n=misc/foot-right-n.png,misc/foot-right-n-slow.png
missile_n_image=projectiles/missile-n.png
missile_ne_image=projectiles/missile-ne.png
missile_n_image=projectiles/missile-n.png
missile_ne_image=projectiles/missile-ne.png
terrain_mask_image=terrain/alphamask.png
terrain_mask_image=terrain/alphamask.png
observer_image=misc/eye.png
observer_image=misc/eye.png
download_campaign_image=""
download_campaign_image=""
level_image="misc/icon-advance.png"
level_image="misc/icon-advance.png"
ellipsis_image="misc/icon-ellipsis.png"
ellipsis_image="misc/icon-ellipsis.png"
{team-colors.cfg}
{team-colors.cfg}
[/game_config]
[textdomain]
name="wesnoth"
name="wesnoth"
[/textdomain]
[textdomain]
name="wesnoth-lib"
name="wesnoth-lib"
[/textdomain]
[textdomain]
name="wesnoth-editor"
name="wesnoth-editor"
[/textdomain]
[textdomain]
name="wesnoth-tutorial"
name="wesnoth-tutorial"
[/textdomain]
{hotkeys.cfg}
@ -139,10 +135,10 @@
#ifdef TUTORIAL
{tutorial/scenarios}
[binary_path]
path=data/tutorial
path=data/tutorial
[/binary_path]
[+units]
{tutorial/units}
{tutorial/units}
[/units]
{tutorial/units}
#endif

View file

@ -81,6 +81,11 @@
key=" "
shift=yes
[/hotkey]
[hotkey]
command=labelteamterrain
key=l
shift=yes
[/hotkey]
[hotkey]
command=labelterrain
key=l
@ -304,6 +309,11 @@
key=" "
shift=yes
[/hotkey]
[hotkey]
command=labelteamterrain
key=l
shift=yes
[/hotkey]
[hotkey]
command=labelterrain
key=l

View file

@ -34,7 +34,7 @@ name=moveto
[message]
speaker=narrator
message= _ "You can come if you wish, but the leader is only interested in speaking to Baldras."
message= "You can come if you wish, but the leader is only interested in speaking to Baldras."
[/message]
[/event]
@ -251,10 +251,10 @@ name=moveto
[/filter]
[object]
id=bleach
name= _ "Potion of bleach"
name= "Potion of bleach"
image=items/potion-red.png
duration=level
description= _ "Oooh tingly!!!"
description= "Oooh tingly!!!"
[effect]
apply_to=image_mod
add="RC(thief>blonde)"
@ -280,7 +280,7 @@ name=moveto
[message]
speaker=narrator
image=units/elves-wood/captain.png~RC(magenta>3)
message=_ "Send me a thief to spy on the blondes"
message="Send me a thief to spy on the blondes"
[/message]
[/event]

View file

@ -86,3 +86,5 @@
[/side]
[/multiplayer]
#undef SULLA_STATUE

View file

@ -14,27 +14,27 @@
canrecruit=1
controller=human
team_name=East
user_team_name= _ "teamname^East
user_team_name= _ "teamname^East"
[/side]
[side]
side=2
canrecruit=1
controller=human
team_name=West
user_team_name= _ "teamname^West
user_team_name= _ "teamname^West"
[/side]
[side]
side=3
canrecruit=1
controller=human
team_name=West
user_team_name= _ "teamname^West
user_team_name= _ "teamname^West"
[/side]
[side]
side=4
canrecruit=1
controller=human
team_name=East
user_team_name= _ "teamname^East
user_team_name= _ "teamname^East"
[/side]
[/multiplayer]

View file

@ -0,0 +1,384 @@
#define TS_MAP_DATA
W W
WWwWW WWcWW
WWwwGwcWW WWccIccWW
WWwwYTmGGccWWWccTIPIGcwWW
WWcwcwGhrGhTTcWcfGGJMJTccwwWW
WWccGcdc/rTrrLGcWctggTrrrdcwYwwWW
WcIIJTrrdccGrGkcWcghgrgggr\GhTGwW
WcIPMrggccchrcfcWccfcrcZcdcrrmGwW
WcTJTrgZsscT|cgcWcfkg|cssccTrGGcW
WcGGgrrcccfcRckcWcggRRhccchGrhTcW
Wcfghgc\RhbhRfgcWcghRfbfcTrrGLTcW
WcctgfkgRfRRgggcWcgggRRhR/cckGccW
WWcWWcccfghRgRChgcWcgfCRgRfcgfccWWcWW
WWccTccWWccgggfC2CgcWcgC3ChggkccWWccfccWW
WWwcGTLGkccWWccggCccccWccccCggccWWccgtgGTccWW
WwGGGhrGcfgccWWccgcsWWlWWscgccWWccfcfhgGJIIcW
WwTmrrGrrcckgccWWcWWWlWlWWWcWWccgggkcgrTMPIcW
WwYhrTchT\RfgggccWllllWllllWccggghRg/rgrrJGcW
WwwG|ccccchRghCgcWlWWW'WWWlWcgCfgRfRccZgrTccW
WwccrdcscfbRRC7csWWlW'1'WlWWsc4CRRbhcscgrdcwW
WwcdrgZschfRgCCccWllW'''WllWccCCgRhfcscd|cwwW
WcGTrggc/RRRgfggcWlWlWWWlWlWcgghgRRcTcccrGYwW
WcIJMrrrcgghggccWWWlWlWlWlWWWccggfc\rhGTrhTwW
WcIPJTggfkfgccWWcccWWlllWWcccWWcckgccrrrGmGwW
WccITGghgcccWWccggcscWWWcscggccWWccfkGLhGGwwW
WWccGftccWWccgghC6cgcWcgc5CfggccWWccGTTccWW
WWcccWWccgkfggCCCgcWcgCCCgghgfccWWcccWW
WWWcckfccRRRRgfgcWcghgRRRRgkcgccWWW
WcTGGcr/chbRRggcWcggRRbfRgcfhtfcW
WcTLrrhTcfhfRhgcWckfRhfhc\rgggGcW
WcGhrGccsccRggfcWcgc|cccscgrTGTcW
WcGGrTcccsc|ckccWcfcrTcscZgrMJIcW
WwGmhr\dgZgrgfgcWckcrhccdgrrJPIcW
WwwTYGcrrgrrghtcWcGGrGTc/rdTGIccW
WWwwwcdTrMTGgfcWcTLhrrrGcccccWW
WWwwcGJPJTGccWccTGGmhYwwwWW
WWccIIIccWW WWccGGTwwWW
WWcccWW WWwwwWW
WWW WWW
#enddef
#define TS_WALL_MASK_NORTH
ccc
Gcg
ccg
ggc
mhg
fgg
ccg
gkf
gkg
fcg
cWc
#enddef
#define TS_WALL_MASK_NORTH_EAST
Gc
gcccc
fmgcgg
gcghgc
fgkcgg
cckgf
Wcg
#enddef
#define TS_WALL_MASK_NORTH_WEST
cg
cccgc
Gccggg
gmhggf
fcckgg
ggkcc
fcW
#enddef
#define TS_WALL_MASK_SOUTH
W
ccc
gkf
gkg
fcg
ggc
ghf
ggm
ccg
gcc
gcG
c c
#enddef
#define TS_WALL_MASK_SOUTH_EAST
c
Wcfg
cgkkgc
gfcgfm
gghggc
gcccGc
ggc
c
#enddef
#define TS_WALL_MASK_SOUTH_WEST
c
ggcW
gfkkfc
gggcgg
gcghfc
cgccgm
cGc
c
#enddef
#define TS_CASTLE_MASK
g g
CCf fCC
gfg c gfg
gfhmg
cmfgCfgfc
gf fhCCCCChm fg
Cg ggCCKCCfg gC
Cf mfCCCCCgf fC
g chgCCCfhc g
fgfhggm
f mcf f
gCgf fgCg
Cg gC
#enddef
#define TS_OPEN_MASK_NORTH_WEST
gc
ch
#enddef
#define TS_OPEN_MASK_NORTH_EAST
ch
gc
#enddef
#define TS_OPEN_MASK_EAST
c
h
g
c
#enddef
#define TS_OPEN_MASK_SOUTH_WEST
c
gh
c
#enddef
#define TS_OPEN_MASK_SOUTH_EAST
c
gh
c
#enddef
#define TS_OPEN_MASK_WEST
c
g
h
c
#enddef
#define TS_SET_LABELS
{SET_LABEL_PERSISTANT 24 18 (_ "Turn 2: Loyalists")}
{SET_LABEL_PERSISTANT 27 20 (_ "Turn 5: Knalgans")}
{SET_LABEL_PERSISTANT 27 23 (_ "Turn 8: Rebels")}
{SET_LABEL_PERSISTANT 24 24 (_ "Turn 11: Northerners")}
{SET_LABEL_PERSISTANT 21 23 (_ "Turn 14: Drakes")}
{SET_LABEL_PERSISTANT 21 20 (_ "Turn 17: Undead")}
{SET_LABEL_PERSISTANT 24 21 (_ "Tower of Doom")}
#enddef
#define TS_OPEN_WALLS
{EARTHQUAKE (
{IF_ALLIED 7 2 ({MODIFY_TERRAIN_MASK 7 13 ("{TS_WALL_MASK_NORTH_WEST}") ()} )}
{IF_ALLIED 2 3 ({MODIFY_TERRAIN_MASK 23 6 ("{TS_WALL_MASK_NORTH}") ()} )}
{IF_ALLIED 3 4 ({MODIFY_TERRAIN_MASK 29 13 ("{TS_WALL_MASK_NORTH_EAST}") ()} )}
{IF_ALLIED 4 5 ({MODIFY_TERRAIN_MASK 29 23 ("{TS_WALL_MASK_SOUTH_EAST}") ()} )}
{IF_ALLIED 5 6 ({MODIFY_TERRAIN_MASK 23 26 ("{TS_WALL_MASK_SOUTH}") ()} )}
{IF_ALLIED 6 7 ({MODIFY_TERRAIN_MASK 7 23 ("{TS_WALL_MASK_SOUTH_WEST}") ()} )}
)}
#enddef
#define TS_BUILD_CASTLE
{EARTHQUAKE ({MODIFY_TERRAIN_MASK 17 15 ("{TS_CASTLE_MASK}") ()})}
#enddef
#define TS_OPEN_CASTLE
{EARTHQUAKE (
{IF_ALIVE 2 ({MODIFY_TERRAIN_MASK 19 16 ("{TS_OPEN_MASK_NORTH_WEST}") ()} )}
{IF_ALIVE 3 ({MODIFY_TERRAIN_MASK 25 17 ("{TS_OPEN_MASK_NORTH_EAST}") ()} )}
{IF_ALIVE 4 ({MODIFY_TERRAIN_MASK 29 20 ("{TS_OPEN_MASK_EAST}") ()} )}
{IF_ALIVE 5 ({MODIFY_TERRAIN_MASK 25 23 ("{TS_OPEN_MASK_SOUTH_EAST}") ()} )}
{IF_ALIVE 6 ({MODIFY_TERRAIN_MASK 19 23 ("{TS_OPEN_MASK_SOUTH_WEST}") ()} )}
{IF_ALIVE 7 ({MODIFY_TERRAIN_MASK 19 20 ("{TS_OPEN_MASK_WEST}") ()} )}
)}
#enddef
#define TS_SPAWN1 UNIT
{IF_ALIVE 2 ({CREATE_UNIT 1 ({UNIT}) 12 10 () ()})}
{IF_ALIVE 3 ({CREATE_UNIT 1 ({UNIT}) 29 7 () ()})}
{IF_ALIVE 4 ({CREATE_UNIT 1 ({UNIT}) 41 18 () ()})}
{IF_ALIVE 5 ({CREATE_UNIT 1 ({UNIT}) 36 32 () ()})}
{IF_ALIVE 6 ({CREATE_UNIT 1 ({UNIT}) 19 36 () ()})}
{IF_ALIVE 7 ({CREATE_UNIT 1 ({UNIT}) 7 25 () ()})}
#enddef
#define TS_SPAWN2 UNIT
{IF_ALIVE 2 ({CREATE_UNIT 1 ({UNIT}) 19 7 () ()})}
{IF_ALIVE 3 ({CREATE_UNIT 1 ({UNIT}) 36 10 () ()})}
{IF_ALIVE 4 ({CREATE_UNIT 1 ({UNIT}) 41 25 () ()})}
{IF_ALIVE 5 ({CREATE_UNIT 1 ({UNIT}) 29 36 () ()})}
{IF_ALIVE 6 ({CREATE_UNIT 1 ({UNIT}) 12 32 () ()})}
{IF_ALIVE 7 ({CREATE_UNIT 1 ({UNIT}) 7 18 () ()})}
#enddef
#define TS_SWAMP_SPAWN UNIT
{IF_ALIVE 2 ({CREATE_UNIT 1 ({UNIT}) 15 6 () ()})}
{IF_ALIVE 3 ({CREATE_UNIT 1 ({UNIT}) 35 7 () ()})}
{IF_ALIVE 4 ({CREATE_UNIT 1 ({UNIT}) 44 22 () ()})}
{IF_ALIVE 5 ({CREATE_UNIT 1 ({UNIT}) 33 37 () ()})}
{IF_ALIVE 6 ({CREATE_UNIT 1 ({UNIT}) 13 36 () ()})}
{IF_ALIVE 7 ({CREATE_UNIT 1 ({UNIT}) 4 20 () ()})}
#enddef
#define TS_LAKE_SPAWN UNIT
{IF_ALIVE 2 ({CREATE_UNIT 1 ({UNIT}) 17 10 () ()})}
{IF_ALIVE 3 ({CREATE_UNIT 1 ({UNIT}) 32 10 () ()})}
{IF_ALIVE 4 ({CREATE_UNIT 1 ({UNIT}) 39 22 () ()})}
{IF_ALIVE 5 ({CREATE_UNIT 1 ({UNIT}) 31 33 () ()})}
{IF_ALIVE 6 ({CREATE_UNIT 1 ({UNIT}) 16 32 () ()})}
{IF_ALIVE 7 ({CREATE_UNIT 1 ({UNIT}) 9 21 () ()})}
#enddef
#define TS_HOME_SPAWN UNIT
{IF_ALIVE 2 ({CREATE_UNIT 1 ({UNIT}) 18 12 () ()})}
{IF_ALIVE 3 ({CREATE_UNIT 1 ({UNIT}) 30 12 () ()})}
{IF_ALIVE 4 ({CREATE_UNIT 1 ({UNIT}) 36 21 () ()})}
{IF_ALIVE 5 ({CREATE_UNIT 1 ({UNIT}) 30 30 () ()})}
{IF_ALIVE 6 ({CREATE_UNIT 1 ({UNIT}) 18 13 () ()})}
{IF_ALIVE 7 ({CREATE_UNIT 1 ({UNIT}) 12 21 () ()})}
#enddef
#define TS_SPAWNS
{ON_TURN 2 (
{TS_SPAWN1 "Footpad"}{TS_SPAWN1 "Peasant"}
{TS_SPAWN2 "Bowman"}{TS_SPAWN2 "Cavalryman"}
)}
{ON_TURN 5 (
{TS_SPAWN1 "Thief"}{TS_SPAWN1 "Poacher"}
{TS_SPAWN2 "Dwarvish Guardsman"}{TS_SPAWN2 "Dwarvish Fighter"}
)}
{ON_TURN 8 (
{TS_SPAWN1 "Elvish Archer"}{TS_SPAWN1 "Elvish Shaman"}
{TS_LAKE_SPAWN "Merman Hunter"}
{TS_SPAWN2 "Elvish Archer"}
)}
{ON_TURN 11 (
{TS_SPAWN1 "Orcish Slayer"}
{TS_LAKE_SPAWN "Naga Fighter"}
{TS_SPAWN2 "Troll Hero"}{TS_SPAWN2 "Troll Whelp"}
)}
{ON_TURN 14 (
{TS_SPAWN1 "Drake Warrior"}{TS_SPAWN1 "Drake Glider"}
{TS_SPAWN2 "Fire Drake"}{TS_SPAWN2 "Drake Fighter"}
)}
{ON_TURN 17 (
{TS_SPAWN1 "Death Knight"}{TS_SPAWN1 "Walking Corpse"}{TS_SPAWN1 "Walking Corpse"}{TS_SPAWN1 "Walking Corpse"}{TS_SPAWN1 "Vampire Bat"}
{TS_SWAMP_SPAWN "Tentacle of the Deep"}
{TS_SPAWN2 "Lich"}{TS_SPAWN2 "Walking Corpse"}{TS_SPAWN2 "Walking Corpse"}{TS_SPAWN2 "Walking Corpse"}{TS_SPAWN2 "Vampire Bat"}
)}
{ON_TURN 20 (
{TS_SPAWN1 "Drake Enforcer"}
{TS_LAKE_SPAWN "Mermaid Diviner"}{TS_LAKE_SPAWN "Merman Entangler"}
{TS_SPAWN2 "Drake Enforcer"}
)}
{ON_TURN 23 (
{TS_SPAWN1 "Dark Sorcerer"}
{TS_LAKE_SPAWN "Shadow"}{TS_LAKE_SPAWN "Shadow"}{TS_LAKE_SPAWN "Shadow"}
{TS_SPAWN2 "Dark Sorcerer"}
)}
{ON_TURN 26 (
{TS_SPAWN1 "Goblin Rouser"}{TS_SPAWN1 "Goblin Spearman"}{TS_SPAWN1 "Goblin Spearman"}{TS_SPAWN1 "Goblin Spearman"}{TS_SPAWN1 "Goblin Spearman"}{TS_SPAWN1 "Goblin Spearman"}{TS_SPAWN1 "Goblin Spearman"}
{TS_SWAMP_SPAWN "Cuttle Fish"}
{TS_SPAWN2 "Goblin Rouser"}{TS_SPAWN2 "Goblin Spearman"}{TS_SPAWN2 "Goblin Spearman"}{TS_SPAWN2 "Goblin Spearman"}{TS_SPAWN2 "Goblin Spearman"}{TS_SPAWN2 "Goblin Spearman"}{TS_SPAWN2 "Goblin Spearman"}
)}
#enddef
[multiplayer]
id=multiplayer_6p_Team_Survival
name= _ "6p - Team Survival"
map_data="{TS_MAP_DATA}"
description= _ "Scenario where the objective is to survive for as long as possible."
experience_modifier=70
turns=32
turn_at=1
victory_when_enemies_defeated=yes
{ON_PRESTART (
{SET_OBJECTIVES 0 (_ "Survive for 32 turns.") (_ "Hint: Learning the enemy spawnpoints and types helps alot.") (
{VICTORY_CONDITION (_ "Survival all enemy attacks.")}
{DEFEAT_CONDITION (_ "Death of your team leaders.")}
)}
)}
{ON_START (
{TS_SET_LABELS}
{TS_OPEN_WALLS}
)}
{TS_SPAWNS}
{ON_TURN 25 {TS_BUILD_CASTLE}}
{ON_TURN 26 {TS_OPEN_CASTLE}}
{ON_TURN 32 (
{IF_ALIVE 2 ({ENDGAME victory})}
{IF_ALIVE 3 ({ENDGAME victory})}
{IF_ALIVE 4 ({ENDGAME victory})}
{IF_ALIVE 5 ({ENDGAME victory})}
{IF_ALIVE 6 ({ENDGAME victory})}
{IF_ALIVE 7 ({ENDGAME victory})}
)}
{ON_VICTORY (
{MESSAGE narrator (units/elves-wood/shyde.png) (Faery) (_ "Congratulations for surviving the map that so many people claim is impossible. Frankly, I don't got a clue to how you did it, so send me the replay by mail to: roze@roze.mine.nu. Thank You!")}
)}
{ON_DEFEAT (
{MESSAGE narrator (units/undead/wraith.png) (Death) (_ "You have lost this game, but fear not. You can always try again. And again. And again. *Muahahaha*")}
)}
{DEFAULT_MUSIC_PLAYLIST}
{DAWN}
{MORNING}
{AFTERNOON}
{DUSK}
{FIRST_WATCH}
{SECOND_WATCH}
{SIDE_COMPUTER 1 Attacker (Attacker) 1000 47 () (
leader_value=7.0
aggression=1.0
)}
{SIDE_PLAYER 2 Defenders-1 (North-West) 125 -2 ()}
{SIDE_PLAYER 3 Defenders-2 (North-East) 125 -2 ()}
{SIDE_PLAYER 4 Defenders-3 (Middle-East) 125 -2 ()}
{SIDE_PLAYER 5 Defenders-4 (South-East) 125 -2 ()}
{SIDE_PLAYER 6 Defenders-5 (South-West) 125 -2 ()}
{SIDE_PLAYER 7 Defenders-6 (Middle-West) 125 -2 ()}
[/multiplayer]
#undef TS_MAP_DATA
#undef TS_WALL_MASK_NORTH
#undef TS_WALL_MASK_NORTH_EAST
#undef TS_WALL_MASK_NORTH_WEST
#undef TS_WALL_MASK_SOUTH
#undef TS_WALL_MASK_SOUTH_EAST
#undef TS_WALL_MASK_SOUTH_WEST
#undef TS_CASTLE_MASK
#undef TS_OPEN_MASK_NORTH_WEST
#undef TS_OPEN_MASK_NORTH_EAST
#undef TS_OPEN_MASK_EAST
#undef TS_OPEN_MASK_SOUTH_WEST
#undef TS_OPEN_MASK_SOUTH_EAST
#undef TS_OPEN_MASK_WEST
#undef TS_SET_LABELS
#undef TS_OPEN_WALLS
#undef TS_BUILD_CASTLE
#undef TS_OPEN_CASTLE
#undef TS_SPAWN1
#undef TS_SPAWN2
#undef TS_SWAMP_SPAWN
#undef TS_LAKE_SPAWN
#undef TS_HOME_SPAWN
#undef TS_SPAWNS

View file

@ -98,7 +98,7 @@ height=768
[menu]
is_context_menu=true
items=undo,redo,describeunit,renameunit,createunit,changeside,labelterrain,clearlabels,speak,continue,recruit,recall,delayshroud,updateshroud,cycle,endturn
items=undo,redo,describeunit,renameunit,createunit,changeside,labelteamterrain,labelterrain,clearlabels,speak,continue,recruit,recall,delayshroud,updateshroud,cycle,endturn
[/menu]
[mini_map]
id=mini-map

View file

@ -119,7 +119,7 @@ height=768
[menu]
is_context_menu=true
items=undo,redo,describeunit,renameunit,createunit,changeside,labelterrain,clearlabels,speak,continue,recruit,recall,delayshroud,updateshroud,cycle,endturn
items=undo,redo,describeunit,renameunit,createunit,changeside,labelteamterrain,labelterrain,clearlabels,speak,continue,recruit,recall,delayshroud,updateshroud,cycle,endturn
[/menu]
[menu]

View file

@ -89,7 +89,7 @@ height=768
[menu]
is_context_menu=true
items=undo,redo,describeunit,renameunit,createunit,changeside,labelterrain,clearlables,speak,continue,recruit,recall,delayshroud,updateshroud,cycle,endturn
items=undo,redo,describeunit,renameunit,createunit,changeside,labelteamterrain,labelterrain,clearlabels,speak,continue,recruit,recall,delayshroud,updateshroud,cycle,endturn
[/menu]
[mini_map]
id=mini-map

View file

@ -3,7 +3,8 @@
#define TRAIT_LOYAL
[trait]
id=loyal
name= _ "loyal"
male_name= _ "loyal"
female_name= _ "female^loyal"
description= _ "Zero upkeep"
[effect]
apply_to=loyal
@ -14,7 +15,8 @@
#define TRAIT_UNDEAD
[trait]
id=undead
name= _ "undead"
male_name= _ "undead"
female_name= _ "female^undead"
description= _ "Immune to poison"
[/trait]
#enddef
@ -22,7 +24,8 @@
#define TRAIT_STRONG
[trait]
id=strong
name= _ "strong"
male_name= _ "strong"
female_name= _ "female^strong"
[effect]
apply_to=attack
range=melee
@ -38,7 +41,8 @@
#define TRAIT_DEXTROUS
[trait]
id=dextrous
name= _ "dextrous"
male_name= _ "dextrous"
female_name= _ "female^dextrous"
[effect]
apply_to=attack
range=ranged
@ -50,7 +54,8 @@
#define TRAIT_QUICK
[trait]
id=quick
name= _ "quick"
male_name= _ "quick"
female_name= _ "female^quick"
[effect]
apply_to=movement
increase=1
@ -65,7 +70,8 @@
#define TRAIT_INTELLIGENT
[trait]
id=intelligent
name= _ "intelligent"
male_name= _ "intelligent"
female_name= _ "female^intelligent"
[effect]
apply_to=max_experience
increase=-20%
@ -76,7 +82,8 @@
#define TRAIT_RESILIENT
[trait]
id=resilient
name= _ "resilient"
male_name= _ "resilient"
female_name= _ "female^resilient"
[effect]
apply_to=hitpoints
increase_total=10%
@ -91,7 +98,8 @@
#define TRAIT_HEALTHY
[trait]
id=healthy
name= _ "healthy"
male_name= _ "healthy"
female_name= _ "female^healthy"
description= _ "Heals faster if resting"
[effect]
apply_to=hitpoints
@ -103,7 +111,8 @@
#define TRAIT_FEARLESS
[trait]
id=fearless
name= _ "fearless"
male_name= _ "fearless"
female_name= _ "female^fearless"
description= _ "Fights normally during unfavorable times of day/night"
[/trait]
#enddef

View file

@ -99,6 +99,7 @@ Special Notes:"+{SPECIAL_NOTES_BERSERK}
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -96,6 +96,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -120,6 +120,7 @@ Special Notes:"+{SPECIAL_NOTES_STEADFAST}
[/attack]
{DEFENSE_ANIM "units/dwarves/guard-defend.png" "units/dwarves/guard.png" {SOUND_LIST:DWARF_HIT} }
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -80,6 +80,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -98,6 +98,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -68,6 +68,7 @@ Special Notes:"+{SPECIAL_NOTES_BERSERK}
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -209,29 +209,16 @@
[frame]
image="units/elves-wood/archer+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/archer+female-bow-attack1.png"
[/frame]
[frame]
image="units/elves-wood/archer+female-bow-attack2.png"
[/frame]
[frame]
image="units/elves-wood/archer+female-bow-attack3.png"
[/frame]
[frame]
image="units/elves-wood/archer+female-bow-attack4.png"
[/frame]
[frame]
image="units/elves-wood/archer+female-bow.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/elves-wood/archer+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/archer+female-bow-attack1.png"
[/frame]
[if]
[frame]
image="units/elves-wood/archer+female-bow-attack1.png"
[/frame]
[/if]
[else]
[frame]
image="units/elves-wood/archer+female-bow-attack1.png"
[/frame]
[/else]
[frame]
image="units/elves-wood/archer+female-bow-attack2.png"
[/frame]
@ -250,6 +237,7 @@
{DEFENSE_ANIM_RANGE "units/elves-wood/archer+female-bow-defend.png" "units/elves-wood/archer+female-bow.png" {SOUND_LIST:ELF_FEMALE_HIT} ranged}
[/female]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -220,29 +220,16 @@ Special Notes:"+{SPECIAL_NOTES_AMBUSH}
[frame]
image="units/elves-wood/avenger+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/avenger+female-attack1.png"
[/frame]
[frame]
image="units/elves-wood/avenger+female-attack2.png"
[/frame]
[frame]
image="units/elves-wood/avenger+female-attack3.png"
[/frame]
[frame]
image="units/elves-wood/avenger+female-attack4.png"
[/frame]
[frame]
image="units/elves-wood/avenger+female-bow.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/elves-wood/avenger+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/avenger+female-attack1.png"
[/frame]
[if]
[frame]
image="units/elves-wood/avenger+female-attack1.png"
[/frame]
[/if]
[else]
[frame]
image="units/elves-wood/avenger+female-attack1.png"
[/frame]
[/else]
[frame]
image="units/elves-wood/avenger+female-attack2.png"
[/frame]

View file

@ -186,17 +186,6 @@ Special Notes:"+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_CURES}
[/frame]
[if]
hits=no
[frame]
begin=0
end=75
image="units/elves-wood/druid-magic-4.png"
halo="halo/elven/nature-halo5.png"
sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
halo_x,halo_y=0,-12
[/frame]
[/if]
[else]
hits=yes
[frame]
begin=0
@ -206,6 +195,17 @@ Special Notes:"+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_CURES}
sound=magic-thorns-1.ogg,magic-thorns-2.ogg
halo_x,halo_y=0,-12
[/frame]
[/if]
[else]
hits=no
[frame]
begin=0
end=75
image="units/elves-wood/druid-magic-4.png"
halo="halo/elven/nature-halo5.png"
sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
halo_x,halo_y=0,-12
[/frame]
[/else]
[frame]

View file

@ -22,28 +22,33 @@ This prodigious skill does come with one cost, that being a lack of practice wit
Special Notes:"+{SPECIAL_NOTES_MARKSMAN}
die_sound={SOUND_LIST:ELF_HIT}
# [death]
# [frame]
# begin=0
# end=100
# image="units/elves-wood/marksman-die1.png"
# [/frame]
# [frame]
# begin=100
# end=200
# image="units/elves-wood/marksman-die2.png"
# [/frame]
# [frame]
# begin=200
# end=300
# image="units/elves-wood/marksman-die3.png"
# [/frame]
# [frame]
# begin=300
# end=400
# image="units/elves-wood/marksman-die4.png"
# [/frame]
# [/death]
[death]
[frame]
begin=0
end=160
image="units/elves-wood/marksman-die-1.png"
[/frame]
[frame]
begin=160
end=400
image="units/elves-wood/marksman-die-2.png"
[/frame]
[frame]
begin=400
end=580
image="units/elves-wood/marksman-die-3.png"
[/frame]
[frame]
begin=580
end=780
image="units/elves-wood/marksman-die-4.png"
[/frame]
[frame]
begin=780
end=1000
image="units/elves-wood/marksman-die-5.png"
[/frame]
[/death]
[attack]
name=sword
icon=attacks/sword-elven.png
@ -163,20 +168,23 @@ Special Notes:"+{SPECIAL_NOTES_MARKSMAN}
die_sound={SOUND_LIST:ELF_FEMALE_HIT}
{DEFENSE_ANIM_RANGE "units/elves-wood/marksman+female-sword-defend.png" "units/elves-wood/marksman+female-sword.png" {SOUND_LIST:ELF_FEMALE_HIT} melee}
{DEFENSE_ANIM_RANGE "units/elves-wood/marksman+female-bow-defend.png" "units/elves-wood/marksman+female-bow.png" {SOUND_LIST:ELF_FEMALE_HIT} ranged}
# [death]
# [frame]
# image="units/elves-wood/marksman-die1.png"
# [/frame]
# [frame]
# image="units/elves-wood/marksman-die2.png"
# [/frame]
# [frame]
# image="units/elves-wood/marksman-die3.png"
# [/frame]
# [frame]
# image="units/elves-wood/marksman-die4.png"
# [/frame]
# [/death]
[death]
[frame]
image="units/elves-wood/marksman+female-die-1.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-die-2.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-die-3.png"
[/frame]
[frame]
image="units/elves-wood/marksman-die-4.png"
[/frame]
[frame]
image="units/elves-wood/marksman-die-5.png"
[/frame]
[/death]
[attack]
[animation]
[frame]
@ -210,29 +218,16 @@ Special Notes:"+{SPECIAL_NOTES_MARKSMAN}
[frame]
image="units/elves-wood/marksman+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-bow-attack1.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-bow-attack2.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-bow-attack3.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-bow-attack4.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-bow.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/elves-wood/marksman+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/marksman+female-bow-attack1.png"
[/frame]
[if]
[frame]
image="units/elves-wood/marksman+female-bow-attack1.png"
[/frame]
[/if]
[else]
[frame]
image="units/elves-wood/marksman+female-bow-attack1.png"
[/frame]
[/else]
[frame]
image="units/elves-wood/marksman+female-bow-attack2.png"
[/frame]

View file

@ -185,35 +185,46 @@ Special Notes:"+{SPECIAL_NOTES_AMBUSH}
# [/frame]
# [/death]
[attack]
[animation]
[frame]
image="units/elves-wood/ranger+female-sword.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-sword-1.png"
[/frame]
[if]
[frame]
image="units/elves-wood/ranger+female-sword-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/elves-wood/ranger+female-sword-2.png"
[/frame]
[/else]
[frame]
image="units/elves-wood/ranger+female-sword-3.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-sword.png"
[/frame]
[/animation]
[/attack]
[attack]
[animation]
[frame]
image="units/elves-wood/ranger+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-bow-attack1.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-bow-attack2.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-bow-attack3.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-bow-attack4.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-bow.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/elves-wood/ranger+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/ranger+female-bow-attack1.png"
[/frame]
[if]
[frame]
image="units/elves-wood/ranger+female-bow-attack1.png"
[/frame]
[/if]
[else]
[frame]
image="units/elves-wood/ranger+female-bow-attack1.png"
[/frame]
[/else]
[frame]
image="units/elves-wood/ranger+female-bow-attack2.png"
[/frame]

View file

@ -221,29 +221,6 @@ Special Notes:"+{SPECIAL_NOTES_MARKSMAN}
image="units/elves-wood/sharpshooter+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/elves-wood/sharpshooter+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/sharpshooter+female-bow-attack1.png"
[/frame]
[frame]
image="units/elves-wood/sharpshooter+female-bow-attack2.png"
[/frame]
[frame]
image="units/elves-wood/sharpshooter+female-bow-attack3.png"
[/frame]
[frame]
image="units/elves-wood/sharpshooter+female-bow-attack4.png"
[/frame]
[frame]
image="units/elves-wood/sharpshooter+female-bow.png"
[/frame]
[frame]
image="units/elves-wood/sharpshooter+female.png"
[/frame]
[/animation]
[/attack]
[/female]
[/unit]

View file

@ -184,7 +184,6 @@ Special Notes:"+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_CURES}
halo=halo/elven/nature-halo5.png
halo_x,halo_y=0,-12
[/frame]
[if]
hits=yes
[frame]
@ -204,12 +203,11 @@ Special Notes:"+{SPECIAL_NOTES_SLOW}+{SPECIAL_NOTES_CURES}
end=0
image="units/elves-wood/shyde-ftouch-attack3.png"
sound=magic-thorns-miss-1.ogg,magic-thorns-miss-2.ogg
halo=halo/elven/nature-halo6.png
halo_x,halo_y=0,-12
[/frame]
[/else]
[frame]
begin=-0
end=75

View file

@ -156,7 +156,7 @@ Special Notes:"+{SPECIAL_NOTES_SLOW}
end=-375
image="units/elves-wood/sylph-magic.png"
sound=magic-faeriefire-miss.ogg
halo=halo/elven/faerie-fire-halo1.png
halo_x,halo_y=0,-28
[/frame]

View file

@ -148,6 +148,7 @@ Special Notes:"+{SPECIAL_NOTES_POISON}
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -276,6 +276,7 @@ Some speculate that the existence of these creatures is the beginning of a failu
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=150

View file

@ -79,6 +79,7 @@ Wolves, likely, could never support the weight of a man in plate, but a goblin i
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -144,6 +144,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -169,6 +169,7 @@ Special Notes:"+{SPECIAL_NOTES_SKIRMISHER}
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -258,6 +258,7 @@ Special Notes:"+{SPECIAL_NOTES_FIRSTSTRIKE}
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -107,6 +107,7 @@ Special Notes:"+{SPECIAL_NOTES_LEADERSHIP}
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -118,6 +118,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=1000

View file

@ -111,6 +111,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -24,29 +24,29 @@
damage=18
number=2
[animation]
[frame]
begin=-260
end=-100
image="units/human-loyalists/shocktrooper-attack-1.png"
[/frame]
[if]
hits=yes
[frame]
begin=-100
end=100
image="units/human-loyalists/shocktrooper-attack-2.png"
sound=mace.wav
begin=-260
end=-100
image="units/human-loyalists/shocktrooper-attack-1.png"
sound=flail.ogg
[/frame]
[/if]
[else]
hits=no
[frame]
begin=-100
end=100
image="units/human-loyalists/shocktrooper-attack-2.png"
sound={SOUND_LIST:MISS}
begin=-260
end=-100
image="units/human-loyalists/shocktrooper-attack-1.png"
sound=flail-miss.ogg
[/frame]
[/else]
[frame]
begin=-100
end=100
image="units/human-loyalists/shocktrooper-attack-2.png"
[/frame]
[frame]
begin=100
end=200

View file

@ -65,6 +65,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -184,26 +184,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}
[frame]
image="units/human-magi/mage+female-attack-staff-1.png"
[/frame]
[frame]
image="units/human-magi/mage+female-attack-staff-2.png"
[/frame]
[frame]
image="units/human-magi/mage+female-attack-magic1.png"
[/frame]
[frame]
image="units/human-magi/mage+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/mage+female.png"
[/frame]
[frame]
image="units/human-magi/mage+female-attack-staff-1.png"
[/frame]
[frame]
image="units/human-magi/mage+female-attack-staff-2.png"
[/frame]
[if]
[frame]
image="units/human-magi/mage+female-attack-staff-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/mage+female-attack-staff-2.png"
[/frame]
[/else]
[frame]
image="units/human-magi/mage+female-attack-magic1.png"
[/frame]
@ -232,9 +222,6 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}
image="units/human-magi/mage+female-attack-magic2.png"
[/frame]
[/else]
[frame]
image="units/human-magi/mage+female-attack-magic2.png"
[/frame]
[frame]
image="units/human-magi/mage+female-attack-magic1.png"
[/frame]

View file

@ -145,26 +145,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}
[frame]
image="units/human-magi/arch-mage+female-staff-1.png"
[/frame]
[frame]
image="units/human-magi/arch-mage+female-staff-2.png"
[/frame]
[frame]
image="units/human-magi/arch-mage+female-defend.png"
[/frame]
[frame]
image="units/human-magi/arch-mage+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/arch-mage+female.png"
[/frame]
[frame]
image="units/human-magi/arch-mage+female-staff-1.png"
[/frame]
[frame]
image="units/human-magi/arch-mage+female-staff-2.png"
[/frame]
[if]
[frame]
image="units/human-magi/arch-mage+female-staff-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/arch-mage+female-staff-2.png"
[/frame]
[/else]
[frame]
image="units/human-magi/arch-mage+female-defend.png"
[/frame]

View file

@ -126,26 +126,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}
[frame]
image="units/human-magi/great-mage+female-staff-1.png"
[/frame]
[frame]
image="units/human-magi/great-mage+female-staff-2.png"
[/frame]
[frame]
image="units/human-magi/great-mage+female-staff-1.png"
[/frame]
[frame]
image="units/human-magi/great-mage+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/great-mage+female.png"
[/frame]
[frame]
image="units/human-magi/great-mage+female-staff-1.png"
[/frame]
[frame]
image="units/human-magi/great-mage+female-staff-2.png"
[/frame]
[if]
[frame]
image="units/human-magi/great-mage+female-staff-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/great-mage+female-staff-2.png"
[/frame]
[/else]
[frame]
image="units/human-magi/great-mage+female-staff-1.png"
[/frame]

View file

@ -161,26 +161,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}
[frame]
image="units/human-magi/red-mage+female-attack-staff1.png"
[/frame]
[frame]
image="units/human-magi/red-mage+female-attack-staff2.png"
[/frame]
[frame]
image="units/human-magi/red-mage+female-attack-staff1.png"
[/frame]
[frame]
image="units/human-magi/red-mage+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/red-mage+female.png"
[/frame]
[frame]
image="units/human-magi/red-mage+female-attack-staff1.png"
[/frame]
[frame]
image="units/human-magi/red-mage+female-attack-staff2.png"
[/frame]
[if]
[frame]
image="units/human-magi/red-mage+female-attack-staff2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/red-mage+female-attack-staff2.png"
[/frame]
[/else]
[frame]
image="units/human-magi/red-mage+female-attack-staff1.png"
[/frame]

View file

@ -113,9 +113,9 @@ Special Notes: Silver Magi are well-attuned to their magical natures and are hig
[else]
hits=no
[frame]
begin=-250
end=-200
image="units/human-magi/silver-mage.png"
begin=-100
end=100
image="units/human-magi/silver-mage-attack-melee.png"
sound={SOUND_LIST:MISS}
[/frame]
[/else]
@ -212,23 +212,16 @@ Special Notes: Silver Magi are well-attuned to their magical natures and are hig
[/teleport_anim]
[attack]
[animation]
[frame]
image="units/human-magi/silver-mage+female-attack-melee.png"
[/frame]
[frame]
image="units/human-magi/silver-mage+female-teleport1.png"
[/frame]
[frame]
image="units/human-magi/silver-mage+female-attack-melee.png"
[/frame]
[frame]
image="units/human-magi/silver-mage+female-attack-magic1.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/silver-mage+female-attack-melee.png"
[/frame]
[if]
[frame]
image="units/human-magi/silver-mage+female-attack-melee.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/silver-mage+female-attack-melee.png"
[/frame]
[/else]
[frame]
image="units/human-magi/silver-mage+female-teleport1.png"
[/frame]

View file

@ -240,32 +240,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_HOLY}+{SPECIAL_NOTES_CURE
[frame]
image="units/human-magi/white-mage-melee-2.png"
[/frame]
[frame]
image="units/human-magi/white-mage-melee-3.png"
[/frame]
[frame]
image="units/human-magi/white-mage-melee-4.png"
[/frame]
[frame]
image="units/human-magi/white-mage-melee-5.png"
[/frame]
[frame]
image="units/human-magi/white-mage-melee-6.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/white-mage.png"
[/frame]
[frame]
image="units/human-magi/white-mage-melee-1.png"
[/frame]
[frame]
image="units/human-magi/white-mage-melee-2.png"
[/frame]
[frame]
image="units/human-magi/white-mage-melee-3.png"
[/frame]
[if]
[frame]
image="units/human-magi/white-mage-melee-3.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/white-mage-melee-3.png"
[/frame]
[/else]
[frame]
image="units/human-magi/white-mage-melee-4.png"
[/frame]
@ -279,20 +263,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_HOLY}+{SPECIAL_NOTES_CURE
[/attack]
[attack]
[animation]
[frame]
image="units/human-magi/white-mage+female-magic1.png"
[/frame]
[frame]
image="units/human-magi/white-mage+female-magic3.png"
[/frame]
[frame]
image="units/human-magi/white-mage+female-magic5.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/white-mage+female-magic1.png"
[/frame]
[if]
[frame]
image="units/human-magi/white-mage+female-magic1.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/white-mage+female-magic1.png"
[/frame]
[/else]
[frame]
image="units/human-magi/white-mage+female-magic3.png"
[/frame]

View file

@ -193,26 +193,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_HOLY}+{SPECIAL_NOTES_CURE
[frame]
image="units/human-magi/white-cleric+female-defend.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female-attack-melee.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female-defend.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/white-cleric+female.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female-defend.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female-attack-melee.png"
[/frame]
[if]
[frame]
image="units/human-magi/white-cleric+female-attack-melee.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/white-cleric+female-attack-melee.png"
[/frame]
[/else]
[frame]
image="units/human-magi/white-cleric+female-defend.png"
[/frame]
@ -226,20 +216,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_HOLY}+{SPECIAL_NOTES_CURE
[frame]
image="units/human-magi/white-cleric+female-magic1.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female-magic3.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female-magic5.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-magi/white-cleric+female-magic1.png"
[/frame]
[frame]
image="units/human-magi/white-cleric+female-magic3.png"
[/frame]
[if]
[frame]
image="units/human-magi/white-cleric+female-magic3.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-magi/white-cleric+female-magic3.png"
[/frame]
[/else]
[frame]
image="units/human-magi/white-cleric+female-magic5.png"
[/frame]

View file

@ -104,20 +104,16 @@
[frame]
image="units/human-outlaws/outlaw+female-melee-1.png"
[/frame]
[frame]
image="units/human-outlaws/outlaw+female-melee-2.png"
[/frame]
[frame]
image="units/human-outlaws/outlaw+female-melee-3.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/outlaw+female-melee-1.png"
[/frame]
[frame]
image="units/human-outlaws/outlaw+female-melee-2.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/outlaw+female-melee-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/outlaw+female-melee-2.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/outlaw+female-melee-3.png"
[/frame]
@ -125,17 +121,16 @@
[/attack]
[attack]
[animation]
[frame]
image="units/human-outlaws/outlaw+female-attack1.png"
[/frame]
[frame]
image="units/human-outlaws/outlaw+female-attack2.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/outlaw+female-attack1.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/outlaw+female-attack1.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/outlaw+female-attack1.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/outlaw+female-attack2.png"
[/frame]
@ -143,6 +138,7 @@
[/attack]
[/female]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -123,22 +123,22 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}+{SPECIAL_NOTES_POISON}+{SPECIAL_NOTES_S
image_diagonal="projectiles/dagger-ne.png"
[/missile_frame]
[if]
hits=yes
[frame]
begin=-350
end=-100
image="units/human-outlaws/assassin-throwknife1.png"
sound=throwing-knife.ogg
[/frame]
hits=yes
[frame]
begin=-350
end=-100
image="units/human-outlaws/assassin-throwknife1.png"
sound=throwing-knife.ogg
[/frame]
[/if]
[else]
hits=no
[frame]
begin=-350
end=-100
image="units/human-outlaws/assassin-throwknife1.png"
sound=throwing-knife-miss.ogg
[/frame]
hits=no
[frame]
begin=-350
end=-100
image="units/human-outlaws/assassin-throwknife1.png"
sound=throwing-knife-miss.ogg
[/frame]
[/else]
[frame]
begin=-100
@ -166,23 +166,16 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}+{SPECIAL_NOTES_POISON}+{SPECIAL_NOTES_S
[frame]
image="units/human-outlaws/assassin+female-melee-1-1.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female-melee-1-2.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/assassin+female.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female-melee-1-1.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female-melee-1-2.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/assassin+female-melee-1-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/assassin+female-melee-1-2.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/assassin+female.png"
[/frame]
@ -194,23 +187,16 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}+{SPECIAL_NOTES_POISON}+{SPECIAL_NOTES_S
[frame]
image="units/human-outlaws/assassin+female-melee-2-1.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female-melee-2-2.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/assassin+female.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female-melee-2-1.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female-melee-2-2.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/assassin+female-melee-2-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/assassin+female-melee-2-2.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/assassin+female.png"
[/frame]
@ -218,20 +204,16 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}+{SPECIAL_NOTES_POISON}+{SPECIAL_NOTES_S
[/attack]
[attack]
[animation]
[frame]
image="units/human-outlaws/assassin+female-throwknife1.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female-throwknife2.png"
[/frame]
[frame]
image="units/human-outlaws/assassin+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/assassin+female-throwknife1.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/assassin+female-throwknife1.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/assassin+female-throwknife1.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/assassin+female-throwknife2.png"
[/frame]

View file

@ -117,26 +117,16 @@
[frame]
image="units/human-outlaws/footpad+female-melee-1.png"
[/frame]
[frame]
image="units/human-outlaws/footpad+female-melee-2.png"
[/frame]
[frame]
image="units/human-outlaws/footpad+female-melee-3.png"
[/frame]
[frame]
image="units/human-outlaws/footpad+female-melee-4.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/footpad+female.png"
[/frame]
[frame]
image="units/human-outlaws/footpad+female-melee-1.png"
[/frame]
[frame]
image="units/human-outlaws/footpad+female-melee-2.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/footpad+female-melee-2.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/footpad+female-melee-2.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/footpad+female-melee-3.png"
[/frame]
@ -147,17 +137,16 @@
[/attack]
[attack]
[animation]
[frame]
image="units/human-outlaws/footpad+female-attack1.png"
[/frame]
[frame]
image="units/human-outlaws/footpad+female-attack2.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/footpad+female-attack1.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/footpad+female-attack1.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/footpad+female-attack1.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/footpad+female-attack2.png"
[/frame]
@ -165,6 +154,7 @@
[/attack]
[/female]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=100

View file

@ -17,8 +17,8 @@
cost=14
usage=archer
unit_description= _ "Though not trained as warriors, the skills possessed by a hunter, especially those of archery, are useful in battle. Turning these skills against their fellow man can happen for any number of reasons, be they mercenary or vigilante in nature. Any group of bandits will need a few poachers in their employ, culling the night's meal from surrounding farmland, and often lending a hand in any serious fight.
Because of their experience, these hunters are unusually capable at night, and in forests and swamps."
Because of their experience, these hunters are unusually capable at night, and in forests and swamps."
#Poachers are better than normal units at woods and swamps
die_sound={SOUND_LIST:HUMAN_DIE}
{DEFENSE_ANIM_RANGE "units/human-outlaws/poacher-defend.png" "units/human-outlaws/poacher.png" {SOUND_LIST:HUMAN_HIT} melee }

View file

@ -79,22 +79,22 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}+{SPECIAL_NOTES_SKIRMISHER}
image_diagonal="projectiles/dagger-ne.png"
[/missile_frame]
[if]
hits=yes
[frame]
begin=-200
end=-100
image="units/human-outlaws/rogue-ranged.png"
sound=throwing-knife.ogg
[/frame]
hits=yes
[frame]
begin=-200
end=-100
image="units/human-outlaws/rogue-ranged.png"
sound=throwing-knife.ogg
[/frame]
[/if]
[else]
hits=no
[frame]
begin=-200
end=-100
image="units/human-outlaws/rogue-ranged.png"
sound=throwing-knife-miss.ogg
[/frame]
hits=no
[frame]
begin=-200
end=-100
image="units/human-outlaws/rogue-ranged.png"
sound=throwing-knife-miss.ogg
[/frame]
[/else]
[frame]
begin=-100
@ -114,20 +114,16 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}+{SPECIAL_NOTES_SKIRMISHER}
[frame]
image="units/human-outlaws/rogue+female.png"
[/frame]
[frame]
image="units/human-outlaws/rogue+female-attack.png"
[/frame]
[frame]
image="units/human-outlaws/rogue+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/rogue+female.png"
[/frame]
[frame]
image="units/human-outlaws/rogue+female-attack.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/rogue+female-attack.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/rogue+female-attack.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/rogue+female.png"
[/frame]
@ -135,11 +131,16 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}+{SPECIAL_NOTES_SKIRMISHER}
[/attack]
[attack]
[animation]
[frame]
image="units/human-outlaws/rogue+female-ranged.png"
[/frame]
[/animation]
[animation]
[if]
[frame]
image="units/human-outlaws/rogue+female-ranged.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/rogue+female-ranged.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/rogue+female-ranged.png"
[/frame]

View file

@ -267,20 +267,16 @@ Special Notes:"+{SPECIAL_NOTES_BACKSTAB}
[frame]
image="units/human-outlaws/thief+female.png"
[/frame]
[frame]
image="units/human-outlaws/thief+female-attack.png"
[/frame]
[frame]
image="units/human-outlaws/thief+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/human-outlaws/thief+female.png"
[/frame]
[frame]
image="units/human-outlaws/thief+female-attack.png"
[/frame]
[if]
[frame]
image="units/human-outlaws/thief+female-attack.png"
[/frame]
[/if]
[else]
[frame]
image="units/human-outlaws/thief+female-attack.png"
[/frame]
[/else]
[frame]
image="units/human-outlaws/thief+female.png"
[/frame]

View file

@ -17,8 +17,8 @@
cost=27
usage=archer
unit_description= _ "Master woodsmen are useful allies to any army, and indispensable for any sizable group of bandits. They can track both man and beast, notice things most others would overlook, and are often the only ones who can find food for the table, be it animal or vegetable.
Their skill at hunting is very useful in combat, and also leaves them unusually competent at night, and in forests and swamps."
Their skill at hunting is very useful in combat, and also leaves them unusually competent at night, and in forests and swamps."
#Trappers are better than normal units at woods and swamps
die_sound={SOUND_LIST:HUMAN_DIE}
{DEFENSE_ANIM_RANGE "units/human-outlaws/trapper-defend.png" "units/human-outlaws/trapper.png" {SOUND_LIST:HUMAN_HIT} melee }

View file

@ -102,6 +102,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -68,20 +68,16 @@
[frame]
image="units/nagas/fighter+female.png"
[/frame]
[frame]
image="units/nagas/fighter+female-attack.png"
[/frame]
[frame]
image="units/nagas/fighter+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/nagas/fighter+female.png"
[/frame]
[frame]
image="units/nagas/fighter+female-attack.png"
[/frame]
[if]
[frame]
image="units/nagas/fighter+female-attack.png"
[/frame]
[/if]
[else]
[frame]
image="units/nagas/fighter+female-attack.png"
[/frame]
[/else]
[frame]
image="units/nagas/fighter+female.png"
[/frame]
@ -89,6 +85,7 @@
[/attack]
[/female]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -73,20 +73,16 @@
[frame]
image="units/nagas/myrmidon+female.png"
[/frame]
[frame]
image="units/nagas/myrmidon+female-attack.png"
[/frame]
[frame]
image="units/nagas/myrmidon+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/nagas/myrmidon+female.png"
[/frame]
[frame]
image="units/nagas/myrmidon+female-attack.png"
[/frame]
[if]
[frame]
image="units/nagas/myrmidon+female-attack.png"
[/frame]
[/if]
[else]
[frame]
image="units/nagas/myrmidon+female-attack.png"
[/frame]
[/else]
[frame]
image="units/nagas/myrmidon+female.png"
[/frame]

View file

@ -71,20 +71,16 @@
[frame]
image="units/nagas/warrior+female.png"
[/frame]
[frame]
image="units/nagas/warrior+female-attack.png"
[/frame]
[frame]
image="units/nagas/warrior+female.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/nagas/warrior+female.png"
[/frame]
[frame]
image="units/nagas/warrior+female-attack.png"
[/frame]
[if]
[frame]
image="units/nagas/warrior+female-attack.png"
[/frame]
[/if]
[else]
[frame]
image="units/nagas/warrior+female-attack.png"
[/frame]
[/else]
[frame]
image="units/nagas/warrior+female.png"
[/frame]

View file

@ -65,6 +65,7 @@
[/attack]
{DEFENSE_ANIM "units/ogres/ogre-defend.png" "units/ogres/ogre.png" ogre-hit.wav }
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -292,6 +292,7 @@
[/animation]
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -76,22 +76,22 @@ Special Notes:"+{SPECIAL_NOTES_POISON}
image_diagonal="projectiles/dagger-ne.png"
[/missile_frame]
[if]
hits=yes
[frame]
begin=-200
end=-100
image="units/orcs/assassin-ranged1.png"
sound=throwing-knife.ogg
[/frame]
hits=yes
[frame]
begin=-200
end=-100
image="units/orcs/assassin-ranged1.png"
sound=throwing-knife.ogg
[/frame]
[/if]
[else]
hits=no
[frame]
begin=-200
end=-100
image="units/orcs/assassin-ranged1.png"
sound=throwing-knife-miss.ogg
[/frame]
hits=no
[frame]
begin=-200
end=-100
image="units/orcs/assassin-ranged1.png"
sound=throwing-knife-miss.ogg
[/frame]
[/else]
[frame]
begin=-100

View file

@ -129,22 +129,22 @@ Special Notes:"+{SPECIAL_NOTES_POISON}
image_diagonal="projectiles/dagger-ne.png"
[/missile_frame]
[if]
hits=yes
[frame]
begin=-150
end=-100
image="units/orcs/slayer-ranged1.png"
sound=throwing-knife.ogg
[/frame]
hits=yes
[frame]
begin=-150
end=-100
image="units/orcs/slayer-ranged1.png"
sound=throwing-knife.ogg
[/frame]
[/if]
[else]
hits=no
[frame]
begin=-150
end=-100
image="units/orcs/slayer-ranged1.png"
sound=throwing-knife-miss.ogg
[/frame]
hits=no
[frame]
begin=-150
end=-100
image="units/orcs/slayer-ranged1.png"
sound=throwing-knife-miss.ogg
[/frame]
[/else]
[frame]
begin=-100

View file

@ -26,32 +26,42 @@
number=3
[animation]
[frame]
begin=-200
begin=-225
end=-150
image="units/orcs/warrior.png"
image="units/orcs/warrior-attack-w1.png"
[/frame]
[frame]
begin=-150
end=-50
image="units/orcs/warrior-attack-w2.png"
[/frame]
[if]
hits=yes
hits=no
[frame]
begin=-150
end=100
image="units/orcs/warrior-melee1.png"
sound={SOUND_LIST:SWORD_SWISH}
begin=-50
end=50
image="units/orcs/warrior-attack-w3.png"
sound={SOUND_LIST:MISS}
[/frame]
[/if]
[else]
hits=no
hits=yes
[frame]
begin=-150
end=100
image="units/orcs/warrior-melee1.png"
sound={SOUND_LIST:MISS}
begin=-50
end=50
image="units/orcs/warrior-attack-w3.png"
sound={SOUND_LIST:SWORD_SWISH}
[/frame]
[/else]
[frame]
begin=100
begin=50
end=150
image="units/orcs/warrior-attack-w4.png"
[/frame]
[frame]
begin=150
end=200
image="units/orcs/warrior.png"
image="units/orcs/warrior-attack-w5.png"
[/frame]
[/animation]
[/attack]

View file

@ -17,7 +17,7 @@
cost=46
usage=scout
unit_description= _ "Saurian warriors are generally weaker in frame than their elven, or human counterparts. This is of course a relative term, and they can still become considerably powerful, whilst losing none of their natural mobility. This is very dangerous in combat, as a careless enemy can soon find their support troops flanked by these creatures.
Special Notes:"+{SPECIAL_NOTES_SKIRMISHER}
die_sound=hiss-die.wav
{DEFENSE_ANIM "units/saurians/flanker-defend.png" "units/saurians/flanker.png" hiss-hit.wav }

View file

@ -17,7 +17,7 @@
undead_variation=saurian
cost=27
usage=archer
unit_description= _ "Certain saurians are seen, dressed in considerable regalia, and covered head to toe in horrifing, esoteric shapes and markings, both with paint and tattoo. Some suspect them to be visionaries, or oracles amongst their ilk. But whatever 'societal' function they may have, they are undeniably powerful in the strange magics their kind possess, and are a thing to be wary of if ever seen.
unit_description= _ "Certain saurians are seen, dressed in considerable regalia, and covered head to toe in horrifing, esoteric shapes and markings, both with paint and tattoo. Some suspect them to be visionaries, or oracles amongst their ilk. But whatever 'societal' function they may have, they are undeniably powerful in the strange magics their kind possess, and are a thing to be wary of if ever seen.
Special Notes:"+{SPECIAL_NOTES_MAGICAL}+{SPECIAL_NOTES_HEALS}
die_sound=hiss-die.wav

View file

@ -16,9 +16,9 @@
undead_variation=saurian
cost=15
usage=scout
unit_description= _ "Saurians are very small of frame, and though they are somewhat frail because of this, they are very, very agile. In combat, their size allows them to dart past defenses that would hold any grown man at bay, making them a tricky foe to deal with.
Spears are their preferred weapon, as their powerful hind legs can drive a spear with enough force to do considerable damage, either in hand or thrown.
unit_description= _ "Saurians are very small of frame, and though they are somewhat frail because of this, they are very, very agile. In combat, their size allows them to dart past defenses that would hold any grown man at bay, making them a tricky foe to deal with.
Spears are their preferred weapon, as their powerful hind legs can drive a spear with enough force to do considerable damage, either in hand or thrown.
Special Notes:"+{SPECIAL_NOTES_SKIRMISHER}
die_sound=hiss-die.wav

View file

@ -28,7 +28,6 @@ Special Notes:"+{SPECIAL_NOTES_REGENERATES}
range=melee
damage=14
number=2
[animation]
[frame]
begin=-300

View file

@ -149,32 +149,16 @@ Special Notes:"+{SPECIAL_NOTES_MAGICAL}
[frame]
image="units/undead-necromancers/adept+female-ranged-5.png"
[/frame]
[frame]
image="units/undead-necromancers/adept+female-ranged-6.png"
[/frame]
[frame]
image="units/undead-necromancers/adept+female-ranged-7.png"
[/frame]
[frame]
image="units/undead-necromancers/adept+female-ranged-8.png"
[/frame]
[/animation]
[animation]
[frame]
image="units/undead-necromancers/adept+female-ranged-1.png"
[/frame]
[frame]
image="units/undead-necromancers/adept+female-ranged-2.png"
[/frame]
[frame]
image="units/undead-necromancers/adept+female-ranged-3.png"
[/frame]
[frame]
image="units/undead-necromancers/adept+female-ranged-4.png"
[/frame]
[frame]
image="units/undead-necromancers/adept+female-ranged-5.png"
[/frame]
[if]
[frame]
image="units/undead-necromancers/adept+female-ranged-6.png"
[/frame]
[/if]
[else]
[frame]
image="units/undead-necromancers/adept+female-ranged-6.png"
[/frame]
[/else]
[frame]
image="units/undead-necromancers/adept+female-ranged-6.png"
[/frame]

View file

@ -177,6 +177,7 @@ Special Notes:"+{SPECIAL_NOTES_SUBMERGE}
[/frame]
[/death]
[idle_anim]
{STANDARD_IDLE_FILTER}
[frame]
begin=0
end=100

View file

@ -0,0 +1,363 @@
#define DEFENSE_ANIM FRAME BASEFRAME HITSOUND
[defend]
start_time=-126
[frame]
duration=1
image={BASEFRAME}
[/frame]
[frame]
duration=100
image={FRAME}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={FRAME}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={FRAME}
[/frame]
[/else]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_FILTERED FRAME BASEFRAME HITSOUND FILTER
[defend]
start_time=-126
{FILTER}
[frame]
duration=1
image={BASEFRAME}
[/frame]
[frame]
duration=100
image={FRAME}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={FRAME}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={FRAME}
[/frame]
[/else]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[/defend]
#enddef
#define DEFENSE_ANIM_RANGE FRAME BASEFRAME HITSOUND RANGE
[defend]
start_time=-126
[attack_filter]
range={RANGE}
[/attack_filter]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[frame]
duration=100
image={FRAME}
[/frame]
[if]
hits=hit
[frame]
duration=150
image={FRAME}
sound={HITSOUND}
[/frame]
[/if]
[else]
hits=miss,kill
[frame]
duration=150
image={FRAME}
[/frame]
[/else]
[frame]
duration=1
image={BASEFRAME}
[/frame]
[/defend]
#enddef
# These are included for backwards-compatibility mainly; they aren't and
# shouldn't be used for mainline units.
#define IMAGE_DEFENSIVE IMAGE_FILE
[defend]
[frame]
begin=-150
end=150
image={IMAGE_FILE}
[/frame]
[/defend]
#enddef
#define IMAGE_DEFENSIVE_RANGE IMAGE_FILE
[defend]
range=ranged
[frame]
begin=-150
end=150
image={IMAGE_FILE}
[/frame]
[/defend]
#enddef
#define IMAGE_DEFENSIVE_SHORT IMAGE_FILE
[defend]
range=melee
[frame]
begin=-150
end=150
image={IMAGE_FILE}
[/frame]
[/defend]
#enddef
#define MISSILE_FRAME_WAIL
[if]
direction=n,ne,nw
[missile_frame]
begin=-300
end=-230
image="projectiles/wailprojectile-n-1.png"
image_diagonal="projectiles/wailprojectile-ne-1.png"
[/missile_frame]
[missile_frame]
begin=-230
end=-160
image="projectiles/wailprojectile-n-2.png"
image_diagonal="projectiles/wailprojectile-ne-2.png"
[/missile_frame]
[missile_frame]
begin=-160
end=0
image="projectiles/wailprojectile-n-3.png"
image_diagonal="projectiles/wailprojectile-ne-3.png"
[/missile_frame]
[missile_frame]
begin=0
end=40
image="projectiles/wailprojectile-n-4.png"
image_diagonal="projectiles/wailprojectile-ne-4.png"
[/missile_frame]
[missile_frame]
begin=40
end=80
image="projectiles/wailprojectile-n-5.png"
image_diagonal="projectiles/wailprojectile-ne-5.png"
[/missile_frame]
[missile_frame]
begin=80
end=120
image="projectiles/wailprojectile-n-6.png"
image_diagonal="projectiles/wailprojectile-ne-6.png"
[/missile_frame]
[/if]
[else]
direction=s,se,sw
### The price of asymmetrical projectiles - here, we use a conditional because the game automatically flips the images for the south frame. We have a separate set of images for the south part, which are not only flipped vertically, but also have their angle corrected for the sw direction.
[missile_frame]
begin=-300
end=-230
image="projectiles/wailprojectile-s-1.png"
image_diagonal="projectiles/wailprojectile-se-1.png"
[/missile_frame]
[missile_frame]
begin=-230
end=-160
image="projectiles/wailprojectile-s-2.png"
image_diagonal="projectiles/wailprojectile-se-2.png"
[/missile_frame]
[missile_frame]
begin=-160
end=0
image="projectiles/wailprojectile-s-3.png"
image_diagonal="projectiles/wailprojectile-se-3.png"
[/missile_frame]
[missile_frame]
begin=0
end=40
image="projectiles/wailprojectile-s-4.png"
image_diagonal="projectiles/wailprojectile-se-4.png"
[/missile_frame]
[missile_frame]
begin=40
end=80
image="projectiles/wailprojectile-s-5.png"
image_diagonal="projectiles/wailprojectile-se-5.png"
[/missile_frame]
[missile_frame]
begin=80
end=120
image="projectiles/wailprojectile-s-6.png"
image_diagonal="projectiles/wailprojectile-se-6.png"
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_FIRE_BREATH N_OFFSET S_OFFSET N_DIAGONAL_OFFSET S_DIAGONAL_OFFSET
[if]
direction=n
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-n-1.png:80,projectiles/fire-breath-n-2.png:80,projectiles/fire-breath-n-3.png:80,projectiles/fire-breath-n-4.png:80,projectiles/fire-breath-n-5.png:80
halo_x,halo_y={N_OFFSET}
[/missile_frame]
[/if]
[else]
direction=s
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-s-1.png:80,projectiles/fire-breath-s-2.png:80,projectiles/fire-breath-s-3.png:80,projectiles/fire-breath-s-4.png:80,projectiles/fire-breath-s-5.png:80
halo_x,halo_y={S_OFFSET}
[/missile_frame]
[/else]
[else]
direction=ne,nw
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-ne-1.png:80,projectiles/fire-breath-ne-2.png:80,projectiles/fire-breath-ne-3.png:80,projectiles/fire-breath-ne-4.png:80,projectiles/fire-breath-ne-5.png:80
halo_x,halo_y={N_DIAGONAL_OFFSET}
[/missile_frame]
[/else]
[else]
direction=se,sw
[missile_frame]
begin=-400
end=100
halo=projectiles/fire-breath-se-1.png:80,projectiles/fire-breath-se-2.png:80,projectiles/fire-breath-se-3.png:80,projectiles/fire-breath-se-4.png:80,projectiles/fire-breath-se-5.png:80
halo_x,halo_y={S_DIAGONAL_OFFSET}
[/missile_frame]
[/else]
#enddef
#define MISSILE_FRAME_FAERIE_FIRE
[missile_frame]
begin=-500
end=-350
image="projectiles/icemissile-n-1.png"
image_diagonal="projectiles/icemissile-ne-1.png"
halo=halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:100,halo/elven/ice-halo3.png:25
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-350
end=-200
image="projectiles/icemissile-n-2.png"
image_diagonal="projectiles/icemissile-ne-2.png"
halo=halo/elven/ice-halo3.png:75,halo/elven/ice-halo4.png:75
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-200
end=-50
image="projectiles/icemissile-n-3.png"
image_diagonal="projectiles/icemissile-ne-3.png"
halo=halo/elven/ice-halo5.png:100,halo/elven/ice-halo1.png:100,halo/elven/ice-halo2.png:50
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=-50
end=0
image="projectiles/icemissile-n-4.png"
image_diagonal="projectiles/icemissile-ne-4.png"
halo=halo/elven/ice-halo6.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=25
end=75
image="projectiles/icemissile-n-5.png"
image_diagonal="projectiles/icemissile-ne-5.png"
halo=halo/elven/ice-halo7.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=75
end=125
image="projectiles/icemissile-n-6.png"
image_diagonal="projectiles/icemissile-ne-6.png"
halo=halo/elven/ice-halo8.png
halo_x,halo_y=0,0
[/missile_frame]
[missile_frame]
begin=125
end=175
image="projectiles/icemissile-n-7.png"
image_diagonal="projectiles/icemissile-ne-7.png"
halo=halo/elven/ice-halo9.png
halo_x,halo_y=0,0
[/missile_frame]
#enddef
#define MISSILE_FRAME_FIREBALL
[missile_frame]
begin=-220
end=-100
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
[/missile_frame]
[missile_frame]
begin=-100
end=25
image="projectiles/fireball-n.png"
image_diagonal="projectiles/fireball-nw.png"
[/missile_frame]
[missile_frame]
begin=25
end=80
image="projectiles/fireball-n-2.png"
image_diagonal="projectiles/fireball-nw-2.png"
[/missile_frame]
#enddef
#this macro is called on top of every idle animation, to provide a standard set of
#conditions to play the idle animation
#define STANDARD_IDLE_FILTER
#poisoned units hould have no idle animation
[unit_filter]
[not]
[wml_filter]
[status]
poisoned="yes"
[/status]
[/wml_filter]
[/not]
[/unit_filter]
#enddef

314
data/utils/event-utils.cfg Normal file
View file

@ -0,0 +1,314 @@
# This file contains shortcuts for common WML events (such as prestart, side
# turn, and such), which can be used to write events faster and in less space.
#
# It is recommended that you only use these if you're confident you could write
# the expanded form as well; these are mostly intended as shortcuts for
# experienced WML authors.
# Creates a generic event, only intended to be used when no other event can be
# used.
#define ON_EVENT NAME ACTION
[event]
name={NAME}
{ACTION}
[/event]
#enddef
# Creates an event that triggers when the scenario starts but before the user
# gets any visible output.
#
# For example, you can make side 2 start the scenario with ownership of the
# village at 13,15:
#
# {ON_PRESTART (
# [capture_village]
# side=2
# x,y=13,15
# [/capture_village]
# )}
#define ON_PRESTART ACTION
[event]
name=prestart
{ACTION}
[/event]
#enddef
# Creates an event that triggers when the scenario starts, after the map is
# displayed but before the player can act.
#
# For example you could display some dialogue when the scenario starts:
#
# {ON_START (
# [message]
# speaker=Konrad
# message= _ "Hey, I can see some enemies up ahead!"
# [/message]
#
# [message]
# speaker=Delfador
# message= _ "Yes, so it would seem. Charge!"
# [/message]
# )}
#define ON_START ACTION
[event]
name=start
{ACTION}
[/event]
#enddef
# Creates an event that triggers at the end of every turn.
#
# For example, you could give a player some gold at the end every turn:
#
# {ON_NEXT_TURN (
# [gold]
# amount=35
# side=1
# [/gold]
# )}
#define ON_NEXT_TURN ACTION
[event]
name=new turn
first_time_only=no
{ACTION}
[/event]
#enddef
# Creates an event that triggers at the end of the current turn.
# For example you could give a player some gold before his/hers next turn.:
# {ON_NEXT_TURN (
# [gold]
# amount=100
# side=1
# [/gold]
# )}
#define ON_NEXT_TURN_ONCE ACTION
[event]
name=new turn
first_time_only=yes
{ACTION}
[/event]
#enddef
# Creates an event that triggers at the start of every players turn
# For example you could set each players gold to a fixed amount every turn.
# {ON_SIDETURN (
# [modify_side]
# side=3
# gold=0
# [/modify_side]
# )}
#define ON_SIDETURN ACTION
[event]
name=side turn
first_time_only=no
{ACTION}
[/event]
#enddef
# Creates an event that triggers at the start of turn TURN
# For example you can create a Wose belonging to player 1 at turn 3:
# {ON_TURN 3 (
# [unit]
# side=1
# type=wose
# x,y=12,4
# [/unit]
# )}
#define ON_TURN TURN ACTION
[event]
name=turn {TURN}
{ACTION}
[/event]
#enddef
# Creates an event that triggers when the last turn ends.
# For example you could display a message saying they suck:
# {ON_LAST_TURN (
# [message]
# speaker=narrator
# message="They suck!"
# [/message]
# )}
#define ON_LAST_TURN ACTION
[event]
name=time over
{ACTION}
[/event]
#enddef
# Creates an event that triggers when a player wins the game, before the game ends.
# For example you could congratulate the player:
# {ON_VICTORY (
# [message]
# speaker=narrator
# message="Congratulations!"
# [/message]
# )}
#define ON_VICTORY ACTION
[event]
name=victory
{ACTION}
[/event]
#enddef
# Creates an event that triggers when a player wins the game, before the game ends.
# For example you could suggest an easier difficulty the player:
# {ON_DEFEAT (
# [message]
# speaker=narrator
# message="Aww.. you lost. Try again with 800g and +40g income?"
# [/message]
# )}
#define ON_DEFEAT ACTION
[event]
name=defeat
{ACTION}
[/event]
#enddef
# Creates an event that triggers anytime a unit steps on a given tile.
# The filter can be used to only affect special units, or units of a given player.
# For example we could make a tree where the first players leader can read a note, but noone else:
# {ON_TILE 5 7 (
# side=1
# canrecruit=1
# ) (
# [message]
# speaker=narrator
# message="This is a note."
# [/message]
# )}
#define ON_TILE X Y FILTER ACTION
[event]
name=moveto
first_time_only=no
[filter]
x={X}
y={Y}
{FILTER}
[/filter]
{ACTION}
[/event]
#enddef
# Creates an event that triggers the first time a unit steps on a given tile.
# The filter can be used to only affect special units, or units of a given player.
# For example we could make a text-message that is only readable once:
# {ON_TILE_ONCE 5 7 () (
# [message]
# speaker=narrator
# message="This is a note."
# [/message]
# )}
#define ON_TILE_ONCE X Y FILTER ACTION
[event]
name=moveto
first_time_only=yes
[filter]
x={X}
y={Y}
{FILTER}
[/filter]
{ACTION}
[/event]
#enddef
# Creates an event that triggers anytime a unit matching FILTER dies.
# For example we can make all units scream in pain upon death:
# {ON_DEATH () (
# [message]
# speaker=unit
# message="AAaaaaAAaaAAaarrrghh!!!"
# [/message]
# )}
#define ON_DEATH FILTER ACTION
[event]
name=die
first_time_only=no
[filter]
{FILTER}
[/filter]
{ACTION}
[/event]
#enddef
# Creates an event that triggers the first time a unit matching FILTER dies.
# For example we can make only player 3s leader units scream in pain upon death:
# {ON_DEATH (
# side=3
# canrecruit=1
# ) (
# [message]
# speaker=unit
# message="AAaaaaAAaaAAaarrrghh!!!"
# [/message]
# )}
#define ON_DEATH_ONCE FILTER ACTION
[event]
name=die
first_time_only=yes
[filter]
{FILTER}
[/filter]
{ACTION}
[/event]
#enddef
# Creates an event that triggers before any unit matching FILTER advances to a new class.
# For example we could make it smile:
# {ON_ADVANCEMENT () (
# [message]
# speaker=unit
# message=":D"
# [/message]
# )}
#define ON_ADVANCEMENT FILTER ACTION
[event]
name=advance
first_time_only=no
[filter]
{FILTER}
[/filter]
{ACTION}
[/event]
#enddef
# Creates an event that triggers after any unit matching FILTER advanced to a new class.
# For example we could make it claim to be the strongest one alive:
# {ON_POSTADVANCEMENT () (
# [message]
# speaker=unit
# message="I'm the strongest one alive!"
# [/message]
# )}
#define ON_POSTADVANCEMENT FILTER ACTION
[event]
name=post_advance
first_time_only=no
[filter]
{FILTER}
[/filter]
{ACTION}
[/event]
#enddef

View file

@ -0,0 +1,217 @@
# Displays a text message spoken by SPEAKER.
# Speaker can be any of: narrator, unit and second_unit
# For example, lets have the narrator, which looks like a feary
# express some feelings on the undead:
# {MESSAGE narrator "units/elves-wood/shyde.png" _ "Faery" _ "Aarr! Them be undeadies! Loooks at them.."}
#define MESSAGE SPEAKER IMAGE CAPTION TEXT
[message]
speaker={SPEAKER}
message={TEXT}
image={IMAGE}
caption={CAPTION}
[/message]
#enddef
# Changes the currently playing track to the one specified
# For example we could switch to underground.ogg:
# {MUSIC_PLAY underground}
#define MUSIC_PLAY SONG
[music]
name={SONG}.ogg
[/music]
#enddef
# Adds the given song to the end of the current playlist.
# For example, lets add wesnoth-01 to the end of the playlist:
# {MUSIC_APPEND wesnoth-01}
#define MUSIC_APPEND SONG
[music]
name={SONG}.ogg
append=yes
[/music]
#enddef
# Scrolls the screen to the given coordinates.
# For example, lets focus on 26,35:
# {SCROLL 26 35}
# Puts a label on the map at x,y
# example:
# {SET_LABEL 4 7 _ "There be dragons here!"}
#define SET_LABEL X Y TEXT
[label]
x={X}
y={Y}
text={TEXT}
[/label]
#enddef
# Removes a label from a given tile
# Exameple, remove it from 4,7
# {REMOVE_LABEL 4 7}
#define REMOVE_LABEL X Y
[label]
x={X}
y={Y}
text=""
[/label]
#enddef
# Sets a label on tile x,y that gets reset every sideturn in case
# someone clears it.
# Example:
# {SET_LABEL_PERSISTANT 4 7 _ "There really will be dragons here!!"}
#define SET_LABEL_PERSISTANT X Y TEXT
{SET_LABEL {X} {Y} ({TEXT}) }
{ON_SIDETURN (
{SET_LABEL {X} {Y} ({TEXT}) }
)}
#enddef
# Places an image at a given tile, shrinking it to fit the tile
# For example, lets put a tent on tile 14,5
# {SET_IMAGE 14 5 "terrain/tent.png"}
#define SET_IMAGE X Y IMAGE
[item]
x,y={X},{Y}
image={IMAGE}
[/item]
#enddef
# Removes a previously set image from a tile
# Example:
# {REMOVE_IMAGE 14 5}
#define REMOVE_IMAGE X Y
[removeitem]
x,y={X},{Y}
[/removeitem]
#enddef
# Shorthand for setting both an image and a label at once.
#define SET_IMAGE_AND_LABEL X Y IMAGE TEXT
{SET_LABEL {X} {Y} ({TEXT}) }
{SET_IMAGE {X} {Y} ({IMAGE}) }
#enddef
# Shorthand for setting both a persistant label and image at once.
#define SET_IMAGE_AND_LABEL_PERSISTANT X Y IMAGE TEXT
{SET_LABEL_PERSISTANT {X} {Y} ({TEXT}) }
{SET_IMAGE {X} {Y} ({IMAGE}) }
#enddef
# Shorthand for removing both image and label at once
#define REMOVE_IMAGE_AND_LABEL X Y
{REMOVE_IMAGE {X} {Y}}
{REMOVE_LABEL {X} {Y}}
#enddef
#define SCROLL X Y
[scroll]
x={X}
y={Y}
[/scroll]
#enddef
# Creates an earthquake-effect while performing ACTION
# For example we could kill all non-leader units in the earthquake:
# {EARTHQUAKE (
# [kill]
# canrecruit=0
# animate=yes
# [/kill]
# )}
#define EARTHQUAKE ACTION
[sound]
name=lightning.wav
[/sound]
{SCROLL 2 1}
{SCROLL -1 -3}
{SCROLL -3 1}
{ACTION}
{SCROLL 1 3}
{SCROLL 1 -2}
#enddef
# adjusts the color of the screen by a tint or red, green and blue
# for example, lets make it very blueish:
# {COLOR_ADJUST 0 0 100}
#define COLOR_ADJUST RED GREEN BLUE
[colour_adjust]
red={RED}
green={GREEN}
blue={BLUE}
[/colour_adjust]
#enddef
# Flashes the screen with a given color performing ACTION
# These macros come in WHITE, RED, GREEN and BLUE and can
# easily be expanded for ORANGE, PURPLE etc.
# Example, Flash the screen to scare the player:
# {FLASH_GREEN ()}
# {FLASH_RED ()}
# {FLASH_BLUE ()}
# {FLASH_WHITE ()}
#define FLASH_WHITE ACTION
{COLOR_ADJUST 67 67 67}
{COLOR_ADJUST 100 100 100}
{ACTION}
{COLOR_ADJUST 33 33 33}
{COLOR_ADJUST 0 0 0}
#enddef
#define FLASH_RED ACTION
{COLOR_ADJUST 67 0 0}
{COLOR_ADJUST 100 0 0}
{ACTION}
{COLOR_ADJUST 33 0 0}
{COLOR_ADJUST 0 0 0}
#enddef
#define FLASH_GREEN ACTION
{COLOR_ADJUST 0 67 0}
{COLOR_ADJUST 0 100 0}
{ACTION}
{COLOR_ADJUST 0 33 0}
{COLOR_ADJUST 0 0 0}
#enddef
#define FLASH_BLUE ACTION
{COLOR_ADJUST 0 0 67}
{COLOR_ADJUST 0 0 100}
{ACTION}
{COLOR_ADJUST 0 0 33}
{COLOR_ADJUST 0 0 0}
#enddef
# Creates a flashlike-effect while performing ACTION
# For example, player 3 might disappear in the flash of a lightning:
# {THUNDER (
# [store_unit]
# [filter]
# side=3
# [/filter]
# variable=player3
# kill=yes
# [/store_unit]
# )}
#define THUNDER ACTION
[sound]
name=lightning.wav
[/sound]
{FLASH_WHITE ({ACTION}) }
#enddef

View file

@ -0,0 +1,80 @@
# Sets the objectives for a given player
# Side 0 means every player. Does not affect gameplay except tells the player what the objectives of a scenario are.
# For example, we could set the objective for all players to: "survive for 3 turns".
# {SET_OBJECTIVES 0 "Survive for 3 turns" () ()}
#
#define SET_OBJECTIVES SIDE SUMMARY NOTE CONDITIONS
[objectives]
side = {SIDE}
summary = {SUMMARY}
note = {NOTE}
{CONDITIONS}
[/objectives]
#enddef
# Used in conjunction with SET_OBJECTIVES this sets a victory condition (marked green)
# For example we could tell player 2 to win by killing all other players
# {SET_OBJECTIVES 0 "Kill eachother." (
# {VICTORY_CONDITION "Kill all other players."}
# )}
#
#define VICTORY_CONDITION DESCRIPTION
[objective]
condition = "win"
description = {DESCRIPTION}
[/objective]
#enddef
# Used in conjunction with SET_OBJECTIVES this sets a defeat condition (marked red)
# For example we could tell all players that they lose if they die.
# {SET_OBJECTIVES 0 "Survive." (
# {DEFEAT_CONDITION "Death of your leader."}
# )}
#
#define DEFEAT_CONDITION DESCRIPTION
[objective]
condition = "lose"
description = {DESCRIPTION}
[/objective]
#enddef
# Defines a multiplayer side in a scenario that is controllable by the player.
# For example we can set side 1 to be a player belonging to team "Good Guys" starting with 200g and no income.
# {SIDE_PLAYER 1 "Good Guys" "Good Guy #1" 200 -2 ()}
#
#define SIDE_PLAYER SIDE TEAM DESCRIPTION GOLD INCOME SIDE_PARMS
[side]
description={DESCRIPTION}
side={SIDE}
team_name={TEAM}
canrecruit=1
controller=human
gold={GOLD}
income={INCOME}
{SIDE_PARMS}
[/side]
#enddef
# Defines a multiplayer side in a scenario that is controllad by the computer.
# For example we can set side 4 to be a computer belonging to team "Evil Guys" starting with 666g and no 99 income.
# We also makes it more aggressive:
# {SIDE_COMPUTER 4 "Evil Guys" "Evil One" 666 99 (
# aggression=0.95
# )}
#
#define SIDE_COMPUTER SIDE TEAM DESCRIPTION GOLD INCOME SIDE_PARMS AI_PARMS
[side]
description={DESCRIPTION}
side={SIDE}
team_name={TEAM}
canrecruit=1
controller=ai
allow_player=no
gold={GOLD}
income={INCOME}
{SIDE_PARMS}
[ai]
{AI_PARMS}
[/ai]
[/side]
#enddef

View file

@ -1,102 +1,102 @@
# For some animations some units use a list of sounds, from which one is
# randomly picked every time, instead of a single sound. Here the most commonly
# used lists are wrapped inside macros.
#
# These are used in unit .cfg's for example like this:
#
# [animation]
# hits=no
#
# [frame]
# begin=-200
# end=0
# sound={SOUND_LIST:MISS}
# image="units/dwarves/warrior-attack.png"
# [/frame]
#define SOUND_LIST:HOLY
magic-holy-1.ogg,magic-holy-2.ogg,magic-holy-3.ogg,magic-holy-4.ogg #enddef
#define SOUND_LIST:HOLY_MISS
magic-holy-miss-1.ogg,magic-holy-miss-2.ogg,magic-holy-miss-3.ogg,magic-holy-miss-4.ogg #enddef
#define SOUND_LIST:MISS
miss-1.ogg,miss-2.ogg,miss-3.ogg #enddef
#define SOUND_LIST:SWORD_SWISH
sword-1.ogg #enddef
#define SOUND_LIST:DRAKE_HIT
drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg #enddef
#define SOUND_LIST:DWARF_HIT
dwarf-hit-1.ogg,dwarf-hit-2.ogg,dwarf-hit-3.ogg,dwarf-hit-4.ogg #enddef
#define SOUND_LIST:DWARF_DIE
dwarf-die-1.ogg,dwarf-die-2.ogg #enddef
#define SOUND_LIST:ELF_HIT
human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-2.ogg,elf-hit-4.ogg #enddef
#define SOUND_LIST:ELF_FEMALE_HIT
human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg #enddef
#define SOUND_LIST:GOBLIN_HIT
goblin-hit-1.ogg,goblin-hit-2.ogg,goblin-hit-3.ogg #enddef
#define SOUND_LIST:GOBLIN_DIE
goblin-die-1.ogg,goblin-die-2.ogg #enddef
#define SOUND_LIST:GRYPHON_HIT
gryphon-hit-1.ogg,gryphon-hit-2.ogg,gryphon-hit-3.ogg #enddef
#define SOUND_LIST:GRYPHON_DIE
gryphon-die-1.ogg,gryphon-die-2.ogg #enddef
#define SOUND_LIST:HORSE_HIT
horse-hit-1.ogg,horse-hit-2.ogg,horse-hit-3.ogg #enddef
#define SOUND_LIST:HUMAN_HIT
human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,human-hit-5.ogg #enddef
#define SOUND_LIST:HUMAN_FEMALE_HIT
human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg #enddef
#define SOUND_LIST:HUMAN_OLD_HIT
human-old-hit-1.ogg,human-old-hit-2.ogg,human-old-hit-3.ogg,human-old-hit-4.ogg #enddef
#define SOUND_LIST:HUMAN_OLD_DIE
human-old-die-1.ogg,human-old-die-2.ogg,human-old-die-3.ogg #enddef
#define SOUND_LIST:HUMAN_DIE
human-die-1.ogg,human-die-2.ogg,human-die-3.ogg #enddef
#define SOUND_LIST:HUMAN_FEMALE_DIE
human-female-die-1.ogg,human-female-die-2.ogg,human-female-die-3.ogg #enddef
#define SOUND_LIST:LICH_HIT
lich-hit-1.ogg,lich-hit-2.ogg #enddef
#define SOUND_LIST:NAGA_HIT
naga-hit-1.ogg,naga-hit-2.ogg,naga-hit-3.ogg #enddef
#define SOUND_LIST:ORC_HIT
orc-hit-1.ogg,orc-hit-2.ogg,orc-hit-3.ogg,orc-hit-4.ogg #enddef
#define SOUND_LIST:ORC_DIE
orc-die-1.ogg,orc-die-2.ogg,orc-die-3.ogg #enddef
#define SOUND_LIST:ORC_SMALL_HIT
orc-small-hit-1.ogg,orc-small-hit-2.ogg,orc-small-hit-3.ogg,orc-small-hit-4.ogg #enddef
#define SOUND_LIST:ORC_SMALL_DIE
orc-small-die-1.ogg,orc-small-die-2.ogg #enddef
#define SOUND_LIST:ZOMBIE_WEAK_HIT
zombie-hit-4.ogg,zombie-hit-5.ogg,zombie-hit-6.ogg #enddef
#define SOUND_LIST:ZOMBIE_HIT
zombie-hit-1.ogg,zombie-hit-2.ogg,zombie-hit-3.ogg,zombie-hit-4.ogg,zombie-hit-5.ogg,zombie-hit-6.ogg #enddef
#define SOUND_LIST:ZOMBIE_STRONG_HIT
zombie-hit-1.ogg,zombie-hit-2.ogg,zombie-hit-3.ogg #enddef
# For some animations some units use a list of sounds, from which one is
# randomly picked every time, instead of a single sound. Here the most commonly
# used lists are wrapped inside macros.
#
# These are used in unit .cfg's for example like this:
#
# [animation]
# hits=no
#
# [frame]
# begin=-200
# end=0
# sound={SOUND_LIST:MISS}
# image="units/dwarves/warrior-attack.png"
# [/frame]
#define SOUND_LIST:HOLY
magic-holy-1.ogg,magic-holy-2.ogg,magic-holy-3.ogg,magic-holy-4.ogg #enddef
#define SOUND_LIST:HOLY_MISS
magic-holy-miss-1.ogg,magic-holy-miss-2.ogg,magic-holy-miss-3.ogg,magic-holy-miss-4.ogg #enddef
#define SOUND_LIST:MISS
miss-1.ogg,miss-2.ogg,miss-3.ogg #enddef
#define SOUND_LIST:SWORD_SWISH
sword-1.ogg #enddef
#define SOUND_LIST:DRAKE_HIT
drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg #enddef
#define SOUND_LIST:DWARF_HIT
dwarf-hit-1.ogg,dwarf-hit-2.ogg,dwarf-hit-3.ogg,dwarf-hit-4.ogg #enddef
#define SOUND_LIST:DWARF_DIE
dwarf-die-1.ogg,dwarf-die-2.ogg #enddef
#define SOUND_LIST:ELF_HIT
human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-2.ogg,elf-hit-4.ogg #enddef
#define SOUND_LIST:ELF_FEMALE_HIT
human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg #enddef
#define SOUND_LIST:GOBLIN_HIT
goblin-hit-1.ogg,goblin-hit-2.ogg,goblin-hit-3.ogg #enddef
#define SOUND_LIST:GOBLIN_DIE
goblin-die-1.ogg,goblin-die-2.ogg #enddef
#define SOUND_LIST:GRYPHON_HIT
gryphon-hit-1.ogg,gryphon-hit-2.ogg,gryphon-hit-3.ogg #enddef
#define SOUND_LIST:GRYPHON_DIE
gryphon-die-1.ogg,gryphon-die-2.ogg #enddef
#define SOUND_LIST:HORSE_HIT
horse-hit-1.ogg,horse-hit-2.ogg,horse-hit-3.ogg #enddef
#define SOUND_LIST:HUMAN_HIT
human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,human-hit-5.ogg #enddef
#define SOUND_LIST:HUMAN_FEMALE_HIT
human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg #enddef
#define SOUND_LIST:HUMAN_OLD_HIT
human-old-hit-1.ogg,human-old-hit-2.ogg,human-old-hit-3.ogg,human-old-hit-4.ogg #enddef
#define SOUND_LIST:HUMAN_OLD_DIE
human-old-die-1.ogg,human-old-die-2.ogg,human-old-die-3.ogg #enddef
#define SOUND_LIST:HUMAN_DIE
human-die-1.ogg,human-die-2.ogg,human-die-3.ogg #enddef
#define SOUND_LIST:HUMAN_FEMALE_DIE
human-female-die-1.ogg,human-female-die-2.ogg,human-female-die-3.ogg #enddef
#define SOUND_LIST:LICH_HIT
lich-hit-1.ogg,lich-hit-2.ogg #enddef
#define SOUND_LIST:NAGA_HIT
naga-hit-1.ogg,naga-hit-2.ogg,naga-hit-3.ogg #enddef
#define SOUND_LIST:ORC_HIT
orc-hit-1.ogg,orc-hit-2.ogg,orc-hit-3.ogg,orc-hit-4.ogg #enddef
#define SOUND_LIST:ORC_DIE
orc-die-1.ogg,orc-die-2.ogg,orc-die-3.ogg #enddef
#define SOUND_LIST:ORC_SMALL_HIT
orc-small-hit-1.ogg,orc-small-hit-2.ogg,orc-small-hit-3.ogg,orc-small-hit-4.ogg #enddef
#define SOUND_LIST:ORC_SMALL_DIE
orc-small-die-1.ogg,orc-small-die-2.ogg #enddef
#define SOUND_LIST:ZOMBIE_WEAK_HIT
zombie-hit-4.ogg,zombie-hit-5.ogg,zombie-hit-6.ogg #enddef
#define SOUND_LIST:ZOMBIE_HIT
zombie-hit-1.ogg,zombie-hit-2.ogg,zombie-hit-3.ogg,zombie-hit-4.ogg,zombie-hit-5.ogg,zombie-hit-6.ogg #enddef
#define SOUND_LIST:ZOMBIE_STRONG_HIT
zombie-hit-1.ogg,zombie-hit-2.ogg,zombie-hit-3.ogg #enddef

58
data/utils/temp-utils.cfg Normal file
View file

@ -0,0 +1,58 @@
# Teleports a unit matching FILTER to NEWX,NEWY
# For example, teleport player3s leader to 4,5
# {TELEPORT_UNIT (
# side=3
# canrecruit=1
# ) 4 5}
#define TELEPORT_UNIT FILTER NEWX NEWY
[teleport]
[filter]
{FILTER}
[/filter]
x={NEWX}
y={NEWY}
[/teleport]
[redraw]
[/redraw]
#enddef
# Teleports a unit on tile OLDX,OLDY to NEWX,NEWY
# For example, teleport any unit thats currently on 1,1 to 4,5
# {TELEPORT_TILE 1 1 4 5}
#define TELEPORT_TILE OLDX OLDY NEWX NEWY
[teleport]
[filter]
x={OLDX}
y={OLDY}
[/filter]
x={NEWX}
y={NEWY}
[/teleport]
[redraw]
[/redraw]
#enddef
# Creates a unit of TYPE belonging to SIDE at X,Y. UNIT_ID can be used when filtering on it.
# For example, lets create a wose for player 1 at 4,7
# {CREATE_UNIT 1 "Wose" 4 7 () ()}
# As a second example, lets make it a female wose which can recruit and is name "Woselina":
# {CREATE_UNIT 1 "Wose" 4 7 "Woselina" (
# canrecruit=1
# )}
#define CREATE_UNIT SIDE TYPE X Y UNIT_ID OTHER
[unit]
side={SIDE}
type={TYPE}
x={X}
y={Y}
description={UNIT_ID}
upkeep=full
animate=yes
{OTHER}
[/unit]
#enddef

View file

@ -0,0 +1,90 @@
# Condition triggering if PLAYER has at least one unit left.
# For example, if the player 2 is still alive, kill all his units.
# {IF_ALIVE 2 (
# [kill]
# side=2
# [/kill]
# )}
#define IF_ALIVE PLAYER ACTION
[if]
[have_unit]
side={PLAYER}
[/have_unit]
[then]
{ACTION}
[/then]
[/if]
#enddef
# Condition triggering if PLAYER has no units left.
# For example, give player 2 gold if player 1 is dead
# {IF_DEAD 1 (
# [gold]
# side=2
# amount=25
# [/gold]
# )}
#define IF_DEAD PLAYER ACTION
[if]
[have_unit]
side={PLAYER}
[/have_unit]
[then]
[/then]
[else]
{ACTION}
[/else]
[/if]
#enddef
# Condition that triggers if PLAYER1 and PLAYER2 belong to the same team.
# NOTE: only works if leaders are alive, are the same leader as the game started and haven't changed teams.
# For example, if player 3 and 4 is allied, steal 10 gold from each:
# {IF_ALLIED 3 4 (
# [gold]
# side=3
# amount=-10
# [/gold]
# [gold]
# side=4
# amount=-10
# [/gold]
# )}
#define IF_ALLIED PLAYER1 PLAYER2 ACTION
[store_unit]
[filter]
side={PLAYER1}
canrecruit=1
[/filter]
variable=leader1
mode=replace
kill=no
[/store_unit]
[store_unit]
[filter]
side={PLAYER2}
canrecruit=1
[/filter]
variable=leader2
mode=replace
kill=no
[/store_unit]
[if]
[variable]
name=leader1.team_name
equals=$leader2.team_name
[/variable]
[then]
{ACTION}
[/then]
[/if]
[clear_variable]
name=leader1
[/clear_variable]
[clear_variable]
name=leader2
[/clear_variable]
#enddef

View file

@ -0,0 +1,67 @@
# Changes the terrain at a given list of coordinates
# For example we could make 14,15 and 14,16 grassland:
# {MODIFY_TERRAIN g (14,14) (15,16)}
#define MODIFY_TERRAIN LETTER X Y
[terrain]
letter={LETTER}
x={X}
y={Y}
[/terrain]
#enddef
# Changes the terrain for a given area
# For example we could create a castle at 10,12:
# #define CASTLE_MASK
# CC
# CKC
# CC
# #enddef
# {MODIFY_TERRAIN_MASK 10 12 ({CASTLE_MASK})}
#define MODIFY_TERRAIN_MASK X Y MASK RULES
[terrain_mask]
x={X}
y={Y}
mask={MASK}
{RULES}
[/terrain_mask]
#enddef
# Ends the game with the result RESULT (can be either victory or defeat)
# For example, we could win:
# {ENDGAME victory}
#
#define ENDGAME RESULT
[endlevel]
result={RESULT}
[/endlevel]
#enddef
# Allows the player to undo the effects of a moveto event.
# For example, lets allow undoing reading a note:
# {ON_TILE 5 7 () (
# {ALLOW_UNDO (
# [message]
# speaker=narrator
# message="This is a note."
# [/message]
# )}
# )}
#define ALLOW_UNDO ACTION
[allow_undo]
{ACTION}
[/allow_undo]
#enddef
# Gives a side an amount of gold
# For example, lets make player 1 rich:
# {ADD_GOLD 1 999}
#define ADD_GOLD SIDE AMOUNT
[gold]
side={SIDE}
amount={AMOUNT}
[/gold]
#enddef

View file

@ -1,58 +1,57 @@
# This file contains utility macros for scenario writers
# This file contains general utility macros for WML authors.
#
# Also see
#### TABLE OF CONTENTS ####
# variable operations
# RANDOM
# VARIABLE
# VARIABLE_OP
# CLEAR_VARIABLE
# FOREACH
# NEXT
# IF_TERRAIN
# DEBUG_MSG
# RANDOM
# VARIABLE
# VARIABLE_OP
# CLEAR_VARIABLE
# FOREACH
# NEXT
# IF_TERRAIN
# DEBUG_MSG
# scenario/campaign setup
# DEFAULT_MUSIC_PLAYLIST
# SCENARIO_MUSIC
# STARTING_VILLAGES
# DOT
# CROSS
# MENU_IMG_TXT
# MENU_IMG_TXT2
# DEFAULT_MUSIC_PLAYLIST
# SCENARIO_MUSIC
# STARTING_VILLAGES
# DOT
# CROSS
# MENU_IMG_TXT
# MENU_IMG_TXT2
# side setup
# TURNS
# GOLD
# INCOME
# ATTACK_DEPTH
# NO_SCOUTS
# TURNS
# GOLD
# INCOME
# ATTACK_DEPTH
# NO_SCOUTS
# in-scenario actions
# PLACE_IMAGE
# TREMOR
# IS_HERO
# UNIT
# UNDEAD_UNIT
# MOVE_UNIT
# MODIFY_UNIT
# STORE_UNIT_VAR
# PUT_TO_RECALL_LIST
# PLACE_IMAGE
# TREMOR
# IS_HERO
# UNIT
# UNDEAD_UNIT
# MOVE_UNIT
# MODIFY_UNIT
# STORE_UNIT_VAR
# PUT_TO_RECALL_LIST
# utilities not intended for general use
# QUANTITY
# MAGENTA_IS_THE_TEAM_COLOR
# COLOR_HEAL
# COLOR_HARM
# COLOR_WHITE
# IMAGE_DEFENSIVE
# IMAGE_DEFENSIVE_RANGE
# IMAGE_DEFENSIVE_SHORT
# QUANTITY
# MAGENTA_IS_THE_TEAM_COLOR
# COLOR_HEAL
# COLOR_HARM
# COLOR_WHITE
#### END OF TABLE OF CONTENTS ####
@ -155,19 +154,19 @@ name={VAR}
#define FOREACH ARRAY VAR
{VARIABLE {VAR} 0}
[while]
[variable]
name={VAR}
less_than=${ARRAY}.length
[/variable]
[do]
[variable]
name={VAR}
less_than=${ARRAY}.length
[/variable]
[do]
#enddef
#define NEXT VAR
[set_variable]
name={VAR}
add=1
[/set_variable]
[/do]
[set_variable]
name={VAR}
add=1
[/set_variable]
[/do]
[/while]
{CLEAR_VARIABLE {VAR}}
#enddef
@ -369,33 +368,33 @@ message={MSG}
#define STARTING_VILLAGES SIDE RADIUS
[event]
name=prestart
[store_starting_location]
side={SIDE}
variable=temp_starting_location
[/store_starting_location]
[store_locations]
x,y=$temp_starting_location.x,$temp_starting_location.y
radius={RADIUS}
variable=temp_starting_locs
[store_starting_location]
side={SIDE}
variable=temp_starting_location
[/store_starting_location]
[store_locations]
x,y=$temp_starting_location.x,$temp_starting_location.y
radius={RADIUS}
variable=temp_starting_locs
#all the types of villages
terrain=AaBbDeLptUvVZY
[/store_locations]
#all the types of villages
terrain=AaBbDeLptUvVZY
[/store_locations]
{FOREACH temp_starting_locs i}
{VARIABLE_OP temp_x_var to_variable temp_starting_locs[$i].x}
{VARIABLE_OP temp_y_var to_variable temp_starting_locs[$i].y}
[capture_village]
side={SIDE}
x,y=$temp_x_var,$temp_y_var
[/capture_village]
{NEXT i}
{FOREACH temp_starting_locs i}
{VARIABLE_OP temp_x_var to_variable temp_starting_locs[$i].x}
{VARIABLE_OP temp_y_var to_variable temp_starting_locs[$i].y}
[capture_village]
side={SIDE}
x,y=$temp_x_var,$temp_y_var
[/capture_village]
{NEXT i}
{CLEAR_VARIABLE temp_x_var}
{CLEAR_VARIABLE temp_y_var}
{CLEAR_VARIABLE temp_starting_location}
{CLEAR_VARIABLE temp_starting_locs}
{CLEAR_VARIABLE i}
{CLEAR_VARIABLE temp_x_var}
{CLEAR_VARIABLE temp_y_var}
{CLEAR_VARIABLE temp_starting_location}
{CLEAR_VARIABLE temp_starting_locs}
{CLEAR_VARIABLE i}
[/event]
#enddef
@ -410,101 +409,67 @@ name=prestart
#
#define UNIT TYPE DESCRIPTION UDESCRIPTION SIDE X Y
[unit]
type={TYPE}
description={DESCRIPTION}
user_description={UDESCRIPTION}
side={SIDE}
x={X}
y={Y}
[modifications]
{TRAIT_LOYAL}
[/modifications]
[/unit]
[unit]
type={TYPE}
description={DESCRIPTION}
user_description={UDESCRIPTION}
side={SIDE}
x={X}
y={Y}
[modifications]
{TRAIT_LOYAL}
[/modifications]
[/unit]
#enddef
#define UNDEAD_UNIT TYPE SIDE X Y
[unit]
type={TYPE}
side={SIDE}
x={X}
y={Y}
[modifications]
{TRAIT_UNDEAD}
{TRAIT_LOYAL}
[/modifications]
[/unit]
[unit]
type={TYPE}
side={SIDE}
x={X}
y={Y}
[modifications]
{TRAIT_UNDEAD}
{TRAIT_LOYAL}
[/modifications]
[/unit]
#enddef
#define PLACE_IMAGE IMAGE_FILE X Y
[item]
x={X}
y={Y}
image={IMAGE_FILE}
[/item]
[item]
x={X}
y={Y}
image={IMAGE_FILE}
[/item]
#enddef
#define TREMOR
[sound]
name="rumble.ogg"
[/sound]
[scroll]
x=5
y=0
[/scroll]
[scroll]
x=-10
y=0
[/scroll]
[scroll]
x=5
y=5
[/scroll]
[scroll]
x=0
y=-10
[/scroll]
[scroll]
x=0
y=5
[/scroll]
[sound]
name="rumble.ogg"
[/sound]
[scroll]
x=5
y=0
[/scroll]
[scroll]
x=-10
y=0
[/scroll]
[scroll]
x=5
y=5
[/scroll]
[scroll]
x=0
y=-10
[/scroll]
[scroll]
x=0
y=5
[/scroll]
#enddef
#macro to easily replace image_defensive and image_defensive_range
#define IMAGE_DEFENSIVE IMAGE_FILE
[defend]
[frame]
begin=-150
end=150
image={IMAGE_FILE}
[/frame]
[/defend]
#enddef
#define IMAGE_DEFENSIVE_RANGE IMAGE_FILE
[defend]
range=ranged
[frame]
begin=-150
end=150
image={IMAGE_FILE}
[/frame]
[/defend]
#enddef
#define IMAGE_DEFENSIVE_SHORT IMAGE_FILE
[defend]
range=melee
[frame]
begin=-150
end=150
image={IMAGE_FILE}
[/frame]
[/defend]
#enddef
# a macro to define a common set of magenta color values which different
# units can be color shifted by using the team color system
@ -530,67 +495,67 @@ flag_rgb=magenta
# twice to catch instances where music is changed in a story and not set back.
#define DEFAULT_MUSIC_PLAYLIST
[music]
name=gameplay01.ogg
ms_before=12000
[/music]
[music]
name=gameplay02.ogg
ms_before=12000
append=yes
[/music]
[music]
name=gameplay03.ogg
ms_before=12000
append=yes
[/music]
[music]
name=main_menu.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-1.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-2.ogg
ms_before=12000
append=yes
[/music]
[event]
name=prestart
[music]
name=gameplay01.ogg
ms_before=12000
[/music]
[music]
name=gameplay02.ogg
ms_before=12000
append=yes
[/music]
[music]
name=gameplay03.ogg
ms_before=12000
append=yes
[/music]
[music]
name=main_menu.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-1.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-2.ogg
ms_before=12000
append=yes
[/music]
[/event]
[music]
name=gameplay01.ogg
ms_before=12000
[/music]
[music]
name=gameplay02.ogg
ms_before=12000
append=yes
[/music]
[music]
name=gameplay03.ogg
ms_before=12000
append=yes
[/music]
[music]
name=main_menu.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-1.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-2.ogg
ms_before=12000
append=yes
[/music]
[event]
name=prestart
[music]
name=gameplay01.ogg
ms_before=12000
[/music]
[music]
name=gameplay02.ogg
ms_before=12000
append=yes
[/music]
[music]
name=gameplay03.ogg
ms_before=12000
append=yes
[/music]
[music]
name=main_menu.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-1.ogg
ms_before=12000
append=yes
[/music]
[music]
name=wesnoth-2.ogg
ms_before=12000
append=yes
[/music]
[/event]
#enddef
#
@ -609,9 +574,9 @@ name="wesnoth-2.ogg"
[/music]
[event]
name=prestart
[music]
name={MUSIC}
[/music]
[music]
name={MUSIC}
[/music]
[/event]
#enddef

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 870 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -5,14 +5,14 @@ msgstr ""
"Project-Id-Version: it\n"
"Report-Msgid-Bugs-To: http://bugs.wesnoth.org/\n"
"POT-Creation-Date: 2006-12-27 19:40+0100\n"
"PO-Revision-Date: 2006-08-28 21:44+0100\n"
"Last-Translator: Americo Iacovizzi <darkamex@gmail.com>\n"
"PO-Revision-Date: 2006-12-28 01:43+0100\n"
"Last-Translator: Luciano Montanaro <mikelima@cirulla.net>\n"
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/campaigns/Eastern_Invasion.cfg:10
msgid "The Eastern Invasion"
@ -98,7 +98,6 @@ msgid "Resist until Dacyn's return tomorrow night"
msgstr "Resisti sino a domani notte, quando Dacyn tornerà"
#: data/campaigns/Eastern_Invasion/scenarios/01.The_Outpost.cfg:120
#, fuzzy
msgid "Resist until Dacyn's return in two days"
msgstr "Resisti sino al ritorno di Dacyn tra due giorni"
@ -325,7 +324,6 @@ msgstr ""
"loro merita aiuto, secondo me."
#: data/campaigns/Eastern_Invasion/scenarios/02.The_Escape_Tunnel.cfg:174
#, fuzzy
msgid ""
"Thank you. Now, I advise you to join us. Undead have followed us into these "
"caves, and they will kill you if you stay behind."
@ -334,7 +332,6 @@ msgstr ""
"queste caverne, e ti uccideranno se resti indietro."
#: data/campaigns/Eastern_Invasion/scenarios/02.The_Escape_Tunnel.cfg:180
#, fuzzy
msgid ""
"Thank you. Now, I advise you to join us. Undead are in these lands, and they "
"will find these caves."
@ -885,7 +882,7 @@ msgstr "Trova il capobanda fuorilegge nei villaggi ed uccidilo"
#: data/campaigns/Eastern_Invasion/scenarios/05.Northern_Outpost.cfg:96
msgid "Defeat the undead leader"
msgstr "Sconfiggi il condottiero dei non morti"
msgstr "Sconfiggi il condottiero dei non-morti"
#: data/campaigns/Eastern_Invasion/scenarios/07a.The_Crossing.cfg:87
#: data/campaigns/Eastern_Invasion/scenarios/18b.Weldyn_Besieged.cfg:131
@ -912,19 +909,18 @@ msgid ""
"Greetings, Owaec! We have been forced from our positions by undead invaders. "
"They follow us even now."
msgstr ""
"Saluti, Owaec! La nostra linea di difesa è stata spezzata dagli invasori non "
"morti. Loro ci stanno ancora inseguendo"
"Saluti, Owaec! Siamo stati ricacciati dalle nostre postazioni dagli invasori "
"non-morti. Ci stanno ancora inseguendo."
#: data/campaigns/Eastern_Invasion/scenarios/05.Northern_Outpost.cfg:129
#, fuzzy
msgid ""
"Indeed, they do. And do not think you will be able to defeat them. They are "
"too powerful. We are heading for the Northlands, where we may be able to "
"outrun them. Will you join us?"
msgstr ""
"Certamente lo faranno. E non pensare di riuscire a sconfiggerli. Sono troppo "
"potenti. Ci stiamo dirigendo verso le Terre del Nord, dove forse riusciremo "
"sconfiggerli. Volete venire con noi? "
"Lo faranno sicuramente. E non pensare di riuscire a sconfiggerli. Sono "
"troppo potenti. Ci stiamo dirigendo verso le Terre del Nord, dove forse "
"riusciremo sconfiggerli. Volete venire con noi?"
#: data/campaigns/Eastern_Invasion/scenarios/05.Northern_Outpost.cfg:133
msgid ""
@ -934,8 +930,8 @@ msgid ""
"are close, and come out when we are far away."
msgstr ""
"Non sono sicuro. Ci sono dei banditi in questa regione e mi è stato detto "
"che è mio dovere sconfiggerli per proteggere i villaggi locali. Anche se, "
"non riesco a trovare il modo di sconfiggerli. I banditi si nascondono nei "
"che è mio dovere sconfiggerli per proteggere i villaggi locali. Anche se non "
"riesco a trovare il modo di sconfiggerli. I banditi si nascondono nei "
"villaggi quando ci avviciniamo e vengono fuori quando siamo sufficientemente "
"lontani."
@ -949,7 +945,7 @@ msgstr ""
"Sperare di proteggere questi villaggi è una pazzia; tutti quelli che "
"rimanessero qui morirebbero. Tuttavia, se riusciamo a liberarci di questi "
"banditi, saremo in grado di farci seguire dagli abitanti verso le terre del "
"nord. Dove potrebbero sopravvivere. Wesnoth non è più sicura."
"nord, dove potrebbero sopravvivere. Wesnoth non è più sicura."
#: data/campaigns/Eastern_Invasion/scenarios/05.Northern_Outpost.cfg:141
msgid ""
@ -1948,7 +1944,6 @@ msgstr ""
"dei non morti."
#: data/campaigns/Eastern_Invasion/scenarios/13.Evacuation.cfg:340
#, fuzzy
msgid ""
"Very well. If returning to Wesnoth has any chance of success, it is our best "
"option. We will go south."
@ -1957,7 +1952,6 @@ msgstr ""
"nostra migliore possibilità. Andremo a sud."
#: data/campaigns/Eastern_Invasion/scenarios/13.Evacuation.cfg:344
#, fuzzy
msgid ""
"I do not like this. But it appears we will die no matter our course of "
"action."
@ -2717,6 +2711,3 @@ msgstr ""
"Gweddry iniziarono a diventare meno cauti. Quindi, all'alba di un giorno, "
"Gweddry e i suoi uomini furono svegliati dalle grida di sorpresa della "
"guardia notturne..."
#~ msgid "Resist until you receive further instructions from Dacyn"
#~ msgstr "Resisti finché non ricevi ulteriori istruzioni da Dacyn"

Some files were not shown because too many files have changed in this diff Show more