Merge branch 'master' of github.com:wesnoth/wesnoth-old
This commit is contained in:
commit
562a5be85c
19 changed files with 316 additions and 289 deletions
|
@ -2,6 +2,9 @@ Version 1.11.7+dev:
|
|||
* Campaigns:
|
||||
* Dead Water:
|
||||
* New world map.
|
||||
* Eastern Invasion:
|
||||
* Made Dacyn use teal TC and Mal-Ravanal blue TC, to make them fit the
|
||||
portraits more.
|
||||
* Heir To The Throne:
|
||||
* Implemented the portrait variations for Delfador and Asheviere.
|
||||
* Changed Kaylan's portrait and gave him teal team coloring.
|
||||
|
@ -28,6 +31,7 @@ Version 1.11.7+dev:
|
|||
* User interface:
|
||||
* Added a party full bell to the MP game configuration screen, played once
|
||||
all human player slots have been taken.
|
||||
* Change layout for advertized games in the MP lobby and add map icon.
|
||||
* WML engine:
|
||||
* WML variable turn_number is set correctly (to 1) in prestart and start
|
||||
events. Previously, it retained its last value from the previous scenario
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
type=Sergeant
|
||||
id=Gweddry
|
||||
name= _ "Gweddry"
|
||||
facing=se
|
||||
side=1
|
||||
canrecruit=yes
|
||||
recruit=Spearman,Cavalryman,Mage,Heavy Infantryman
|
||||
|
@ -73,6 +74,7 @@
|
|||
side=1
|
||||
x=9
|
||||
y=16
|
||||
facing=se
|
||||
profile=portraits/dacyn.png
|
||||
random_traits=no
|
||||
[modifications]
|
||||
|
@ -175,6 +177,8 @@
|
|||
[event]
|
||||
name=prestart
|
||||
|
||||
{TEAM_COLOR_OVERRIDE id=Dacyn teal}
|
||||
|
||||
# {SCATTER_IMAGE (terrain=Gs^Fp) 20 scenery/pine1.png}
|
||||
# {SCATTER_IMAGE (terrain=Gg) 4 scenery/oak-leaning.png}
|
||||
|
||||
|
|
|
@ -71,12 +71,10 @@
|
|||
[/side]
|
||||
|
||||
[side]
|
||||
type=Dark Sorcerer
|
||||
id=Mal-Bakral
|
||||
name= _ "Mal-Bakral"
|
||||
no_leader=yes
|
||||
side=4
|
||||
canrecruit=yes
|
||||
controller=ai
|
||||
controller=null
|
||||
hidden=yes
|
||||
recruit=Vampire Bat,Ghost
|
||||
{GOLD 150 200 250}
|
||||
team_name=undead
|
||||
|
@ -188,10 +186,7 @@
|
|||
message= _ "Aye, we’ll help ye, for we have nae love for the trolls. Anyone attacked by them deserves some help, I think."
|
||||
[/message]
|
||||
[if]
|
||||
[variable]
|
||||
name=undead
|
||||
equals=yes
|
||||
[/variable]
|
||||
{VARIABLE_CONDITIONAL undead boolean_equals yes}
|
||||
[then]
|
||||
[message]
|
||||
speaker=Dacyn
|
||||
|
@ -271,68 +266,38 @@
|
|||
#Mal-Bakral arrives
|
||||
[event]
|
||||
name=turn 6
|
||||
[set_variable]
|
||||
name=undead
|
||||
value=yes
|
||||
[/set_variable]
|
||||
{VARIABLE undead yes}
|
||||
[terrain]
|
||||
x=2,3,4,2
|
||||
y=4,4,4,5
|
||||
terrain=Uu^Ii
|
||||
[/terrain]
|
||||
[unit]
|
||||
type=Revenant
|
||||
side=4
|
||||
x=2
|
||||
y=5
|
||||
[/unit]
|
||||
[unit]
|
||||
type=Revenant
|
||||
side=4
|
||||
x=4
|
||||
y=5
|
||||
[/unit]
|
||||
[unit]
|
||||
type=Revenant
|
||||
side=4
|
||||
x=2
|
||||
y=4
|
||||
ai_special=guardian
|
||||
[/unit]
|
||||
[unit]
|
||||
type=Revenant
|
||||
side=4
|
||||
x=4
|
||||
y=4
|
||||
ai_special=guardian
|
||||
[/unit]
|
||||
{GENERIC_UNIT 4 (Revenant) 2 5}
|
||||
{GENERIC_UNIT 4 (Revenant) 4 5}
|
||||
{GENERIC_UNIT 4 (Revenant) 2 4}
|
||||
{GENERIC_UNIT 4 (Revenant) 4 4}
|
||||
|
||||
#ifdef HARD
|
||||
[unit]
|
||||
type=Bone Shooter
|
||||
side=4
|
||||
x=3
|
||||
y=5
|
||||
[/unit]
|
||||
[unit]
|
||||
type=Bone Shooter
|
||||
side=4
|
||||
x=3
|
||||
y=4
|
||||
ai_special=guardian
|
||||
[/unit]
|
||||
|
||||
{GENERIC_UNIT 4 (Bone Shooter) 3 5}
|
||||
{GENERIC_UNIT 4 (Bone Shooter) 3 4}
|
||||
#endif
|
||||
[remove_shroud]
|
||||
side=1
|
||||
x,y=3,3
|
||||
x,y=2-4,3
|
||||
[/remove_shroud]
|
||||
[teleport]
|
||||
[filter]
|
||||
id=Mal-Bakral
|
||||
[/filter]
|
||||
[modify_side]
|
||||
side=4
|
||||
controller=ai
|
||||
hidden=no
|
||||
[/modify_side]
|
||||
[unit]
|
||||
type=Dark Sorcerer
|
||||
id=Mal-Bakral
|
||||
name= _ "Mal-Bakral"
|
||||
side=4
|
||||
canrecruit=yes
|
||||
x,y=3,3
|
||||
[/teleport]
|
||||
[/unit]
|
||||
[message]
|
||||
speaker=Mal-Bakral
|
||||
message= _ "We have found you, fleshbag! Prepare to die!"
|
||||
|
@ -354,9 +319,7 @@
|
|||
speaker=Gweddry
|
||||
message= _ "We have reached the end of the tunnel. I see daylight above us!"
|
||||
[/message]
|
||||
[clear_variable]
|
||||
name=undead
|
||||
[/clear_variable]
|
||||
{CLEAR_VARIABLE undead}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
|
|
@ -138,6 +138,9 @@
|
|||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
{TEAM_COLOR_OVERRIDE id=Mal-Ravanal blue}
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
|
|
|
@ -298,6 +298,8 @@
|
|||
[/variables]
|
||||
[/modify_unit]
|
||||
|
||||
{TEAM_COLOR_OVERRIDE id=Mal-Ravanal blue}
|
||||
|
||||
[allow_recruit]
|
||||
side=$second_unit.side
|
||||
type="Bone Shooter,Revenant,Wraith,Shadow,Nightgaunt,Spectre,Draug,Banebow"
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
border_size=1
|
||||
usage=map
|
||||
|
||||
Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Ww , Ww , Ww , Ww , Ww , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Gg , Gg , Gg , Hh , Hh , Mm , Mm , Mm , Mm , Mm , Mm
|
||||
Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Ww , Ww , Ww , Ww , Ww , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Gg , Gs , Gg , Hh , Hh , Mm , Mm , Mm , Mm , Mm , Mm
|
||||
Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Ce , Ce , Ce , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Ww , Ww , Ww , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Ce , Ce , Gs , Gs , Gs , Hh , Hh , Mm , Mm^Vc , Mm , Hh , Hh
|
||||
Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg^Ve , Gg , Ce , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Ww , Ww , Gll^Fp , Gg , Gs^Ve , Gg , Ce , Gs , Gs^Ve , Gll^Fp , Gs , Gs , Gs , Hh , Hh , Hh , Hh , Hh , Hh
|
||||
Rr , Rr , Rr , Rr , Rr , Gg , Ce , Ce , Ce , Gg , Gg^Ve , Ce , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gll^Fp , Gll^Fp , Gg , Gg , Wwf , Wwf , Gg , Gg , Gg , Gs , Ce , Gs^Vo , Gll^Fp , Ce , Ce , Ce , Gs , Hh^Vc , Hh , Hh , Hh , Mm , Mm
|
||||
Gg , Gg , Gg^Ve , Ce , Gg , Rr , Ce , 6 Ke , Ce , Gg , Ce , Ce , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Re^Gvs , Wwf , Wwf , Gg , Gg , Gll^Fp , Gll^Fp , Ce , Gll^Fp , Gll^Fp , Ce , 5 Ke , Ce , Gs , Gs , Gs , Hh , Hh , Mm , Mm
|
||||
Gg , Gg , Gg , Ce , Gg , Rr , Rr , Ce , Gg , Gg , Gll^Fp , Gg , Gll^Fp , Gg , Gg , Gg , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Ww , Ww , Gg , Gg , Gll^Fp , Gll^Fp , Ce , Gll^Fp , Re , Gs , Ce , Hh , Gs , Hh , Gs , Hh , Mm , Mm , Mm
|
||||
Gg , Gg , Gg , Ce , Ce , Gg^Vo , Rr , Gg , Gg , Gg , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Re^Gvs , Re^Gvs , Re^Gvs , Gg , Ww , Ww , Gg , Gg , Gg , Gg , Gll^Fp , Re , Re , Ce , Gs , Hh , Hh^Vo , Ce , Ce , Hh , Hh , Hh , Hh
|
||||
Gg , Gg , Gg , Gg , Gg , Ce , Rr , Re^Gvs , Re^Gvs , Re^Gvs , Gg , Gg , Gg , Gg , Gg , Gg , Re^Gvs , Gg , Gg , Gg , Re^Gvs , Ww , Rb^Gvs , Rb^Gvs , Rb^Gvs , Gg , Gg , Gg , Re , Gs , Gs , Ce , Ce , Ce , Hh , Hh , Hh , Hh , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Re^Gvs , Rr , Re^Gvs , Re^Gvs , Rr , Re^Gvs , Re^Gvs , Re^Gvs , Gg , Gg , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Ww , Ww , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Re^Gvs , Rb , Gs , Hh^Vo , Hh , Hh , Hh , Gg , Hh , Gg , Hh , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gg , Gg , Re^Gvs , Gg , Gg , Rr , Rr , Rr , Gll^Fp , Rr , Re^Vo , Re^Gvs , Rr , Gg , Rr , Re^Gvs , Re^Gvs , Re^Gvs , Ww , Ww , Ss , Ww , Rb^Gvs , Rb^Gvs , Rb , Rb , Rb^Gvs , Hh , Hh , Hh , Gg , Gg , Re^Gvs , Gg , Hh , Gg , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Gg , Re^Gvs , Re^Gvs , Re^Gvs , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Rr , Rr , Rr , Gg , Rr , Gg , Rr , Rr , Ww , Ss , Ss , Co , Ww , Wwf , Rb , Rb^Gvs , Rb^Gvs , Rb^Gvs , Hh , Gg , Hh , Gg , Gg , Re^Gvs , Hh , Hh , Hh , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gg^Ve , Re^Gvs , Re , Re^Gvs , Re^Gvs , Gg , Re , Gll^Fp , Gg , Re^Gvs , Re^Gvs , Re^Gvs , Gg , Gg , Re^Gvs , Re^Gvs , Re^Gvs , Ww^Bw\ , Rb , Co , Co , Co , Wwf , Rb^Gvs , Rb^Gvs , Rb^Gvs , Gg , Gg , Gg , Gg , Rb^Gvs , Rb^Gvs , Rb^Gvs , Hh , Hh , Hh , Hh , Hh
|
||||
Re , Re , Re , Re , Re , Re , Re , Re , Re^Gvs , Re , Re , Gg , Gg , Gg , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Ww , Ww , Hh^Vo , Co , Hh , Co , Ww , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Re , Hh , Hh^Vo , Hh , Hh , Hh
|
||||
Re , Re , Re , Re , Re^Gvs , Re^Gvs , Gll^Fp , Re^Gvs , Gll^Fp , Gll^Fp , Re , Re , Re , Re^Gvs , Re^Gvs , Re^Gvs , Ww , Ww , Co , Co , Co , Co , Hh^Vo , 3 Ko , Co , Ww , Ww , Rb^Vo , Ww , Rb^Gvs , Rb^Gvs , Rb^Gvs , Re , Re , Re^Gvs , Re^Gvs , Re^Gvs , Gs , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Re^Gvs , Gg , Gg , Gll^Fp , Gll^Fp , Re , Re , Re , Gg^Vo , Re^Gvs , Re , Re , Wwf , Wwf , Rb , Co , Co , Co , Hh^Vo , Hh^Vo , Hh , Co , Co , Hh^Vo , Ww , Rb^Gvs , Ww , Ww , Rb^Gvs , Wwf , Re^Gvs , Re^Gvs , Re^Gvs , Gs , Gs , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Re , Re , Gg , Gg , Gg , Gll^Fp , Gll^Fp , Re^Gvs , Re , Wwf , Ww , Hh , Hh , Ko , Co , Hh , Co , Co , Co , Co , Hh , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb , Wwf , Re , Ww , Ww , Gg , Hh , Hh , Wo , Wo
|
||||
Gll^Fp , Gll^Fp , Gg , Gg^Ve , Re , Re , Gg , Gg , Gll^Fp , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Re^Gvs , Re , Ww , Ww , Ss , Hh , Hh^Vo , Hh , Co , Hh^Vo , Co , Rb , Hh , Hh , Rb^Gvs , Rb , Rb , Rb^Gvs , Gg^Vo , Rb^Gvs , Rb^Gvs , Rb^Gvs , Ww , Wo , Wo , Gg , Gg
|
||||
Gll^Fp , Gll^Fp , Gg , Re , Gg , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Re^Gvs , Re , Ss , Ww , Ss , Ss , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb , Rb , Rb , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb , Gg , Ce , Gg
|
||||
Gg , Gg , Gg , Re , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Re , Re , Ww , Ww , Gll^Fp , Ww , Ss , Rb^Gvs , Gll^Fp , Rb^Gvs , Rb^Vo , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb , Rb , Rb^Gvs , Rb , Rb , Rb^Gvs , Rb , Rb , Rb , Ce , Ce , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gg , Re , Re , Gg , Gg , Gg^Vo , Gg , Gg , Gg , Gg , Re , Gg , Ww , Gll^Fp , Gll^Fp , Ww , Ss , Gg , Gll^Fp , Rb^Gvs , Gll^Fp , Rb^Gvs , Gg , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb , Rb , Rb^Gvs , Rb^Gvs , Rb^Gvs , Rb^Vo , Rb^Gvs , Rb^Gvs , Ce , 1 Ke , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gg^Ve , Gll^Fp , Re , Gg , Gll^Fp , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Re , Gg , Ww , Gll^Fp , Gll^Fp , Ww , Ww , Gg , Gg , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Rb^Gvs , Rb^Gvs , Rb , Rb^Gvs , Rb^Gvs , Rb^Gvs , Re^Gvs , Rb^Gvs , Gg , Rb^Gvs , Hh , Hh , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Re , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gll^Fp , Gll^Fp , Gg^Vo , Re , Gg , Ww , Gll^Fp , Gll^Fp , Gll^Fp , Ww , Gg , Gg , Gll^Fp , Gg , Gg , Gg , Gg , Rb^Gvs , Rb^Gvs , Rb , Rb^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Gg , Hh , Hh , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Re , Gll^Fp , Gll^Fp , Gg^Ve , Gll^Fp , Gg , Re , Re , Gg , Ww^Bw\ , Gg , Gg , Gll^Fp , Gll^Fp , Ww , Gg , Gg , Gg , Gg , Gg , Gg^Vo , Rb^Gvs , Re^Gvs , Rb^Gvs , Re , Re , Re , Re , Re , Re^Gvs , Re^Gvs , Re^Gvs , Hh , Hh , Hh , Hh
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Re , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Re , Gg , Gg , Ww , Ww , Gg , Gg , Gg , Gll^Fp , Gg , Gg , Gg , Gg , Gll^Fp , Gll^Fp , Re^Gvs , Re^Gvs , Re , Re , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re , Hh , Hh , Hh , Hh , Mm , Mm
|
||||
Ch , Ch , Ch , Re , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Re , Gg , Ww , Ww , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Gll^Fp , Gll^Fp , Gg , Gll^Fp , Re^Gvs , Re^Gvs , Re , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Re^Gvs , Hh , Hh , Hh , Mm , Hh^Vo , Mm , Mm
|
||||
Ch , Ch , 2 Kh , Ch , Re , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Re , Gg , Ww , Gg , Gg , Gg , Gg , Gg , Gg^Ve , Gg , Gg , Gll^Fp , Gll^Fp , Gg , Gs , Ce , Re , Re , Re^Gvs , Ce , Gs , Gs , Gs , Gs , Hh , Hh , Mm , Mm , Mm , Mm , Mm
|
||||
Ch , Ch , Gll^Fp , Gll^Fp , Gll^Fp , Re , Re , Re , Re , Re , Gg , Ww , Gg , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Gg , Gg , Gg , Gg , Ce , Ce , Gs , Ce , Re , Ce , Hh^Vo , Ce , Ce , Gs , Hh , Hh , Hh , Hh , Hh , Mm , Mm , Mm
|
||||
Ch , Ch , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Gg , Ww , Ww , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Gg , Gg , Ce , Gs , Re , Re , Ce , Gs , Hh , Hh , Ce , Hh , Hh , Hh , Hh , Hh , Hh , Hh , Mm , Mm
|
||||
Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gll^Fp , Gg^Ve , Gll^Fp , Gg , Gg , Ww , Ww , Gg , Gg , Gg , Gll^Fp , Gg , Gg , Gg , Gg , Gg , Gs , Ce , Gs^Vo , Re , Ce , 4 Ke , Ce , Gs , Hh^Vc , Ce , Hh , Hh , Hh , Mm , Mm^Vc , Mm , Mm , Mm , Mm
|
||||
Gg , Gg^Ve , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Gll^Fp , Ww , Ww , Gg , Gg , Gg , Gll^Fp , Gg , Gg , Gg , Gg , Gg , Gs , Re , Re , Gs , Ce , Ce , Ce , Hh , Hh , Hh , Hh , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm
|
||||
Gg , Gg , Gg , Gll^Fp , Gll^Fp , Gll^Fp , Gg , Gg , Gg , Gll^Fp , Ww , Ww , Gg , Gg , Gg , Gll^Fp , Gg , Gg , Gg , Gg , Gg , Gg , Re , Re , Gs , Ce , Ce , Ce , Hh , Hh , Hh , Hh , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm
|
||||
Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Ww, Ww, Ww, Ww, Ww, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Gg, Gg, Gg, Hh, Hh, Mm, Mm, Mm, Mm, Re, Re
|
||||
Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Ww, Ww, Ww, Ww, Ww, Gg^Ve, Gll^Fp, Gg, Gg, Gg, Gg, Gs, Gg, Hh, Hh, Mm, Mm, Re, Re, Ce, Mm
|
||||
Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Ce, Ce, Ce, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Ww, Ww, Ww, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Gs, Gs, Gs, Gs, Gs, Hh, Re, Re, Ce, Ce, 1 Ke, Hh
|
||||
Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Ce, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Ww, Ww, Gll^Fp, Gg, Gs, Gg, Gs, Gs, Gs, Gll^Fp, Gs, Gs, Gs, Re, Hh, Hh, Ce, Hh, Hh
|
||||
Rr, Rr, Rr, Rr, Rr, Gg, Ce, Ce, Ce, Gg, Gg^Ve, Ce, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gll^Fp, Gll^Fp, Gg, Gg, Wwf, Wwf, Gg, Gg, Gg, Gs, Gll^Fp, Gg, Gll^Fp, Gs, Gs, Gs, Gs, Re, Hh, Gs, Hh, Mm, Mm
|
||||
Gg, Gg, Gg, Ce, Gg, Rr, Ce, 6 Ke, Ce, Gg, Ce, Ce, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Re^Gvs, Wwf, Wwf, Gg, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gs, Gs, Gs, Re, Gs, Gs, Gs, Hh, Hh^Vo, Mm
|
||||
Gg, Gg, Gg, Ce, Gg, Rr, Rr, Ce, Gg, Gg, Gll^Fp, Gg, Gll^Fp, Gg, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Ww, Ww, Gg, Gg, Gll^Fp, Gll^Fp, Gg, Gll^Fp, Gs, Gll^Fp, Gs, Gs, Re, Gs, Gs, Hh, Mm, Mm, Mm
|
||||
Gg, Gg, Gg, Ce, Ce, Gg^Vo, Rr, Gg, Gg, Gg, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Ww, Ww, Gg, Gg, Gg, Gg, Gll^Fp, Gll^Fp, Gg^Ve, Gs, Gs, Re, Re, Gg, Gs, Gs, Hh, Hh, Hh
|
||||
Gg, Gg, Gg, Gg, Gg, Ce, Rr, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg, Gg, Gg, Gg, Gg, Re^Gvs, Gg, Gg, Gg, Re^Gvs, Ww, Rb^Gvs, Rb^Gvs, Rb^Gvs, Gg, Gg, Gg, Gg, Gll^Fp, Ce, Ce, Ce, Gg, Gg, Gg, Gg, Hh, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Re^Gvs, Rr, Re^Gvs, Re^Gvs, Rr, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Ww, Ww, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Re^Gvs, Rb, Rb, Ce, 5 Kea, Ce, Gg, Gg, Gg, Gg, Hh, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gg, Gg, Re^Gvs, Gg, Gg, Rr, Rr, Rr, Gll^Fp, Rr, Re^Vo, Re^Gvs, Rr, Gg, Rr, Re^Gvs, Re^Gvs, Re^Gvs, Ww, Ww, Ss, Ww, Rb^Gvs, Rb^Gvs, Rb, Rb, Rb^Gvs, Hh, Hh, Ce, Gg, Gg, Re^Gvs, Gg, Hh^Vo, Gg, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Rr, Rr, Rr, Gg, Rr, Gg, Rr, Rr, Ww, Ss, Ss, Co, Ww, Wwf, Rb, Rb^Gvs, Rb^Gvs, Rb^Gvs, Hh, Gg, Hh, Gg, Gg, Re^Gvs, Hh, Hh, Hh, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gg, Re^Gvs, Re, Re^Gvs, Re^Gvs, Gg, Re, Gll^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Ww^Bw\, Rb, Co, Co, Co, Wwf, Rb^Gvs, Rb^Gvs, Rb^Gvs, Gg, Gg, Gg, Gg, Rb^Gvs, Rb^Gvs, Rb^Gvs, Hh, Hh, Hh, Hh, Hh
|
||||
Re, Re, Re, Re, Re, Re, Re, Re, Re^Gvs, Re, Re, Gg, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Ww, Ww, Hh^Vo, Co, Hh, Co, Ww, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Re, Hh, Gs, Hh, Hh, Hh
|
||||
Re, Re, Re, Re, Re^Gvs, Re^Gvs, Gll^Fp, Re^Gvs, Gll^Fp, Gll^Fp, Re, Re, Re, Re^Gvs, Re^Gvs, Re^Gvs, Ww, Ww, Co, Co, Co, Co, Hh, 3 Ko, Co, Ww, Ww, Rb^Gvs, Ww, Rb^Gvs, Rb^Gvs, Rb^Gvs, Re, Re, Re^Gvs, Re^Gvs, Re^Gvs, Gs, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Re^Gvs, Gg, Gg, Gll^Fp, Gll^Fp, Re, Re, Re, Gg, Re^Gvs, Re, Re, Wwf, Wwf, Rb, Co, Co, Co, Hh^Vo, Hh^Vo, Hh, Co, Co, Hh^Vo, Ww, Rb^Gvs, Ww, Ww, Rb^Gvs, Wwf, Re^Gvs, Re^Gvs, Re^Gvs, Gs, Gs, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Re, Re, Gg, Gg, Gg, Gll^Fp, Gll^Fp, Re^Gvs, Re, Wwf, Ww, Hh, Hh, Ko, Co, Hh, Co, Co, Co, Co, Hh, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb, Wwf, Re, Ww, Ww, Gg, Hh, Hh, Wo, Wo
|
||||
Gll^Fp, Gll^Fp, Gg, Gg, Re, Re, Gg, Gg, Gll^Fp, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Re^Gvs, Re, Ww, Ww, Ss, Hh, Rb^Gvs, Hh, Co, Hh, Co, Rb, Hh, Hh, Rb^Gvs, Rb, Rb, Rb^Gvs, Gg^Vo, Rb^Gvs, Rb^Gvs, Rb^Gvs, Ww, Wo, Wo, Rb, Rb
|
||||
Gll^Fp, Gll^Fp, Gg, Re, Gg, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Re^Gvs, Re, Ss, Ww, Ss, Ss, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb, Rb, Rb, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb, Rb, Gg, Gg
|
||||
Gg, Gg, Gg, Re, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Re, Re, Ww, Ww, Gll^Fp, Ww, Ss, Rb^Gvs, Gll^Fp, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb, Rb, Rb^Gvs, Rb, Rb, Rb^Gvs, Rb, Rb, Rb, Gg, Gg, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gg, Re, Re, Gg, Gg, Gg^Vo, Gg, Gg, Gg, Gg, Re, Gg, Ww, Gll^Fp, Gll^Fp, Ww, Ss, Gg, Gll^Fp, Rb^Gvs, Gll^Fp, Rb^Gvs, Gg, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb, Rb, Rb^Gvs, Rb^Gvs, Rb^Gvs, Rb, Rb^Gvs, Rb^Gvs, Gg, Gg, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gg, Gll^Fp, Re, Gg, Gll^Fp, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Re, Gg, Ww, Gll^Fp, Gll^Fp, Ww, Ww, Gg, Gg, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Rb^Gvs, Rb^Gvs, Rb, Rb^Gvs, Rb^Gvs, Rb^Gvs, Re^Gvs, Rb^Gvs, Gg, Rb^Gvs, Hh, Hh, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Re, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gll^Fp, Gll^Fp, Gg^Vo, Re, Gg, Ww, Gll^Fp, Gll^Fp, Gll^Fp, Ww, Gg, Gg, Gll^Fp, Gg, Gg, Gg, Gg, Rb^Gvs, Rb^Gvs, Rb, Rb^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Hh, Hh, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Re, Gll^Fp, Gll^Fp, Gg, Gll^Fp, Gg, Re, Re, Gg, Ww^Bw\, Gg, Gg, Gll^Fp, Gll^Fp, Ww, Gg, Gg, Gg, Gg, Gg, Gg^Vo, Rb^Gvs, Re^Gvs, Rb^Gvs, Re, Re, Re, Re, Re, Re^Gvs, Re^Gvs, Re^Gvs, Hh, Hh, Hh, Hh
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Re, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Re, Gg, Gg, Ww, Ww, Gg, Gg, Gg, Gll^Fp, Gg, Gg, Gg, Gg, Gll^Fp, Gll^Fp, Re^Gvs, Re^Gvs, Re, Re, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re, Hh, Hh, Hh, Hh, Mm, Mm
|
||||
Ch, Ch, Ch, Re, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Re, Gg, Ww, Ww, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gll^Fp, Gll^Fp, Gg, Gll^Fp, Re^Gvs, Re^Gvs, Re, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Hh, Hh, Hh, Mm, Hh, Mm, Mm
|
||||
Ch, Ch, 2 Kh, Ch, Re, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Re, Gg, Ww, Gg, Gg, Gg, Gg, Gg, Gg^Ve, Gg, Gg, Gll^Fp, Gll^Fp, Gg, Gs, Ce, Re, Re, Re^Gvs, Ce, Gs, Gs, Gs, Gs, Hh, Hh, Mm, Mm, Mm, Mm, Mm
|
||||
Ch, Ch, Gll^Fp, Gll^Fp, Gll^Fp, Re, Re, Re, Re, Re, Gg, Ww, Gg, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Ce, Ce, Gs, Ce, Re, Ce, Hh, Ce, Ce, Gs, Hh, Hh, Hh, Hh, Hh, Mm, Mm, Mm
|
||||
Ch, Ch, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Gg, Ww, Ww, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Gg, Gg, Ce, Gs, Re, Re, Ce, Gs, Hh, Hh, Ce, Hh, Hh, Hh, Hh, Hh, Hh, Hh, Mm, Mm
|
||||
Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Gg^Ve, Gll^Fp, Gg, Gg, Ww, Ww, Gg, Gg, Gg, Gll^Fp, Gg, Gg, Gg, Gg, Gg, Gs, Ce, Gs^Vo, Re, Ce, 4 Ke, Ce, Gs, Hh^Vc, Ce, Hh, Hh, Hh, Mm, Mm^Vc, Mm, Mm, Mm, Mm
|
||||
Gg, Gg^Ve, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Gll^Fp, Ww, Ww, Gg, Gg, Gg, Gll^Fp, Gg, Gg, Gg, Gg, Gg, Gs, Re, Re, Gs, Ce, Ce, Ce, Hh, Hh, Hh, Hh, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm
|
||||
Gg, Gg, Gg, Gll^Fp, Gll^Fp, Gll^Fp, Gg, Gg, Gg, Gll^Fp, Ww, Ww, Gg, Gg, Gg, Gll^Fp, Gg, Gg, Gg, Gg, Gg, Gg, Re, Re, Gs, Ce, Ce, Ce, Hh, Hh, Hh, Hh, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm
|
||||
|
|
|
@ -72,9 +72,9 @@
|
|||
side=2
|
||||
canrecruit=yes
|
||||
#ifdef HARD
|
||||
recruit=Cavalryman, Fencer, Spearman, Heavy Infantryman
|
||||
recruit=Cavalryman, Fencer, Spearman, Bowman, Heavy Infantryman
|
||||
#else
|
||||
recruit=Cavalryman, Fencer, Spearman
|
||||
recruit=Cavalryman, Fencer, Spearman, Bowman
|
||||
#endif
|
||||
facing=sw
|
||||
team_name=Humans
|
||||
|
|
|
@ -28,11 +28,10 @@
|
|||
side=1
|
||||
[objective]
|
||||
condition=win
|
||||
description=_ "Move Kapou’e to the end of the mountains"
|
||||
description=_ "Move Kapou’e to the end of the mountains or"
|
||||
[/objective]
|
||||
[objective]
|
||||
condition=win
|
||||
{BONUS_OBJECTIVE_CAPTION}
|
||||
description= _ "Defeat the enemy leader"+{EARLY_FINISH_BONUS_FOOTNOTE}
|
||||
[/objective]
|
||||
[objective]
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
id=04_The_Siege_of_Barag_Gor
|
||||
name= _ "The Siege of Barag Gór"
|
||||
map_data="{campaigns/Son_Of_The_Black_Eye/maps/04_The_Siege_of_Barag_Gor.map}"
|
||||
{TURNS 30 28 26}
|
||||
turns=24
|
||||
victory_when_enemies_defeated=yes
|
||||
|
||||
{DEFAULT_SCHEDULE}
|
||||
|
@ -17,7 +17,7 @@
|
|||
[event]
|
||||
name=prestart
|
||||
[objectives]
|
||||
side=1
|
||||
side=1,3
|
||||
[objective]
|
||||
condition=win
|
||||
description=_ "Defeat all enemy leaders"
|
||||
|
@ -52,7 +52,7 @@
|
|||
recruit=Troll Whelp
|
||||
team_name=Kapoue
|
||||
user_team_name=_ "Kapou’e"
|
||||
gold=200
|
||||
{GOLD 200 150 120}
|
||||
{BLACK_FLAG}
|
||||
[/side]
|
||||
|
||||
|
@ -66,7 +66,8 @@
|
|||
canrecruit=yes
|
||||
recruit=Elvish Archer, Elvish Fighter
|
||||
profile="portraits/elves/captain.png~FL()~RIGHT()"
|
||||
{GOLD 60 80 100}
|
||||
{GOLD 100 125 150}
|
||||
income=20
|
||||
{FLAG_VARIANT wood-elvish}
|
||||
[/side]
|
||||
|
||||
|
@ -77,20 +78,12 @@
|
|||
id=Rugh
|
||||
name= _ "Rugh"
|
||||
side=3
|
||||
controller=human
|
||||
team_name=Kapoue
|
||||
user_team_name=_ "Kapou’e"
|
||||
canrecruit=yes
|
||||
recruit= Wolf Rider, Orcish Grunt, Troll Whelp, Orcish Archer
|
||||
gold=150
|
||||
|
||||
[ai]
|
||||
[avoid]
|
||||
[not]
|
||||
x,y=17-27,11-19
|
||||
terrain=C*,K*,H*,*^V*
|
||||
[/not]
|
||||
[/avoid]
|
||||
[/ai]
|
||||
recruit= Wolf Rider, Orcish Grunt, Orcish Archer
|
||||
{GOLD 250 200 150}
|
||||
[/side]
|
||||
|
||||
{STARTING_VILLAGES 3 5}
|
||||
|
@ -104,7 +97,7 @@
|
|||
user_team_name=_"Elves"
|
||||
canrecruit=yes
|
||||
recruit=Elvish Archer, Elvish Fighter
|
||||
{GOLD 60 80 100}
|
||||
{GOLD 100 125 150}
|
||||
{FLAG_VARIANT wood-elvish}
|
||||
[/side]
|
||||
|
||||
|
@ -119,8 +112,19 @@
|
|||
user_team_name=_"Elves"
|
||||
canrecruit=yes
|
||||
recruit=Elvish Archer, Elvish Fighter
|
||||
{GOLD 60 80 100}
|
||||
{GOLD 100 125 150}
|
||||
{FLAG_VARIANT wood-elvish}
|
||||
|
||||
[ai]
|
||||
passive_leader=yes
|
||||
[goal]
|
||||
name=target
|
||||
[criteria]
|
||||
side=1
|
||||
[/criteria]
|
||||
value=50
|
||||
[/goal]
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
{STARTING_VILLAGES 5 6}
|
||||
|
@ -134,7 +138,8 @@
|
|||
user_team_name=_"Elves"
|
||||
canrecruit=yes
|
||||
recruit=Elvish Archer, Elvish Fighter
|
||||
{GOLD 60 80 100}
|
||||
{GOLD 100 125 150}
|
||||
income=12
|
||||
{FLAG_VARIANT wood-elvish}
|
||||
[/side]
|
||||
|
||||
|
@ -174,9 +179,9 @@
|
|||
|
||||
{GENERIC_UNIT 3 "Orcish Grunt" 25 15} {GUARDIAN}
|
||||
{GENERIC_UNIT 3 "Orcish Grunt" 22 16} {GUARDIAN}
|
||||
{ORCISH_SHAMAN 22 14 Pirk _"Pirk"}
|
||||
{OLD_ORCISH_SHAMAN 22 15 Gork _"Gork"}
|
||||
{NOVICE_ORCISH_SHAMAN 21 15 Vraurk _"Vraurk"}
|
||||
{ORCISH_SHAMAN 3 22 14 Pirk _"Pirk"}
|
||||
{OLD_ORCISH_SHAMAN 3 22 15 Gork _"Gork"}
|
||||
{NOVICE_ORCISH_SHAMAN 3 21 15 Vraurk _"Vraurk"}
|
||||
# wmllint: recognize Pirk
|
||||
# wmllint: recognize Gork
|
||||
# wmllint: recognize Vraurk
|
||||
|
@ -226,12 +231,12 @@
|
|||
[then]
|
||||
[recall]
|
||||
role=Scout
|
||||
x,y=36,20
|
||||
x,y=36,3
|
||||
[/recall]
|
||||
[/then]
|
||||
|
||||
[else]
|
||||
{GENERIC_UNIT 1 "Wolf Rider" 36 20}
|
||||
{GENERIC_UNIT 1 "Wolf Rider" 36 3}
|
||||
[+unit]
|
||||
role=Scout
|
||||
to_variable=scout
|
||||
|
@ -267,12 +272,12 @@
|
|||
|
||||
[set_variable]
|
||||
name=scout.x
|
||||
value=13
|
||||
value=32
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=scout.y
|
||||
value=27
|
||||
value=6
|
||||
[/set_variable]
|
||||
|
||||
[kill]
|
||||
|
@ -282,8 +287,8 @@
|
|||
[move_unit_fake]
|
||||
type=$scout.type
|
||||
side=1
|
||||
x=38,38,37,36,35.34,21,20,19,18,17,16,15,14,13
|
||||
y=19,18,18,18,19,19,29,28,28,28,28,28,28,27,27
|
||||
x=36,32,32
|
||||
y=3,5,6
|
||||
[/move_unit_fake]
|
||||
|
||||
[unstore_unit]
|
||||
|
@ -291,7 +296,7 @@
|
|||
[/unstore_unit]
|
||||
|
||||
[message]
|
||||
speaker=Etheliel
|
||||
speaker=Ammon
|
||||
message= _ "One more step and you are dead, flea-bag. Better run if you value your life."
|
||||
[/message]
|
||||
|
||||
|
@ -301,7 +306,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Etheliel
|
||||
speaker=Ammon
|
||||
message= _ "Watch your mouth around your betters, goblin! And you can tell your chief to hand the shamans over to us if he wants to be alive by sundown."
|
||||
[/message]
|
||||
|
||||
|
@ -311,7 +316,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Etheliel
|
||||
speaker=Ammon
|
||||
message= _ "Our business with them is none of your concern."
|
||||
[/message]
|
||||
|
||||
|
@ -321,7 +326,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Etheliel
|
||||
speaker=Ammon
|
||||
message= _ "Well... the humans want to... meet with them."
|
||||
[/message]
|
||||
|
||||
|
@ -331,7 +336,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Etheliel
|
||||
speaker=Ammon
|
||||
message= _ "Well..."
|
||||
[/message]
|
||||
|
||||
|
@ -341,24 +346,24 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Etheliel
|
||||
speaker=Ammon
|
||||
message= _ "KILL HIM!!"
|
||||
[/message]
|
||||
|
||||
[unit]
|
||||
type=Elvish Fighter
|
||||
side=2
|
||||
x=3
|
||||
y=26
|
||||
side=5
|
||||
x=29
|
||||
y=6
|
||||
generate_name=yes
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
|
||||
[unit]
|
||||
type=Elvish Fighter
|
||||
side=2
|
||||
x=2
|
||||
y=25
|
||||
side=5
|
||||
x=29
|
||||
y=8
|
||||
generate_name=yes
|
||||
random_traits=yes
|
||||
[/unit]
|
||||
|
@ -370,12 +375,12 @@
|
|||
|
||||
[set_variable]
|
||||
name=scout.x
|
||||
value=38
|
||||
value=36
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=scout.y
|
||||
value=19
|
||||
value=3
|
||||
[/set_variable]
|
||||
|
||||
[kill]
|
||||
|
@ -385,8 +390,8 @@
|
|||
[move_unit_fake]
|
||||
type=$scout.type
|
||||
side=1
|
||||
x=13,14,15,16,17,18,19,20,21,34,35,36,37,38,38
|
||||
y=27,27,28,28,28,28,28,28,29,19,19,18,18,18,19
|
||||
x=32,36
|
||||
y=6,3
|
||||
[/move_unit_fake]
|
||||
|
||||
[unstore_unit]
|
||||
|
@ -394,7 +399,7 @@
|
|||
[/unstore_unit]
|
||||
|
||||
[message]
|
||||
speaker=Etheliel
|
||||
speaker=Ammon
|
||||
message= _ "Blast it, he got away."
|
||||
[/message]
|
||||
|
||||
|
@ -433,12 +438,6 @@
|
|||
message= _ "..."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Then, Kapou’e launched his desperate attack to break the siege of Barag Gór."
|
||||
image=wesnoth-icon.png
|
||||
[/message]
|
||||
|
||||
{CLEAR_VARIABLE scout}
|
||||
[/event]
|
||||
|
||||
|
@ -492,35 +491,6 @@
|
|||
{VARIABLE freed_Jetto yes}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
[not]
|
||||
id=Pirk
|
||||
[/not]
|
||||
[not]
|
||||
id=Gork
|
||||
[/not]
|
||||
[not]
|
||||
id=Vraurk
|
||||
[/not]
|
||||
x=18-25
|
||||
y=11-17
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Rugh
|
||||
message= _ "Good. Reinforcements at last!"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
message= _ "That’s right! Now let’s drive those mincing tree-shaggers back into their forests!"
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=enemies defeated
|
||||
|
||||
|
@ -574,6 +544,18 @@
|
|||
message= _ "We must give this matter careful consideration. Come inside the city, and we’ll discuss it."
|
||||
[/message]
|
||||
|
||||
[modify_unit]
|
||||
[filter]
|
||||
id=Pirk,Gork,Vraurk
|
||||
[/filter]
|
||||
side=1
|
||||
[/modify_unit]
|
||||
|
||||
[modify_side]
|
||||
side=3
|
||||
controller=null
|
||||
[/modify_side]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=freed_Jetto
|
||||
|
|
|
@ -156,9 +156,9 @@
|
|||
[event]
|
||||
name=victory cutscene
|
||||
|
||||
{OLD_ORCISH_SHAMAN 32 30 Fabstep _"Fabstep"}
|
||||
{OLD_ORCISH_SHAMAN 32 30 Klebar _"Klebar"}
|
||||
{OLD_ORCISH_SHAMAN 32 30 Echarp _"Echarp"}
|
||||
{OLD_ORCISH_SHAMAN 1 32 30 Fabstep _"Fabstep"}
|
||||
{OLD_ORCISH_SHAMAN 1 32 30 Klebar _"Klebar"}
|
||||
{OLD_ORCISH_SHAMAN 1 32 30 Echarp _"Echarp"}
|
||||
# wmllint: recognize Fabstep
|
||||
# wmllint: recognize Klebar
|
||||
# wmllint: recognize Echarp
|
||||
|
|
|
@ -1090,9 +1090,9 @@
|
|||
[event]
|
||||
name=time over
|
||||
|
||||
{ORCISH_SHAMAN 11 1 Pirk _"Pirk"}
|
||||
{OLD_ORCISH_SHAMAN 11 1 Gork _"Gork"}
|
||||
{NOVICE_ORCISH_SHAMAN 11 1 Vraurk _"Vraurk"}
|
||||
{ORCISH_SHAMAN 1 11 1 Pirk _"Pirk"}
|
||||
{OLD_ORCISH_SHAMAN 1 11 1 Gork _"Gork"}
|
||||
{NOVICE_ORCISH_SHAMAN 1 11 1 Vraurk _"Vraurk"}
|
||||
{UNIT 1 "Orcish Warrior" 11 1 role=greathordeprops}
|
||||
{UNIT 1 "Orcish Warrior" 11 1 role=greathordeprops}
|
||||
{UNIT 1 "Orcish Crossbowman" 11 1 role=greathordeprops}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#textdomain wesnoth-sotbe
|
||||
|
||||
#define OLD_ORCISH_SHAMAN X Y ID_STRING NAME_STRING
|
||||
#define OLD_ORCISH_SHAMAN SIDE X Y ID_STRING NAME_STRING
|
||||
[unit]
|
||||
id={ID_STRING}
|
||||
name={NAME_STRING}
|
||||
type=Old Orcish Shaman
|
||||
profile=portraits/old_orcish_shaman.png
|
||||
side=1
|
||||
side={SIDE}
|
||||
x={X}
|
||||
y={Y}
|
||||
random_traits=no
|
||||
|
@ -17,13 +17,13 @@
|
|||
[/unit]
|
||||
#enddef
|
||||
|
||||
#define NOVICE_ORCISH_SHAMAN X Y ID_STRING NAME_STRING
|
||||
#define NOVICE_ORCISH_SHAMAN SIDE X Y ID_STRING NAME_STRING
|
||||
[unit]
|
||||
id={ID_STRING}
|
||||
name={NAME_STRING}
|
||||
type=Novice Orcish Shaman
|
||||
profile=portraits/young_orcish_shaman.png
|
||||
side=1
|
||||
side={SIDE}
|
||||
x={X}
|
||||
y={Y}
|
||||
random_traits=no
|
||||
|
@ -34,13 +34,13 @@
|
|||
[/unit]
|
||||
#enddef
|
||||
|
||||
#define ORCISH_SHAMAN X Y ID_STRING NAME_STRING
|
||||
#define ORCISH_SHAMAN SIDE X Y ID_STRING NAME_STRING
|
||||
[unit]
|
||||
id={ID_STRING}
|
||||
name={NAME_STRING}
|
||||
type=Orcish Shaman
|
||||
profile=portraits/orcish_shaman.png
|
||||
side=1
|
||||
side={SIDE}
|
||||
x={X}
|
||||
y={Y}
|
||||
random_traits=no
|
||||
|
|
BIN
images/misc/map.png
Normal file
BIN
images/misc/map.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
BIN
images/misc/visibility.png
Normal file
BIN
images/misc/visibility.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 180 B |
|
@ -6,6 +6,9 @@ Version 1.11.7+dev:
|
|||
* Campaigns:
|
||||
* Dead Water:
|
||||
* New world map.
|
||||
* Eastern Invasion:
|
||||
* Made Dacyn use teal TC and Mal-Ravanal blue TC, to make them fit the
|
||||
portraits more.
|
||||
* Heir To The Throne:
|
||||
* Implemented the portrait variations for Delfador and Asheviere.
|
||||
* Changed Kaylan's portrait and gave him teal team coloring.
|
||||
|
@ -27,6 +30,7 @@ Version 1.11.7+dev:
|
|||
* User interface:
|
||||
* Added a party full bell to the MP game configuration screen, played once
|
||||
all human player slots have been taken.
|
||||
* Change layout for advertized games in the MP lobby and add map icon.
|
||||
|
||||
|
||||
Version 1.11.7:
|
||||
|
|
|
@ -70,6 +70,7 @@ connect::side::side(connect& parent, side_engine_ptr engine) :
|
|||
std::vector<std::string>(), parent.combo_control_group_)),
|
||||
combo_ai_algorithm_(parent.disp(), std::vector<std::string>()),
|
||||
combo_faction_(parent.disp(), std::vector<std::string>()),
|
||||
label_leader_name_(parent.video(), engine_->cfg()["name"], font::SIZE_SMALL),
|
||||
combo_leader_(parent.disp(), std::vector<std::string>()),
|
||||
combo_gender_(parent.disp(), std::vector<std::string>()),
|
||||
combo_team_(parent.disp(), engine_->player_teams()),
|
||||
|
@ -130,6 +131,7 @@ connect::side::side(const side& a) :
|
|||
combo_controller_(a.combo_controller_),
|
||||
combo_ai_algorithm_(a.combo_ai_algorithm_),
|
||||
combo_faction_(a.combo_faction_),
|
||||
label_leader_name_(a.label_leader_name_),
|
||||
combo_leader_(a.combo_leader_),
|
||||
combo_gender_(a.combo_gender_),
|
||||
combo_team_(a.combo_team_),
|
||||
|
@ -255,22 +257,34 @@ void connect::side::update_ui()
|
|||
|
||||
void connect::side::add_widgets_to_scrollpane(gui::scrollpane& pane, int pos)
|
||||
{
|
||||
// Offset value to align labels in y-axis.
|
||||
int label_y_offset = (combo_leader_.height() - label_leader_name_.height()) / 2;
|
||||
|
||||
pane.add_widget(&label_player_number_, 0, 5 + pos);
|
||||
|
||||
pane.add_widget(combo_controller_.get(), 20, 5 + pos);
|
||||
pane.add_widget(&label_original_controller_, 20 +
|
||||
(combo_controller_->width() - label_original_controller_.width()) / 2,
|
||||
35 + pos + (combo_leader_.height() -
|
||||
label_original_controller_.height()) / 2);
|
||||
35 + pos + label_y_offset);
|
||||
pane.add_widget(&combo_ai_algorithm_, 20, 35 + pos);
|
||||
|
||||
pane.add_widget(&combo_faction_, 135, 5 + pos);
|
||||
pane.add_widget(&combo_leader_, 135, 35 + pos);
|
||||
pane.add_widget(&label_leader_name_, 135 +
|
||||
(combo_faction_.width() - label_leader_name_.width()) / 2,
|
||||
35 + pos + label_y_offset);
|
||||
|
||||
pane.add_widget(&combo_leader_, 250, 5 + pos);
|
||||
pane.add_widget(&combo_gender_, 250, 35 + pos);
|
||||
pane.add_widget(&combo_team_, 250, 5 + pos);
|
||||
pane.add_widget(&combo_color_, 365, 5 + pos);
|
||||
|
||||
pane.add_widget(&combo_team_, 365, 5 + pos);
|
||||
pane.add_widget(&combo_color_, 365, 35 + pos);
|
||||
|
||||
pane.add_widget(&slider_gold_, 475, 5 + pos);
|
||||
pane.add_widget(&label_gold_, 475, 35 + pos);
|
||||
pane.add_widget(&label_gold_, 475 + 5, 35 + pos + label_y_offset);
|
||||
|
||||
pane.add_widget(&slider_income_, 475 + slider_gold_.width(), 5 + pos);
|
||||
pane.add_widget(&label_income_, 475 + slider_gold_.width(), 35 + pos);
|
||||
pane.add_widget(&label_income_, 475 + 5 + slider_gold_.width(),
|
||||
35 + pos + label_y_offset);
|
||||
}
|
||||
|
||||
void connect::side::update_faction_combo()
|
||||
|
@ -355,11 +369,11 @@ connect::connect(game_display& disp, const std::string& game_name,
|
|||
waiting_label_(video(), "", font::SIZE_SMALL, font::LOBBY_COLOR),
|
||||
type_title_label_(video(), _("Player/Type"), font::SIZE_SMALL,
|
||||
font::LOBBY_COLOR),
|
||||
faction_title_label_(video(), _("Faction"), font::SIZE_SMALL,
|
||||
faction_name_title_label_(video(), _("Faction/Name"), font::SIZE_SMALL,
|
||||
font::LOBBY_COLOR),
|
||||
team_title_label_(video(), _("Team/Gender"), font::SIZE_SMALL,
|
||||
leader_gender_title_label_(video(), _("Leader/Gender"), font::SIZE_SMALL,
|
||||
font::LOBBY_COLOR),
|
||||
color_title_label_(video(), _("Color"), font::SIZE_SMALL,
|
||||
team_color_title_label_(video(), _("Team/Color"), font::SIZE_SMALL,
|
||||
font::LOBBY_COLOR),
|
||||
gold_title_label_(video(), _("Gold"), font::SIZE_SMALL,
|
||||
font::LOBBY_COLOR),
|
||||
|
@ -469,9 +483,9 @@ void connect::hide_children(bool hide)
|
|||
waiting_label_.hide(hide);
|
||||
scroll_pane_.hide(hide); // Scroll pane contents are automatically hidden.
|
||||
|
||||
faction_title_label_.hide(hide);
|
||||
team_title_label_.hide(hide);
|
||||
color_title_label_.hide(hide);
|
||||
faction_name_title_label_.hide(hide);
|
||||
leader_gender_title_label_.hide(hide);
|
||||
team_color_title_label_.hide(hide);
|
||||
|
||||
if (!params().saved_game) {
|
||||
gold_title_label_.hide(hide);
|
||||
|
@ -506,9 +520,9 @@ void connect::layout_children(const SDL_Rect& rect)
|
|||
left_button->height());
|
||||
|
||||
type_title_label_.set_location(left + 30, top + 35);
|
||||
faction_title_label_.set_location((left + 145), top + 35);
|
||||
team_title_label_.set_location((left + 260), top + 35);
|
||||
color_title_label_.set_location((left + 375), top + 35);
|
||||
faction_name_title_label_.set_location((left + 145), top + 35);
|
||||
leader_gender_title_label_.set_location((left + 260), top + 35);
|
||||
team_color_title_label_.set_location((left + 375), top + 35);
|
||||
gold_title_label_.set_location((left + 493), top + 35);
|
||||
income_title_label_.set_location((left + 560), top + 35);
|
||||
|
||||
|
|
|
@ -81,6 +81,7 @@ public:
|
|||
gui::combo_drag_ptr combo_controller_;
|
||||
gui::combo combo_ai_algorithm_;
|
||||
gui::combo combo_faction_;
|
||||
gui::label label_leader_name_;
|
||||
gui::combo combo_leader_;
|
||||
gui::combo combo_gender_;
|
||||
gui::combo combo_team_;
|
||||
|
@ -134,9 +135,9 @@ private:
|
|||
|
||||
gui::label waiting_label_;
|
||||
gui::label type_title_label_;
|
||||
gui::label faction_title_label_;
|
||||
gui::label team_title_label_;
|
||||
gui::label color_title_label_;
|
||||
gui::label faction_name_title_label_;
|
||||
gui::label leader_gender_title_label_;
|
||||
gui::label team_color_title_label_;
|
||||
gui::label gold_title_label_;
|
||||
gui::label income_title_label_;
|
||||
gui::scrollpane scroll_pane_;
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "minimap.hpp"
|
||||
#include "multiplayer_lobby.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/old_markup.hpp"
|
||||
#include "log.hpp"
|
||||
#include "playmp_controller.hpp"
|
||||
#include "sound.hpp"
|
||||
|
@ -46,7 +47,8 @@ gamebrowser::gamebrowser(CVideo& video, const config &map_hashes) :
|
|||
menu(video, empty_string_vector, false, -1, -1, NULL, &menu::bluebg_style),
|
||||
gold_icon_locator_("themes/gold.png"),
|
||||
xp_icon_locator_("themes/units.png"),
|
||||
vision_icon_locator_("misc/invisible.png"),
|
||||
map_size_icon_locator_("misc/map.png"),
|
||||
vision_icon_locator_("misc/visibility.png"),
|
||||
time_limit_icon_locator_("themes/sand-clock.png"),
|
||||
observer_icon_locator_("misc/eye.png"),
|
||||
no_observer_icon_locator_("misc/no_observer.png"),
|
||||
|
@ -56,6 +58,7 @@ gamebrowser::gamebrowser(CVideo& video, const config &map_hashes) :
|
|||
margin_(5),
|
||||
minimap_size_(item_height_ - 2*margin_),
|
||||
h_padding_(5),
|
||||
h_padding_image_to_text_(4),
|
||||
header_height_(20),
|
||||
selected_(0),
|
||||
visible_range_(std::pair<size_t,size_t>(0,0)),
|
||||
|
@ -163,14 +166,14 @@ void gamebrowser::draw_row(const size_t index, const SDL_Rect& item_rect, ROW_TY
|
|||
}
|
||||
|
||||
const surface status_text(font::get_rendered_text(game.status,
|
||||
font::SIZE_NORMAL, font_color));
|
||||
font::SIZE_NORMAL, font_color, TTF_STYLE_BOLD));
|
||||
const int status_text_width = status_text ? status_text->w : 0;
|
||||
|
||||
// First line: draw game name
|
||||
const surface name_surf(font::get_rendered_text(
|
||||
font::make_text_ellipsis(game.name + no_era_string, font::SIZE_PLUS,
|
||||
(item_rect.x + item_rect.w) - xpos - margin_ - status_text_width - h_padding_),
|
||||
font::SIZE_PLUS, font_color));
|
||||
font::SIZE_PLUS, font_color, TTF_STYLE_BOLD));
|
||||
video().blit_surface(xpos, ypos, name_surf);
|
||||
|
||||
// Draw status text
|
||||
|
@ -196,12 +199,12 @@ void gamebrowser::draw_row(const size_t index, const SDL_Rect& item_rect, ROW_TY
|
|||
ypos = item_rect.y + 2*item_rect.h/3 - margin_;
|
||||
|
||||
// Draw modifications info
|
||||
const surface mod_info_surf(font::get_rendered_text(
|
||||
font::make_text_ellipsis(game.mod_info, font::SIZE_NORMAL,
|
||||
const surface era_and_mod_info_surf(font::get_rendered_text(
|
||||
font::make_text_ellipsis(game.era_and_mod_info, font::SIZE_NORMAL,
|
||||
(item_rect.x + item_rect.w) - xpos - margin_),
|
||||
font::SIZE_NORMAL, font::NORMAL_COLOR));
|
||||
if(mod_info_surf) {
|
||||
video().blit_surface(xpos, ypos - mod_info_surf->h/2, mod_info_surf);
|
||||
if(era_and_mod_info_surf) {
|
||||
video().blit_surface(xpos, ypos - era_and_mod_info_surf->h/2, era_and_mod_info_surf);
|
||||
}
|
||||
|
||||
// Fourth line
|
||||
|
@ -235,7 +238,7 @@ void gamebrowser::draw_row(const size_t index, const SDL_Rect& item_rect, ROW_TY
|
|||
if(gold_icon) {
|
||||
video().blit_surface(xpos, ypos - gold_icon->h/2, gold_icon);
|
||||
|
||||
xpos += gold_icon->w + h_padding_;
|
||||
xpos += gold_icon->w + h_padding_image_to_text_;
|
||||
}
|
||||
|
||||
// Draw gold text
|
||||
|
@ -252,7 +255,7 @@ void gamebrowser::draw_row(const size_t index, const SDL_Rect& item_rect, ROW_TY
|
|||
if(xp_icon) {
|
||||
video().blit_surface(xpos, ypos - xp_icon->h/2, xp_icon);
|
||||
|
||||
xpos += xp_icon->w + h_padding_;
|
||||
xpos += xp_icon->w + h_padding_image_to_text_;
|
||||
}
|
||||
|
||||
// Draw xp text
|
||||
|
@ -262,13 +265,32 @@ void gamebrowser::draw_row(const size_t index, const SDL_Rect& item_rect, ROW_TY
|
|||
|
||||
xpos += xp_text->w + 2 * h_padding_;
|
||||
}
|
||||
|
||||
if(!game.map_data.empty()) {
|
||||
// Draw map size icon
|
||||
const surface map_size_icon(image::get_image(map_size_icon_locator_));
|
||||
if(map_size_icon) {
|
||||
video().blit_surface(xpos, ypos - map_size_icon->h/2, map_size_icon);
|
||||
|
||||
xpos += map_size_icon->w + h_padding_image_to_text_;
|
||||
}
|
||||
|
||||
// Draw map size text
|
||||
const surface map_size_text(font::get_rendered_text(game.map_info_size,
|
||||
font::SIZE_NORMAL, font::NORMAL_COLOR));
|
||||
if(map_size_text) {
|
||||
video().blit_surface(xpos, ypos - map_size_text->h/2, map_size_text);
|
||||
|
||||
xpos += map_size_text->w + 2 * h_padding_;
|
||||
}
|
||||
}
|
||||
|
||||
if(!game.time_limit.empty()) {
|
||||
// Draw time icon
|
||||
const surface time_icon(image::get_image(time_limit_icon_locator_));
|
||||
video().blit_surface(xpos, ypos - time_icon->h/2, time_icon);
|
||||
|
||||
xpos += time_icon->w + h_padding_;
|
||||
xpos += time_icon->w + h_padding_image_to_text_;
|
||||
|
||||
// Draw time text
|
||||
const surface time_text(font::get_rendered_text(game.time_limit,
|
||||
|
@ -283,7 +305,7 @@ void gamebrowser::draw_row(const size_t index, const SDL_Rect& item_rect, ROW_TY
|
|||
if(vision_icon) {
|
||||
video().blit_surface(xpos, ypos - vision_icon->h/2, vision_icon);
|
||||
|
||||
xpos += vision_icon->w + h_padding_;
|
||||
xpos += vision_icon->w + h_padding_image_to_text_;
|
||||
}
|
||||
|
||||
// Draw vision text
|
||||
|
@ -298,7 +320,7 @@ void gamebrowser::draw_row(const size_t index, const SDL_Rect& item_rect, ROW_TY
|
|||
|
||||
// Draw map settings text
|
||||
if (game.use_map_settings) {
|
||||
xpos += vision_text->w + 4 * h_padding_;
|
||||
xpos += vision_text->w + 3 * h_padding_;
|
||||
const surface map_settings_text(font::get_rendered_text(
|
||||
font::make_text_ellipsis(_("Use map settings"), font::SIZE_NORMAL,
|
||||
(item_rect.x + item_rect.w) - xpos - margin_),
|
||||
|
@ -446,61 +468,6 @@ void gamebrowser::set_game_items(const config& cfg, const config& game_config)
|
|||
games_.back().password_required = game["password"].to_bool();
|
||||
games_.back().reloaded = game["savegame"].to_bool();
|
||||
games_.back().have_era = true;
|
||||
if (!game["mp_era"].empty())
|
||||
{
|
||||
const config &era_cfg = game_config.find_child("era", "id", game["mp_era"]);
|
||||
utils::string_map symbols;
|
||||
symbols["era_id"] = game["mp_era"];
|
||||
if (era_cfg) {
|
||||
games_.back().map_info = era_cfg["name"].str();
|
||||
} else {
|
||||
if (!game["require_era"].to_bool(true)) {
|
||||
games_.back().have_era = true;
|
||||
} else {
|
||||
games_.back().have_era = false;
|
||||
}
|
||||
games_.back().map_info = vgettext("Unknown era: $era_id", symbols);
|
||||
verified = false;
|
||||
}
|
||||
} else {
|
||||
games_.back().map_info = _("Unknown era");
|
||||
verified = false;
|
||||
}
|
||||
games_.back().map_data = game["map_data"].str();
|
||||
if(games_.back().map_data.empty()) {
|
||||
games_.back().map_data = read_map(game["map"]);
|
||||
}
|
||||
|
||||
if(! games_.back().map_data.empty()) {
|
||||
try {
|
||||
std::vector<minimap_cache_item>::iterator i;
|
||||
bool found = false;
|
||||
for(i = minimap_cache.begin(); i != minimap_cache.end() && !found; ++i) {
|
||||
if (i->map_data == games_.back().map_data) {
|
||||
found = true;
|
||||
games_.back().map_info_size = i->map_info_size;
|
||||
games_.back().mini_map = i->mini_map;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
// Parsing the map and generating the minimap are both cpu expensive
|
||||
gamemap map(game_config, games_.back().map_data);
|
||||
games_.back().mini_map = image::getMinimap(minimap_size_, minimap_size_, map, 0);
|
||||
games_.back().map_info_size = str_cast(map.w()) + utils::unicode_multiplication_sign
|
||||
+ str_cast(map.h());
|
||||
}
|
||||
games_.back().map_info += " — " + games_.back().map_info_size;
|
||||
} catch (incorrect_map_format_error &e) {
|
||||
ERR_CF << "illegal map: " << e.message << '\n';
|
||||
verified = false;
|
||||
} catch(twml_exception& e) {
|
||||
ERR_CF << "map could not be loaded: " << e.dev_message << '\n';
|
||||
verified = false;
|
||||
}
|
||||
} else {
|
||||
games_.back().map_info += " — ??×??";
|
||||
}
|
||||
games_.back().map_info += " ";
|
||||
if (game["mp_campaign"].empty()) {
|
||||
if (!game["mp_scenario"].empty()) {
|
||||
// Check if it's a multiplayer scenario.
|
||||
|
@ -512,6 +479,8 @@ void gamebrowser::set_game_items(const config& cfg, const config& game_config)
|
|||
"id", game["mp_scenario"]);
|
||||
}
|
||||
if (*level_cfg) {
|
||||
games_.back().map_info = _("Scenario:");
|
||||
games_.back().map_info += " ";
|
||||
games_.back().map_info += (*level_cfg)["name"].str();
|
||||
// Reloaded games do not match the original scenario hash,
|
||||
// so it makes no sense to test them,
|
||||
|
@ -538,52 +507,132 @@ void gamebrowser::set_game_items(const config& cfg, const config& game_config)
|
|||
} else {
|
||||
utils::string_map symbols;
|
||||
symbols["scenario_id"] = game["mp_scenario"];
|
||||
games_.back().map_info +=
|
||||
games_.back().map_info =
|
||||
vgettext("Unknown scenario: $scenario_id", symbols);
|
||||
verified = false;
|
||||
}
|
||||
} else {
|
||||
games_.back().map_info += _("Unknown scenario");
|
||||
games_.back().map_info = _("Unknown scenario");
|
||||
verified = false;
|
||||
}
|
||||
} else {
|
||||
} else { // Is a campaign
|
||||
const config* level_cfg = &game_config.find_child("campaign", "id",
|
||||
game["mp_campaign"]);
|
||||
if (*level_cfg) {
|
||||
games_.back().map_info = _("Campaign:");
|
||||
games_.back().map_info += " ";
|
||||
games_.back().map_info += game["mp_scenario_name"].str();
|
||||
games_.back().map_info += " (";
|
||||
games_.back().map_info += (*level_cfg)["name"].str();
|
||||
games_.back().map_info += ")";
|
||||
|
||||
// Difficulty.
|
||||
const std::vector<std::string> difficulties =
|
||||
utils::split((*level_cfg)["difficulties"]);
|
||||
const std::string difficulty_descriptions =
|
||||
(*level_cfg)["difficulty_descriptions"];
|
||||
std::vector<std::string> difficulty_options =
|
||||
utils::split(difficulty_descriptions, ';');
|
||||
int index = 0;
|
||||
BOOST_FOREACH(const std::string& difficulty, difficulties) {
|
||||
if (difficulty == game["difficulty_define"]) {
|
||||
gui2::tlegacy_menu_item menu_item(difficulty_options[index]);
|
||||
games_.back().map_info += " — ";
|
||||
games_.back().map_info += _("Difficulty:");
|
||||
games_.back().map_info += " ";
|
||||
games_.back().map_info += menu_item.label();
|
||||
games_.back().map_info += " ";
|
||||
games_.back().map_info += menu_item.description();
|
||||
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
} else {
|
||||
utils::string_map symbols;
|
||||
symbols["campaign_id"] = game["mp_campaign"];
|
||||
games_.back().map_info +=
|
||||
games_.back().map_info =
|
||||
vgettext("Unknown campaign: $campaign_id", symbols);
|
||||
verified = false;
|
||||
}
|
||||
}
|
||||
games_.back().map_data = game["map_data"].str();
|
||||
if(games_.back().map_data.empty()) {
|
||||
games_.back().map_data = read_map(game["map"]);
|
||||
}
|
||||
if(! games_.back().map_data.empty()) {
|
||||
try {
|
||||
std::vector<minimap_cache_item>::iterator i;
|
||||
bool found = false;
|
||||
for(i = minimap_cache.begin(); i != minimap_cache.end() && !found; ++i) {
|
||||
if (i->map_data == games_.back().map_data) {
|
||||
found = true;
|
||||
games_.back().map_info_size = i->map_info_size;
|
||||
games_.back().mini_map = i->mini_map;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
// Parsing the map and generating the minimap are both cpu expensive
|
||||
gamemap map(game_config, games_.back().map_data);
|
||||
games_.back().mini_map = image::getMinimap(minimap_size_, minimap_size_, map, 0);
|
||||
games_.back().map_info_size = str_cast(map.w()) + utils::unicode_multiplication_sign
|
||||
+ str_cast(map.h());
|
||||
}
|
||||
} catch (incorrect_map_format_error &e) {
|
||||
ERR_CF << "illegal map: " << e.message << '\n';
|
||||
verified = false;
|
||||
} catch(twml_exception& e) {
|
||||
ERR_CF << "map could not be loaded: " << e.dev_message << '\n';
|
||||
verified = false;
|
||||
}
|
||||
}
|
||||
|
||||
games_.back().mod_info += "Modifications: ";
|
||||
if (!game["mp_era"].empty())
|
||||
{
|
||||
const config &era_cfg = game_config.find_child("era", "id", game["mp_era"]);
|
||||
utils::string_map symbols;
|
||||
symbols["era_id"] = game["mp_era"];
|
||||
if (era_cfg) {
|
||||
games_.back().era_and_mod_info = _("Era:");
|
||||
games_.back().era_and_mod_info += " ";
|
||||
games_.back().era_and_mod_info += era_cfg["name"].str();
|
||||
} else {
|
||||
if (!game["require_era"].to_bool(true)) {
|
||||
games_.back().have_era = true;
|
||||
} else {
|
||||
games_.back().have_era = false;
|
||||
}
|
||||
games_.back().era_and_mod_info = vgettext("Unknown era: $era_id", symbols);
|
||||
verified = false;
|
||||
}
|
||||
} else {
|
||||
games_.back().era_and_mod_info = _("Unknown era");
|
||||
verified = false;
|
||||
}
|
||||
|
||||
if (!game.child_or_empty("modification").empty()) {
|
||||
games_.back().have_all_mods = true;
|
||||
games_.back().era_and_mod_info += " — ";
|
||||
games_.back().era_and_mod_info += _("Modifications:");
|
||||
games_.back().era_and_mod_info += " ";
|
||||
|
||||
BOOST_FOREACH (const config& m, game.child_range("modification")) {
|
||||
const config& mod_cfg = game_config.find_child("modification", "id", m["id"]);
|
||||
if (mod_cfg) {
|
||||
games_.back().mod_info += mod_cfg["name"].str();
|
||||
games_.back().mod_info += ", ";
|
||||
games_.back().era_and_mod_info += mod_cfg["name"].str();
|
||||
games_.back().era_and_mod_info += ", ";
|
||||
} else {
|
||||
games_.back().mod_info += m["id"].str();
|
||||
games_.back().era_and_mod_info += m["id"].str();
|
||||
if (m["require_modification"].to_bool(false)) {
|
||||
games_.back().have_all_mods = false;
|
||||
games_.back().mod_info += _(" (missing)");
|
||||
games_.back().era_and_mod_info += _(" (missing)");
|
||||
}
|
||||
games_.back().mod_info += ", ";
|
||||
games_.back().era_and_mod_info += ", ";
|
||||
}
|
||||
}
|
||||
games_.back().mod_info.erase(games_.back().mod_info.size()-2, 2);
|
||||
games_.back().era_and_mod_info.erase(games_.back().era_and_mod_info.size()-2, 2);
|
||||
} else {
|
||||
games_.back().mod_info += "none";
|
||||
games_.back().have_all_mods = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ public:
|
|||
name(),
|
||||
map_info(),
|
||||
map_info_size(),
|
||||
mod_info(),
|
||||
era_and_mod_info(),
|
||||
gold(),
|
||||
xp(),
|
||||
vision(),
|
||||
|
@ -71,7 +71,7 @@ public:
|
|||
std::string name;
|
||||
std::string map_info;
|
||||
std::string map_info_size;
|
||||
std::string mod_info;
|
||||
std::string era_and_mod_info;
|
||||
std::string gold;
|
||||
std::string xp;
|
||||
std::string vision;
|
||||
|
@ -117,6 +117,7 @@ protected:
|
|||
private:
|
||||
image::locator gold_icon_locator_;
|
||||
image::locator xp_icon_locator_;
|
||||
image::locator map_size_icon_locator_;
|
||||
image::locator vision_icon_locator_;
|
||||
image::locator time_limit_icon_locator_;
|
||||
image::locator observer_icon_locator_;
|
||||
|
@ -129,6 +130,7 @@ private:
|
|||
int margin_;
|
||||
int minimap_size_;
|
||||
int h_padding_;
|
||||
int h_padding_image_to_text_;
|
||||
int header_height_;
|
||||
size_t selected_;
|
||||
std::pair<size_t, size_t> visible_range_;
|
||||
|
|
Loading…
Add table
Reference in a new issue