#textdomain wesnoth-multiplayer
[multiplayer_side]
id=Custom
name= _"Custom"
image="units/unknown-unit.png"
{MAGENTA_IS_THE_TEAM_COLOR}
[/multiplayer_side]
#define RANDOM_SIDE
[multiplayer_side]
id=Random
name= _"Random"
image="units/random-dice.png"
{MAGENTA_IS_THE_TEAM_COLOR}
random_faction=yes
[/multiplayer_side]
#enddef
#define QUICK_4MP_LEADERS
# This makes all leaders with 4 MP receive the quick trait, except ones with
# unit.variables.dont_make_me_quick=yes (boolean)
[event]
name=prestart
[store_unit]
[filter]
canrecruit=yes
[filter_wml]
max_moves=4
[/filter_wml]
[/filter]
kill=yes
variable=leaders_to_make_quick
[/store_unit]
{FOREACH leaders_to_make_quick i}
[if]
# The variable check is done here instead of in the [store_unit]
# so that all boolean values work
[variable]
name=leaders_to_make_quick[$i].variables.dont_make_me_quick
boolean_equals=yes
[/variable]
[then]
[unstore_unit]
variable=leaders_to_make_quick[$i]
[/unstore_unit]
[/then]
[else]
[set_variables]
name=temp
[literal]
{TRAIT_QUICK}
[/literal]
[/set_variables]
[set_variables]
name=leaders_to_make_quick[$i].modifications.trait
mode=append
[insert_tag]
name=literal
variable=temp.trait
[/insert_tag]
[/set_variables]
{CLEAR_VARIABLE leaders_to_make_quick[$i].max_moves,leaders_to_make_quick[$i].moves,leaders_to_make_quick[$i].max_hitpoints,leaders_to_make_quick[$i].hitpoints}
[unstore_unit]
variable=leaders_to_make_quick[$i]
[/unstore_unit]
[/else]
[/if]
{NEXT i}
{CLEAR_VARIABLE leaders_to_make_quick,temp}
[/event]
#enddef
#define TURNS_OVER_ADVANTAGE
[event]
name=time over
[lua]
# wmllint: markcheck off
code=<<
local _ = wesnoth.textdomain "wesnoth-multiplayer"
local function all_sides()
local function f(s, i)
i = i + 1
local t = wesnoth.sides[i]
return t and i, t
end
return f, nil, 0
end
local income_factor = 5
local side_num = -1
local total_score = -1
local side_comparison = ""
for side, team in all_sides() do
repeat -- ugly hack to convert 'break' into 'continue'
if team.__cfg.hidden then
break
end
local r, g, b = 255, 255, 255
if team.__cfg.color == 1 then r, g, b = 255, 0, 0
elseif team.__cfg.color == 2 then r, g, b = 0, 0, 255
elseif team.__cfg.color == 3 then r, g, b = 0, 255, 0
elseif team.__cfg.color == 4 then r, g, b = 155, 48, 255
elseif team.__cfg.color == 5 then r, g, b = 0, 0, 0
elseif team.__cfg.color == 6 then r, g, b = 165, 42, 42
elseif team.__cfg.color == 7 then r, g, b = 255, 165, 0
elseif team.__cfg.color == 8 then r, g, b = 255, 255, 255
elseif team.__cfg.color == 9 then r, g, b = 0, 128, 128 end
if # wesnoth.get_units( { side = side } ) == 0 then
side_comparison = side_comparison ..
string.format( tostring( _ "Side %d") .. "\n",
r, g, b, side)
break
end
local income = team.total_income * income_factor
local units = 0
-- Calc the total unit-score here
for i, unit in ipairs( wesnoth.get_units { side = side } ) do
if not unit.__cfg.canrecruit then
wesnoth.fire("unit_worth", { id = unit.id })
units = units + wesnoth.get_variable("unit_worth")
end
end
-- Up to here
local total = units + team.gold + income
side_comparison = side_comparison ..
string.format( tostring( _ "Side %d: Income score = %d Unit score = %d Gold = %d") .. "\n" .. tostring( _ "Grand total: %d") .. "\n",
r, g, b, side, income, units, team.gold, total)
if total > total_score then
color = string.format("#%02x%02x%02x", r, g, b)
side_num = side
total_score = total
end
until true -- end ugly hack
end
side_comparison = side_comparison ..
string.format( "\n" .. tostring( _ "Side %d has the advantage."), color, side_num)
wesnoth.fire("message", { message = side_comparison, speaker = "narrator", image = "wesnoth-icon.png"})
>>
# wmllint: markcheck on
[/lua]
[/event]
#enddef
# These macros make things easier for UMC eras which are additions to or modifications of the default eras.
# If anything gets changed or added to the default eras, please do it in the code included in these macros.
#define ERA_DEFAULT
{RANDOM_SIDE}
{multiplayer/factions/loyalists-default.cfg}
{multiplayer/factions/rebels-default.cfg}
{multiplayer/factions/northerners-default.cfg}
{multiplayer/factions/undead-default.cfg}
{multiplayer/factions/knalgans-default.cfg}
{multiplayer/factions/drakes-default.cfg}
{QUICK_4MP_LEADERS}
{TURNS_OVER_ADVANTAGE}
#enddef
[era]
id=era_default
name= _ "Default"
description=_ "The standard era for Wesnoth multiplayer. Consists of six factions and is generally balanced."
{ERA_DEFAULT}
[/era]
#define ERA_HEROES
{RANDOM_SIDE}
{multiplayer/factions/loyalists-aoh.cfg}
{multiplayer/factions/rebels-aoh.cfg}
{multiplayer/factions/northerners-aoh.cfg}
{multiplayer/factions/undead-aoh.cfg}
{multiplayer/factions/knalgans-aoh.cfg}
{multiplayer/factions/drakes-aoh.cfg}
{QUICK_4MP_LEADERS}
{TURNS_OVER_ADVANTAGE}
#enddef
[era]
id=era_heroes
name= _ "Age of Heroes"
description= _"An era with higher level units: level three leaders, with level one and two units available for recruit. Consists of six factions. Not considered balanced."
{ERA_HEROES}
[/era]
[era]
id=era_khalifate
name= _ "Default + Khalifate"
description= _ "An era featuring an additional faction besides the six factions from Default Era. Khalifate units use no magic, but instead rely on careful use of terrain and coordinated strikes around dusk or dawn.
This era is still under development, so please be sure to report any problems that arise."
{ERA_DEFAULT}
{multiplayer/factions/khalifate-default.cfg}
[/era]
[era]
id=era_khalifate_heroes
name= _ "Age of Heroes + Khalifate"
description= _ "An era featuring an additional faction besides the six factions from Age of Heroes Era. Khalifate units use no magic, but instead rely on careful use of terrain and coordinated strikes around dusk or dawn.
This era is still under development, so please be sure to report any problems that arise."
{ERA_HEROES}
{multiplayer/factions/khalifate-aoh.cfg}
[/era]