widelands-dev team mailing list archive
-
widelands-dev team
-
Mailing list archive
-
Message #02025
[Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
GunChleoc has proposed merging lp:~widelands-dev/widelands/bug-1074353 into lp:widelands.
Requested reviews:
Widelands Developers (widelands-dev)
Related bugs:
Bug #964534 in widelands: "Building names in help headlines create duplicate translations of building names"
https://bugs.launchpad.net/widelands/+bug/964534
Bug #1005194 in widelands: "building help: clear indication of the meaning of working area"
https://bugs.launchpad.net/widelands/+bug/1005194
Bug #1027824 in widelands: "Mistakes in in-game help of Barbarian trainingscamp"
https://bugs.launchpad.net/widelands/+bug/1027824
Bug #1074353 in widelands: "Lua does not wrap Descr Classes which makes hard coding values in the help needed."
https://bugs.launchpad.net/widelands/+bug/1074353
For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/bug-1074353/+merge/221095
This is in a mergeable state now, although more work needs to be done, as commented in the source code (comments are in lua_map.cc and format_help.lua).
Please leave this bug open: https://bugs.launchpad.net/widelands/+bug/1074353
The 3 other related bugs have been fixed and can be closed.
--
https://code.launchpad.net/~widelands-dev/widelands/bug-1074353/+merge/221095
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/bug-1074353 into lp:widelands.
=== modified file 'campaigns/atl01.wmf/scripting/init.lua'
--- campaigns/atl01.wmf/scripting/init.lua 2014-04-14 20:01:49 +0000
+++ campaigns/atl01.wmf/scripting/init.lua 2014-05-27 14:17:43 +0000
@@ -325,10 +325,10 @@
-- Flags are not so interesting
if f.immovable.type == "flag" and
- (f.tln.immovable and f.tln.immovable.building_type) then
+ (f.tln.immovable and is_building(f.tln.immovable)) then
f = f.tln
end
- if f.immovable.building_type then
+ if is_building(f.immovable) then
send_building_lost_message(f)
end
end
=== modified file 'campaigns/tutorial01.wmf/scripting/init.lua'
--- campaigns/tutorial01.wmf/scripting/init.lua 2014-03-25 06:18:48 +0000
+++ campaigns/tutorial01.wmf/scripting/init.lua 2014-05-27 14:17:43 +0000
@@ -15,6 +15,7 @@
set_textdomain("scenario_tutorial01.wmf")
include "scripting/coroutine.lua"
+include "scripting/infrastructure.lua"
include "scripting/ui.lua"
include "scripting/table.lua"
@@ -310,7 +311,7 @@
end
-- buildings and constructionsite have a flag
- if i.building_type or i.type == "constructionsite" then
+ if is_building(i) or i.type == "constructionsite" then
registered_player_immovables[_fmt(i.fields[1].brn)] = true
end
end
=== modified file 'scripting/format_help.lua'
--- scripting/format_help.lua 2014-03-04 17:48:34 +0000
+++ scripting/format_help.lua 2014-05-27 14:17:43 +0000
@@ -1,30 +1,9 @@
--- RST
--- format_help.lua
--- ---------------
---
--- Functions used in the ingame help windows for formatting the text and pictures.
-
--- RST
--- .. function:: dependencies(images[, text = nil])
---
--- Creates a dependencies line of any length.
---
--- :arg images: images in the correct order from left to right as table (set in {}).
--- :arg text: comment of the image.
--- :returns: a row of pictures connected by arrows.
---
-function dependencies(images, text)
- if not text then
- text = ""
- end
-
- string = "image=" .. images[1]
- for k,v in ipairs({table.unpack(images,2)}) do
- string = string .. ";pics/arrow-right.png;" .. v
- end
-
- return rt(string, text)
-end
+-- TODO Textdomain?
+-- TODO: get images from C++, e.g. menu.png, resi_00.png for the small image, first idle picture for the big header images. soldiers, tools, wares etc.
+
+-- =======================================================
+-- *************** Basic helper functions ****************
+-- =======================================================
-- RST
-- .. function:: image_line(image, count[, text = nil])
@@ -83,26 +62,726 @@
}
end
--- RST
--- .. help_building_line(tribe, material, material_str, number)
---
--- Creates an image_line with a number formatted string.
---
--- :arg tribe: name of tribe in the file system.
--- :arg material: name of material in the file system.
--- :arg material_str: containing number placeholder + name of material fetched with ngettext previously.
--- :arg number: the number used for ngettext in material_str
--- :returns: image_line.
---
-function help_building_line(tribe, material, material_str, number)
- local image = "tribes/" .. tribe .. "/" .. material .. "/menu.png"
- if number <=6 then
- return image_line(image,number,p(material_str:format(number)))
- else
- if number <=12 then
- return image_line(image,6,p(material_str:format(number))) .. image_line(image, number-6)
- else
- return image_line(image,6,p(material_str:format(number))) .. image_line(image, 6) .. image_line(image, number-12)
- end
- end
+-- =======================================================
+-- ********** Helper functions for dependencies **********
+-- =======================================================
+
+-- RST
+-- format_help.lua
+-- ---------------
+
+-- Functions used in the ingame help windows for formatting the text and pictures.
+
+-- RST
+-- .. function:: dependencies_basic(images[, text = nil])
+--
+-- Creates a dependencies line of any length.
+--
+-- :arg images: images in the correct order from left to right as table (set in {}).
+-- :arg text: comment of the image.
+-- :returns: a row of pictures connected by arrows.
+--
+function dependencies_basic(images, text)
+ if not text then
+ text = ""
+ end
+
+ string = "image=" .. images[1]
+ for k,v in ipairs({table.unpack(images,2)}) do
+ string = string .. ";pics/arrow-right.png;" .. v
+ end
+
+ return rt(string, text)
+end
+
+
+-- RST
+-- .. function:: dependencies(tribename, items[, text = nil])
+--
+-- Creates a dependencies line of any length.
+--
+-- :arg tribename: name of the tribe.
+-- :arg items: ware and/or building names in the correct order from left to right as table (set in {}).
+-- :arg text: comment of the image.
+-- :returns: a row of pictures connected by arrows.
+--
+function dependencies(tribename, items, text)
+ if not text then
+ text = ""
+ end
+ string = "image=tribes/" .. tribename .. "/" .. items[1] .. "/menu.png"
+ for k,v in ipairs({table.unpack(items,2)}) do
+ string = string .. ";pics/arrow-right.png;" .. "tribes/" .. tribename .. "/" .. v .. "/menu.png"
+ end
+ return rt(string, p(text))
+end
+
+
+-- RST
+-- .. function:: dependencies_resi(tribename, items[, text = nil])
+--
+-- Creates a dependencies line of any length for resources (that don't have menu.png files).
+--
+-- :arg tribename: name of the tribe.
+-- :arg items: resource names in the correct order from left to right as table (set in {}).
+-- :arg text: comment of the image.
+-- :returns: a row of pictures connected by arrows.
+--
+function dependencies_resi(tribename, items, text)
+ if not text then
+ text = ""
+ end
+ string = "image=tribes/" .. tribename .. "/" .. items[1] .. "/resi_00.png"
+ for k,v in ipairs({table.unpack(items,2)}) do
+ string = string .. ";pics/arrow-right.png;" .. "tribes/" .. tribename .. "/" .. v .. "/menu.png"
+ end
+ return rt(string, p(text))
+end
+
+
+-- =======================================================
+-- *************** Dependencies functions ****************
+-- =======================================================
+
+-- RST
+-- .. function:: building_help_depencencies_ware(tribename, items, ware)
+--
+-- Formats a chain of ware dependencies for the help window
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg items: an array with ware and building names,
+-- e.g. {"constructionsite", "trunk"}
+-- :arg warename: the internal name of the ware to use as a title.
+-- :returns: an rt string with images describing a chain of ware/building dependencies
+--
+function building_help_dependencies_ware(tribename, items, warename)
+ local ware_descr = wl.Game():get_ware_description(tribename, warename)
+ return dependencies(tribename, items, ware_descr.descname)
+end
+
+
+-- RST
+-- .. function:: building_help_depencencies_building(tribename, items, building)
+--
+-- Formats a chain of ware dependencies for the help window
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg items: an array with ware and building names,
+-- e.g. {"constructionsite", "trunk"}
+-- :arg buildingname: the internal name of the building to use as a title.
+-- :returns: an rt string with images describing a chain of ware/building dependencies
+--
+function building_help_dependencies_building(tribename, items, buildingname)
+ local building_descr = wl.Game():get_building_description(tribename,buildingname)
+ return dependencies(tribename, items, building_descr.descname)
+end
+
+
+
+-- RST
+-- .. function:: building_help_depencencies_building(tribename, items, building)
+--
+-- Formats a chain of ware dependencies for the help window
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg items: an array with ware and building names,
+-- e.g. {"constructionsite", "trunk"}
+-- :arg warename: the internal name of the ware to use in the title.
+-- :arg building: the internal name of the building to use in the title.
+-- :returns: an rt string with images describing a chain of ware/building dependencies
+--
+function building_help_dependencies_ware_building(tribename, items, warename, buildingname)
+ local building_descr = wl.Game():get_building_description(tribename,buildingname)
+ local ware_descr = wl.Game():get_ware_description(tribename, warename)
+ return dependencies(tribename, items, _"%1$s from: %2$s":bformat(ware_descr.descname, building_descr.descname))
+end
+
+
+-- RST
+-- .. function:: building_help_depencencies_ware(tribename, items, ware)
+--
+-- Formats a chain of ware dependencies for the help window. First item is a mining resource.
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg items: an array with ware and building names,
+-- e.g. {"constructionsite", "trunk"}
+-- :arg warename: the internal name of the ware to use in the title.
+-- :returns: an rt string with images describing a chain of ware/building dependencies
+--
+function building_help_dependencies_resi(tribename, items, warename)
+ local ware_descr = wl.Game():get_ware_description(tribename, warename)
+ return dependencies_resi(tribename, items, ware_descr.descname)
+end
+
+-- RST
+-- .. function:: dependencies_training(tribename, building_description, interim1, interim2)
+--
+-- Creates a dependencies line for soldiers in a training site.
+--
+-- :arg tribename: name of the tribe.
+-- :arg building_description: the trainingsite's building description from C++
+-- :arg interim1: the soldier level trained to in the first line, e.g. "untrained+evade".
+-- :arg interim1: the soldier level trained from in the second line, e.g. "fulltrained-evade".
+-- :returns: a row of pictures connected by arrows.
+--
+function dependencies_training(tribename, building_description, interim1, interim2)
+ return
+ rt(h2(_"Dependencies")) .. rt(h3(_"Soldiers:")) ..
+ dependencies_basic({
+ "tribes/" .. tribename .. "/soldier/untrained.png",
+ "tribes/" .. tribename .. "/" .. building_description.name .. "/menu.png",
+ "tribes/" .. tribename .. "/soldier/" .. interim1 .. ".png"}) ..
+ dependencies_basic({
+ "tribes/" .. tribename .. "/soldier/" .. interim2 .. ".png",
+ "tribes/" .. tribename .. "/" .. building_description.name .. "/menu.png",
+ "tribes/" .. tribename .. "/soldier/fulltrained.png"})
+end
+
+
+-- RST
+-- .. function:: dependencies_training_food
+--
+-- Creates dependencies lines for food in training sites.
+--
+-- :arg tribename: name of the tribe.
+-- :arg foods: an array of arrays with food items. Outer array has "and" logic and
+-- will appear from back to front, inner arrays have "or" logic
+-- :returns: a list of food descriptions with images
+--
+function dependencies_training_food(tribename, foods)
+ local result = ""
+ for countlist, foodlist in pairs(foods) do
+ local images = ""
+ local text = ""
+ for countfood, food in pairs(foodlist) do
+ local ware_descr = wl.Game():get_ware_description(tribename, food)
+ if(countfood > 1) then
+ images = images .. ";"
+ text = _"%1$s or %2$s":bformat(text, ware_descr.descname)
+ else
+ text = ware_descr.descname
+ end
+ images = images .. "tribes/" .. tribename .. "/" .. ware_descr.name .. "/menu.png"
+ end
+ if(countlist > 1) then
+ text = _"%s and":bformat(text)
+ end
+ result = image_line(images, 1, p(text)) .. result
+ end
+ return result
+end
+
+
+-- RST
+-- .. function:: dependencies_training_weapons(tribename, building_description, and_or, weapons, manufacturer)
+--
+-- Creates a dependencies line for any number of weapons.
+--
+-- :arg tribename: name of the tribe.
+-- :arg building_description: the trainingsite's building description from C++
+-- :arg and_or: if this is "and" or "or", adds these keyword at the beginning of the equipment string
+-- :arg weapons: an array of weapon names
+-- :arg manufacturer: the name of the building manufacturing the weapons
+-- :returns: a list weapons images with the producing and receiving building
+--
+function dependencies_training_weapons(tribename, building_description, and_or, weapons, manufacturer)
+ local manufacturer_descr = wl.Game():get_building_description(tribename, manufacturer)
+ local weaponsstring = ""
+ for count, weapon in pairs(weapons) do
+ if(count > 1) then
+ weaponsstring = weaponsstring .. ";"
+ end
+ weaponsstring = weaponsstring .. "tribes/" .. tribename .. "/" .. weapon .. "/menu.png"
+ end
+ -- TRANSLATORS: This is a headline, you can see it in the building help for trainingsites, in the dependencies section
+ local equipmentstring = _"Equipment from"
+ -- TRANSLATORS: This is a headline, you can see it in the building help for trainingsites, in the dependencies section
+ if (and_or == "and" ) then equipmentstring = _"and equipment from"
+ -- TRANSLATORS: This is a headline, you can see it in the building help for trainingsites, in the dependencies section
+ elseif (and_or == "or" ) then equipmentstring = _"or equipment from" end
+ return rt(p(equipmentstring)) ..
+ dependencies_basic({
+ "tribes/" .. tribename .. "/" .. manufacturer_descr.name .. "/menu.png",
+ weaponsstring,
+ }, rt(p(manufacturer_descr.descname)))
+end
+
+
+-- =======================================================
+-- ************* Main buildinghelp functions *************
+-- =======================================================
+
+-- RST
+-- .. function building_help_general_string(tribename, building_description, resourcename, purpose[, note])
+--
+-- Creates the string for the general section in building help
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg building_description: The building's building description from C++
+-- :arg resourcename: The name of a representative resource that this building produces
+-- :arg purpose: A string explaining the purpose of the building
+-- :arg purpose: A string with a note about the building. Drop this argument if you don't want to add a note.
+-- :returns: rt of the formatted text
+--
+function building_help_general_string(tribename, building_description, resourcename, purpose, note)
+ -- Need to get the building description again to make sure we have the correct type, e.g. "productionsite"
+ local building_description = wl.Game():get_building_description(tribename, building_description.name)
+ local result = rt(h2(_"General"))
+ result = result .. rt(h3(_"Purpose:")) ..
+ image_line("tribes/" .. tribename .. "/" .. resourcename .. "/menu.png", 1, p(purpose))
+ if (note) then result = result .. rt(h3(_"Note:")) .. rt(p(note)) end
+
+ if(building_description.type == "productionsite") then
+ if(building_description.workarea_radius and building_description.workarea_radius > 0) then
+ result = result .. text_line(_"Working radius:", building_description.workarea_radius)
+ end
+
+ elseif(building_description.type == "warehouse") then
+ result = result .. rt(h3(_"Healing:")
+ .. p(_"Garrisoned soldiers heal %s per second":bformat(building_description.heal_per_second)))
+ result = result .. text_line(_"Conquer range:", building_description.conquers)
+
+ elseif(building_description.type == "militarysite") then
+ result = result .. rt(h3(_"Healing:")
+ .. p(_"Garrisoned soldiers heal %s per second":bformat(building_description.heal_per_second)))
+ result = result .. text_line(_"Capacity:", building_description.max_number_of_soldiers)
+ result = result .. text_line(_"Conquer range:", building_description.conquers)
+
+ elseif(building_description.type == "trainingsite") then
+ result = result .. rt(h3(_"Training:"))
+ if(building_description.max_attack >= 0) then
+ -- TRANSLATORS: %1$s = Health, Evade, Attack or Defense. %2$s and %3$s are numbers.
+ result = result .. rt(p(_"Trains ‘%1$s’ from %2$s up to %3$s":
+ bformat(_"Attack", building_description.min_attack, building_description.max_attack+1)))
+ end
+ if(building_description.max_defense >= 0) then
+ result = result .. rt(p( _"Trains ‘%1$s’ from %2$s up to %3$s":
+ bformat(_"Defense", building_description.min_defense, building_description.max_defense+1)))
+ end
+ if(building_description.max_evade >= 0) then
+ result = result .. rt(p( _"Trains ‘%1$s’ from %2$s up to %3$s":
+ bformat(_"Evade", building_description.min_evade, building_description.max_evade+1)))
+ end
+ if(building_description.max_hp >= 0) then
+ result = result .. rt(p(_"Trains ‘%1$s’ from %2$s up to %3$s":
+ bformat(_"Health", building_description.min_hp, building_description.max_hp+1)))
+ end
+ result = result .. text_line(_"Capacity:", building_description.max_number_of_soldiers)
+ end
+ result = result .. text_line(_"Vision range:", building_description.vision_range)
+ return result
+end
+
+
+-- RST
+-- .. function building_help_lore_string(tribename, building_description, flavourtext[, author])
+--
+-- Displays the building's main image with a flavour text.
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg building_description: The building description we get from C++
+-- :arg flavourtext: e.g. "Catches fish in the sea".
+-- :arg author: e.g. "Krumta, carpenter of Chat'Karuth". This paramater is optional.
+-- :returns: rt of the image with the text
+--
+function building_help_lore_string(tribename, building_description, flavourtext, author)
+ local result = rt(h2(_"Lore")) ..
+ rt("image=tribes/" .. tribename .. "/" .. building_description.name .. "/" .. building_description.name .. "_i_00.png", p(flavourtext))
+ if author then
+ result = result .. rt("text-align=right",p("font-size=10 font-style=italic", author))
+ end
+ return result
+end
+
+
+-- RST
+-- .. function:: building_help_outputs(tribename, building_description[, add_constructionsite])
+--
+-- The input and output wares of a productionsite
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg building_description: The building description we get from C++
+-- :arg add_constructionsite: True if this is building supplies its wares to constructionsites.
+-- :returns: an rt string with images describing a chain of ware/building dependencies
+--
+function building_help_dependencies_production(tribename, building_description, add_constructionsite)
+ local building_description = wl.Game():get_building_description(tribename, building_description.name)
+ local result = ""
+ local hasinput = false
+ for i, warename in ipairs(building_description.inputs) do
+ hasinput = true
+ local ware_description = wl.Game():get_ware_description(tribename, warename)
+ for j, producer in ipairs(ware_description.producers) do
+ result = result .. building_help_dependencies_ware_building(
+ tribename, {producer.name, warename}, warename, producer.name
+ )
+ end
+ end
+ if (hasinput) then
+ result = rt(h3(_"Incoming:")) .. result
+ end
+
+ if ((not hasinput) and building_description.output_ware_types[1]) then
+ result = result .. rt(h3(_"Collects:"))
+ for i, ware in ipairs(building_description.output_ware_types) do
+ result = result ..
+ building_help_dependencies_ware(tribename, {building_description.name, ware}, ware)
+ end
+
+ elseif (building_description.ismine) then
+ -- TRANSLATORS: This is a verb (The miner mines)
+ result = result .. rt(h3(_"Mines:"))
+ for i, ware in ipairs(building_description.output_ware_types) do
+ -- Need to hack this because of inconsistency in the naming system.
+ -- Can't rename the files, because geologist won't work.
+ local resi_name = ware
+ if(resi_name == "ironore") then resi_name = "iron"
+ elseif(resi_name == "raw_stone") then resi_name = "granit"
+ elseif(resi_name == "stone") then resi_name = "granit"
+ elseif(resi_name == "diamond") then resi_name = "granit"
+ elseif(resi_name == "quartz") then resi_name = "granit"
+ elseif(resi_name == "marble") then resi_name = "granit"
+ elseif(resi_name == "goldore") then resi_name = "gold" end
+ result = result ..
+ building_help_dependencies_resi(tribename, {"resi_"..resi_name.."2", building_description.name, ware}, ware)
+ end
+
+ else
+ for i, ware in ipairs(building_description.output_ware_types) do
+ if(i == 1) then result = result .. rt(h3(_"Produces:")) end
+ result = result ..
+ building_help_dependencies_ware(tribename, {building_description.name, ware}, ware)
+ end
+ end
+
+ local outgoing = ""
+ for i, ware in ipairs(building_description.output_ware_types) do
+ local ware_description = wl.Game():get_ware_description(tribename, ware)
+
+ -- constructionsite isn't listed with the consumers, and needs special treatment because it isn't a building
+ if (add_constructionsite) then
+ outgoing = outgoing .. dependencies(tribename, {ware, "constructionsite"}, _"Construction Site")
+ end
+
+ for j, consumer in ipairs(ware_description.consumers) do
+ outgoing = outgoing .. building_help_dependencies_building(
+ tribename, {ware, consumer.name}, consumer.name
+ )
+ end
+
+ -- soldiers aren't listed with the consumers
+ local soldier = wl.Game():get_worker_description(tribename, "soldier")
+ local addsoldier = false
+ for j, buildcost in ipairs(soldier.buildcost) do
+ if(buildcost == ware) then
+ outgoing = outgoing .. dependencies(tribename, {ware, "headquarters", soldier.name}, soldier.descname)
+ end
+ end
+ end
+ if (outgoing ~= "") then result = result .. rt(h3(_"Outgoing:")) .. outgoing end
+
+ if (result == "") then result = rt(p(_"None")) end
+ return rt(h2(_"Dependencies")) .. result
+end
+
+
+-- Helper function for building_help_building_section
+function building_help_building_line(tribename, ware, amount)
+ local ware_descr = wl.Game():get_ware_description(tribename, ware)
+ amount = tonumber(amount)
+ local image = "tribes/" .. tribename .. "/" .. ware .. "/menu.png"
+ local result = ""
+ local imgperline = 6
+ local temp_amount = amount
+
+ while (temp_amount > imgperline) do
+ result = result .. image_line(image, imgperline)
+ temp_amount = temp_amount - imgperline
+ end
+ result = image_line(image, temp_amount, p(_"%1$dx %2$s":bformat(amount, ware_descr.descname))) .. result
+ return result
+
+end
+
+-- RST
+--
+-- .. function:: building_help_building_section(tribename, building_description[, enhanced_from, former_buildings])
+--
+-- Formats the "Building" section in the building help: Enhancing info, costs and space required
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg building_description: The building description we get from C++
+-- :arg enhanced_from: The building name that this building is usually enhanced from.
+-- Leave blank if this is a basic building.
+-- :former_buildings: A table of building names representing the chain of buildings that this
+-- building was enhanced from. This is used to calculate cumulative building
+-- and dismantle costs.
+-- :returns: an rt string describing the building section
+--
+function building_help_building_section(tribename, building_description, enhanced_from, former_buildings)
+
+ local result = rt(h2(_"Building"))
+
+ -- Space required
+ if (building_description.ismine) then
+ result = result .. text_line(_"Space required:",_"Mine plot","pics/mine.png")
+ elseif (building_description.isport) then
+ result = result .. text_line(_"Space required:",_"Port plot","pics/port.png")
+ else
+ if (building_description.size == 1) then
+ result = result .. text_line(_"Space required:",_"Small plot","pics/small.png")
+ elseif (building_description.size == 2) then
+ result = result .. text_line(_"Space required:",_"Medium plot","pics/medium.png")
+ elseif (building_description.size == 3) then
+ result = result .. text_line(_"Space required:",_"Big plot","pics/big.png")
+ else
+ result = result .. p(_"Space required:" .. _"Unknown")
+ end
+ end
+
+ -- Enhanced from
+ if (building_description.buildable or building_description.enhanced) then
+
+ if (building_description.buildable and building_description.enhanced) then
+ result = result .. text_line(_"Note:",
+ _"This building can either be built directly or obtained by enhancing another building.")
+ end
+
+ if (building_description.buildable) then
+ -- Build cost
+ if (building_description.buildable and building_description.enhanced) then
+ result = result .. rt(h3(_"Direct build cost:"))
+ else
+ result = result .. rt(h3(_"Build cost:"))
+ end
+ for ware, amount in pairs(building_description.build_cost) do
+ result = result .. building_help_building_line(tribename, ware, amount)
+ end
+ end
+ if (building_description.enhanced) then
+ local former_building = nil
+ if (enhanced_from) then
+ former_building = wl.Game():get_building_description(tribename, enhanced_from)
+ if (building_description.buildable) then
+ result = result .. text_line(_"Or enhanced from:", former_building.descname)
+ else
+ result = result .. text_line(_"Enhanced from:", former_building.descname)
+ end
+ else
+ result = result .. text_line(_"Enhanced from:", _"Unknown")
+ end
+
+ for ware, amount in pairs(building_description.enhancement_cost) do
+ result = result .. building_help_building_line(tribename, ware, amount)
+ end
+
+ -- Cumulative cost
+ result = result .. rt(h3(_"Cumulative cost:"))
+ local warescost = {}
+ for ware, amount in pairs(building_description.enhancement_cost) do
+ if (warescost[ware]) then
+ warescost[ware] = warescost[ware] + amount
+ else
+ warescost[ware] = amount
+ end
+ end
+
+ for index, former in pairs(former_buildings) do
+ former_building = wl.Game():get_building_description(tribename, former)
+ if (former_building.buildable) then
+ for ware, amount in pairs(former_building.build_cost) do
+ if (warescost[ware]) then
+ warescost[ware] = warescost[ware] + amount
+ else
+ warescost[ware] = amount
+ end
+ end
+ elseif (former_building.enhanced) then
+ for ware, amount in pairs(former_building.enhancement_cost) do
+ if (warescost[ware]) then
+ warescost[ware] = warescost[ware] + amount
+ else
+ warescost[ware] = amount
+ end
+ end
+ end
+ end
+ if (warescost ~= {}) then
+ for ware, amount in pairs(warescost) do
+ result = result .. building_help_building_line(tribename, ware, amount)
+ end
+ else
+ result = result .. rt(p(_"Unknown"))
+ end
+
+ -- Dismantle yields
+ if (building_description.buildable) then
+ result = result .. rt(h3(_"If built directly, dismantle yields:"))
+ for ware, amount in pairs(building_description.returned_wares) do
+ result = result .. building_help_building_line(tribename, ware, amount)
+ end
+ result = result .. rt(h3(_"If enhanced, dismantle yields:"))
+ else
+ result = result .. rt(h3(_"Dismantle yields:"))
+ end
+ local warescost = {}
+ for ware, amount in pairs(building_description.returned_wares_enhanced) do
+ if (warescost[ware]) then
+ warescost[ware] = warescost[ware] + amount
+ else
+ warescost[ware] = amount
+ end
+ end
+ for index, former in pairs(former_buildings) do
+ former_building = wl.Game():get_building_description(tribename, former)
+ if (former_building.buildable) then
+ for ware, amount in pairs(former_building.returned_wares) do
+ if (warescost[ware]) then
+ warescost[ware] = warescost[ware] + amount
+ else
+ warescost[ware] = amount
+ end
+ end
+ elseif (former_building.enhanced) then
+ for ware, amount in pairs(former_building.returned_wares_enhanced) do
+ if (warescost[ware]) then
+ warescost[ware] = warescost[ware] + amount
+ else
+ warescost[ware] = amount
+ end
+ end
+ end
+ end
+ if (warescost ~= {}) then
+ for ware, amount in pairs(warescost) do
+ result = result .. building_help_building_line(tribename, ware, amount)
+ end
+ else
+ result = result .. rt(p(_"Unknown"))
+ end
+ -- Buildable
+ else
+ -- Dismantle yields
+ result = result .. rt(h3(_"Dismantle yields:"))
+ for ware, amount in pairs(building_description.returned_wares) do
+ result = result .. building_help_building_line(tribename, ware, amount)
+ end
+ end
+
+ -- Can be enhanced to
+ if (building_description.enhancements[1]) then
+ for i, building in ipairs(building_description.enhancements) do
+ result = result .. text_line(_"Can be enhanced to:", building_description.enhancements[i].descname)
+ for ware, amount in pairs(building_description.enhancements[i].enhancement_cost) do
+ result = result .. building_help_building_line(tribename, ware, amount)
+ end
+ end
+ end
+ end
+ return result
+end
+
+
+
+-- RST
+-- .. function building_help_crew_string(tribename, building_description)
+--
+-- Displays the building's workers with an image and the tool they use
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg building_description: the building_description from C++.
+-- :returns: Workers/Crew section of the help file
+--
+function building_help_crew_string(tribename, building_description)
+ -- Need to get the building description again to make sure we have the correct type, e.g. "productionsite"
+ local building_description = wl.Game():get_building_description(tribename, building_description.name)
+ local result = ""
+
+ if(building_description.type == "productionsite" or building_description.type == "trainingsite") then
+
+ result = result .. rt(h2(_"Workers")) .. rt(h3(_"Crew required:"))
+
+ local worker_descr = nil
+ local becomes_descr = nil
+ local number_of_workers = 0
+ local toolname = nil
+
+ for i, worker in ipairs(building_description.working_positions) do
+ worker_descr = wl.Game():get_worker_description(tribename, worker)
+
+ -- get the tool for the workers. This assumes that each building only uses 1 tool
+ if(worker_descr.buildable) then
+ for j, buildcost in ipairs(worker_descr.buildcost) do
+ if( not (buildcost == "carrier" or buildcost == "none" or buildcost == nil)) then
+ toolname = buildcost
+ end
+ end
+ end
+
+ becomes_descr = worker_descr.becomes
+ number_of_workers = number_of_workers + 1
+
+ if(becomes_descr) then
+ result = result .. image_line("tribes/" .. tribename .. "/" .. worker .. "/menu.png", 1,
+ p(_"%s or better":bformat(worker_descr.descname)))
+ else
+ result = result .. image_line("tribes/" .. tribename .. "/" .. worker .. "/menu.png", 1,
+ p(worker_descr.descname))
+ end
+ end
+
+ if(toolname) then result = result .. building_help_tool_string(tribename, toolname, number_of_workers) end
+
+ if(becomes_descr) then
+
+ result = result .. rt(h3(_"Experience levels:"))
+ local exp_string = _"%s to %s (%s EP)":format(
+ worker_descr.descname,
+ becomes_descr.descname,
+ worker_descr.level_experience
+ )
+
+ worker_descr = becomes_descr
+ becomes_descr = worker_descr.becomes
+ if(becomes_descr) then
+ exp_string = exp_string .. "<br>" .. _"%s to %s (%s EP)":format(
+ worker_descr.descname,
+ becomes_descr.descname,
+ worker_descr.level_experience
+ )
+ end
+ result = result .. rt("text-align=right", p(exp_string))
+ end
+ end
+
+ return result
+end
+
+
+-- RST
+-- .. function building_help_tool_string(tribename, toolname)
+--
+-- Displays a tool with an intro text and image
+--
+-- :arg tribename: e.g. "barbarians".
+-- :arg toolname: e.g. "felling_axe".
+-- :arg no_of_workers: the number of workers using the tool; for plural formatting.
+-- :returns: text_line for the tool
+--
+function building_help_tool_string(tribename, toolname, no_of_workers)
+ local ware_descr = wl.Game():get_ware_description(tribename,toolname)
+ return text_line((ngettext("Worker uses:","Workers use:", no_of_workers)),
+ ware_descr.descname, "tribes/" .. tribename .. "/" .. toolname .. "/menu.png")
+end
+
+-- RST
+-- .. building_help_production_section(performance_description)
+--
+-- Displays the production/performance section with a headline
+--
+-- :arg performance_description: a string describing the performance of tha building
+-- :returns: rt for the production section
+--
+function building_help_production_section(performance_description)
+ return rt(h2(_"Production")) .. text_line(_"Performance:", performance_description)
end
=== modified file 'scripting/infrastructure.lua'
--- scripting/infrastructure.lua 2014-01-19 12:04:56 +0000
+++ scripting/infrastructure.lua 2014-05-27 14:17:43 +0000
@@ -157,3 +157,19 @@
building, plr.number)
)
end
+
+
+-- RST
+-- .. function:: is_building(immovable)
+--
+-- Checks whether an immpvable is a building.
+--
+-- :arg immovable: The immovable to test
+--
+-- :returns: true if the immovable is a building
+function is_building(immovable)
+ return immovable.type == "productionsite" or
+ immovable.type == "warehouse" or
+ immovable.type == "militarysite" or
+ immovable.type == "trainingsite"
+end
=== modified file 'src/logic/bob.cc'
--- src/logic/bob.cc 2014-05-11 07:38:01 +0000
+++ src/logic/bob.cc 2014-05-27 14:17:43 +0000
@@ -68,7 +68,6 @@
return 0;
}
-
BobDescr::BobDescr
(char const * const _name, char const * const _descname,
const std::string & directory, Profile & prof, Section & global_s,
=== modified file 'src/logic/bob.h'
--- src/logic/bob.h 2014-05-11 07:38:01 +0000
+++ src/logic/bob.h 2014-05-27 14:17:43 +0000
@@ -77,6 +77,9 @@
}
uint32_t vision_range() const;
+ // class type needed for Lua stuff
+ std::string get_type() const {return "bob";}
+
protected:
virtual Bob& create_object() const = 0;
=== modified file 'src/logic/building.h'
--- src/logic/building.h 2014-05-11 07:38:01 +0000
+++ src/logic/building.h 2014-05-27 14:17:43 +0000
@@ -130,6 +130,11 @@
virtual int32_t suitability(const Map &, FCoords) const;
const BuildingHints & hints() const {return m_hints;}
+ // class type needed for Lua stuff
+ std::string get_type() const {
+ return "building";
+ }
+
protected:
virtual Building & create_object() const = 0;
Building & create_constructionsite() const;
=== modified file 'src/logic/carrier.h'
--- src/logic/carrier.h 2014-02-22 18:04:02 +0000
+++ src/logic/carrier.h 2014-05-27 14:17:43 +0000
@@ -42,7 +42,8 @@
{};
virtual Worker_Type get_worker_type() const override {return CARRIER;}
-
+ // class type needed for Lua stuffl TODO: redundant with get_worker_type()?
+ std::string get_type() const {return "carrier";}
protected:
virtual Bob & create_object() const override {return *new Carrier(*this);}
};
=== modified file 'src/logic/cmd_luacoroutine.cc'
--- src/logic/cmd_luacoroutine.cc 2014-05-11 07:38:01 +0000
+++ src/logic/cmd_luacoroutine.cc 2014-05-27 14:17:43 +0000
@@ -34,8 +34,8 @@
void Cmd_LuaCoroutine::execute (Game & game) {
try {
- uint32_t sleeptime;
- int rv = m_cr->resume(&sleeptime);
+ int rv = m_cr->resume();
+ const uint32_t sleeptime = m_cr->pop_uint32();
if (rv == LuaCoroutine::YIELDED) {
game.enqueue_command(new Widelands::Cmd_LuaCoroutine(sleeptime, m_cr));
m_cr = nullptr; // Remove our ownership so we don't delete.
=== modified file 'src/logic/constructionsite.h'
--- src/logic/constructionsite.h 2014-04-06 10:50:39 +0000
+++ src/logic/constructionsite.h 2014-05-27 14:17:43 +0000
@@ -56,6 +56,9 @@
const Tribe_Descr & tribe);
virtual Building & create_object() const override;
+
+ // class type needed for Lua stuff
+ std::string get_type() const {return "constructionsite";}
};
class ConstructionSite : public Partially_Finished_Building {
=== modified file 'src/logic/critter_bob.h'
--- src/logic/critter_bob.h 2014-03-31 20:21:27 +0000
+++ src/logic/critter_bob.h 2014-05-27 14:17:43 +0000
@@ -46,6 +46,9 @@
Critter_BobProgram const * get_program(const std::string &) const;
+ // class type needed for Lua stuff
+ std::string get_type() const {return "critterbob";}
+
private:
DirAnimations m_walk_anims;
bool m_swimming;
=== modified file 'src/logic/dismantlesite.h'
--- src/logic/dismantlesite.h 2014-02-22 18:04:02 +0000
+++ src/logic/dismantlesite.h 2014-05-27 14:17:43 +0000
@@ -48,6 +48,8 @@
const Tribe_Descr & tribe);
virtual Building & create_object() const override;
+ // class type needed for Lua stuff
+ std::string get_type() const {return "dismantlesite";}
};
class DismantleSite : public Partially_Finished_Building {
=== modified file 'src/logic/game.cc'
--- src/logic/game.cc 2014-05-11 07:38:01 +0000
+++ src/logic/game.cc 2014-05-27 14:17:43 +0000
@@ -1035,7 +1035,8 @@
iterate_players_existing(p, nr_plrs, *this, plr) {
std::unique_ptr<LuaCoroutine> cr = hook->get_coroutine("calculator");
cr->push_arg(plr);
- cr->resume(&custom_statistic[p - 1]);
+ cr->resume();
+ custom_statistic[p - 1] = cr->pop_uint32();
}
}
=== modified file 'src/logic/immovable.h'
--- src/logic/immovable.h 2014-05-10 16:47:03 +0000
+++ src/logic/immovable.h 2014-05-27 14:17:43 +0000
@@ -108,6 +108,9 @@
const Buildcost & buildcost() const {return m_buildcost;}
+ // class type needed for Lua stuff
+ std::string get_type() const {return "immovable";}
+
protected:
int32_t m_size;
Programs m_programs;
=== modified file 'src/logic/instances.h'
--- src/logic/instances.h 2014-05-11 07:38:01 +0000
+++ src/logic/instances.h 2014-05-27 14:17:43 +0000
@@ -82,6 +82,9 @@
bool is_animation_known(const std::string & name) const;
void add_animation(const std::string & name, uint32_t anim);
+ // class type needed for Lua stuff
+ std::string get_type() const {return "mapobject";}
+
protected:
void add_attribute(uint32_t attr);
=== modified file 'src/logic/militarysite.h'
--- src/logic/militarysite.h 2014-04-18 16:31:54 +0000
+++ src/logic/militarysite.h 2014-05-27 14:17:43 +0000
@@ -52,6 +52,10 @@
std::string m_attack_str;
std::string m_defeated_enemy_str;
std::string m_defeated_you_str;
+
+ // class type needed for Lua stuff
+ std::string get_type() const {return "militarysite";}
+
private:
uint32_t m_conquer_radius;
uint32_t m_num_soldiers;
=== modified file 'src/logic/productionsite.h'
--- src/logic/productionsite.h 2014-04-18 16:31:54 +0000
+++ src/logic/productionsite.h 2014-05-27 14:17:43 +0000
@@ -85,6 +85,10 @@
typedef std::map<std::string, ProductionProgram *> Programs;
const Programs & programs() const {return m_programs;}
+ // class type needed for Lua stuff
+ std::string get_type() const {return "productionsite";}
+
+
private:
BillOfMaterials m_working_positions;
BillOfMaterials m_inputs;
=== modified file 'src/logic/ship.h'
--- src/logic/ship.h 2014-03-31 20:21:27 +0000
+++ src/logic/ship.h 2014-05-27 14:17:43 +0000
@@ -50,6 +50,9 @@
virtual Bob & create_object() const override;
+ // class type needed for Lua stuff
+ std::string get_type() const {return "ship";}
+
private:
DirAnimations m_sail_anims;
uint32_t m_capacity;
=== modified file 'src/logic/soldier.h'
--- src/logic/soldier.h 2014-02-22 18:04:02 +0000
+++ src/logic/soldier.h 2014-05-27 14:17:43 +0000
@@ -80,10 +80,11 @@
assert(level <= m_max_evade_level); return m_evade_pics [level];
}
-
-
uint32_t get_rand_anim(Game & game, const char * const name) const;
+ // class type needed for Lua stuff
+ std::string get_type() const {return "soldier";}
+
protected:
virtual Bob & create_object() const override;
=== modified file 'src/logic/trainingsite.h'
--- src/logic/trainingsite.h 2014-04-18 16:31:54 +0000
+++ src/logic/trainingsite.h 2014-05-27 14:17:43 +0000
@@ -49,6 +49,10 @@
int32_t get_min_level(tAttribute) const;
int32_t get_max_level(tAttribute) const;
int32_t get_max_stall() const;
+
+ // class type needed for Lua stuff
+ std::string get_type() const {return "trainingsite";}
+
private:
// FIXME These variables should be per soldier type. They should be in a
// FIXME struct and there should be a vector, indexed by Soldier_Index,
=== modified file 'src/logic/ware_descr.cc'
--- src/logic/ware_descr.cc 2014-03-16 20:55:15 +0000
+++ src/logic/ware_descr.cc 2014-05-27 14:17:43 +0000
@@ -18,11 +18,13 @@
*/
#include "logic/ware_descr.h"
+#include "logic/tribe.h"
#include "graphic/animation.h"
#include "graphic/graphic.h"
#include "i18n.h"
#include "profile/profile.h"
+#include "upcast.h"
namespace Widelands {
@@ -46,7 +48,6 @@
static_cast<uint8_t>(global_s.get_natural("preciousness", 0));
}
-
/**
* Load all static graphics
*/
=== modified file 'src/logic/ware_descr.h'
--- src/logic/ware_descr.h 2014-05-11 07:38:01 +0000
+++ src/logic/ware_descr.h 2014-05-27 14:17:43 +0000
@@ -84,6 +84,9 @@
/// returns the preciousness of the ware. It is used by the computer player
uint8_t preciousness() const {return m_preciousness;}
+ // class type needed for Lua stuff
+ std::string get_type() const {return "ware";}
+
private:
const Tribe_Descr & m_tribe;
std::string m_helptext; ///< Long descriptive text
=== modified file 'src/logic/warehouse.h'
--- src/logic/warehouse.h 2014-05-11 07:38:01 +0000
+++ src/logic/warehouse.h 2014-05-27 14:17:43 +0000
@@ -60,6 +60,9 @@
uint32_t get_heal_per_second () const {
return m_heal_per_second;
}
+
+ // class type needed for Lua stuff
+ std::string get_type() const {return "warehouse";}
private:
int32_t m_conquers;
uint32_t m_heal_per_second;
=== modified file 'src/logic/worker_descr.h'
--- src/logic/worker_descr.h 2014-05-11 07:38:01 +0000
+++ src/logic/worker_descr.h 2014-05-27 14:17:43 +0000
@@ -112,6 +112,9 @@
typedef std::map<std::string, WorkerProgram *> Programs;
const Programs & programs() const {return m_programs;}
+ // class type needed for Lua stuff
+ std::string get_type() const {return "worker";}
+
protected:
std::string m_helptext; ///< Short (tooltip-like) help text
=== modified file 'src/scripting/lua_bases.cc'
--- src/scripting/lua_bases.cc 2014-04-21 09:19:14 +0000
+++ src/scripting/lua_bases.cc 2014-05-27 14:17:43 +0000
@@ -22,6 +22,8 @@
#include "economy/economy.h"
#include "logic/checkstep.h"
#include "logic/player.h"
+#include "logic/tribe.h"
+#include "logic/ware_descr.h"
#include "scripting/lua_map.h"
@@ -70,6 +72,9 @@
const char L_EditorGameBase::className[] = "EditorGameBase";
const MethodType<L_EditorGameBase> L_EditorGameBase::Methods[] = {
+ METHOD(L_EditorGameBase, get_building_description),
+ METHOD(L_EditorGameBase, get_ware_description),
+ METHOD(L_EditorGameBase, get_worker_description),
{nullptr, nullptr},
};
const PropertyType<L_EditorGameBase> L_EditorGameBase::Properties[] = {
@@ -137,6 +142,96 @@
==========================================================
*/
+/* RST
+ .. function:: get_building_description(tribename, building_description.name)
+
+ :arg tribe_name: the name of the tribe that this building belongs to
+ :arg building_name: the name of the building
+
+ Registers a building description so Lua can reference it from the game. Call this with
+ wl.Game():get_building_description(tribe_name, building_name)
+
+ (RO) The :class:`~wl.Game.Building_description`.
+*/
+int L_EditorGameBase::get_building_description(lua_State* L) {
+ if (lua_gettop(L) != 3) {
+ report_error(L, "Wrong number of arguments");
+ }
+ const std::string tribe_name = luaL_checkstring(L, 2);
+ const std::string building_name = luaL_checkstring(L, 3);
+ const Tribe_Descr* tribe_description = get_egbase(L).get_tribe(tribe_name);
+ if (!tribe_description) {
+ report_error(L, "Tribe %s does not exist", tribe_name.c_str());
+ }
+ Building_Index building_index = tribe_description->building_index(building_name);
+ if (building_index == INVALID_INDEX) {
+ report_error(L, "Building %s does not exist", building_name.c_str());
+ }
+ const Building_Descr* building_description = tribe_description->get_building_descr(building_index);
+
+ return LuaMap::upcasted_building_descr_to_lua(L, building_description);
+}
+
+
+/* RST
+ .. function:: get_ware_description(tribename, ware_description.name)
+
+ :arg tribe_name: the name of the tribe that this building belongs to
+ :arg ware_name: the name of the ware
+
+ Registers a ware description so Lua can reference it from the game. Call this with
+ wl.Game():get_ware_description(tribe_name, ware_name)
+
+ (RO) The :class:`~wl.Game.Ware_description`.
+*/
+int L_EditorGameBase::get_ware_description(lua_State* L) {
+ if (lua_gettop(L) != 3) {
+ report_error(L, "Wrong number of arguments");
+ }
+ const std::string tribe_name = luaL_checkstring(L, 2);
+ const std::string ware_name = luaL_checkstring(L, 3);
+ const Tribe_Descr* tribe_description = get_egbase(L).get_tribe(tribe_name);
+ if (!tribe_description) {
+ report_error(L, "Tribe %s does not exist", tribe_name.c_str());
+ }
+ Ware_Index ware_index = tribe_description->ware_index(ware_name);
+ if (ware_index == INVALID_INDEX) {
+ report_error(L, "Ware %s does not exist", ware_name.c_str());
+ }
+ const WareDescr* ware_description = tribe_description->get_ware_descr(ware_index);
+ return to_lua<LuaMap::L_WareDescription>(L, new LuaMap::L_WareDescription(ware_description));
+}
+
+
+/* RST
+ .. function:: get_worker_description(tribename, worker_description.name)
+
+ :arg tribe_name: the name of the tribe that this building belongs to
+ :arg worker_name: the name of the worker
+
+ Registers a worker description so Lua can reference it from the game. Call this with
+ wl.Game():get_worker_description(tribe_name, worker_name)
+
+ (RO) The :class:`~wl.Game.Worker_description`.
+*/
+int L_EditorGameBase::get_worker_description(lua_State* L) {
+ if (lua_gettop(L) != 3) {
+ report_error(L, "Wrong number of arguments");
+ }
+ const std::string tribe_name = luaL_checkstring(L, 2);
+ const std::string worker_name = luaL_checkstring(L, 3);
+ const Tribe_Descr* tribe_description = get_egbase(L).get_tribe(tribe_name);
+ if (!tribe_description) {
+ report_error(L, "Tribe %s does not exist", tribe_name.c_str());
+ }
+ Ware_Index worker_index = tribe_description->worker_index(worker_name);
+ if (worker_index == INVALID_INDEX) {
+ report_error(L, "Worker %s does not exist", worker_name.c_str());
+ }
+ const Worker_Descr* worker_description = tribe_description->get_worker_descr(worker_index);
+ return to_lua<LuaMap::L_WorkerDescription>(L, new LuaMap::L_WorkerDescription(worker_description));
+}
+
/*
==========================================================
C METHODS
=== modified file 'src/scripting/lua_bases.h'
--- src/scripting/lua_bases.h 2014-02-22 18:04:02 +0000
+++ src/scripting/lua_bases.h 2014-05-27 14:17:43 +0000
@@ -56,6 +56,9 @@
/*
* Lua methods
*/
+ int get_building_description(lua_State * L);
+ int get_ware_description(lua_State * L);
+ int get_worker_description(lua_State * L);
/*
* C methods
=== modified file 'src/scripting/lua_coroutine.cc'
--- src/scripting/lua_coroutine.cc 2014-05-11 07:38:01 +0000
+++ src/scripting/lua_coroutine.cc 2014-05-27 14:17:43 +0000
@@ -63,7 +63,7 @@
} // namespace
LuaCoroutine::LuaCoroutine(lua_State * ms)
- : m_L(ms), m_idx(LUA_REFNIL), m_nargs(0)
+ : m_L(ms), m_idx(LUA_REFNIL), m_ninput_args(0), m_nreturn_values(0)
{
if (m_L) {
m_idx = reference_coroutine(m_L);
@@ -78,20 +78,11 @@
return lua_status(m_L);
}
-int LuaCoroutine::resume(uint32_t * sleeptime)
+int LuaCoroutine::resume()
{
- int rv = lua_resume(m_L, nullptr, m_nargs);
- m_nargs = 0;
- int n = lua_gettop(m_L);
-
- uint32_t sleep_for = 0;
- if (n == 1) {
- sleep_for = luaL_checkint32(m_L, -1);
- lua_pop(m_L, 1);
- }
-
- if (sleeptime)
- *sleeptime = sleep_for;
+ int rv = lua_resume(m_L, nullptr, m_ninput_args);
+ m_ninput_args = 0;
+ m_nreturn_values = lua_gettop(m_L);
if (rv != 0 && rv != YIELDED) {
throw LuaError(lua_tostring(m_L, -1));
@@ -102,34 +93,114 @@
void LuaCoroutine::push_arg(const Widelands::Player * plr) {
to_lua<LuaGame::L_Player>(m_L, new LuaGame::L_Player(plr->player_number()));
- m_nargs++;
+ m_ninput_args++;
}
void LuaCoroutine::push_arg(const Widelands::Coords & coords) {
to_lua<LuaMap::L_Field>(m_L, new LuaMap::L_Field(coords));
++m_nargs;
+<<<<<<< TREE
}
#define COROUTINE_DATA_PACKET_VERSION 2
void LuaCoroutine::write(FileWrite& fw) {
+=======
+ ++m_ninput_args;
+}
+
+void LuaCoroutine::push_arg(const Widelands::Building_Descr* building_descr) {
+ assert(building_descr != nullptr);
+ to_lua<LuaMap::L_BuildingDescription>(m_L, new LuaMap::L_BuildingDescription(building_descr));
+ ++m_ninput_args;
+}
+
+std::string LuaCoroutine::pop_string() {
+ if (!m_nreturn_values) {
+ return "";
+ }
+ if (!lua_isstring(m_L, -1)) {
+ throw LuaError("pop_string(), but no string on the stack.");
+ }
+ const std::string return_value = lua_tostring(m_L, -1);
+ lua_pop(m_L, 1);
+ --m_nreturn_values;
+ return return_value;
+}
+
+uint32_t LuaCoroutine::pop_uint32() {
+ if (!m_nreturn_values) {
+ return 0;
+ }
+ if (!lua_isnumber(m_L, -1)) {
+ throw LuaError("pop_uint32(), but no integer on the stack.");
+ }
+ const uint32_t return_value = luaL_checkuint32(m_L, -1);
+ lua_pop(m_L, 1);
+ --m_nreturn_values;
+ return return_value;
+}
+
+
+#define COROUTINE_DATA_PACKET_VERSION 2
+uint32_t LuaCoroutine::write
+ (lua_State * parent, Widelands::FileWrite & fw,
+ Widelands::Map_Map_Object_Saver & mos)
+{
+ // Clean out the garbage before we write this.
+ lua_gc(m_L, LUA_GCCOLLECT, 0);
+
+>>>>>>> MERGE-SOURCE
fw.Unsigned8(COROUTINE_DATA_PACKET_VERSION);
// The current numbers of arguments on the stack
fw.Unsigned32(m_nargs);
+<<<<<<< TREE
fw.Unsigned32(m_idx);
+=======
+ fw.Unsigned32(m_ninput_args);
+ fw.Unsigned32(m_nreturn_values);
+
+ // Empty table + object to persist on the stack Stack
+ lua_newtable(parent);
+ lua_pushthread(m_L);
+ lua_xmove (m_L, parent, 1);
+
+ const uint32_t nwritten = persist_object(parent, fw, mos);
+
+ // Clean out the garbage again.
+ lua_gc(m_L, LUA_GCCOLLECT, 0);
+
+ return nwritten;
+>>>>>>> MERGE-SOURCE
}
void LuaCoroutine::read(lua_State* parent, FileRead& fr) {
uint8_t version = fr.Unsigned8();
+<<<<<<< TREE
if (version != COROUTINE_DATA_PACKET_VERSION)
throw wexception("Unhandled data packet version: %i\n", version);
+=======
+ if (version > COROUTINE_DATA_PACKET_VERSION)
+ throw wexception("Unknown data packet version: %i\n", version);
+>>>>>>> MERGE-SOURCE
m_nargs = fr.Unsigned32();
+<<<<<<< TREE
m_idx = fr.Unsigned32();
lua_getglobal(parent, kReferenceTableName);
lua_rawgeti(parent, -1, m_idx);
+=======
+ m_ninput_args = fr.Unsigned32();
+ if (version > 1) {
+ m_nreturn_values = fr.Unsigned32();
+ }
+
+ // Empty table + object to persist on the stack Stack
+ unpersist_object(parent, fr, mol, size);
+
+>>>>>>> MERGE-SOURCE
m_L = luaL_checkthread(parent, -1);
lua_pop(parent, 2);
}
=== modified file 'src/scripting/lua_coroutine.h'
--- src/scripting/lua_coroutine.h 2014-05-11 07:38:01 +0000
+++ src/scripting/lua_coroutine.h 2014-05-27 14:17:43 +0000
@@ -50,16 +50,18 @@
int get_status();
// Resumes the coroutine and returns it's state after it did its execution.
- // If 'sleeptime' is not null, it will contain the time in milliseconds the
- // lua code requested for this coroutine to sleep before it should be
- // resumed again.
- int resume(uint32_t* sleeptime = nullptr);
+ int resume();
// Push the given arguments onto the Lua stack, so that a Coroutine can
// receive them. This is for example used in the initialization scripts or
// in hooks.
void push_arg(const Widelands::Player*);
void push_arg(const Widelands::Coords&);
+ void push_arg(const Widelands::Building_Descr*);
+
+ // NOCOM(#sirver): document
+ uint32_t pop_uint32();
+ std::string pop_string();
private:
friend class LuaGameInterface;
@@ -72,6 +74,8 @@
lua_State* m_L;
uint32_t m_idx;
uint32_t m_nargs;
+ uint32_t m_ninput_args;
+ uint32_t m_nreturn_values;
};
#endif /* end of include guard: LUA_COROUTINE_H */
=== modified file 'src/scripting/lua_map.cc'
--- src/scripting/lua_map.cc 2014-04-21 10:47:03 +0000
+++ src/scripting/lua_map.cc 2014-05-27 14:17:43 +0000
@@ -33,6 +33,7 @@
#include "logic/warelist.h"
#include "logic/widelands_geometry.h"
#include "scripting/c_utils.h"
+#include "scripting/eris/lua.hpp"
#include "scripting/lua_game.h"
#include "wui/mapviewpixelfunctions.h"
@@ -40,6 +41,35 @@
namespace LuaMap {
+namespace {
+
+// Pushes a lua table with (name, count) pairs for the given 'wares_map' on the
+// stack, sorted by tribe.wares_order(). Returns 1.
+int wares_map_to_lua(lua_State* L, const Buildcost& wares_map, const Tribe_Descr& tribe) {
+
+ // sorting according to wares order, code copied from waremap_to_richtext in waredisplay.cc
+ std::map<Widelands::Ware_Index, uint8_t>::const_iterator c;
+ Widelands::Tribe_Descr::WaresOrder::iterator i;
+ std::vector<Widelands::Ware_Index>::iterator j;
+ Widelands::Tribe_Descr::WaresOrder order = tribe.wares_order();
+
+ lua_newtable(L);
+ for (i = order.begin(); i != order.end(); i++) {
+ for (j = i->begin(); j != i->end(); ++j) {
+ if ((c = wares_map.find(*j)) != wares_map.end()) {
+
+ lua_pushstring(L, tribe.get_ware_descr(c->first)->name());
+ lua_pushuint32(L, c->second);
+ lua_settable(L, -3);
+ }
+ }
+ }
+ return 1;
+}
+
+
+} // namespace
+
/* RST
:mod:`wl.map`
=============
@@ -569,6 +599,29 @@
}
return to_lua<L_BaseImmovable>(L, new L_BaseImmovable(*mo));
}
+
+// use the dynamic type of BuildingDescription
+#undef CAST_TO_LUA
+#define CAST_TO_LUA(klass, lua_klass) to_lua<lua_klass> \
+ (L, new lua_klass(static_cast<const klass *>(desc)))
+
+int upcasted_building_descr_to_lua(lua_State* L, const Building_Descr* const desc) {
+ assert(desc != nullptr);
+
+ if (is_a(MilitarySite_Descr, desc)) {
+ return CAST_TO_LUA(MilitarySite_Descr, L_MilitarySiteDescription);
+ }
+ else if (is_a(TrainingSite_Descr, desc)) {
+ return CAST_TO_LUA(TrainingSite_Descr, L_TrainingSiteDescription);
+ }
+ else if (is_a(ProductionSite_Descr, desc)) {
+ return CAST_TO_LUA(ProductionSite_Descr, L_ProductionSiteDescription);
+ }
+ else if (is_a(Warehouse_Descr, desc)) {
+ return CAST_TO_LUA(Warehouse_Descr, L_WarehouseDescription);
+ }
+ return CAST_TO_LUA(Building_Descr, L_BuildingDescription);
+}
#undef CAST_TO_LUA
@@ -957,6 +1010,913 @@
*/
+
+/* RST
+MapObjectDescription
+----------
+
+.. class:: MapObjectDescription
+
+ A static description of a tribe's map object, so it can be used in help files
+ without having to access an actual object on the map.
+ This class contains the properties that are common to all map objects such as buildings or wares.
+
+ The dynamic MapObject class corresponding to this class is the base class for all Objects in widelands,
+ including immovables and Bobs. This class can't be instantiated directly, but provides the base
+ for all others.
+*/
+const char L_MapObjectDescription::className[] = "MapObjectDescription";
+const MethodType<L_MapObjectDescription> L_MapObjectDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_MapObjectDescription> L_MapObjectDescription::Properties[] = {
+ PROP_RO(L_MapObjectDescription, name),
+ PROP_RO(L_MapObjectDescription, descname),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_MapObjectDescription::__persist(lua_State * /* L */) {
+}
+void L_MapObjectDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+/* RST
+ .. attribute:: name
+
+ (RO) a :string:`name` with the map object's internal name
+*/
+
+int L_MapObjectDescription::get_name(lua_State * L) {
+ lua_pushstring(L, get()->name());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: name
+
+ (RO) a :string:`descname` with the map object's localized name
+*/
+
+int L_MapObjectDescription::get_descname(lua_State * L) {
+ lua_pushstring(L, get()->descname());
+ return 1;
+}
+
+
+
+/* RST
+BuildingDescription
+----------
+
+.. class:: BuildingDescription
+
+ A static description of a tribe's building, so it can be used in help files
+ without having to access an actual building on the map.
+ This class contains the properties that are common to all buildings.
+ Further properties are implemented in the subclasses.
+ See also class MapObjectDescription for more properties.
+*/
+const char L_BuildingDescription::className[] = "BuildingDescription";
+const MethodType<L_BuildingDescription> L_BuildingDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_BuildingDescription> L_BuildingDescription::Properties[] = {
+ PROP_RO(L_BuildingDescription, build_cost),
+ PROP_RO(L_BuildingDescription, buildable),
+ PROP_RO(L_BuildingDescription, conquers),
+ PROP_RO(L_BuildingDescription, destructible),
+ PROP_RO(L_BuildingDescription, enhanced),
+ PROP_RO(L_BuildingDescription, enhancement_cost),
+ PROP_RO(L_BuildingDescription, enhancements),
+ PROP_RO(L_BuildingDescription, ismine),
+ PROP_RO(L_BuildingDescription, isport),
+ PROP_RO(L_BuildingDescription, returned_wares),
+ PROP_RO(L_BuildingDescription, returned_wares_enhanced),
+ // TODO size should be similar to
+ // https://wl.widelands.org/docs/wl/autogen_wl_map/#wl.map.BaseImmovable.size.
+ // In fact, as soon as all descriptions are wrapped (also for other
+ // immovables besides buildings) we should get rid of BaseImmovable.size.
+ PROP_RO(L_BuildingDescription, size),
+ PROP_RO(L_BuildingDescription, type),
+ PROP_RO(L_BuildingDescription, vision_range),
+ PROP_RO(L_BuildingDescription, workarea_radius),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_BuildingDescription::__persist(lua_State * /* L */) {
+ // TODO(GunChleoc): we probably need to persist something here, so that a
+ // description can be held in a local variable on save.
+}
+void L_BuildingDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+
+/* RST
+ .. attribute:: build_cost
+
+ (RO) a list of ware build cost for the building.
+*/
+int L_BuildingDescription::get_build_cost(lua_State * L) {
+ return wares_map_to_lua(L, get()->buildcost(), get()->tribe());
+}
+
+
+/* RST
+ .. attribute:: buildable
+
+ (RO) true if the building can be built.
+*/
+int L_BuildingDescription::get_buildable(lua_State * L) {
+ lua_pushboolean(L, get()->is_buildable());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: conquers
+
+ (RO) the conquer range of the building as an int.
+*/
+int L_BuildingDescription::get_conquers(lua_State * L) {
+ lua_pushinteger(L, get()->get_conquers());
+ return 1;
+}
+
+
+
+/* RST
+ .. attribute:: destructible
+
+ (RO) true if the building is destructible.
+*/
+int L_BuildingDescription::get_destructible(lua_State * L) {
+ lua_pushboolean(L, get()->is_destructible());
+ return 1;
+}
+
+/* RST
+ .. attribute:: enhanced
+
+ (RO) true if the building is enhanced from another building.
+*/
+int L_BuildingDescription::get_enhanced(lua_State * L) {
+ lua_pushboolean(L, get()->is_enhanced());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: enhancement_cost
+
+ (RO) a list of ware cost for enhancing to this building type.
+*/
+int L_BuildingDescription::get_enhancement_cost(lua_State * L) {
+ return wares_map_to_lua(L, get()->enhancement_cost(), get()->tribe());
+}
+
+/* RST
+ .. attribute:: enhancements
+
+ (RO) a list of building descriptions that this building can enhance to.
+*/
+int L_BuildingDescription::get_enhancements(lua_State * L) {
+ const Tribe_Descr& tribe = get()->tribe();
+
+ lua_newtable(L);
+ int index = 1;
+ for (auto building_index : get()->enhancements()) {
+ lua_pushint32(L, index++);
+ upcasted_building_descr_to_lua(L, tribe.get_building_descr(building_index));
+ lua_rawset(L, -3);
+ }
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: ismine
+
+ (RO) true if the building is a mine.
+*/
+int L_BuildingDescription::get_ismine(lua_State * L) {
+ lua_pushboolean(L, get()->get_ismine());
+ return 1;
+}
+
+/* RST
+ .. attribute:: isport
+
+ (RO) true if the building is a port.
+*/
+int L_BuildingDescription::get_isport(lua_State * L) {
+ lua_pushboolean(L, get()->get_isport());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: type
+
+ (RO) the :int:`type` of the building, e.g. building.
+*/
+int L_BuildingDescription::get_type(lua_State * L) {
+ const Building_Descr * descr = static_cast<const Building_Descr *>(get());
+ lua_pushstring(L, descr->get_type());
+ return 1;
+}
+
+/* RST
+ .. attribute:: returned_wares
+
+ (RO) a list of wares returned upon dismantling.
+*/
+int L_BuildingDescription::get_returned_wares(lua_State * L) {
+ return wares_map_to_lua(L, get()->returned_wares(), get()->tribe());
+}
+
+
+/* RST
+ .. attribute:: returned_wares_enhanced
+
+ (RO) a list of wares returned upon dismantling an enhanced building.
+*/
+int L_BuildingDescription::get_returned_wares_enhanced(lua_State * L) {
+ return wares_map_to_lua(L, get()->returned_wares_enhanced(), get()->tribe());
+}
+
+
+/* RST
+ .. attribute:: size
+
+ (RO) the :int:`size` of the building: 1 = small, 2 = medium, 3 = big.
+*/
+int L_BuildingDescription::get_size(lua_State * L) {
+ lua_pushinteger(L, get()->get_size());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: vision range
+
+ (RO) the :int:`vision_range` of the building as an int.
+*/
+int L_BuildingDescription::get_vision_range(lua_State * L) {
+ lua_pushinteger(L, get()->vision_range());
+ return 1;
+}
+
+/* RST
+ .. attribute:: workarea_radius
+
+ (RO) the :int:`workarea_radius` of the building as an int.
+*/
+int L_BuildingDescription::get_workarea_radius(lua_State * L) {
+ lua_pushinteger(L, get()->m_workarea_info.begin()->first);
+ return 1;
+}
+
+
+/* RST
+ProductionSiteDescription
+----------
+
+.. class:: ProductionSiteDescription
+
+ A static description of a tribe's productionsite, so it can be used in help files
+ without having to access an actual building on the map.
+ This class contains the properties for productionsites that have workers.
+ For militarysites and trainingsites, please use the subclasses.
+ See also class BuildingDescription and class MapObjectDescription for more properties.
+*/
+const char L_ProductionSiteDescription::className[] = "ProductionSiteDescription";
+const MethodType<L_ProductionSiteDescription> L_ProductionSiteDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_ProductionSiteDescription> L_ProductionSiteDescription::Properties[] = {
+ PROP_RO(L_ProductionSiteDescription, inputs),
+ PROP_RO(L_ProductionSiteDescription, output_ware_types),
+ PROP_RO(L_ProductionSiteDescription, type),
+ PROP_RO(L_ProductionSiteDescription, working_positions),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_ProductionSiteDescription::__persist(lua_State * /* L */) {
+}
+void L_ProductionSiteDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+
+/* RST
+ .. attribute:: inputs
+ (RO) An array with pairs of int, ware_descr.name describing the input of the productionsite
+*/
+int L_ProductionSiteDescription::get_inputs(lua_State * L) {
+ const Tribe_Descr& tribe = get()->tribe();
+ const ProductionSite_Descr * descr = static_cast<const ProductionSite_Descr *>(get());
+
+ lua_newtable(L);
+ int index = 1;
+ for (const WareAmount& ware_amount : descr->inputs()) {
+ lua_pushint32(L, index++);
+ lua_pushstring(L, tribe.get_ware_descr(ware_amount.first)->name());
+ lua_settable(L, -3);
+ }
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: output_ware_types
+
+ (RO) An array with pairs of int, ware_descr.name describing the output of the productionsite
+*/
+int L_ProductionSiteDescription::get_output_ware_types(lua_State * L) {
+ const Tribe_Descr& tribe = get()->tribe();
+ const ProductionSite_Descr * descr = static_cast<const ProductionSite_Descr *>(get());
+
+ lua_newtable(L);
+ int index = 1;
+ for (auto ware_index : descr->output_ware_types()) {
+ lua_pushint32(L, index++);
+ lua_pushstring(L, tribe.get_ware_descr(ware_index)->name());
+ lua_rawset(L, -3);
+ }
+ return 1;
+
+
+}
+
+
+/* RST
+ .. attribute:: type
+
+ (RO) the :string:`type` of the building, e.g. productionsite.
+*/
+int L_ProductionSiteDescription::get_type(lua_State * L) {
+ const ProductionSite_Descr * descr = static_cast<const ProductionSite_Descr *>(get());
+ lua_pushstring(L, descr->get_type());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: working_positions
+ (RO) An array with pairs of int, worker_descr.name describing the worker positions of the productionsite
+*/
+int L_ProductionSiteDescription::get_working_positions(lua_State * L) {
+ const Tribe_Descr& tribe = get()->tribe();
+ const ProductionSite_Descr * descr = static_cast<const ProductionSite_Descr *>(get());
+
+ lua_newtable(L);
+ int index = 1;
+ for (const auto& positions_pair : descr->working_positions()) {
+ int amount = positions_pair.second;
+ while (amount-- > 0)
+ {
+ lua_pushint32(L, index++);
+ lua_pushstring(L, tribe.get_worker_descr(positions_pair.first)->name());
+ lua_settable(L, -3);
+ }
+ }
+ return 1;
+}
+
+
+/* RST
+MilitarySiteDescription
+----------
+
+.. class:: MilitarySiteDescription
+
+ A static description of a tribe's militarysite, so it can be used in help files
+ without having to access an actual building on the map.
+ A militarysite can garrison and heal soldiers, and it will expand your territory.
+ See also class BuildingDescription and class MapObjectDescription for more properties.
+*/
+const char L_MilitarySiteDescription::className[] = "MilitarySiteDescription";
+const MethodType<L_MilitarySiteDescription> L_MilitarySiteDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_MilitarySiteDescription> L_MilitarySiteDescription::Properties[] = {
+ PROP_RO(L_MilitarySiteDescription, heal_per_second),
+ PROP_RO(L_MilitarySiteDescription, max_number_of_soldiers),
+ PROP_RO(L_MilitarySiteDescription, type),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_MilitarySiteDescription::__persist(lua_State * /* L */) {
+}
+void L_MilitarySiteDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+
+/* RST
+ .. attribute:: heal_per_second
+
+ (RO) The :int:`number` of health healed ber second by the militarysite
+*/
+int L_MilitarySiteDescription::get_heal_per_second(lua_State * L) {
+ const MilitarySite_Descr * descr = static_cast<const MilitarySite_Descr *>(get());
+ lua_pushinteger(L, descr->get_heal_per_second());
+ return 1;
+}
+
+/* RST
+ .. attribute:: max_number_of_soldiers
+
+ (RO) The :int:`number` of soldiers that can be garrisoned at the militarysite
+*/
+int L_MilitarySiteDescription::get_max_number_of_soldiers(lua_State * L) {
+ const MilitarySite_Descr * descr = static_cast<const MilitarySite_Descr *>(get());
+ lua_pushinteger(L, descr->get_max_number_of_soldiers());
+ return 1;
+}
+
+/* RST
+ .. attribute:: type
+
+ (RO) the :string:`type` of the building, e.g. militarysite.
+*/
+int L_MilitarySiteDescription::get_type(lua_State * L) {
+ const MilitarySite_Descr * descr = static_cast<const MilitarySite_Descr *>(get());
+ lua_pushstring(L, descr->get_type());
+ return 1;
+}
+
+
+/* RST
+TrainingSiteDescription
+----------
+
+.. class:: TrainingSiteDescription
+
+ A static description of a tribe's trainingsite, so it can be used in help files
+ without having to access an actual building on the map.
+ A training site can train some or all of a soldier's properties (Attack, Defense, Evade and Health).
+ See also class BuildingDescription and class MapObjectDescription for more properties.
+*/
+const char L_TrainingSiteDescription::className[] = "TrainingSiteDescription";
+const MethodType<L_TrainingSiteDescription> L_TrainingSiteDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_TrainingSiteDescription> L_TrainingSiteDescription::Properties[] = {
+ PROP_RO(L_TrainingSiteDescription, max_attack),
+ PROP_RO(L_TrainingSiteDescription, max_defense),
+ PROP_RO(L_TrainingSiteDescription, max_evade),
+ PROP_RO(L_TrainingSiteDescription, max_hp),
+ PROP_RO(L_TrainingSiteDescription, max_number_of_soldiers),
+ PROP_RO(L_TrainingSiteDescription, min_attack),
+ PROP_RO(L_TrainingSiteDescription, min_defense),
+ PROP_RO(L_TrainingSiteDescription, min_evade),
+ PROP_RO(L_TrainingSiteDescription, min_hp),
+ PROP_RO(L_TrainingSiteDescription, type),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_TrainingSiteDescription::__persist(lua_State * /* L */) {
+}
+void L_TrainingSiteDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+/* RST
+ .. attribute:: max_attack
+
+ (RO) The :int:`number` of attack points that a soldier can train
+*/
+int L_TrainingSiteDescription::get_max_attack(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_attack())
+ lua_pushinteger(L, descr->get_max_level(atrAttack));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+/* RST
+ .. attribute:: max_defense
+
+ (RO) The :int:`number` of defense points that a soldier can train
+*/
+int L_TrainingSiteDescription::get_max_defense(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_defense())
+ lua_pushinteger(L, descr->get_max_level(atrDefense));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: max_evade
+
+ (RO) The :int:`number` of evade points that a soldier can train
+*/
+int L_TrainingSiteDescription::get_max_evade(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_evade())
+ lua_pushinteger(L, descr->get_max_level(atrEvade));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: max_hp
+
+ (RO) The :int:`number` of health points that a soldier can train
+*/
+int L_TrainingSiteDescription::get_max_hp(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_hp())
+ lua_pushinteger(L, descr->get_max_level(atrHP));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: max_number_of_soldiers
+
+ (RO) The :int:`number` of soldiers that can be garrisoned at the trainingsite
+*/
+int L_TrainingSiteDescription::get_max_number_of_soldiers(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ lua_pushinteger(L, descr->get_max_number_of_soldiers());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: min_attack
+
+ (RO) The :int:`number` of attack points that a soldier starts training with
+*/
+int L_TrainingSiteDescription::get_min_attack(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_attack())
+ lua_pushinteger(L, descr->get_min_level(atrAttack));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+/* RST
+ .. attribute:: min_defense
+
+ (RO) The :int:`number` of defense points that a soldier starts training with
+*/
+int L_TrainingSiteDescription::get_min_defense(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_defense())
+ lua_pushinteger(L, descr->get_min_level(atrDefense));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: min_evade
+
+ (RO) The :int:`number` of evade points that a soldier starts training with
+*/
+int L_TrainingSiteDescription::get_min_evade(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_evade())
+ lua_pushinteger(L, descr->get_min_level(atrEvade));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: min_hp
+
+ (RO) The :int:`number` of health points that a soldier starts training with
+*/
+int L_TrainingSiteDescription::get_min_hp(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ if (descr->get_train_hp())
+ lua_pushinteger(L, descr->get_min_level(atrHP));
+ else lua_pushinteger(L, -1);
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: type
+
+ (RO) the :string:`type` of the building, e.g. trainingsite.
+*/
+int L_TrainingSiteDescription::get_type(lua_State * L) {
+ const TrainingSite_Descr * descr = static_cast<const TrainingSite_Descr *>(get());
+ lua_pushstring(L, descr->get_type());
+ return 1;
+}
+
+
+/* RST
+WarehouseDescription
+----------
+
+.. class:: WarehouseDescription
+
+ A static description of a tribe's warehouse, so it can be used in help files
+ without having to access an actual building on the map.
+ Note that headquarters are also warehouses.
+ A warehouse keeps people, animals and wares.
+ See also class BuildingDescription and class MapObjectDescription for more properties.
+*/
+const char L_WarehouseDescription::className[] = "WarehouseDescription";
+const MethodType<L_WarehouseDescription> L_WarehouseDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_WarehouseDescription> L_WarehouseDescription::Properties[] = {
+ PROP_RO(L_WarehouseDescription, heal_per_second),
+ PROP_RO(L_WarehouseDescription, type),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_WarehouseDescription::__persist(lua_State * /* L */) {
+}
+void L_WarehouseDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+
+/* RST
+ .. attribute:: heal_per_second
+
+ (RO) The :int:`number` of health healed per second by the warehouse
+*/
+int L_WarehouseDescription::get_heal_per_second(lua_State * L) {
+ const Warehouse_Descr * descr = static_cast<const Warehouse_Descr *>(get());
+ lua_pushinteger(L, descr->get_heal_per_second());
+ return 1;
+}
+
+
+/* RST
+ .. attribute:: type
+
+ (RO) the :string:`type` of the building, e.g. warehouse.
+*/
+int L_WarehouseDescription::get_type(lua_State * L) {
+ const Warehouse_Descr * descr = static_cast<const Warehouse_Descr *>(get());
+ lua_pushstring(L, descr->get_type());
+ return 1;
+}
+
+
+
+/* RST
+WareDescription
+----------
+
+.. class:: WareDescription
+
+ A static description of a tribe's ware, so it can be used in help files
+ without having to access an actual instance of the ware on the map.
+ See also class MapObjectDescription for more properties.
+*/
+const char L_WareDescription::className[] = "WareDescription";
+const MethodType<L_WareDescription> L_WareDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_WareDescription> L_WareDescription::Properties[] = {
+ PROP_RO(L_WareDescription, producers),
+ PROP_RO(L_WareDescription, consumers),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_WareDescription::__persist(lua_State * /* L */) {
+}
+void L_WareDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+
+/* RST
+ .. attribute:: producers
+
+ (RO) a list of building descriptions that can procude this ware.
+*/
+// TODO(GunChleoc): move the calculation somewhere else.
+// You get the (mutable) wares_description container from the tribe_description
+// into the building constructor and add a member (mutable_ware_description(), either in Tribe_Descr
+// or if there is a container with every ware in there than there).
+// So you can get something like this in the buildingdesc constructor:
+// tribe.mutable_ware_description("log")->add_producer(*this);
+int L_WareDescription::get_producers(lua_State * L) {
+ const Tribe_Descr& tribe = get()->tribe();
+ Building_Index const nr_buildings = tribe.get_nrbuildings();
+
+ lua_newtable(L);
+ int index = 1;
+
+ for (Building_Index i = 0; i < nr_buildings; ++i) {
+
+ const Building_Descr & descr = *tribe.get_building_descr(i);
+
+ if (upcast(ProductionSite_Descr const, de, &descr)) {
+ for (auto ware_index : de->output_ware_types()) {
+ if (std::string(get()->name()) ==
+ std::string(tribe.get_ware_descr(ware_index)->name())) {
+ lua_pushint32(L, index++);
+ upcasted_building_descr_to_lua(L, tribe.get_building_descr(i));
+ lua_rawset(L, -3);
+ }
+ }
+ }
+ }
+ return 1;
+}
+
+
+
+/* RST
+ .. attribute:: consumers
+
+ (RO) a list of building descriptions that can consume this ware.
+*/
+// TODO(GunChleoc): move the calculation somewhere else.
+// You get the (mutable) wares_description container from the tribe_description
+// into the building constructor and add a member (mutable_ware_description(), either in Tribe_Descr
+// or if there is a container with every ware in there than there).
+// So you can get something like this in the buildingdesc constructor:
+// tribe.mutable_ware_description("log")->add_producer(*this);
+int L_WareDescription::get_consumers(lua_State * L) {
+ const Tribe_Descr& tribe = get()->tribe();
+ Building_Index const nr_buildings = tribe.get_nrbuildings();
+
+ lua_newtable(L);
+ int index = 1;
+
+ for (Building_Index i = 0; i < nr_buildings; ++i) {
+
+ const Building_Descr & descr = *tribe.get_building_descr(i);
+
+ if (upcast(ProductionSite_Descr const, de, &descr)) {
+ // inputs() returns type WareAmount = std::pair<Ware_Index, uint32_t>
+ for (auto ware_amount : de->inputs()) {
+ if (std::string(get()->name()) ==
+ std::string(tribe.get_ware_descr(ware_amount.first)->name())) {
+ lua_pushint32(L, index++);
+ upcasted_building_descr_to_lua(L, tribe.get_building_descr(i));
+ lua_rawset(L, -3);
+ }
+ }
+ }
+ }
+ return 1;
+}
+
+
+/* RST
+WorkerDescription
+----------
+
+.. class:: WorkerDescription
+
+ A static description of a tribe's worker, so it can be used in help files
+ without having to access an actual instance of the worker on the map.
+ See also class MapObjectDescription for more properties.
+*/
+const char L_WorkerDescription::className[] = "WorkerDescription";
+const MethodType<L_WorkerDescription> L_WorkerDescription::Methods[] = {
+ {nullptr, nullptr},
+};
+const PropertyType<L_WorkerDescription> L_WorkerDescription::Properties[] = {
+ PROP_RO(L_WorkerDescription, becomes),
+ PROP_RO(L_WorkerDescription, level_experience),
+ PROP_RO(L_WorkerDescription, buildable),
+ PROP_RO(L_WorkerDescription, buildcost),
+ {nullptr, nullptr, nullptr},
+};
+
+void L_WorkerDescription::__persist(lua_State * /* L */) {
+}
+void L_WorkerDescription::__unpersist(lua_State * /* L */) {
+}
+
+/*
+ ==========================================================
+ PROPERTIES
+ ==========================================================
+ */
+
+
+/* RST
+ .. attribute:: becomes
+
+ (RO) The :class:`WorkerDescription` of the worker this one will level up
+ to or :const:`nil` if it never levels up.
+*/
+int L_WorkerDescription::get_becomes(lua_State * L) {
+ const Ware_Index becomes_index = get()->becomes();
+ if (becomes_index == INVALID_INDEX) {
+ lua_pushnil(L);
+ return 1;
+ }
+ return to_lua<L_WorkerDescription>(
+ L, new L_WorkerDescription(get()->tribe().get_worker_descr(becomes_index)));
+}
+
+
+/* RST
+ .. attribute:: level_experience
+
+ (RO) the :int:`experience` the worker needs to reach this level.
+*/
+int L_WorkerDescription::get_level_experience(lua_State * L) {
+ lua_pushinteger(L, get()->get_level_experience());
+ return 1;
+}
+
+/* RST
+ .. attribute:: buildable
+
+ (RO) `true` if the worker is buildable.
+*/
+int L_WorkerDescription::get_buildable(lua_State * L) {
+ lua_pushboolean(L, get()->is_buildable());
+ return 1;
+}
+
+
+
+/* RST
+ .. attribute:: buildcost
+
+ (RO) a list of building requirements, e.g. {"carrier", "ax"}
+*/
+int L_WorkerDescription::get_buildcost(lua_State * L) {
+ lua_newtable(L);
+ int index = 1;
+ for (const auto& buildcost_pair : get()->buildcost()) {
+ lua_pushint32(L, index++);
+ lua_pushstring(L, buildcost_pair.first);
+ lua_settable(L, -3);
+ }
+ return 1;
+}
+
+
+/*
+ ==========================================================
+ LUA METHODS
+ ==========================================================
+ */
+
+
+
+/*
+ ==========================================================
+ C METHODS
+ ==========================================================
+ */
+
+
+
/* RST
MapObject
----------
@@ -1612,7 +2572,6 @@
{nullptr, nullptr},
};
const PropertyType<L_Building> L_Building::Properties[] = {
- PROP_RO(L_Building, building_type),
PROP_RO(L_Building, flag),
{nullptr, nullptr, nullptr},
};
@@ -1622,21 +2581,6 @@
PROPERTIES
==========================================================
*/
-/* RST
- .. attribute:: building_type
-
- (RO) What type of building is this. Can be either of:
-
- * constructionsite
- * militarysite
- * productionsite
- * trainingsite
- * warehouse
-*/
-int L_Building::get_building_type(lua_State * L) {
- lua_pushstring(L, get(L, get_egbase(L))->type_name());
- return 1;
-}
/* RST
.. attribute:: flag
@@ -3061,11 +4005,46 @@
lua_pop(L, 1); // S:
register_class<L_Map>(L, "map");
+ register_class<L_MapObjectDescription>(L, "map");
+
+ register_class<L_BuildingDescription>(L, "map", true);
+ add_parent<L_BuildingDescription, L_MapObjectDescription>(L);
+ lua_pop(L, 1); // Pop the meta table
+
+ register_class<L_ProductionSiteDescription>(L, "map", true);
+ add_parent<L_ProductionSiteDescription, L_BuildingDescription>(L);
+ add_parent<L_ProductionSiteDescription, L_MapObjectDescription>(L);
+ lua_pop(L, 1); // Pop the meta table
+
+ register_class<L_MilitarySiteDescription>(L, "map", true);
+ add_parent<L_MilitarySiteDescription, L_ProductionSiteDescription>(L);
+ add_parent<L_MilitarySiteDescription, L_BuildingDescription>(L);
+ add_parent<L_MilitarySiteDescription, L_MapObjectDescription>(L);
+ lua_pop(L, 1); // Pop the meta table
+
+ register_class<L_TrainingSiteDescription>(L, "map", true);
+ add_parent<L_TrainingSiteDescription, L_ProductionSiteDescription>(L);
+ add_parent<L_TrainingSiteDescription, L_BuildingDescription>(L);
+ add_parent<L_TrainingSiteDescription, L_MapObjectDescription>(L);
+ lua_pop(L, 1); // Pop the meta table
+
+ register_class<L_WarehouseDescription>(L, "map", true);
+ add_parent<L_WarehouseDescription, L_BuildingDescription>(L);
+ add_parent<L_WarehouseDescription, L_MapObjectDescription>(L);
+ lua_pop(L, 1); // Pop the meta table
+
+ register_class<L_WareDescription>(L, "map", true);
+ add_parent<L_WareDescription, L_MapObjectDescription>(L);
+ lua_pop(L, 1); // Pop the meta table
+
+ register_class<L_WorkerDescription>(L, "map", true);
+ add_parent<L_WorkerDescription, L_MapObjectDescription>(L);
+ lua_pop(L, 1); // Pop the meta table
+
register_class<L_Field>(L, "map");
register_class<L_PlayerSlot>(L, "map");
register_class<L_MapObject>(L, "map");
-
register_class<L_Bob>(L, "map", true);
add_parent<L_Bob, L_MapObject>(L);
lua_pop(L, 1); // Pop the meta table
=== modified file 'src/scripting/lua_map.h'
--- src/scripting/lua_map.h 2014-03-31 20:21:27 +0000
+++ src/scripting/lua_map.h 2014-05-27 14:17:43 +0000
@@ -40,6 +40,9 @@
namespace Widelands {
struct Soldier_Descr;
+ struct Building_Descr;
+ struct WareDescr;
+ class Worker_Descr;
class Bob;
}
@@ -89,6 +92,325 @@
};
+class L_MapObjectDescription : public L_MapModuleClass {
+public:
+ LUNA_CLASS_HEAD(L_MapObjectDescription);
+
+ virtual ~L_MapObjectDescription() {}
+
+ L_MapObjectDescription() : mapobjectdescr_(nullptr) {}
+ L_MapObjectDescription(const Widelands::Map_Object_Descr* const mapobjectdescr)
+ : mapobjectdescr_(mapobjectdescr) {}
+ L_MapObjectDescription(lua_State* L) : mapobjectdescr_(nullptr) {
+ report_error(L, "Cannot instantiate a 'MapObjectDescription' directly!");
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_name(lua_State *);
+ int get_descname(lua_State *);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+protected:
+ const Widelands::Map_Object_Descr* get(void) const {
+ assert(mapobjectdescr_ != nullptr);
+ return mapobjectdescr_;
+ }
+
+private:
+ const Widelands::Map_Object_Descr * const mapobjectdescr_;
+};
+
+#define CASTED_GET_DESCRIPTION(klass) \
+ const Widelands::klass* get() const { \
+ return static_cast<const Widelands::klass*>(L_MapObjectDescription::get()); \
+ }
+
+class L_BuildingDescription : public L_MapObjectDescription {
+public:
+ LUNA_CLASS_HEAD(L_BuildingDescription);
+
+ virtual ~L_BuildingDescription() {}
+
+ L_BuildingDescription() {}
+ L_BuildingDescription(const Widelands::Building_Descr* const buildingdescr)
+ : L_MapObjectDescription(buildingdescr) {
+ }
+ L_BuildingDescription(lua_State* L) : L_MapObjectDescription(L) {
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_build_cost(lua_State *);
+ int get_buildable(lua_State *);
+ int get_conquers(lua_State *);
+ int get_destructible(lua_State *);
+ int get_enhanced(lua_State *);
+ int get_enhancement_cost(lua_State *);
+ int get_enhancements(lua_State *);
+ int get_ismine(lua_State *);
+ int get_isport(lua_State *);
+ int get_isproductionsite(lua_State *);
+ int get_returned_wares(lua_State *);
+ int get_returned_wares_enhanced(lua_State *);
+ int get_size(lua_State *);
+ // Subclasses all need to overwrite get_type, otherwise the type of the parent class would be fetched
+ int get_type(lua_State *);
+ int get_vision_range(lua_State *);
+ int get_workarea_radius(lua_State *);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+
+private:
+ CASTED_GET_DESCRIPTION(Building_Descr);
+};
+
+
+class L_ProductionSiteDescription : public L_BuildingDescription {
+public:
+ LUNA_CLASS_HEAD(L_ProductionSiteDescription);
+
+ virtual ~L_ProductionSiteDescription() {}
+
+ L_ProductionSiteDescription() {}
+ L_ProductionSiteDescription(const Widelands::ProductionSite_Descr* const productionsitedescr)
+ : L_BuildingDescription(productionsitedescr) {
+ }
+ L_ProductionSiteDescription(lua_State* L) : L_BuildingDescription(L) {
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_inputs(lua_State *);
+ int get_output_ware_types(lua_State *);
+ int get_type(lua_State *);
+ int get_working_positions(lua_State *);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+
+private:
+ CASTED_GET_DESCRIPTION(ProductionSite_Descr);
+};
+
+
+class L_MilitarySiteDescription : public L_ProductionSiteDescription {
+public:
+ LUNA_CLASS_HEAD(L_MilitarySiteDescription);
+
+ virtual ~L_MilitarySiteDescription() {}
+
+ L_MilitarySiteDescription() {}
+ L_MilitarySiteDescription(const Widelands::ProductionSite_Descr* const militarysitedescr)
+ : L_ProductionSiteDescription(militarysitedescr) {
+ }
+ L_MilitarySiteDescription(lua_State* L) : L_ProductionSiteDescription(L) {
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_heal_per_second(lua_State *);
+ int get_max_number_of_soldiers(lua_State *);
+ int get_type(lua_State *);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+
+private:
+ CASTED_GET_DESCRIPTION(MilitarySite_Descr);
+};
+
+
+class L_TrainingSiteDescription : public L_ProductionSiteDescription {
+public:
+ LUNA_CLASS_HEAD(L_TrainingSiteDescription);
+
+ virtual ~L_TrainingSiteDescription() {}
+
+ L_TrainingSiteDescription() {}
+ L_TrainingSiteDescription(const Widelands::ProductionSite_Descr* const trainingsitedescr)
+ : L_ProductionSiteDescription(trainingsitedescr) {
+ }
+ L_TrainingSiteDescription(lua_State* L) : L_ProductionSiteDescription(L) {
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_max_attack(lua_State *);
+ int get_max_defense(lua_State *);
+ int get_max_evade(lua_State *);
+ int get_max_hp(lua_State *);
+ int get_max_number_of_soldiers(lua_State *);
+ int get_min_attack(lua_State *);
+ int get_min_defense(lua_State *);
+ int get_min_evade(lua_State *);
+ int get_min_hp(lua_State *);
+ int get_type(lua_State *);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+
+private:
+ CASTED_GET_DESCRIPTION(TrainingSite_Descr);
+};
+
+
+
+class L_WarehouseDescription : public L_BuildingDescription {
+public:
+ LUNA_CLASS_HEAD(L_WarehouseDescription);
+
+ virtual ~L_WarehouseDescription() {}
+
+ L_WarehouseDescription() {}
+ L_WarehouseDescription(const Widelands::Warehouse_Descr* const warehousedescr)
+ : L_BuildingDescription(warehousedescr) {
+ }
+ L_WarehouseDescription(lua_State* L) : L_BuildingDescription(L) {
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_heal_per_second(lua_State *);
+ int get_type(lua_State *);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+
+private:
+ CASTED_GET_DESCRIPTION(Warehouse_Descr);
+};
+
+
+
+class L_WareDescription : public L_MapObjectDescription {
+public:
+ LUNA_CLASS_HEAD(L_WareDescription);
+
+ virtual ~L_WareDescription() {}
+
+ L_WareDescription() {}
+ L_WareDescription(const Widelands::WareDescr* const waredescr)
+ : L_MapObjectDescription(waredescr) {}
+ L_WareDescription(lua_State* L) : L_MapObjectDescription(L) {
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_producers(lua_State *);
+ int get_consumers(lua_State *);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+
+private:
+ CASTED_GET_DESCRIPTION(WareDescr);
+};
+
+
+class L_WorkerDescription : public L_MapObjectDescription {
+public:
+ LUNA_CLASS_HEAD(L_WorkerDescription);
+
+ virtual ~L_WorkerDescription() {}
+
+ L_WorkerDescription() {}
+ L_WorkerDescription(const Widelands::Worker_Descr* const workerdescr)
+ : L_MapObjectDescription(workerdescr) {
+ }
+ L_WorkerDescription(lua_State* L) : L_MapObjectDescription(L) {
+ }
+
+ virtual void __persist(lua_State * L) override;
+ virtual void __unpersist(lua_State * L) override;
+
+ /*
+ * Properties
+ */
+ int get_becomes(lua_State*);
+ int get_level_experience(lua_State*);
+ int get_buildable(lua_State*);
+ int get_buildcost(lua_State*);
+
+ /*
+ * Lua methods
+ */
+
+ /*
+ * C methods
+ */
+
+private:
+ CASTED_GET_DESCRIPTION(Worker_Descr);
+};
+
+#undef CASTED_GET_DESCRIPTION
+
#define CASTED_GET(klass) \
Widelands:: klass * get(lua_State * L, Widelands::Editor_Game_Base & egbase) { \
return static_cast<Widelands:: klass *> \
@@ -228,7 +550,6 @@
/*
* Properties
*/
- int get_building_type(lua_State* L);
int get_flag(lua_State* L);
/*
@@ -654,6 +975,7 @@
*/
};
+int upcasted_building_descr_to_lua(lua_State* L, const Widelands::Building_Descr* descr);
int upcasted_immovable_to_lua(lua_State * L, Widelands::BaseImmovable * bi);
int upcasted_bob_to_lua(lua_State * L, Widelands::Bob * mo);
=== modified file 'src/scripting/luna_impl.h'
--- src/scripting/luna_impl.h 2014-04-15 05:06:05 +0000
+++ src/scripting/luna_impl.h 2014-05-27 14:17:43 +0000
@@ -300,6 +300,7 @@
// metatable[prop_name] = Pointer to getter setter
lua_pushstring(L, PT::Properties[i].name);
+
lua_newtable(L);
lua_pushstring(L, "getter");
lua_pushlightuserdata
=== modified file 'src/scripting/scripting.cc'
--- src/scripting/scripting.cc 2014-05-11 07:38:01 +0000
+++ src/scripting/scripting.cc 2014-05-27 14:17:43 +0000
@@ -382,3 +382,4 @@
return nwritten;
}
+
=== modified file 'src/scripting/scripting.h'
--- src/scripting/scripting.h 2014-05-11 12:29:55 +0000
+++ src/scripting/scripting.h 2014-05-27 14:17:43 +0000
@@ -38,6 +38,7 @@
class Map_Map_Object_Loader;
struct Map_Map_Object_Saver;
class Player;
+ struct Building_Descr;
}
class EditorFactory;
@@ -88,5 +89,4 @@
private:
std::unique_ptr<GameFactory> m_factory;
};
-
#endif
=== modified file 'src/ui_basic/helpwindow.cc'
--- src/ui_basic/helpwindow.cc 2014-04-06 11:58:13 +0000
+++ src/ui_basic/helpwindow.cc 2014-05-27 14:17:43 +0000
@@ -28,6 +28,7 @@
#include "i18n.h"
#include "io/filesystem/layered_filesystem.h"
#include "log.h"
+#include "logic/building.h"
#include "scripting/lua_table.h"
#include "scripting/scripting.h"
#include "ui_basic/button.h"
@@ -180,26 +181,29 @@
LuaTextHelpWindow
===================
*/
-
LuaTextHelpWindow::LuaTextHelpWindow
- (Panel* const parent, UI::UniqueWindow::Registry& reg, const std::string&
- caption, const std::string& path_to_script, uint32_t width,
- uint32_t height)
- : UI::UniqueWindow(parent, "help_window", ®, width, height,
- (boost::format(_("Help: %s")) % caption).str().c_str()),
- textarea(new Multiline_Textarea(this, 5, 5, width - 10, height - 10,
- std::string(), Align_Left))
+ (Panel * const parent,
+ UI::UniqueWindow::Registry & reg,
+ const Widelands::Building_Descr& building_description,
+ LuaInterface * const lua,
+ uint32_t width, uint32_t height)
+ :
+ UI::UniqueWindow(parent, "help_window", ®, width, height,
+ (boost::format(_("Help: %s")) % building_description.descname()).str().c_str()),
+ textarea(new Multiline_Textarea(this, 5, 5, width - 10, height -10, std::string(), Align_Left))
{
- LuaInterface lua;
-
try {
- std::unique_ptr<LuaTable> t = lua.run_script(path_to_script);
- textarea->set_text(t->get_string("text"));
- } catch (LuaError & err) {
+ std::unique_ptr<LuaTable> t(
+ lua->run_script(building_description.helptext_script()));
+ std::unique_ptr<LuaCoroutine> cr(t->get_coroutine("func"));
+ cr->push_arg(&building_description);
+ cr->resume();
+ const std::string help_text = cr->pop_string();
+ textarea->set_text(help_text);
+ } catch (LuaError& err) {
textarea->set_text(err.what());
}
}
-
LuaTextHelpWindow::~LuaTextHelpWindow()
{
}
=== modified file 'src/ui_basic/helpwindow.h'
--- src/ui_basic/helpwindow.h 2014-04-06 11:58:13 +0000
+++ src/ui_basic/helpwindow.h 2014-05-27 14:17:43 +0000
@@ -27,6 +27,12 @@
#include "ui_basic/unique_window.h"
#include "ui_basic/window.h"
+class LuaInterface;
+
+namespace Widelands {
+struct Building_Descr;
+}
+
namespace UI {
/**
@@ -82,9 +88,9 @@
*/
struct LuaTextHelpWindow : public UI::UniqueWindow {
LuaTextHelpWindow
- (Panel * parent, UI::UniqueWindow::Registry &,
- const std::string& caption,
- const std::string& path_to_script,
+ (Panel * parent, UI::UniqueWindow::Registry& reg,
+ const Widelands::Building_Descr& building_description,
+ LuaInterface * const lua,
uint32_t width = 300, uint32_t height = 400);
~LuaTextHelpWindow();
=== modified file 'src/wui/buildingwindow.cc'
--- src/wui/buildingwindow.cc 2014-05-27 11:01:15 +0000
+++ src/wui/buildingwindow.cc 2014-05-27 14:17:43 +0000
@@ -359,7 +359,7 @@
igbase().unique_windows().get_registry(m_building.name() + "_help");
registry.open_window = [this, ®istry] {
new UI::LuaTextHelpWindow(
- &igbase(), registry, m_building.descname(), m_building.descr().helptext_script());
+ &igbase(), registry, m_building.descr(), &igbase().egbase().lua());
};
helpbtn->sigclicked.connect(boost::bind(&UI::UniqueWindow::Registry::toggle, boost::ref(registry)));
=== added file 'test/maps/lua_testsuite.wmf/scripting/immovables_descriptions.lua'
--- test/maps/lua_testsuite.wmf/scripting/immovables_descriptions.lua 1970-01-01 00:00:00 +0000
+++ test/maps/lua_testsuite.wmf/scripting/immovables_descriptions.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,378 @@
+set_textdomain("tribe_barbarians")
+
+test_descr = lunit.TestCase("Immovable descriptions test")
+function test_descr:test_instantiation_forbidden()
+ assert_error("Cannot instantiate", function()
+ wl.map.BuildingDescription()
+ end)
+ assert_error("Cannot instantiate", function()
+ wl.map.WareDescription()
+ end)
+ assert_error("Cannot instantiate", function()
+ wl.map.WorkerDescription()
+ end)
+end
+
+-- =======================================================
+-- ***************** BuildingDescription *****************
+-- =======================================================
+
+function test_descr:test_building_descr()
+ assert_error("Wrong tribe", function() egbase:get_building_description("XXX","sentry") end)
+ assert_error("Wrong building", function() egbase:get_building_description("barbarians","XXX") end)
+ assert_error("Wrong number of parameters: 1", function() egbase:get_building_description("XXX") end)
+ assert_error("Wrong number of parameters: 3", function() egbase:get_building_description("XXX","YYY","ZZZ") end)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_descname()
+ assert_equal(_"Lumberjack’s Hut", egbase:get_building_description("barbarians","lumberjacks_hut").descname)
+ assert_equal(_"Battle Arena", egbase:get_building_description("barbarians","battlearena").descname)
+ assert_equal(_"Fortress", egbase:get_building_description("barbarians","fortress").descname)
+ assert_equal(_"Coal Mine", egbase:get_building_description("barbarians","coalmine").descname)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_name()
+ assert_equal("lumberjacks_hut", egbase:get_building_description("barbarians","lumberjacks_hut").name)
+ assert_equal("battlearena", egbase:get_building_description("barbarians","battlearena").name)
+ assert_equal("fortress", egbase:get_building_description("barbarians","fortress").name)
+ assert_equal("coalmine", egbase:get_building_description("barbarians","coalmine").name)
+end
+
+function test_descr:test_build_cost()
+ local total_cost = function(t)
+ local cost = 0
+ for name, count in pairs(t) do
+ cost = cost + count
+ end
+ return cost
+ end
+ assert_equal(2, total_cost(egbase:get_building_description("barbarians","sentry").build_cost))
+ assert_equal(20, total_cost(egbase:get_building_description("barbarians","fortress").build_cost))
+ assert_equal(0, total_cost(egbase:get_building_description("barbarians","citadel").build_cost))
+end
+
+function test_descr:test_buildable()
+ assert_equal(false, egbase:get_building_description("barbarians","headquarters").buildable)
+ assert_equal(true, egbase:get_building_description("barbarians","sentry").buildable)
+end
+
+function test_descr:test_conquers()
+ assert_equal(0, egbase:get_building_description("barbarians","lumberjacks_hut").conquers)
+ assert_equal(6, egbase:get_building_description("barbarians","sentry").conquers)
+ assert_equal(9, egbase:get_building_description("barbarians","headquarters").conquers)
+ assert_equal(0, egbase:get_building_description("barbarians","coalmine").conquers)
+end
+
+function test_descr:test_destructible()
+ assert_equal(false, egbase:get_building_description("barbarians","headquarters").destructible)
+ assert_equal(true, egbase:get_building_description("barbarians","sentry").destructible)
+end
+
+function test_descr:test_enhanced()
+ assert_equal(false, egbase:get_building_description("barbarians","headquarters").enhanced)
+ assert_equal(true, egbase:get_building_description("barbarians","axfactory").enhanced)
+end
+
+function test_descr:test_enhancement_cost()
+ local total_cost = function(t)
+ local cost = 0
+ for name, count in pairs(t) do
+ cost = cost + count
+ end
+ return cost
+ end
+ assert_equal(0, total_cost(egbase:get_building_description("barbarians","sentry").enhancement_cost))
+ assert_equal(20, total_cost(egbase:get_building_description("barbarians","citadel").enhancement_cost))
+end
+
+function test_descr:test_enhancements()
+ assert_equal("inn", egbase:get_building_description("barbarians","tavern").enhancements[1].name)
+ assert_equal(nil, egbase:get_building_description("barbarians","lumberjacks_hut").enhancements[1])
+end
+
+function test_descr:test_ismine()
+ assert_equal(false, egbase:get_building_description("barbarians","headquarters").ismine)
+ assert_equal(true, egbase:get_building_description("barbarians","oremine").ismine)
+end
+
+function test_descr:test_isport()
+ assert_equal(false, egbase:get_building_description("barbarians","headquarters").isport)
+ assert_equal(true, egbase:get_building_description("barbarians","port").isport)
+end
+
+function test_descr:test_returned_wares()
+ local total_cost = function(t)
+ local cost = 0
+ for name, count in pairs(t) do
+ cost = cost + count
+ end
+ return cost
+ end
+ assert_equal(1, total_cost(egbase:get_building_description("barbarians","sentry").returned_wares))
+ assert_equal(9, total_cost(egbase:get_building_description("barbarians","fortress").returned_wares))
+ assert_equal(0, total_cost(egbase:get_building_description("barbarians","citadel").returned_wares))
+end
+
+function test_descr:test_returned_wares_enhanced()
+ local total_cost = function(t)
+ local cost = 0
+ for name, count in pairs(t) do
+ cost = cost + count
+ end
+ return cost
+ end
+ assert_equal(0, total_cost(egbase:get_building_description("barbarians","sentry").returned_wares_enhanced))
+ assert_equal(0, total_cost(egbase:get_building_description("barbarians","fortress").returned_wares_enhanced))
+ assert_equal(10, total_cost(egbase:get_building_description("barbarians","citadel").returned_wares_enhanced))
+end
+
+function test_descr:test_size()
+ assert_equal(1, egbase:get_building_description("barbarians","lumberjacks_hut").size)
+ assert_equal(2, egbase:get_building_description("barbarians","reed_yard").size)
+ assert_equal(3, egbase:get_building_description("barbarians","fortress").size)
+ assert_equal(1, egbase:get_building_description("barbarians","coalmine").size)
+end
+
+function test_descr:test_type()
+ assert_equal("militarysite", egbase:get_building_description("barbarians","sentry").type)
+end
+
+function test_descr:test_vision_range()
+-- if vision_range is not set in the conf, it is get_conquers() + 4
+ assert_equal(4, egbase:get_building_description("barbarians","lumberjacks_hut").vision_range)
+ assert_equal(2, egbase:get_building_description("barbarians","constructionsite").vision_range)
+ assert_equal(4+11, egbase:get_building_description("barbarians","fortress").vision_range)
+ assert_equal(17, egbase:get_building_description("barbarians","donjon").vision_range)
+end
+
+-- =======================================================
+-- ************** ProductionSiteDescription **************
+-- =======================================================
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_descname()
+ assert_equal(_"Coal Mine", egbase:get_building_description("barbarians","coalmine").descname)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_name()
+ assert_equal("coalmine", egbase:get_building_description("barbarians","coalmine").name)
+end
+
+function test_descr:test_inputs()
+ local building_description = wl.Game():get_building_description("barbarians","bakery")
+ assert_equal("wheat", building_description.inputs[1])
+ assert_equal("water", building_description.inputs[2])
+ building_description = wl.Game():get_building_description("barbarians","lumberjacks_hut")
+ assert_equal(nil, building_description.inputs[1])
+end
+
+function test_descr:test_output_ware_types()
+ local building_description = wl.Game():get_building_description("barbarians","bakery")
+ assert_equal("pittabread", building_description.output_ware_types[1])
+ building_description = wl.Game():get_building_description("barbarians","gamekeepers_hut")
+ assert_equal(nil, building_description.output_ware_types[1])
+end
+
+function test_descr:test_type()
+ assert_equal("productionsite", egbase:get_building_description("barbarians","coalmine").type)
+end
+
+function test_descr:test_working_positions()
+ local building_description = wl.Game():get_building_description("barbarians","deeper_coalmine")
+ assert_equal("master-miner", building_description.working_positions[1])
+ assert_equal("chief-miner", building_description.working_positions[2])
+ assert_equal("miner", building_description.working_positions[3])
+ building_description = wl.Game():get_building_description("barbarians","big_inn")
+ assert_equal("innkeeper", building_description.working_positions[1])
+ assert_equal("innkeeper", building_description.working_positions[2])
+end
+
+
+-- =======================================================
+-- *************** MilitarySiteDescription ***************
+-- =======================================================
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_descname()
+ assert_equal(_"Sentry", egbase:get_building_description("barbarians","sentry").descname)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_name()
+ assert_equal("sentry", egbase:get_building_description("barbarians","sentry").name)
+end
+
+function test_descr:test_heal_per_second()
+ assert_equal(80, egbase:get_building_description("barbarians","sentry").heal_per_second)
+ assert_equal(170, egbase:get_building_description("barbarians","fortress").heal_per_second)
+end
+
+function test_descr:test_max_number_of_soldiers()
+ assert_equal(2, egbase:get_building_description("barbarians","sentry").max_number_of_soldiers)
+ assert_equal(8, egbase:get_building_description("barbarians","fortress").max_number_of_soldiers)
+end
+
+function test_descr:test_type()
+ assert_equal("militarysite", egbase:get_building_description("barbarians","sentry").type)
+end
+
+
+-- =======================================================
+-- *************** TrainingSiteDescription ***************
+-- =======================================================
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_descname()
+ assert_equal(_"Battle Arena", egbase:get_building_description("barbarians","battlearena").descname)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_name()
+ assert_equal("battlearena", egbase:get_building_description("barbarians","battlearena").name)
+end
+
+function test_descr:test_max_attack()
+ assert_equal(0, egbase:get_building_description("barbarians","battlearena").max_attack)
+ assert_equal(4, egbase:get_building_description("barbarians","trainingcamp").max_attack)
+end
+
+function test_descr:test_max_defense()
+ assert_equal(0, egbase:get_building_description("barbarians","battlearena").max_defense)
+ assert_equal(0, egbase:get_building_description("barbarians","trainingcamp").max_defense)
+end
+
+function test_descr:test_max_evade()
+ assert_equal(1, egbase:get_building_description("barbarians","battlearena").max_evade)
+ assert_equal(0, egbase:get_building_description("barbarians","trainingcamp").max_evade)
+end
+
+function test_descr:test_max_hp()
+ assert_equal(0, egbase:get_building_description("barbarians","battlearena").max_hp)
+ assert_equal(2, egbase:get_building_description("barbarians","trainingcamp").max_hp)
+end
+
+function test_descr:test_min_attack()
+ assert_equal(0, egbase:get_building_description("barbarians","battlearena").min_attack)
+ assert_equal(0, egbase:get_building_description("barbarians","trainingcamp").min_attack)
+end
+
+function test_descr:test_min_defense()
+ assert_equal(0, egbase:get_building_description("barbarians","battlearena").min_defense)
+ assert_equal(0, egbase:get_building_description("barbarians","trainingcamp").min_defense)
+end
+
+function test_descr:test_min_evade()
+ assert_equal(0, egbase:get_building_description("barbarians","battlearena").min_evade)
+ assert_equal(0, egbase:get_building_description("barbarians","trainingcamp").min_evade)
+end
+
+function test_descr:test_min_hp()
+ assert_equal(0, egbase:get_building_description("barbarians","battlearena").min_hp)
+ assert_equal(0, egbase:get_building_description("barbarians","trainingcamp").min_hp)
+end
+
+function test_descr:test_type()
+ assert_equal("trainingsite", egbase:get_building_description("barbarians","battlearena").type)
+end
+
+
+-- =======================================================
+-- **************** WarehouseDescription *****************
+-- =======================================================
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_descname()
+ assert_equal(_"Warehouse", egbase:get_building_description("barbarians","warehouse").descname)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_name()
+ assert_equal("warehouse", egbase:get_building_description("barbarians","warehouse").name)
+end
+
+function test_descr:test_heal_per_second()
+ assert_equal(170, egbase:get_building_description("barbarians","warehouse").heal_per_second)
+ assert_equal(220, egbase:get_building_description("barbarians","headquarters").heal_per_second)
+end
+
+function test_descr:test_type()
+ assert_equal("warehouse", egbase:get_building_description("barbarians","warehouse").type)
+end
+
+
+-- =======================================================
+-- ***************** WareDescription *****************
+-- =======================================================
+
+function test_descr:test_ware_descr()
+ assert_error("Wrong tribe", function() egbase:get_ware_description("XXX","thatchreed") end)
+ assert_error("Wrong ware", function() egbase:get_ware_description("barbarians","XXX") end)
+ assert_error("Wrong number of parameters: 1", function() egbase:get_ware_description("XXX") end)
+ assert_error("Wrong number of parameters: 3", function() egbase:get_ware_description("XXX","YYY","ZZZ") end)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_descname()
+ assert_equal(_"Thatch Reed", egbase:get_ware_description("barbarians","thatchreed").descname)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_name()
+ assert_equal("thatchreed", egbase:get_ware_description("barbarians","thatchreed").name)
+end
+
+function test_descr:test_consumers()
+ local ware_description = wl.Game():get_ware_description("barbarians","coal")
+ assert_equal("lime_kiln", ware_description.consumers[1].name)
+ assert_equal("smelting_works", ware_description.consumers[2].name)
+ assert_equal("warmill", ware_description.consumers[3].name)
+ assert_equal("axfactory", ware_description.consumers[4].name)
+ assert_equal("helmsmithy", ware_description.consumers[5].name)
+end
+
+function test_descr:test_producers()
+ local ware_description = wl.Game():get_ware_description("barbarians","coal")
+ assert_equal("burners_house", ware_description.producers[1].name)
+ assert_equal("deeper_coalmine", ware_description.producers[2].name)
+ assert_equal("deep_coalmine", ware_description.producers[3].name)
+ assert_equal("coalmine", ware_description.producers[4].name)
+end
+
+-- =======================================================
+-- ****************** WorkerDescription ******************
+-- =======================================================
+
+function test_descr:test_worker_descr()
+ assert_error("Wrong tribe", function() egbase:get_worker_description("XXX","miner") end)
+ assert_error("Wrong worker", function() egbase:get_worker_description("barbarians","XXX") end)
+ assert_error("Wrong number of parameters: 1", function() egbase:get_worker_description("XXX") end)
+ assert_error("Wrong number of parameters: 3", function() egbase:get_worker_description("XXX","YYY","ZZZ") end)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_descname()
+ assert_equal(_"Miner", egbase:get_worker_description("barbarians","miner").descname)
+end
+
+-- This is actually a property of MapOjectDescription
+function test_descr:test_name()
+ assert_equal("miner", egbase:get_worker_description("barbarians","miner").name)
+end
+
+function test_descr:test_becomes()
+ local worker_descr = egbase:get_worker_description("barbarians","miner").becomes
+ assert_equal("chief-miner", worker_descr.name)
+ worker_descr = egbase:get_worker_description("barbarians","chief-miner").becomes
+ assert_equal("master-miner", worker_descr.name)
+ worker_descr = egbase:get_worker_description("barbarians","master-miner").becomes
+ assert_equal(nil, worker_descr)
+end
+
+function test_descr:test_level_experience()
+ assert_equal(19, egbase:get_worker_description("barbarians","miner").level_experience)
+ assert_equal(28, egbase:get_worker_description("barbarians","chief-miner").level_experience)
+end
+
=== modified file 'test/maps/lua_testsuite.wmf/scripting/init.lua'
--- test/maps/lua_testsuite.wmf/scripting/init.lua 2014-03-25 06:18:48 +0000
+++ test/maps/lua_testsuite.wmf/scripting/init.lua 2014-05-27 14:17:43 +0000
@@ -31,6 +31,7 @@
include "map:scripting/cplr_access.lua"
include "map:scripting/immovables.lua"
+include "map:scripting/immovables_descriptions.lua"
if not wl.editor then
include "map:scripting/game.lua"
=== renamed file 'tribes/atlanteans/armorsmithy/armorsmith_i_00.png' => 'tribes/atlanteans/armorsmithy/armorsmithy_i_00.png'
=== renamed file 'tribes/atlanteans/armorsmithy/armorsmith_i_00_pc.png' => 'tribes/atlanteans/armorsmithy/armorsmithy_i_00_pc.png'
=== modified file 'tribes/atlanteans/armorsmithy/conf'
--- tribes/atlanteans/armorsmithy/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/armorsmithy/conf 2014-05-27 14:17:43 +0000
@@ -49,9 +49,9 @@
return=skipped
[idle]
-pics=armorsmith_i_??.png
+pics=armorsmithy_i_??.png
hotspot=53 60
[working]
-pics=armorsmith_i_??.png
+pics=armorsmithy_i_??.png
hotspot=53 60
=== added file 'tribes/atlanteans/armorsmithy/help.lua'
--- tribes/atlanteans/armorsmithy/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/armorsmithy/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Armor Smithy
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "advanced_shield",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/bakery/help.lua'
--- tribes/atlanteans/bakery/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/bakery/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Atlantean Bakery
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "bread",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/blackroot_farm/help.lua'
--- tribes/atlanteans/blackroot_farm/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/blackroot_farm/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Blackroot Farm
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "blackroot",
+ _"Sow and harvest blackroot.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/burners_house/help.lua'
--- tribes/atlanteans/burners_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/burners_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Charcoal Burner's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ -- TODO rename pictures building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "coal",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/castle/help.lua'
--- tribes/atlanteans/castle/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/castle/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Atlantean Castle
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description)
+ end
+}
=== added file 'tribes/atlanteans/coalmine/help.lua'
--- tribes/atlanteans/coalmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/coalmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Coal Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "coal",
+ _"Digs coal out of the ground in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/crystalmine/help.lua'
--- tribes/atlanteans/crystalmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/crystalmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Crystal Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "diamond",
+ _"Carve precious stones out of the rock in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/dungeon/help.lua'
--- tribes/atlanteans/dungeon/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/dungeon/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,40 @@
+-- The Atlantean Dungeon
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ -- need to get this again, so the building description will be of type "trainingsite"
+ local building_description = wl.Game():get_building_description("atlanteans", building_description.name)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Trains soldiers in ‘Attack’."
+ .. " " .."Equips the soldiers with all necessary weapons and armor parts.") ..
+
+ --Dependencies
+ -- We would need to parse the production programs to automate the parameters here; so we do it manually
+ -- TODO make pictures dependencies_training("atlanteans", building_description, "fulltrained-evade", "untrained+evade") ..
+
+ rt(h3(_"Attack Training:")) ..
+ dependencies_training_food("atlanteans", { {"smoked_fish", "smoked_meat"}, {"bread"}}) ..
+ dependencies_training_weapons("atlanteans", building_description, "and",
+ {"long_trident", "steel_trident", "double_trident", "heavy_double_trident"}, "weaponsmithy") ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/farm/help.lua'
--- tribes/atlanteans/farm/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/farm/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Farm
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "corn",
+ _"Sow and harvest corn.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/atlanteans/fish_breeders_house/conf'
--- tribes/atlanteans/fish_breeders_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/fish_breeders_house/conf 2014-05-27 14:17:43 +0000
@@ -24,5 +24,5 @@
worker=breed
[idle]
-pics=fish_breeder_i_??.png # ???
+pics=fish_breeders_house_i_??.png # ???
hotspot=34 42
=== renamed file 'tribes/atlanteans/fish_breeders_house/fish_breeder_i_00.png' => 'tribes/atlanteans/fish_breeders_house/fish_breeders_house_i_00.png'
=== renamed file 'tribes/atlanteans/fish_breeders_house/fish_breeder_i_00_pc.png' => 'tribes/atlanteans/fish_breeders_house/fish_breeders_house_i_00_pc.png'
=== added file 'tribes/atlanteans/fish_breeders_house/help.lua'
--- tribes/atlanteans/fish_breeders_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/fish_breeders_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Fish Breeder's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "fish",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/atlanteans/fishers_house/conf'
--- tribes/atlanteans/fishers_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/fishers_house/conf 2014-05-27 14:17:43 +0000
@@ -23,5 +23,5 @@
worker=fish
[idle]
-pics=fisher_i_??.png # ???
+pics=fishers_house_i_??.png # ???
hotspot=34 42
=== renamed file 'tribes/atlanteans/fishers_house/fisher_i_00.png' => 'tribes/atlanteans/fishers_house/fishers_house_i_00.png'
=== renamed file 'tribes/atlanteans/fishers_house/fisher_i_00_pc.png' => 'tribes/atlanteans/fishers_house/fishers_house_i_00_pc.png'
=== added file 'tribes/atlanteans/fishers_house/help.lua'
--- tribes/atlanteans/fishers_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/fishers_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Atlantean Fisher's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "fish",
+ _"Fishes on the coast near the house.",
+ _"The fisher’s house needs water full of fish within the working radius." .. " " .. _"Build a fisher breeder’s house close to the fisher’s house to make sure that you don’t run out of fish." ) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/atlanteans/foresters_house/conf'
--- tribes/atlanteans/foresters_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/foresters_house/conf 2014-05-27 14:17:43 +0000
@@ -24,5 +24,5 @@
worker=plant
[idle]
-pics=forester_i_??.png # ???
+pics=foresters_house_i_??.png # ???
hotspot=37 44
=== renamed file 'tribes/atlanteans/foresters_house/forester_i_00.png' => 'tribes/atlanteans/foresters_house/foresters_house_i_00.png'
=== added file 'tribes/atlanteans/foresters_house/help.lua'
--- tribes/atlanteans/foresters_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/foresters_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Atlantean's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "log",
+ _"Plants trees in the surrounding area.",
+ _"The foresters’s house needs free space within the working radius to plant the trees.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculaiton needed]])
+ end
+}
=== added file 'tribes/atlanteans/goldmine/help.lua'
--- tribes/atlanteans/goldmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/goldmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Gold Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "goldore",
+ _"Digs gold ore out of the ground in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/goldweaver/help.lua'
--- tribes/atlanteans/goldweaver/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/goldweaver/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Goldweaver
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "goldyarn",
+ _"Spins goldyarn out of gold.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/guardhall/help.lua'
--- tribes/atlanteans/guardhall/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/guardhall/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Atlantean Guardhall
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description)
+ end
+}
=== added file 'tribes/atlanteans/guardhouse/help.lua'
--- tribes/atlanteans/guardhouse/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/guardhouse/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Atlantean Guardhouse
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description)
+ end
+}
=== added file 'tribes/atlanteans/headquarters/help.lua'
--- tribes/atlanteans/headquarters/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/headquarters/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Atlantean Headquarters
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "carrier",
+ _"Accomodation for your people. Also stores your wares and tools.",
+ _"The headquarters is your main building." .. "<br>" .. _[[Text needed]]) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description)
+ end
+}
=== added file 'tribes/atlanteans/high_tower/help.lua'
--- tribes/atlanteans/high_tower/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/high_tower/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Atlantean High Tower
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description, "tower", {"tower"})
+ end
+}
=== added file 'tribes/atlanteans/horsefarm/help.lua'
--- tribes/atlanteans/horsefarm/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/horsefarm/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Atlantean Horse Farm
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "horse",
+ _"Breeds horses for adding them to the transportation system.") ..
+
+ --Dependencies
+ -- TODO: why is "Produces" empty?
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/atlanteans/hunters_house/conf'
--- tribes/atlanteans/hunters_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/hunters_house/conf 2014-05-27 14:17:43 +0000
@@ -23,5 +23,5 @@
worker=hunt
[idle]
-pics=hunter_i_??.png
+pics=hunters_house_i_??.png
hotspot=36 44
=== added file 'tribes/atlanteans/hunters_house/help.lua'
--- tribes/atlanteans/hunters_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/hunters_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Atlantean Hunter's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "meat",
+ _"Hunts animals to produce meat.",
+ _"The hunter’s house needs animals to hunt within the working radius.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/atlanteans/hunters_house/hunter_i_00.png' => 'tribes/atlanteans/hunters_house/hunters_house_i_00.png'
=== renamed file 'tribes/atlanteans/hunters_house/hunter_i_00_pc.png' => 'tribes/atlanteans/hunters_house/hunters_house_i_00_pc.png'
=== added file 'tribes/atlanteans/ironmine/help.lua'
--- tribes/atlanteans/ironmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/ironmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Iron Ore Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "ironore",
+ _"Digs iron ore out of the ground in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/labyrinth/help.lua'
--- tribes/atlanteans/labyrinth/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/labyrinth/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,48 @@
+-- The Atlantean Labyrinth
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ -- need to get this again, so the building description will be of type "trainingsite"
+ local building_description = wl.Game():get_building_description("atlanteans", building_description.name)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Trains soldiers in ‘Defense’, ‘Evade’, and ‘Health’."
+ .. " " .."Equips the soldiers with all necessary weapons and armor parts.") ..
+
+ --Dependencies
+ -- We would need to parse the production programs to automate the parameters here; so we do it manually
+ -- TODO make pictures dependencies_training("atlanteans", building_description, "fulltrained-evade", "untrained+evade") ..
+
+ rt(h3(_"Defense Training:")) ..
+ dependencies_training_food("atlanteans", { {"smoked_fish", "smoked_meat"}, {"bread"}}) ..
+ dependencies_training_weapons("atlanteans", building_description, "and",
+ {"steel_shield", "advanced_shield"}, "armorsmithy") ..
+
+ rt(h3(_"Evade Training:")) ..
+ dependencies_training_food("atlanteans", { {"smoked_fish", "smoked_meat"}}) ..
+
+ rt(h3(_"Health Training:")) ..
+ dependencies_training_food("atlanteans", { {"smoked_fish", "smoked_meat"}, {"bread"}}) ..
+ dependencies_training_weapons("atlanteans", building_description, "and",
+ {"golden_tabard"}, "weaving-mill") ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/mill/help.lua'
--- tribes/atlanteans/mill/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/mill/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Atlantean Mill
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "cornflour",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/port/help.lua'
--- tribes/atlanteans/port/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/port/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,29 @@
+-- The Atlantean Port
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ -- TODO this building acts like a warehouse
+ building_help_general_string("atlanteans", building_description, "ship",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ -- TODO expedition costs here?
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/quarry/help.lua'
--- tribes/atlanteans/quarry/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/quarry/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Quarry
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "stone",
+ _"Carves stones out of rocks in the vicinity.", _"The quarry needs stones to cut within the working radius.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/sawmill/help.lua'
--- tribes/atlanteans/sawmill/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/sawmill/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Sawmill
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "planks",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/scouts_house/help.lua'
--- tribes/atlanteans/scouts_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/scouts_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Scout's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "scout",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/ship/menu.png'
Binary files tribes/atlanteans/ship/menu.png 1970-01-01 00:00:00 +0000 and tribes/atlanteans/ship/menu.png 2014-05-27 14:17:43 +0000 differ
=== added file 'tribes/atlanteans/shipyard/help.lua'
--- tribes/atlanteans/shipyard/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/shipyard/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Ship Yard
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "shipwright",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/small_tower/help.lua'
--- tribes/atlanteans/small_tower/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/small_tower/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Atlantean Small Tower
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description)
+ end
+}
=== added file 'tribes/atlanteans/smelting_works/help.lua'
--- tribes/atlanteans/smelting_works/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/smelting_works/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Smelting Works
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "iron",
+ _"Smelts iron ore into iron and gold ore into gold.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/smokery/help.lua'
--- tribes/atlanteans/smokery/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/smokery/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Smokery
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "smoked_meat",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/spiderfarm/help.lua'
--- tribes/atlanteans/spiderfarm/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/spiderfarm/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Spider Farm
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "spideryarn",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/atlanteans/toolsmithy/conf'
--- tribes/atlanteans/toolsmithy/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/toolsmithy/conf 2014-05-27 14:17:43 +0000
@@ -149,9 +149,9 @@
return=skipped
[idle]
-pics=toolsmith_i_??.png
+pics=toolsmithy_i_??.png
hotspot=50 53
[working]
-pics=toolsmith_i_??.png
+pics=toolsmithy_i_??.png
hotspot=50 53
=== added file 'tribes/atlanteans/toolsmithy/help.lua'
--- tribes/atlanteans/toolsmithy/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/toolsmithy/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Toolsmithy
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "hammer",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/atlanteans/toolsmithy/toolsmith_i_00.png' => 'tribes/atlanteans/toolsmithy/toolsmithy_i_00.png'
=== renamed file 'tribes/atlanteans/toolsmithy/toolsmith_i_00_pc.png' => 'tribes/atlanteans/toolsmithy/toolsmithy_i_00_pc.png'
=== added file 'tribes/atlanteans/tower/help.lua'
--- tribes/atlanteans/tower/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/tower/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Atlantean Tower
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description)
+ end
+}
=== added file 'tribes/atlanteans/warehouse/help.lua'
--- tribes/atlanteans/warehouse/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/warehouse/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,21 @@
+-- The Atlantean Warehouse
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "log",
+ _"Warehouses store soldiers, wares and tools.") ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description)
+ end
+}
=== modified file 'tribes/atlanteans/weaponsmithy/conf'
--- tribes/atlanteans/weaponsmithy/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/weaponsmithy/conf 2014-05-27 14:17:43 +0000
@@ -91,9 +91,9 @@
return=skipped
[idle]
-pics=weaponsmith_i_??.png # ???
+pics=weaponsmithy_i_??.png # ???
hotspot=50 58
[working]
-pics=weaponsmith_i_??.png # ???
+pics=weaponsmithy_i_??.png # ???
hotspot=50 58
=== added file 'tribes/atlanteans/weaponsmithy/help.lua'
--- tribes/atlanteans/weaponsmithy/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/weaponsmithy/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Weapon Smithy
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "light_trident",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/atlanteans/weaponsmithy/weaponsmith_i_00.png' => 'tribes/atlanteans/weaponsmithy/weaponsmithy_i_00.png'
=== renamed file 'tribes/atlanteans/weaponsmithy/weaponsmith_i_00_pc.png' => 'tribes/atlanteans/weaponsmithy/weaponsmithy_i_00_pc.png'
=== added file 'tribes/atlanteans/weaving-mill/help.lua'
--- tribes/atlanteans/weaving-mill/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/weaving-mill/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Weaving Mill
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ -- TODO rename pictures building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("atlanteans", building_description, "spidercloth",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/atlanteans/well/help.lua'
--- tribes/atlanteans/well/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/well/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Atlantean Well
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ --General Section
+ building_help_general_string("atlanteans", building_description, "water",
+ _"Draws water out of the deep.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/atlanteans/woodcutters_house/conf'
--- tribes/atlanteans/woodcutters_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/atlanteans/woodcutters_house/conf 2014-05-27 14:17:43 +0000
@@ -24,5 +24,5 @@
worker=harvest
[idle]
-pics=woodcutter_i_??.png
+pics=woodcutters_house_i_??.png
hotspot=37 44
=== added file 'tribes/atlanteans/woodcutters_house/help.lua'
--- tribes/atlanteans/woodcutters_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/atlanteans/woodcutters_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Atlantean Lumberjack's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_atlanteans")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("atlanteans", building_description, _[[Text needed]],_[[Source needed]]) ..
+ --General Section
+ building_help_general_string("atlanteans", building_description, "log",
+ _"Fell trees in the surrounding area and process them into logs.",
+ _"The woodcutter's house needs trees to fell within the working radius.") ..
+
+ --Dependencies
+ building_help_dependencies_production("atlanteans", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("atlanteans", building_description) ..
+
+ --Building Section
+ building_help_building_section("atlanteans", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/atlanteans/woodcutters_house/woodcutter_i_00.png' => 'tribes/atlanteans/woodcutters_house/woodcutters_house_i_00.png'
=== renamed file 'tribes/atlanteans/woodcutters_house/woodcutter_i_00_pc.png' => 'tribes/atlanteans/woodcutters_house/woodcutters_house_i_00_pc.png'
=== modified file 'tribes/barbarians/axfactory/help.lua'
--- tribes/barbarians/axfactory/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/axfactory/help.lua 2014-05-27 14:17:43 +0000
@@ -1,65 +1,36 @@
+-- The Barbarian Axfactory
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Axfactory")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/axfactory/axfactory_i_00.png", p(
- _[[‘A new Warrior’s Ax brings forth the best in its wielder – or the worst in its maker.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[An old Barbarian proverb<br> meaning that you need to take some risks sometimes.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘A new warrior’s ax brings forth the best in its wielder – or the worst in its maker.’]], _[[An old Barbarian proverb<br> meaning that you need to take some risks sometimes.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"The Barbarian Axfactory is the intermediate production site in a series of three buildings. It is an upgrade from the Metal Workshop but doesn’t require additional qualification for the worker.") ..
- rt("image=tribes/barbarians/ax/menu.png;tribes/barbarians/sharpax/menu.png;tribes/barbarians/broadax/menu.png image-align=right",p(_"It can make axes, Sharp axes and Broad axes.")) ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "ax",
+ _"Produces axes, sharp axes and broad axes.",
+ _"The barbarian axfactory is the intermediate production site in a series of three buildings. It is an upgrade from the metal workshop but doesn’t require additional qualification for the worker.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/smelting_works/menu.png","tribes/barbarians/iron/menu.png","tribes/barbarians/axfactory/menu.png"},p(_"%s from the Smelting Works":format(_"Iron"))) ..
- dependencies({"tribes/barbarians/coalmine/menu.png;tribes/barbarians/burners_house/menu.png","tribes/barbarians/coal/menu.png","tribes/barbarians/axfactory/menu.png"}) ..
- rt(p(_"%s from the Coal mine or the Charcoal Burner’s House":format(_"Coal"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/axfactory/menu.png","tribes/barbarians/ax/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/soldier/menu.png"},p(_"Soldier")) ..
- dependencies({"tribes/barbarians/axfactory/menu.png","tribes/barbarians/sharpax/menu.png;tribes/barbarians/broadax/menu.png","tribes/barbarians/trainingcamp/menu.png"},p(_"Training Camp")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Medium plot","pics/medium.png") ..
- text_line(_"Upgraded from:", _"Metal Workshop","tribes/barbarians/metalworks/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 1), 1) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 1), 1) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 2), 2) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 2), 2) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 2), 2) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 4), 4) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 1), 1) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 1), 1) ..
- text_line(_"Upgradeable to:",_"War Mill","tribes/barbarians/warmill/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/blacksmith/menu.png", 1, p(_"%s or better":format(_"Blacksmith"))) ..
- text_line(_"Worker uses:",_"Hammer","tribes/barbarians/hammer/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- dependencies({"tribes/barbarians/blacksmith/menu.png","tribes/barbarians/master-blacksmith/menu.png"}) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Blacksmith",_"Master Blacksmith","24"))) ..
+ building_help_building_section("barbarians", building_description, "metalworks", {"metalworks"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, this building can produce %1$s in about %2$s on average.":bformat(_"each item","57s")) ..
- rt(p(_"All three weapons take the same time for making, but the required raw materials vary."))
+ building_help_production_section(_"If all needed wares are delivered in time, this building can produce each type of ax in about %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 57):bformat(57)
+ ) .. " " ..
+ _"All three weapons take the same time for making, but the required raw materials vary."
+ )
+ end
}
=== modified file 'tribes/barbarians/bakery/help.lua'
--- tribes/barbarians/bakery/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/bakery/help.lua 2014-05-27 14:17:43 +0000
@@ -1,56 +1,34 @@
+-- The Barbarian Bakery
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Bakery")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/bakery/bakery_i_00.png", p(
- _[[Text needed]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Source needed]])) ..
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Bake Pitta Bread for Soldiers and Miners alike.","tribes/barbarians/pittabread/menu.png") ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "pittabread",
+ _"Bakes pitta bread for soldiers and miners alike.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/farm/menu.png","tribes/barbarians/wheat/menu.png","tribes/barbarians/bakery/menu.png"},p(_"Wheat from the Farm")) ..
- dependencies({"tribes/barbarians/well/menu.png","tribes/barbarians/water/menu.png","tribes/barbarians/bakery/menu.png"},p(_"Water from the Well")) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/bakery/menu.png","tribes/barbarians/pittabread/menu.png"},p(_"Pitta Bread")) ..
- dependencies({"tribes/barbarians/pittabread/menu.png","tribes/barbarians/tavern/menu.png"},p(_"Tavern")) ..
- dependencies({"tribes/barbarians/pittabread/menu.png","tribes/barbarians/inn/menu.png"},p(_"Inn")) ..
- dependencies({"tribes/barbarians/pittabread/menu.png","tribes/barbarians/big_inn/menu.png"},p(_"Big Inn")) ..
- dependencies({"tribes/barbarians/pittabread/menu.png","tribes/barbarians/battlearena/menu.png"},p(_"Battle Arena")) ..
- dependencies({"tribes/barbarians/pittabread/menu.png","tribes/barbarians/trainingcamp/menu.png"},p(_"Training Camp")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Medium plot","pics/medium.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 2), 2) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 2), 2) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 1), 1) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/baker/menu.png", 1, p(_"Baker")) ..
- text_line(_"Worker uses:", _"Bread Paddle","tribes/barbarians/bread_paddle/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, this building can produce %1$s in %2$s on average.":bformat(_"a Pitta Bread","30s"))
+ building_help_production_section(_"If all needed wares are delivered in time, this building can produce a pitta bread in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 30):bformat(30)
+ ))
+ end
}
=== modified file 'tribes/barbarians/barrier/help.lua'
--- tribes/barbarians/barrier/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/barrier/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,22 @@
+-- The Barbarian Sentry
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description)
+ end
}
=== modified file 'tribes/barbarians/battlearena/help.lua'
--- tribes/barbarians/battlearena/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/battlearena/help.lua 2014-05-27 14:17:43 +0000
@@ -1,56 +1,41 @@
+-- The Barbarian Battle Arena"
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Battle Arena")) ..
+ func = function(building_description)
+ -- need to get this again, so the building description will be of type "trainingsite"
+ local building_description = wl.Game():get_building_description("barbarians", building_description.name)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/battlearena/battlearena_i_00.png", p(
- _[[‘No better friend you have in battle than the enemy’s blow that misses.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Said to originate from Neidhardt, the famous trainer.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘No better friend you have in battle than the enemy’s blow that misses.’]], _[[Said to originate from Neidhardt, the famous trainer.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Trains soldiers in Evade up to level 2.") ..
- rt(p(_[[‘Evade’ increases the soldier’s chance not to be hit by the enemy and so to remain totally unaffected.]])) ..
- rt("_<p font-weight=bold font-decoration=underline font-size=12>Note: </p>_<p font-size=12>Barbarian soldiers cannot be trained in \"Defense\" and will remain at the level with which they came.<br><br></p>") ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "soldier",
+ _"Trains soldiers in ‘Evade’." .. " " .. _"‘Evade’ increases the soldier’s chance not to be hit by the enemy and so to remain totally unaffected.",
+ _"Barbarian soldiers cannot be trained in ‘Defense’ and will remain at the level with which they came.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- dependencies({"tribes/barbarians/soldier/untrained.png","tribes/barbarians/battlearena/menu.png","tribes/barbarians/soldier/untrained+evade.png"}) ..
- dependencies({"tribes/barbarians/soldier/fulltrained-evade.png","tribes/barbarians/battlearena/menu.png","tribes/barbarians/soldier/fulltrained.png"}) ..
- rt(h3(_"Evade Training:")) ..
- image_line("tribes/barbarians/pittabread/menu.png",1,p(_"%s and":format(_"Pitta Bread"))) ..
- image_line("tribes/barbarians/strongbeer/menu.png",1,p(_"%s and":format(_"Strong Beer"))) ..
- image_line("tribes/barbarians/fish/menu.png;tribes/barbarians/meat/menu.png",1,p(_"%s or %s":format(_"Fish",_"Meat"))) ..
+ -- We would need to parse the production programs to automate the parameters here; so we do it manually
+ dependencies_training("barbarians", building_description, "untrained+evade", "fulltrained-evade") ..
+
+ rt(h3(_"Evade Training:")) ..
+ dependencies_training_food("barbarians", { {"fish", "meat"}, {"strongbeer"}, {"pittabread"}}) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Big plot","pics/big.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "gold", ngettext("%i Gold", "%i Gold", 4), 4) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 3), 3) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 6), 6) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 4), 4) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 6), 6) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "gold", ngettext("%i Gold", "%i Gold", 2), 2) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 2), 2) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 3), 3) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 3), 3) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/trainer/menu.png", 1, p(_"Trainer")) ..
- text_line(_"Worker uses:","n/a") ..
- text_line(_"Experience levels:", "n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, a Battle Arena can train %1$s for one soldier from 0 to the highest level in %2$s on average.":bformat(_"Evade",_"%1$im%2$is":bformat(1,10)))
+ building_help_production_section(_"If all needed wares are delivered in time, a battle arena can train evade for one soldier from 0 to the highest level in %1$s and %2$s on average.":bformat(
+ ngettext("%d minute", "%d minutes", 1):bformat(1),
+ ngettext("%d second", "%d seconds", 10):bformat(10)
+ ))
+ end
}
=== modified file 'tribes/barbarians/big_inn/help.lua'
--- tribes/barbarians/big_inn/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/big_inn/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- "The Barbarian Big Inn"
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "meal",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description, "inn", {"tavern", "inn"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/brewery/help.lua'
--- tribes/barbarians/brewery/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/brewery/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Brewery
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "strongbeer",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description, "micro-brewery", {"micro-brewery"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== renamed file 'tribes/barbarians/burners_house/burner_i_00.png' => 'tribes/barbarians/burners_house/burners_house_i_00.png'
=== modified file 'tribes/barbarians/burners_house/conf'
--- tribes/barbarians/burners_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/burners_house/conf 2014-05-27 14:17:43 +0000
@@ -30,9 +30,9 @@
produce=coal
[idle]
-pics=burner_i_??.png # ???
+pics=burners_house_i_??.png # ???
hotspot=47 54
[working]
-pics=burner_i_??.png # ???
+pics=burners_house_i_??.png # ???
hotspot=47 54
=== modified file 'tribes/barbarians/burners_house/help.lua'
--- tribes/barbarians/burners_house/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/burners_house/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Charcoal Burner's House
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "coal",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/cattlefarm/help.lua'
--- tribes/barbarians/cattlefarm/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/cattlefarm/help.lua 2014-05-27 14:17:43 +0000
@@ -1,48 +1,34 @@
+-- The Barbarian Cattle Farm
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Cattle Farm")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/cattlefarm/cattlefarm_i_00.png", p(
- _[[Text needed]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Source needed]])) ..
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Breed Oxen for adding them to the transportation system.","tribes/barbarians/ox/menu.png") ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "ox",
+ _"Breeds oxen for adding them to the transportation system.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/farm/menu.png","tribes/barbarians/wheat/menu.png","tribes/barbarians/cattlefarm/menu.png"},p(_"Wheat from the Farm")) ..
- dependencies({"tribes/barbarians/well/menu.png","tribes/barbarians/water/menu.png","tribes/barbarians/cattlefarm/menu.png"},p(_"Water from the Well")) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/cattlefarm/menu.png","tribes/barbarians/ox/menu.png"},p(_"Ox")) ..
+ -- TODO: why is "Produces" empty?
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Big plot","pics/big.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/cattlebreeder/menu.png", 1, p(_"Cattle Breeder")) ..
- text_line(_"Worker uses:", "n/a") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, this building can produce %1$s in %2$s on average.":bformat(_"an Ox","30s"))
+ building_help_production_section(_"If all needed wares are delivered in time, this building can produce an ox in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 30):bformat(30)
+ ))
+ end
}
=== modified file 'tribes/barbarians/citadel/help.lua'
--- tribes/barbarians/citadel/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/citadel/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,22 @@
+-- The Barbarian Citadel
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description, "fortress", {"fortress"})
+ end
}
=== modified file 'tribes/barbarians/coalmine/help.lua'
--- tribes/barbarians/coalmine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/coalmine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,58 +1,35 @@
+-- The Barbarian Coal Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Coal Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/coalmine/coalmine_i_00.png", p(
- _([[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces.<br>
-]] ..
- [[Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]])
- )) ..
+ building_help_lore_string("barbarians", building_description, _[[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces. <br>
+Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits only %2$s of the resource. From there on out, it will only have a 5%% chance of finding %3$s.":bformat(_"Coal mine","1/3",_"Coal"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/coal/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Coal"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "coal",
+ _"Digs coal out of the ground in mountain terrain.",
+ _"This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any coal.":bformat("1/3")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/tavern/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/coalmine/menu.png"}, p(_"%s from a Tavern":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/coalmine/menu.png"}, p(_"%s from an Inn":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/coalmine/menu.png"}, p(_"%s from a Big Inn":format(_"Ration"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_coal2/resi_00.png","tribes/barbarians/coalmine/menu.png","tribes/barbarians/coal/menu.png"}, p(_"Coal")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/axfactory/menu.png"}, p(_"Axfactory")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/warmill/menu.png"}, p(_"War Mill")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/helmsmithy/menu.png"}, p(_"Helm Smithy")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/lime_kiln/menu.png"}, p(_"Lime Kiln")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:",_"Deep Coal Mine","tribes/barbarians/deep_coalmine/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Worker uses:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %1$s in %2$s on average.":bformat(_"Coal","32.5s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce coal in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 32.5):bformat(32.5)
+ ))
+ end
}
=== modified file 'tribes/barbarians/deep_coalmine/help.lua'
--- tribes/barbarians/deep_coalmine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/deep_coalmine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,61 +1,37 @@
+-- The Barbarian Deep Coal Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Deep Coal Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/deep_coalmine/deep_coalmine_i_00.png", p(--text identical to coalmine
- _([[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces.<br>
-]] ..
- [[Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]])
- )) ..
+ --text identical to coalmine
+ building_help_lore_string("barbarians", building_description, _[[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces. <br>
+Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits only %2$s of the resource. From there on out, it will only have a 5%% chance of finding %3$s.":bformat(_"Deep Coal Mine","2/3",_"Coal"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/coal/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Coal"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ -- Keeping the parameters here hardcoded for the moment, too hard to get from C++.
+ building_help_general_string("barbarians", building_description, "coal",
+ _"Digs coal out of the ground in mountain terrain.",
+ _"This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any coal.":bformat("2/3")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/inn/menu.png","tribes/barbarians/snack/menu.png","tribes/barbarians/deep_coalmine/menu.png"}, p(_"%s from an Inn":format(_"Snack"))) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/snack/menu.png","tribes/barbarians/deep_coalmine/menu.png"}, p(_"%s from a Big Inn":format(_"Snack"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_coal2/resi_00.png","tribes/barbarians/deep_coalmine/menu.png","tribes/barbarians/coal/menu.png"}, p(_"Coal")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/axfactory/menu.png"}, p(_"Axfactory")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/warmill/menu.png"}, p(_"War Mill")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/helmsmithy/menu.png"}, p(_"Helm Smithy")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/lime_kiln/menu.png"}, p(_"Lime Kiln")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:",_"Coal mine","tribes/barbarians/coalmine/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 4), 4) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 8), 8) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- text_line(_"Upgradeable to:",_"Deeper Coal Mine","tribes/barbarians/deeper_coalmine/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/chief-miner/menu.png", 1, p(_"%s or better":format(_"Chief Miner"))) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Workers use:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description, "coalmine", {"coalmine"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %1$s in %2$s on average.":bformat(_"Coal","19.5s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce coal in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 19.5):bformat(19.5)
+ ))
+ end
}
=== modified file 'tribes/barbarians/deep_goldmine/help.lua'
--- tribes/barbarians/deep_goldmine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/deep_goldmine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,56 +1,35 @@
+-- The Barbarian Deep Gold Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Deep Gold Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/deep_goldmine/deep_goldmine_i_00.png", p(--text identical to goldmine
- _[[‘Soft and supple.<br> And yet untouched by time and weather.<br> Rays of sun, wrought into eternity ...’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Excerpt from ‘Our Treasures Underground’,<br> a traditional Barbarian song.]])) ..
+ --text identical to goldmine
+ building_help_lore_string("barbarians", building_description, _[[‘Soft and supple.<br> And yet untouched by time and weather.<br> Rays of sun, wrought into eternity ...’]], _[[Excerpt from ‘Our Treasures Underground’,<br> a traditional Barbarian song.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits only %2$s of the resource. From there on out, it will only have a 5%% chance of finding %3$s.":bformat(_"Deep Gold Mine","2/3",_"Gold Ore"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/goldore/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Gold Ore"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "goldore",
+ _"Digs gold ore out of the ground in mountain terrain.",
+ _"This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any gold ore.":bformat("2/3")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/inn/menu.png","tribes/barbarians/snack/menu.png","tribes/barbarians/deep_goldmine/menu.png"}, p(_"%s from an Inn":format(_"Snack"))) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/snack/menu.png","tribes/barbarians/deep_goldmine/menu.png"}, p(_"%s from a Big Inn":format(_"Snack"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_gold2/resi_00.png","tribes/barbarians/deep_goldmine/menu.png","tribes/barbarians/goldore/menu.png"}, p(_"Gold Ore")) ..
- dependencies({"tribes/barbarians/goldore/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- rt(p(_"%s always goes to the %s. It has no other use.":format(_"Gold Ore",_"Smelting Works"))) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:",_"Gold Mine","tribes/barbarians/goldmine/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 4), 4) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 8), 8) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- text_line(_"Upgradeable to:",_"Deeper Gold Mine","tribes/barbarians/deeper_goldmine/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/chief-miner/menu.png", 1, p(_"%s or better":format(_"Chief Miner"))) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Workers use:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description, "goldmine", {"goldmine"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %1$s in %2$s on average.":bformat(_"Gold Ore","19.5s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce gold ore in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 19.5):bformat(19.5)
+ ))
+ end
}
=== modified file 'tribes/barbarians/deep_oremine/help.lua'
--- tribes/barbarians/deep_oremine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/deep_oremine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,56 +1,35 @@
+-- The Barbarian Deep Iron Ore Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Deep Iron Ore Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/deeper_oremine/deeper_oremine_i_00.png", p(--text identical to oremine
- _[[‘I look at my own pick wearing away day by day and I realize why my work is important.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic",_[[Quote from an anonymous miner.]])) ..
+ --text identical to oremine
+ building_help_lore_string("barbarians", building_description, _[[‘I look at my own pick wearing away day by day and I realize why my work is important.’]], _[[Quote from an anonymous miner.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits only %2$s of the resource. From there on out, it will only have a 5%% chance of finding %3$s.":bformat(_"Deep Iron Ore Mine","2/3",_"Iron Ore"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/ironore/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Iron Ore"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "ironore",
+ _"Digs iron ore out of the ground in mountain terrain.",
+ _"This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any iron ore.":bformat("2/3")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/inn/menu.png","tribes/barbarians/snack/menu.png","tribes/barbarians/deep_oremine/menu.png"}, p(_"%s from an Inn":format(_"Snack"))) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/snack/menu.png","tribes/barbarians/deep_oremine/menu.png"}, p(_"%s from a Big Inn":format(_"Snack"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_iron2/resi_00.png","tribes/barbarians/deep_oremine/menu.png","tribes/barbarians/ironore/menu.png"}, p(_"Iron Ore")) ..
- dependencies({"tribes/barbarians/ironore/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- rt(p(_"%s always goes to the %s. It has no other use.":format(_"Iron Ore",_"Smelting Works"))) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:",_"Iron Ore Mine","tribes/barbarians/oremine/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 4), 4) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 8), 8) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- text_line(_"Upgradeable to:",_"Deeper Iron Ore Mine","tribes/barbarians/deeper_oremine/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/chief-miner/menu.png", 1, p(_"%s or better":format(_"Chief Miner"))) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Workers use:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description, "oremine", {"oremine"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %s in %s on average.":format(_"Iron Ore","39.5s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce iron ore in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 39.5):bformat(39.5)
+ ))
+ end
}
=== modified file 'tribes/barbarians/deeper_coalmine/help.lua'
--- tribes/barbarians/deeper_coalmine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/deeper_coalmine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,61 +1,36 @@
+-- The Barbarian Deep Coal Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Deeper Coal Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/deeper_coalmine/deeper_coalmine_i_00.png", p(--text identical to coalmine
- _([[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces.<br>
-]] ..
- [[Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]])
- )) ..
+ --text identical to coalmine
+ building_help_lore_string("barbarians", building_description, _[[Ages ago, the Barbarians learned to delve into mountainsides for that black material that feeds their furnaces. <br>
+Wood may serve for a household fire and to keep you warm, but when it comes to working with iron or gold, there is no way around coal.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits all of the resource down to the deepest level. But even after having done so, it will still have a %2$s chance of finding some more %3$s.":bformat(_"Deeper Coal Mine","10%",_"Coal"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/coal/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Coal"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "coal",
+ _"Digs coal out of the ground in mountain terrain.",
+ _"This mine exploits all of the resource down to the deepest level. But even after having done so, it will still have a %s chance of finding some more coal.":bformat("10%")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/meal/menu.png","tribes/barbarians/deeper_coalmine/menu.png"}, p(_"%s from a Big Inn":format(_"Meal"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_coal2/resi_00.png","tribes/barbarians/deeper_coalmine/menu.png","tribes/barbarians/coal/menu.png"}, p(_"Coal")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/axfactory/menu.png"}, p(_"Axfactory")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/warmill/menu.png"}, p(_"War Mill")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/helmsmithy/menu.png"}, p(_"Helm Smithy")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- dependencies({"tribes/barbarians/coal/menu.png","tribes/barbarians/lime_kiln/menu.png"}, p(_"Lime Kiln")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:",_"Deep Coal Mine","tribes/barbarians/deep_coalmine/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 6), 6) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 12), 12) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 3), 3) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 6), 6) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/master-miner/menu.png", 1, p(_"%s and":format(_"Master Miner"))) ..
- image_line("tribes/barbarians/chief-miner/menu.png", 1, p(_"%s or better and":format(_"Chief Miner"))) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Workers use:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description, "deep_coalmine", {"coalmine", "deep_coalmine"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %s in %s on average.":format(_"Coal","14.4s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce coal in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 14.4):bformat(14.4)
+ ))
+ end
}
=== modified file 'tribes/barbarians/deeper_goldmine/help.lua'
--- tribes/barbarians/deeper_goldmine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/deeper_goldmine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,56 +1,35 @@
+-- The Barbarian Deeper Gold Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Deeper Gold Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/deeper_goldmine/deeper_goldmine_i_00.png", p(--text identical to goldmine
- _[[‘Soft and supple.<br> And yet untouched by time and weather.<br> Rays of sun, wrought into eternity ...’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Excerpt from ‘Our Treasures Underground’,<br> a traditional Barbarian song.]])) ..
+ --text identical to goldmine
+ building_help_lore_string("barbarians", building_description, _[[‘Soft and supple.<br> And yet untouched by time and weather.<br> Rays of sun, wrought into eternity ...’]], _[[Excerpt from ‘Our Treasures Underground’,<br> a traditional Barbarian song.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits all of the resource down to the deepest level. But even after having done so, it will still have a %2$s chance of finding some more %3$s.":bformat(_"Deeper Gold Mine","10%",_"Gold Ore"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/goldore/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Gold Ore"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "goldore",
+ _"Digs gold ore out of the ground in mountain terrain.",
+ _"This mine exploits all of the resource down to the deepest level. But even after having done so, it will still have a %s chance of finding some more gold ore.":bformat("10%")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/meal/menu.png","tribes/barbarians/deeper_goldmine/menu.png"}, p(_"%s from a Big Inn":format(_"Meal"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_gold2/resi_00.png","tribes/barbarians/deeper_goldmine/menu.png","tribes/barbarians/goldore/menu.png"}, p(_"Gold Ore")) ..
- dependencies({"tribes/barbarians/goldore/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- rt(p(_"%s always goes to the %s. It has no other use.":format(_"Gold Ore",_"Smelting Works"))) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:",_"Deep Gold Mine","tribes/barbarians/deep_goldmine/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 6), 6) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 12), 12) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 3), 3) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 6), 6) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/master-miner/menu.png", 1, p(_"%s and":format(_"Master Miner"))) ..
- image_line("tribes/barbarians/chief-miner/menu.png", 1, p(_"%s or better and":format(_"Chief Miner"))) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Workers use:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description, "deep_goldmine", {"goldmine", "deep_goldmine"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %s in %s on average.":format(_"Gold Ore","18.5s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce gold ore in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 18.5):bformat(18.5)
+ ))
+ end
}
=== modified file 'tribes/barbarians/deeper_oremine/help.lua'
--- tribes/barbarians/deeper_oremine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/deeper_oremine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,56 +1,35 @@
+-- The Barbarian Deeper Iron Ore Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Deeper Iron Ore Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/deeper_oremine/deeper_oremine_i_00.png", p(--text identical to oremine
- _[[‘I look at my own pick wearing away day by day and I realize why my work is important.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic",_[[Quote from an anonymous miner.]])) ..
+ --text identical to oremine
+ building_help_lore_string("barbarians", building_description, _[[‘I look at my own pick wearing away day by day and I realize why my work is important.’]], _[[Quote from an anonymous miner.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits all of the resource down to the deepest level. But even after having done so, it will still have a %2$s chance of finding some more %3$s.":bformat(_"Deeper Iron Ore Mine","10%",_"Iron Ore"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/ironore/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Iron Ore"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "ironore",
+ _"Digs iron ore out of the ground in mountain terrain.",
+ _"This mine exploits all of the resource down to the deepest level. But even after having done so, it will still have a %s chance of finding some more iron ore.":bformat("10%")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/meal/menu.png","tribes/barbarians/deeper_oremine/menu.png"}, p(_"%s from a Big Inn":format(_"Meal"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_iron2/resi_00.png","tribes/barbarians/deeper_oremine/menu.png","tribes/barbarians/ironore/menu.png"}, p(_"Iron Ore")) ..
- dependencies({"tribes/barbarians/ironore/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- rt(p(_"%s always goes to the %s. It has no other use.":format(_"Iron Ore",_"Smelting Works"))) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:",_"Deep Iron Ore Mine","tribes/barbarians/deep_oremine/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 6), 6) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 12), 12) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 3), 3) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 6), 6) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/master-miner/menu.png", 1, p(_"%s and":format(_"Master Miner"))) ..
- image_line("tribes/barbarians/chief-miner/menu.png", 1, p(_"%s or better and":format(_"Chief Miner"))) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Workers use:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description, "deep_oremine", {"oremine", "deep_oremine"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %s in %s on average.":format(_"Iron Ore","17.6s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce iron ore in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 17.6):bformat(17.6)
+ ))
+ end
}
=== modified file 'tribes/barbarians/donjon/help.lua'
--- tribes/barbarians/donjon/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/donjon/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,22 @@
+-- The Barbarian Donjon
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description)
+ end
}
=== modified file 'tribes/barbarians/farm/help.lua'
--- tribes/barbarians/farm/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/farm/help.lua 2014-05-27 14:17:43 +0000
@@ -1,51 +1,31 @@
+-- The Barbarian Farm
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Farm")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/farm/farm_i_00.png", p(
- _[[Text needed]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Source needed]])) ..
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Sow and harvest wheat.","tribes/barbarians/wheat/menu.png") ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "wheat",
+ _"Sow and harvest wheat.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- text_line(_"Incoming:", "n/a") ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/farm/menu.png","tribes/barbarians/wheat/menu.png"},p(_"Wheat")) ..
- dependencies({"tribes/barbarians/wheat/menu.png","tribes/barbarians/bakery/menu.png"},p(_"Bakery")) ..
- dependencies({"tribes/barbarians/wheat/menu.png","tribes/barbarians/micro-brewery/menu.png"},p(_"Micro Brewery")) ..
- dependencies({"tribes/barbarians/wheat/menu.png","tribes/barbarians/brewery/menu.png"},p(_"Brewery")) ..
- dependencies({"tribes/barbarians/wheat/menu.png","tribes/barbarians/cattlefarm/menu.png"},p(_"Cattle Farm")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Big plot","pics/big.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 3), 3) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/farmer/menu.png", 1, p(_"Farmer")) ..
- text_line(_"Worker uses:", _"Scythe","tribes/barbarians/scythe/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"Calculation needed")
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/fishers_hut/conf'
--- tribes/barbarians/fishers_hut/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/fishers_hut/conf 2014-05-27 14:17:43 +0000
@@ -22,5 +22,5 @@
worker=fish
[idle]
-pics=fisher_i_??.png # ???
+pics=fishers_hut_i_??.png # ???
hotspot=39 40
=== renamed file 'tribes/barbarians/fishers_hut/fisher_i_00.png' => 'tribes/barbarians/fishers_hut/fishers_hut_i_00.png'
=== modified file 'tribes/barbarians/fishers_hut/help.lua'
--- tribes/barbarians/fishers_hut/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/fishers_hut/help.lua 2014-05-27 14:17:43 +0000
@@ -1,50 +1,34 @@
+-- The Barbarian Fisher's Hut
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Fisher's Hut")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/fishers_hut/fisher_i_00.png", p(
- _[[‘What do you mean, my fish ain’t fresh?!’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Source needed]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘What do you mean, my fish ain’t fresh?!’]], _[[Source needed]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(h2(_"Purpose:")) ..
- image_line("tribes/barbarians/fish/menu.png",1,p(_"Fishes on the coast near the hut.")) ..
- text_line(_"Working radius:", "7") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "fish",
+ _"Fishes on the coast near the hut.",
+ _"The fisher’s hut needs water full of fish within the working radius.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(p(_"The Fisher’s Hut needs water full of fish in the vicinity.")) ..
- text_line(_"Incoming:", "n/a") ..
- rt(h2(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/fishers_hut/menu.png","tribes/barbarians/fish/menu.png"},p(_"Fish")) ..
- dependencies({"tribes/barbarians/fish/menu.png","tribes/barbarians/battlearena/menu.png"},p(_"Battle Arena")) ..
- dependencies({"tribes/barbarians/fish/menu.png","tribes/barbarians/trainingcamp/menu.png"},p(_"Training Camp")) ..
- dependencies({"tribes/barbarians/fish/menu.png","tribes/barbarians/tavern/menu.png"},p(_"Tavern")) ..
- dependencies({"tribes/barbarians/fish/menu.png","tribes/barbarians/inn/menu.png"},p(_"Inn")) ..
- dependencies({"tribes/barbarians/fish/menu.png","tribes/barbarians/big_inn/menu.png"},p(_"Big Inn")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Small plot","pics/small.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/fisher/menu.png", 1, p(_"Fisher")) ..
- text_line(_"Worker uses:",_"Fishing Rod","tribes/barbarians/fishing_rod/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"The fisher pauses 18s before going to work again.")
+ building_help_production_section(_"The fisher pauses %s before going to work again.":bformat(
+ ngettext("%d second", "%d seconds", 18):bformat(18)
+ ))
+ end
}
=== modified file 'tribes/barbarians/fortress/help.lua'
--- tribes/barbarians/fortress/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/fortress/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,22 @@
+-- The Barbarian Fortress
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description)
+ end
}
=== modified file 'tribes/barbarians/gamekeepers_hut/help.lua'
--- tribes/barbarians/gamekeepers_hut/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/gamekeepers_hut/help.lua 2014-05-27 14:17:43 +0000
@@ -1,44 +1,34 @@
+-- The Barbarian Gamekeeper's Hut
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Gamekeeper's Hut")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/gamekeepers_hut/gamekeeper_i_00.png", p(
- _[[‘He loves the animals and to breed them<br>as we love to cook and eat them.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Barbarian nursery rhyme]])) ..
+-- building_help_lore_string("barbarians", building_description, _[[‘He loves the animals and to breed them<br>
+--as we love to cook and eat them.’]],_[[Barbarian nursery rhyme]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Releases animals into the wild to steady the meat production.") ..
- text_line(_"Working radius:", "3") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "meat",
+ _"Releases animals into the wild to steady the meat production.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- text_line(_"Incoming:", "n/a") ..
- text_line(_"Outgoing:","n/a") ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Small plot","pics/small.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/gamekeeper/menu.png", 1, p(_"Gamekeeper")) ..
- text_line(_"Worker uses:","n/a") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"The gamekeeper pauses 52.5s before going to work again.")
+ building_help_production_section(_"The gamekeeper pauses %s before going to work again.":bformat(
+ ngettext("%d second", "%d seconds", 52.5):bformat(52.5)
+ ))
+ end
}
=== modified file 'tribes/barbarians/goldmine/help.lua'
--- tribes/barbarians/goldmine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/goldmine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,53 +1,34 @@
+-- "The Barbarian Gold Mine"
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Gold Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/goldmine/goldmine_i_00.png", p(
- _[[‘Soft and supple.<br> And yet untouched by time and weather.<br> Rays of sun, wrought into eternity ...’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Excerpt from ‘Our Treasures Underground’,<br> a traditional Barbarian song.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘Soft and supple.<br> And yet untouched by time and weather.<br> Rays of sun, wrought into eternity ...’]], _[[Excerpt from ‘Our Treasures Underground’,<br> a traditional Barbarian song.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits only %2$s of the resource. From there on out, it will only have a 5%% chance of finding %3$s.":bformat(_"Gold Mine","1/3",_"Gold Ore"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/goldore/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Gold Ore"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "goldore",
+ _"Digs gold ore out of the ground in mountain terrain.",
+ _"This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any gold ore.":bformat("1/3")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/tavern/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/goldmine/menu.png"}, p(_"%s from a Tavern":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/goldmine/menu.png"}, p(_"%s from an Inn":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/goldmine/menu.png"}, p(_"%s from a Big Inn":format(_"Ration"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_gold2/resi_00.png","tribes/barbarians/goldmine/menu.png","tribes/barbarians/goldore/menu.png"}, p(_"Gold Ore")) ..
- dependencies({"tribes/barbarians/goldore/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- rt(p(_"%s always goes to the %s. It has no other use.":format(_"Gold Ore",_"Smelting Works"))) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:",_"Deep Gold Mine","tribes/barbarians/deep_goldmine/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Worker uses:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %s in %s on average.":format(_"Gold Ore","65s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce gold ore in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 65):bformat(65)
+ ))
+ end
}
=== modified file 'tribes/barbarians/granitemine/help.lua'
--- tribes/barbarians/granitemine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/granitemine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,53 +1,34 @@
+-- The Barbarian Granite Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Granite Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/granitemine/granitemine_i_00.png", p(
- _[[‘I can handle tons of granite, man, but no more of your vain prattle.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[This phrase was the reply Rimbert the miner – later known as Rimbert the loner – gave, when he was asked to remain seated on an emergency meeting at Stonford in the year of the great flood. <br> The same man had all the 244 granite blocks ready only a week later, and they still fortify the city’s levee.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘I can handle tons of granite, man, but no more of your vain prattle.’]], _[[This phrase was the reply Rimbert the miner – later known as Rimbert the loner – gave, when he was asked to remain seated on an emergency meeting at Stonford in the year of the great flood. <br> The same man had all the 244 granite blocks ready only a week later, and they still fortify the city’s levee.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"A %1$s exploits all of the resource down to the deepest level. But even after having done so, it will still have a %2$s chance of finding some more %3$s.":bformat(_"Granite Mine","5%",_"Raw Stone") .. _" It cannot be upgraded.")) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/raw_stone/menu.png", 1, p(_"Carve %s out of the rock in mountain terrain.":format(_"Raw Stone"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "raw_stone",
+ _"Carve raw stone out of the rock in mountain terrain.",
+ _"This mine exploits all of the resource down to the deepest level. But even after having done so, it will still have a %s chance of finding some more raw stone.":bformat("5%") .. "<br>" .. _"It cannot be upgraded.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/tavern/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/granitemine/menu.png"}, p(_"%s from a Tavern":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/granitemine/menu.png"}, p(_"%s from an Inn":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/granitemine/menu.png"}, p(_"%s from a Big Inn":format(_"Ration"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_granit2/resi_00.png","tribes/barbarians/granitemine/menu.png","tribes/barbarians/raw_stone/menu.png"}, p(_"Raw Stone")) ..
- dependencies({"tribes/barbarians/raw_stone/menu.png","tribes/barbarians/constructionsite/menu.png"},p(_"Construction Site")) ..
- dependencies({"tribes/barbarians/raw_stone/menu.png","tribes/barbarians/lime_kiln/menu.png"}, p(_"Lime Kiln")) ..
+ building_help_dependencies_production("barbarians", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Worker uses:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %s in %s on average.":format(_"Raw Stone","20s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce raw stone in %s on average.":format(
+ ngettext("%d second", "%d seconds", 20):bformat(20)
+ ))
+ end
}
=== modified file 'tribes/barbarians/hardener/help.lua'
--- tribes/barbarians/hardener/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/hardener/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Wood Hardener
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "blackwood",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/headquarters/help.lua'
--- tribes/barbarians/headquarters/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/headquarters/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,22 @@
+-- The Barbarian Headquarters
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "carrier",
+ _"Accomodation for your people. Also stores your wares and tools.",
+ _"The headquarters is your main building." .. "<br>" .. _[[Text needed]]) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description)
+ end
}
=== modified file 'tribes/barbarians/headquarters_interim/help.lua'
--- tribes/barbarians/headquarters_interim/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/headquarters_interim/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,22 @@
+-- The Barbarian Interim Headquarters
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "carrier",
+ _"Accomodation for your people. Also stores your wares and tools.",
+ _"The headquarters is your main building." .. "<br>" .. _[[Text needed]]) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description)
+ end
}
=== modified file 'tribes/barbarians/helmsmithy/help.lua'
--- tribes/barbarians/helmsmithy/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/helmsmithy/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Helm Smithy
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "helm",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/hunters_hut/conf'
--- tribes/barbarians/hunters_hut/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/hunters_hut/conf 2014-05-27 14:17:43 +0000
@@ -23,5 +23,5 @@
worker=hunt
[idle]
-pics=hunter_i_??.png
+pics=hunters_hut_i_??.png
hotspot=45 40
=== modified file 'tribes/barbarians/hunters_hut/help.lua'
--- tribes/barbarians/hunters_hut/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/hunters_hut/help.lua 2014-05-27 14:17:43 +0000
@@ -1,52 +1,34 @@
+-- The Barbarian Hunter's Hut
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Hunter's Hut")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/hunters_hut/hunter_i_00.png", p(
- _[[‘As silent as a panther,<br> as deft as a weasel,<br> as swift as an arrow,<br> as deadly as a viper.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[‘The Art of Hunting’]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘As silent as a panther,<br> as deft as a weasel,<br> as swift as an arrow,<br> as deadly as a viper.’]], _[[‘The Art of Hunting’]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/meat/menu.png",1,p(_"Hunt animals to produce meat.")) ..
- text_line(_"Working radius:", "13") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "meat",
+ _"Hunts animals to produce meat.",
+ _"The hunter’s hut needs animals to hunt within the working radius.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(p(_"The Hunter’s Hut needs animals in the vicinity to hunt.")) ..
- text_line(_"Incoming:", "n/a") ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/hunters_hut/menu.png","tribes/barbarians/meat/menu.png"},p(_"Meat")) ..
- dependencies({"tribes/barbarians/meat/menu.png","tribes/barbarians/battlearena/menu.png"},p(_"Battle Arena")) ..
- dependencies({"tribes/barbarians/meat/menu.png","tribes/barbarians/trainingcamp/menu.png"},p(_"Training Camp")) ..
- dependencies({"tribes/barbarians/meat/menu.png","tribes/barbarians/tavern/menu.png"},p(_"Tavern")) ..
- dependencies({"tribes/barbarians/meat/menu.png","tribes/barbarians/inn/menu.png"},p(_"Inn")) ..
- dependencies({"tribes/barbarians/meat/menu.png","tribes/barbarians/big_inn/menu.png"},p(_"Big Inn")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Small plot","pics/small.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/hunter/menu.png", 1, p(_"Hunter")) ..
- text_line(_"Worker uses:",_"Hunting Spear","tribes/barbarians/hunting_spear/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"The hunter pauses 35s before going to work again.")
+ building_help_production_section(_"The hunter pauses %s before going to work again.":bformat(
+ ngettext("%d second", "%d seconds", 35):bformat(35)
+ ))
+ end
}
=== renamed file 'tribes/barbarians/hunters_hut/hunter_i_00.png' => 'tribes/barbarians/hunters_hut/hunters_hut_i_00.png'
=== modified file 'tribes/barbarians/inn/help.lua'
--- tribes/barbarians/inn/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/inn/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Inn
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "snack",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description, "tavern", {"tavern"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/lime_kiln/conf'
--- tribes/barbarians/lime_kiln/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/lime_kiln/conf 2014-05-27 14:17:43 +0000
@@ -29,9 +29,9 @@
produce=grout:2
[idle]
-pics=stonegrinder_i_??.png # ???
+pics=lime_kiln_i_??.png # ???
hotspot=45 53
[working]
-pics=stonegrinder_i_??.png # ???
+pics=lime_kiln_i_??.png # ???
hotspot=45 53
=== modified file 'tribes/barbarians/lime_kiln/help.lua'
--- tribes/barbarians/lime_kiln/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/lime_kiln/help.lua 2014-05-27 14:17:43 +0000
@@ -1,55 +1,34 @@
+-- The Barbarian Lime Kiln
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Lime Kiln")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/lime_kiln/stonegrinder_i_00.png", p(
- _[[‘Forming new stone from old with fire and water.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Ragnald the Child’s answer to the question, what he’s doing in the dirt. His ‘new stone’ now is an important building material.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘Forming new stone from old with fire and water.’]], _[[Ragnald the Child’s answer to the question, what he’s doing in the dirt. His ‘new stone’ now is an important building material.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _[[The Lime Kiln processes Raw Stones to make ‘Grout’, a substance that solidifies and so reinforces masonry.]],"tribes/barbarians/grout/menu.png") ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "grout",
+ _[[The Lime Kiln processes Raw Stones to make ‘Grout’, a substance that solidifies and so reinforces masonry.]],
+ _"The Lime Kiln’s output will only go to construction sites that need it. Those are predominantly houses that work with fire, and some military sites.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/granitemine/menu.png;tribes/barbarians/quarry/menu.png","tribes/barbarians/raw_stone/menu.png","tribes/barbarians/lime_kiln/menu.png"}) ..
- rt(p(_"Raw Stone from the Granite Mine or Quarry")) ..
- dependencies({"tribes/barbarians/coalmine/menu.png;tribes/barbarians/burners_house/menu.png","tribes/barbarians/coal/menu.png","tribes/barbarians/axfactory/menu.png"}) ..
- rt(p(_"%s from the Coal mine or the Charcoal Burner’s House":format(_"Coal"))) ..
- dependencies({"tribes/barbarians/well/menu.png","tribes/barbarians/water/menu.png","tribes/barbarians/lime_kiln/menu.png"},p(_"Water from the Well")) ..
- --rt() ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/lime_kiln/menu.png","tribes/barbarians/grout/menu.png"},p(_"Grout")) ..
- dependencies({"tribes/barbarians/grout/menu.png","tribes/barbarians/constructionsite/menu.png"},p(_"Construction Site")) ..
- rt(p(_"The Lime Kiln’s output will only go to construction sites that need it. Those are predominantly houses that work with fire, and some military sites.")) ..
+ building_help_dependencies_production("barbarians", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Medium plot","pics/medium.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/lime-burner/menu.png", 1, p(_"Lime-Burner")) ..
- text_line(_"Worker uses:", "n/a") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, this building can produce %1$s in about %2$s on average.":bformat(_"Grout","41s"))
+ building_help_production_section(_"If all needed wares are delivered in time, this building can produce grout in about %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 41):bformat(41)
+ ))
+ end
}
=== renamed file 'tribes/barbarians/lime_kiln/stonegrinder_i_00.png' => 'tribes/barbarians/lime_kiln/lime_kiln_i_00.png'
=== modified file 'tribes/barbarians/lumberjacks_hut/help.lua'
--- tribes/barbarians/lumberjacks_hut/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/lumberjacks_hut/help.lua 2014-05-27 14:17:43 +0000
@@ -1,49 +1,33 @@
+-- The Barbarian Lumberjack's Hut
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Lumberjack's Hut")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/lumberjacks_hut/lumberjacks_hut_i_00.png", p(
- _[[‘Take 200 hits to fell a tree and you’re a baby. Take 100 and you’re a soldier. Take 50 and you’re a hero. Take 20 and soon you will be a honorable lumberjack.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Krumta, carpenter of Chat’Karuth]])) ..
+ building_help_lore_string("barbarians", building_description, _[["Take 200 hits to fell a tree and you're a baby. Take 100 and you're a soldier. Take 50 and you're a hero. Take 20 and soon you will be a honorable lumberjack."]],_[[Krumta, carpenter of Chat'Karuth]]) ..
--General Section
- rt(h2(_"General")) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/log/menu.png",1,p(_"Fell trees in the surrounding area and process them into logs.")) ..
- text_line(_"Working radius:", "10") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "log",
+ _"Fell trees in the surrounding area and process them into logs.",
+ _"The lumberjack's hut needs trees to fell within the working radius.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(p(_"The Lumberjack’s Hut needs trees in the immediate vicinity to fell.")) ..
- text_line(_"Incoming:", "n/a") ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/lumberjacks_hut/menu.png","tribes/barbarians/log/menu.png"},p(_"Log")) ..
- dependencies({"tribes/barbarians/log/menu.png","tribes/barbarians/constructionsite/menu.png"},p(_"Construction Site")) ..
- dependencies({"tribes/barbarians/log/menu.png","tribes/barbarians/burners_house/menu.png"},p(_"Charcoal Burner’s House")) ..
- dependencies({"tribes/barbarians/log/menu.png","tribes/barbarians/metalworks/menu.png"},p(_"Metal Workshop")) ..
- dependencies({"tribes/barbarians/log/menu.png","tribes/barbarians/hardener/menu.png"},p(_"Wood Hardener")) ..
+ building_help_dependencies_production("barbarians", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Small plot","pics/small.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 3), 3) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/lumberjack/menu.png", 1, p(_"Lumberjack")) ..
- text_line(_"Worker uses:",_"Felling Ax","tribes/barbarians/felling_ax/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"The Lumberjack needs %s to fell a tree, not counting the time he needs to reach the destination and go home again.":format("12s"))
+ building_help_production_section(_"The lumberjack needs %s to fell a tree, not counting the time he needs to reach the destination and go home again.":format(
+ ngettext("%d second", "%d seconds", 12):bformat(12)
+ ))
+ end
}
=== modified file 'tribes/barbarians/metalworks/help.lua'
--- tribes/barbarians/metalworks/help.lua 2014-04-08 06:27:03 +0000
+++ tribes/barbarians/metalworks/help.lua 2014-05-27 14:17:43 +0000
@@ -1,71 +1,34 @@
+-- The Barbarian Metal Workshop
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Metal Workshop")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/metalworks/metalworks_i_00.png", p(
- _[[‘We make it work!’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Inscription on the threshold of the now ruined Olde Forge at Harradsheim, the eldest known smithy.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘We make it work!’]], _[[Inscription on the threshold of the now ruined Olde Forge at Harradsheim, the eldest known smithy.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"The Barbarian Metal Workshop is the basic production site in a series of three buildings and creates all the tools that Barbarians need. The others are for weapons.") ..
- rt("image=tribes/barbarians/bread_paddle/menu.png;tribes/barbarians/felling_ax/menu.png;tribes/barbarians/fire_tongs/menu.png;tribes/barbarians/fishing_rod/menu.png;tribes/barbarians/hammer/menu.png;tribes/barbarians/hunting_spear/menu.png;tribes/barbarians/kitchen_tools/menu.png;tribes/barbarians/pick/menu.png;tribes/barbarians/scythe/menu.png;tribes/barbarians/shovel/menu.png image-align=right",p("")) ..
- rt(p(_"It can make Bread Paddles, Felling Axes, Fire Tongs, Fishing Rods, Hammers, Hunting Spears, Kitchen Tools, Picks, Scythes and Shovels.")) ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "hammer",
+ _"The barbarian metal workshop can make bread paddles, felling axes, fire tongs, fishing rods, hammers, hunting spears, kitchen tools, picks, scythes and shovels.",
+ _"The barbarian metal workshop is the basic production site in a series of three buildings and creates all the tools that barbarians need. The others are for weapons.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/smelting_works/menu.png","tribes/barbarians/iron/menu.png","tribes/barbarians/metalworks/menu.png"},p(_"%s from the Smelting Works":format(_"Iron"))) ..
- dependencies({"tribes/barbarians/lumberjacks_hut/menu.png","tribes/barbarians/log/menu.png","tribes/barbarians/metalworks/menu.png"},p(_"%s from the Lumberjack’s hut":format(_"Log"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/bread_paddle/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/baker/menu.png" },p(_"Baker")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/felling_ax/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/lumberjack/menu.png" },p(_"Lumberjack")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/fire_tongs/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/smelter/menu.png" },p(_"Smelter")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/fishing_rod/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/fisher/menu.png" },p(_"Fisher")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/hammer/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/builder/menu.png" },p(_"Builder")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/hammer/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/geologist/menu.png" },p(_"Geologist")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/hammer/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/helmsmith/menu.png" },p(_"Helmsmith")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/hammer/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/blacksmith/menu.png" },p(_"Blacksmith")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/hunting_spear/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/hunter/menu.png" },p(_"Hunter")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/kitchen_tools/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/innkeeper/menu.png" },p(_"Innkeeper")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/pick/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/miner/menu.png" },p(_"Miner")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/pick/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/stonemason/menu.png" },p(_"Stonemason")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/scythe/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/farmer/menu.png" },p(_"Farmer")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/shovel/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/ranger/menu.png" },p(_"Ranger")) ..
- dependencies({"tribes/barbarians/metalworks/menu.png","tribes/barbarians/shovel/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/gardener/menu.png" },p(_"Gardener")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Medium plot","pics/medium.png") ..
- text_line(_"Upgraded from:", _"n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 1), 1) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 1), 1) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 1), 1) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 1), 1) ..
- text_line(_"Upgradeable to:",_"Axfactory","tribes/barbarians/axfactory/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/blacksmith/menu.png", 1, p(_"%s or better":format(_"Blacksmith"))) ..
- text_line(_"Worker uses:",_"Hammer","tribes/barbarians/hammer/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- dependencies({"tribes/barbarians/blacksmith/menu.png","tribes/barbarians/master-blacksmith/menu.png"}) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Blacksmith",_"Master Blacksmith","24"))) ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, this building can produce %1$s in about %2$s on average.":bformat(_"each item", "67s"))
+ building_help_production_section(_"If all needed wares are delivered in time, this building can produce each tool in about %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 67):bformat(67)
+ ))
+ end
}
=== modified file 'tribes/barbarians/micro-brewery/help.lua'
--- tribes/barbarians/micro-brewery/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/micro-brewery/help.lua 2014-05-27 14:17:43 +0000
@@ -1,54 +1,33 @@
+-- The Barbarian Micro Brewery
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Micro Brewery")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/micro-brewery/micro-brewery_i_00.png", p(
- _[[‘Let the first one drive away the hunger, the second one put you at ease; when you have swallowed up your third one, it’s time for the next shift!’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Widespread toast among Miners]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘Let the first one drive away the hunger, the second one put you at ease; when you have swallowed up your third one, it’s time for the next shift!’]], _[[Widespread toast among Miners]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"The Micro Brewery produces Beer of the lower grade. This beer is a vital component of the Snacks that Inns and Big Inns prepare for Miners in Deep Mines.","tribes/barbarians/beer/menu.png") ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "beer",
+ _"The micro brewery produces Beer of the lower grade. This beer is a vital component of the snacks that inns and big inns prepare for miners in deep mines.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/well/menu.png","tribes/barbarians/water/menu.png","tribes/barbarians/micro-brewery/menu.png"},p(_"Water from the Well")) ..
- dependencies({"tribes/barbarians/farm/menu.png","tribes/barbarians/wheat/menu.png","tribes/barbarians/micro-brewery/menu.png"},p(_"Wheat from the Farm")) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/micro-brewery/menu.png","tribes/barbarians/beer/menu.png"},p(_"Beer")) ..
- dependencies({"tribes/barbarians/beer/menu.png","tribes/barbarians/inn/menu.png"},p(_"Inn")) ..
- dependencies({"tribes/barbarians/beer/menu.png","tribes/barbarians/big_inn/menu.png"},p(_"Big Inn")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Medium plot","pics/medium.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 2), 2) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 2), 2) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 3), 3) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 3), 3) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:",_"Brewery","tribes/barbarians/brewery/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/brewer/menu.png", 1, p(_"Brewer")) ..
- text_line(_"Workers use:","n/a") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Brewer",_"Master Brewer","19"))) ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, this building can produce %s in about %s on average.":format(_"Beer","60s"))
+ building_help_production_section(_"If all needed wares are delivered in time, this building can produce beer in about %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 60):bformat(60)
+ ))
+ end
}
=== modified file 'tribes/barbarians/oremine/help.lua'
--- tribes/barbarians/oremine/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/oremine/help.lua 2014-05-27 14:17:43 +0000
@@ -1,53 +1,34 @@
+-- The Barbarian Iron Ore Mine
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Iron Ore Mine")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/deeper_oremine/deeper_oremine_i_00.png", p(
- _[[‘I look at my own pick wearing away day by day and I realize why my work is important.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic",_[[Quote from an anonymous miner.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘I look at my own pick wearing away day by day and I realize why my work is important.’]], _[[Quote from an anonymous miner.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(p(_"An %1$s exploits only %2$s of the resource. From there on out, it will only have a 5%% chance of finding %3$s.":bformat(_"Iron Ore Mine","1/3",_"Iron Ore"))) ..
- rt(h3(_"Purpose:")) ..
- image_line("tribes/barbarians/ironore/menu.png", 1, p(_"Dig %s out of the ground in mountain terrain.":format(_"Iron Ore"))) ..
- text_line(_"Working radius:", "2") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "ironore",
+ _"Digs iron ore out of the ground in mountain terrain.",
+ _"This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any iron ore.":bformat("1/3")) ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/tavern/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/oremine/menu.png"}, p(_"%s from a Tavern":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/oremine/menu.png"}, p(_"%s from an Inn":format(_"Ration"))) ..
- dependencies({"tribes/barbarians/big_inn/menu.png","tribes/barbarians/ration/menu.png","tribes/barbarians/oremine/menu.png"}, p(_"%s from a Big Inn":format(_"Ration"))) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_iron2/resi_00.png","tribes/barbarians/oremine/menu.png","tribes/barbarians/ironore/menu.png"}, p(_"Iron Ore")) ..
- dependencies({"tribes/barbarians/ironore/menu.png","tribes/barbarians/smelting_works/menu.png"}, p(_"Smelting Works")) ..
- rt(p(_"%s always goes to the %s. It has no other use.":format(_"Iron Ore",_"Smelting Works"))) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Mine plot","pics/mine.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:",_"Deep Iron Ore Mine","tribes/barbarians/deep_oremine/menu.png") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/miner/menu.png", 1, p(_"%s or better":format(_"Miner"))) ..
- text_line(_"Worker uses:",_"Pick","tribes/barbarians/pick/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Miner",_"Chief Miner","19") .. "<br>" .. _"%s to %s (%s EP)":format(_"Chief Miner",_"Master Miner","28"))) ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If the food supply is steady, this mine can produce %s in %s on average.":format(_"Iron Ore","65s"))
+ building_help_production_section(_"If the food supply is steady, this mine can produce iron ore in %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 65):bformat(65)
+ ))
+ end
}
=== modified file 'tribes/barbarians/port/help.lua'
--- tribes/barbarians/port/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/port/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,29 @@
+-- The Barbarian Port
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ -- TODO this building acts like a warehouse
+ building_help_general_string("barbarians", building_description, "ship",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ -- TODO expedition costs here?
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/quarry/conf'
--- tribes/barbarians/quarry/conf 2014-03-15 11:29:32 +0000
+++ tribes/barbarians/quarry/conf 2014-05-27 14:17:43 +0000
@@ -22,9 +22,9 @@
worker=cut
[idle]
-pics=b_quarry_i_??.png # ???
+pics=quarry_i_??.png # ???
hotspot=45 40
[build]
-pics=b_quarry_b_??.png # ???
+pics=quarry_b_??.png # ???
hotspot=44 36
=== modified file 'tribes/barbarians/quarry/help.lua'
--- tribes/barbarians/quarry/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/quarry/help.lua 2014-05-27 14:17:43 +0000
@@ -1,47 +1,33 @@
+-- The Barbarian Quarry
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Quarry")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/quarry/b_quarry_i_00.png", p(
- _[[Text needed]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Source needed]])) ..
+ building_help_lore_string("barbarians", building_description, _[[Text needed]],_[[Source needed]]) ..
+
--General Section
- rt(h2(_"General")) ..
- rt(h2(_"Purpose:")) ..
- image_line("tribes/barbarians/raw_stone/menu.png",1,p(_"Carve %s out of stones lying near the hut.":format(_"Raw Stone"))) ..
- text_line(_"Working radius:", "6") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "raw_stone",
+ _"Carves raw stone out of rocks in the vicinity.", _"The quarry needs stones to cut within the working radius.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(p(_"The Quarry needs stones in the vicinity.")) ..
- text_line(_"Incoming:", "n/a") ..
- rt(h2(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/quarry/menu.png","tribes/barbarians/raw_stone/menu.png"},p(_"Raw Stone")) ..
- dependencies({"tribes/barbarians/raw_stone/menu.png","tribes/barbarians/constructionsite/menu.png"},p(_"Construction Site")) ..
- dependencies({"tribes/barbarians/raw_stone/menu.png","tribes/barbarians/lime_kiln/menu.png"}, p(_"Lime Kiln")) ..
+ building_help_dependencies_production("barbarians", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Small plot","pics/small.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/stonemason/menu.png", 1, p(_"Stonemason")) ..
- text_line(_"Worker uses:",_"Pick","tribes/barbarians/pick/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"The stonemason pauses 25s before going to work again.")
+ building_help_production_section(_"The stonemason pauses %s before going back to work again.":bformat(
+ ngettext("%d second", "%d seconds", 65):bformat(65)
+ ))
+ end
}
=== renamed file 'tribes/barbarians/quarry/b_quarry_b_00.png' => 'tribes/barbarians/quarry/quarry_b_00.png'
=== renamed file 'tribes/barbarians/quarry/b_quarry_b_01.png' => 'tribes/barbarians/quarry/quarry_b_01.png'
=== renamed file 'tribes/barbarians/quarry/b_quarry_i_00.png' => 'tribes/barbarians/quarry/quarry_i_00.png'
=== modified file 'tribes/barbarians/rangers_hut/conf'
--- tribes/barbarians/rangers_hut/conf 2014-03-15 11:29:32 +0000
+++ tribes/barbarians/rangers_hut/conf 2014-05-27 14:17:43 +0000
@@ -21,9 +21,9 @@
worker=plant
[idle]
-pics=b_ranger_i_??.png # ???
+pics=rangers_hut_i_??.png # ???
hotspot=43 40
[build]
-pics=b_ranger_b_??.png # ???
+pics=rangers_hut_b_??.png # ???
hotspot=40 33
=== modified file 'tribes/barbarians/rangers_hut/help.lua'
--- tribes/barbarians/rangers_hut/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/rangers_hut/help.lua 2014-05-27 14:17:43 +0000
@@ -1,44 +1,35 @@
+-- The Barbarian Ranger's Hut
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Ranger's Hut")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/rangers_hut/b_ranger_i_00.png", p(
- --"Wer zwei Halme dort wachsen lässt, wo sonst nur einer wächst, der ist größer als der größte Feldherr!" – Friedrich der Große
- _[[‘He who can grow two trees where normally only one will grow exceeds the most important general!’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Chat’Karuth in a conversation with a Ranger]])) ..
+ --"Wer zwei Halme dort wachsen lässt, wo sonst nur einer wächst, der ist größer als der größte Feldherr!" – Friedrich der Große
+ building_help_lore_string("barbarians", building_description, _[[‘He who can grow two trees where normally only one will grow exceeds the most important general!’]],_[[Chat’Karuth in a conversation with a Ranger]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Plant trees in the surrounding area.") ..
- text_line(_"Working radius:", "5") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "log",
+ _"Plants trees in the surrounding area.",
+ _"The ranger’s hut needs free space within the working radius to plant the trees.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(p(_"The Ranger’s Hut needs free space in the immediate vicinity to plant the trees.")) ..
- text_line(_"Incoming:", "n/a") ..
- text_line(_"Outgoing:","n/a") ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Small plot","pics/small.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/ranger/menu.png", 1, p(_"Ranger")) ..
- text_line(_"Worker uses:",_"Shovel","tribes/barbarians/shovel/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"The Ranger needs %s to plant a tree, not counting the time he needs to reach the destination and go home again.":format("5s"))
+ building_help_production_section(_"The ranger needs %s to plant a tree, not counting the time he needs to reach the destination and go home again.":bformat(
+ ngettext("%d second", "%d seconds", 5):bformat(5)
+ ))
+ end
}
=== renamed file 'tribes/barbarians/rangers_hut/b_ranger_b_00.png' => 'tribes/barbarians/rangers_hut/rangers_hut_b_00.png'
=== renamed file 'tribes/barbarians/rangers_hut/b_ranger_b_01.png' => 'tribes/barbarians/rangers_hut/rangers_hut_b_01.png'
=== renamed file 'tribes/barbarians/rangers_hut/b_ranger_i_00.png' => 'tribes/barbarians/rangers_hut/rangers_hut_i_00.png'
=== modified file 'tribes/barbarians/reed_yard/help.lua'
--- tribes/barbarians/reed_yard/help.lua 2014-04-08 06:28:45 +0000
+++ tribes/barbarians/reed_yard/help.lua 2014-05-27 14:17:43 +0000
@@ -1,48 +1,34 @@
+-- The Barbarian Reed Yard
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Reed Yard")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/reed_yard/reed_yard_i_00.png", p(
- _[[‘We grow roofs’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Slogan of the Guild of Gardeners]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘We grow roofs’]],_[[Slogan of the Guild of Gardeners]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"The Reed Yard cultivates reed that serves two different purposes for the Barbarian tribe.<br>It is the traditional material for roofing, and it is woven into the extremely durable cloth that they use for their ships’ sails.","tribes/barbarians/thatchreed/menu.png") ..
- text_line(_"Working radius:", "1") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "thatchreed",
+ _"The Reed Yard cultivates reed that serves two different purposes for the Barbarian tribe.",
+ "Thatch reed is the traditional material for roofing, and it is woven into the extremely durable cloth that they use for their ships’ sails.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- text_line(_"Incoming:","n/a") ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/reed_yard/menu.png","tribes/barbarians/thatchreed/menu.png"},p(_"Thatch Reed")) ..
- dependencies({"tribes/barbarians/thatchreed/menu.png","tribes/barbarians/constructionsite/menu.png"},p(_"Construction Site")) ..
- rt(p(_"The Reed Yard’s output will only go to construction sites that need it.")) ..
- dependencies({"tribes/barbarians/thatchreed/menu.png","tribes/barbarians/weaving-mill/menu.png"},p(_"Weaving Mill")) ..
+ building_help_dependencies_production("barbarians", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Medium plot","pics/medium.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 5), 5) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 1), 1) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 3), 3) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/gardener/menu.png", 1, p(_"Gardener")) ..
- text_line(_"Worker uses:", _"Shovel","tribes/barbarians/shovel/menu.png") ..
- text_line(_"Experience levels:","n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"A Reed Yard can produce a sheaf of Thatch Reed in about %s on average.":format("65s"))
+ building_help_production_section(_"A reed yard can produce a sheaf of thatch reed in about %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 65):bformat(65)
+ ))
+ end
}
=== modified file 'tribes/barbarians/scouts_hut/help.lua'
--- tribes/barbarians/scouts_hut/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/scouts_hut/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Scout's Hut
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "scout",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/sentry/help.lua'
--- tribes/barbarians/sentry/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/sentry/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,22 @@
+-- The Barbarian Sentry
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description)
+ end
}
=== added file 'tribes/barbarians/ship/menu.png'
Binary files tribes/barbarians/ship/menu.png 1970-01-01 00:00:00 +0000 and tribes/barbarians/ship/menu.png 2014-05-27 14:17:43 +0000 differ
=== modified file 'tribes/barbarians/shipyard/help.lua'
--- tribes/barbarians/shipyard/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/shipyard/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,32 @@
+-- The Barbarian Ship Yard
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+-- TODO crashes because of missing image
+ --building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "shipwright",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/smelting_works/help.lua'
--- tribes/barbarians/smelting_works/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/smelting_works/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Smelting Works
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "iron",
+ _"Smelts iron ore into iron and gold ore into gold.") ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/tavern/help.lua'
--- tribes/barbarians/tavern/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/tavern/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Tavern
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "ration",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== modified file 'tribes/barbarians/trainingcamp/help.lua'
--- tribes/barbarians/trainingcamp/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/trainingcamp/help.lua 2014-05-27 14:17:43 +0000
@@ -1,64 +1,49 @@
+-- The Barbarian Training Camp
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Training Camp")) ..
+ func = function(building_description)
+ -- need to get this again, so the building description will be of type "trainingsite"
+ local building_description = wl.Game():get_building_description("barbarians", building_description.name)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/trainingcamp/trainingcamp_i_00.png", p(
- _[[‘He who is strong shall neither forgive nor forget, but revenge injustice suffered – in the past and for all future.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Chief Chat’Karuth in a speech to his army.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘He who is strong shall neither forgive nor forget, but revenge injustice suffered – in the past and for all future.’]], _[[Chief Chat’Karuth in a speech to his army.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Trains soldiers in Attack up to level 5, and in Health up to level 3.<br>Equips the soldiers with all necessary weapons and armor parts.") ..
- rt("<p font-weight=bold font-decoration=underline font-size=12>" .. _"Note:" .. "</p><p font-size=12>" ..
- _"Barbarian soldiers cannot be trained in ‘Defense’ and will remain at their initial level."
- .. "<br><br></p>") ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "soldier",
+ _"Trains soldiers in ‘Attack’ and in ‘Health’."
+ .. " " .."Equips the soldiers with all necessary weapons and armor parts.",
+ _"Barbarian soldiers cannot be trained in ‘Defense’ and will remain at their initial level.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- dependencies({"tribes/barbarians/soldier/untrained.png","tribes/barbarians/trainingcamp/menu.png","tribes/barbarians/soldier/fulltrained-evade.png"}) ..
- dependencies({"tribes/barbarians/soldier/untrained+evade.png","tribes/barbarians/trainingcamp/menu.png","tribes/barbarians/soldier/fulltrained.png"}) ..
- rt(h3(_"Training Attack:")) ..
- dependencies({"tribes/barbarians/axfactory/menu.png","tribes/barbarians/sharpax/menu.png;tribes/barbarians/broadax/menu.png","tribes/barbarians/trainingcamp/menu.png"}) ..
- rt(p(_"Provided by the Axfactory")) ..
- dependencies({"tribes/barbarians/warmill/menu.png","tribes/barbarians/sharpax/menu.png;tribes/barbarians/broadax/menu.png;tribes/barbarians/bronzeax/menu.png;tribes/barbarians/battleax/menu.png;tribes/barbarians/warriorsax/menu.png","tribes/barbarians/trainingcamp/menu.png"}) ..
- rt(p(_"Provided by the War Mill")) ..
- rt(h3(_"Training Health:")) ..
- dependencies({"tribes/barbarians/helmsmithy/menu.png","tribes/barbarians/helm/menu.png;tribes/barbarians/mask/menu.png;tribes/barbarians/warhelm/menu.png","tribes/barbarians/trainingcamp/menu.png"}) ..
- rt(p(_"Provided by the Helm Smithy")) ..
- rt(h3(_"Training Both")) ..
- image_line("tribes/barbarians/pittabread/menu.png",1,p(_"%s and":format(_"Pitta Bread"))) ..
- image_line("tribes/barbarians/fish/menu.png;tribes/barbarians/meat/menu.png",1,p(_"%s or %s":format(_"Fish",_"Meat"))) ..
+ -- We would need to parse the production programs to autpmate the parameters here; so we do it manually
+ dependencies_training("barbarians", building_description, "fulltrained-evade", "untrained+evade") ..
+
+ rt(h3(_"Attack Training:")) ..
+ dependencies_training_food("barbarians", { {"fish", "meat"}, {"pittabread"}}) ..
+ dependencies_training_weapons("barbarians", building_description, "and", {"sharpax", "broadax"}, "axfactory") ..
+ dependencies_training_weapons("barbarians", building_description, "or",
+ {"sharpax", "broadax", "bronzeax", "battleax", "warriorsax"}, "warmill") ..
+
+ rt(h3(_"Health Training:")) ..
+ dependencies_training_food("barbarians", { {"fish", "meat"}, {"pittabread"}}) ..
+ dependencies_training_weapons("barbarians", building_description, "and", {"helm", "mask", "warhelm"}, "helmsmithy") ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Big plot","pics/big.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "gold", ngettext("%i Gold", "%i Gold", 4), 4) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 3), 3) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 6), 6) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 4), 4) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 6), 6) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "gold", ngettext("%i Gold", "%i Gold", 2), 2) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 2), 2) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 3), 3) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 3), 3) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/trainer/menu.png", 1, p(_"Trainer")) ..
- text_line(_"Worker uses:","n/a") ..
- text_line(_"Experience levels:", "n/a") ..
+ building_help_building_section("barbarians", building_description) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, a Training Camp can train one new soldier in %1$s and %2$s to the final level in %3$s on average.":bformat(_"Attack",_"Health",_"%1$im%2$is":bformat(4,40)))
+ building_help_production_section(_"If all needed wares are delivered in time, a training camp can train one new soldier in attack and health to the final level in %1$s and %2$s on average.":bformat(
+ ngettext("%d minute", "%d minutes", 4):bformat(4),
+ ngettext("%d second", "%d seconds", 40):bformat(40)
+ ))
+ end
}
=== modified file 'tribes/barbarians/warehouse/help.lua'
--- tribes/barbarians/warehouse/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/warehouse/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,21 @@
+-- The Barbarian Warehouse
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("barbarians", building_description, "log",
+ _"Warehouses store soldiers, wares and tools.") ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description)
+ end
}
=== modified file 'tribes/barbarians/warmill/help.lua'
--- tribes/barbarians/warmill/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/warmill/help.lua 2014-05-27 14:17:43 +0000
@@ -1,67 +1,36 @@
+-- The Barbarian War Mill
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian War Mill")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/warmill/warmill_i_00.png", p(
- _[[‘A new Warrior’s Ax brings forth the best in its wielder – or the worst in its maker.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[An old Barbarian proverb<br> meaning that you need to take some risks sometimes.]])) ..
+ building_help_lore_string("barbarians", building_description, _[[‘A new warrior’s ax brings forth the best in its wielder – or the worst in its maker.’]], _[[An old Barbarian proverb<br> meaning that you need to take some risks sometimes.]]) ..
+
--General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"The Barbarian War Mill is their most advanced production site for weapons. As such it needs to be upgraded from an Axfactory.") ..
- rt("image=tribes/barbarians/ax/menu.png;tribes/barbarians/sharpax/menu.png;tribes/barbarians/broadax/menu.png;tribes/barbarians/bronzeax/menu.png;tribes/barbarians/battleax/menu.png;tribes/barbarians/warriorsax/menu.png image-align=right",p("The War Mill produces all the axes that the Barbarians use for warfare.")) ..
- text_line(_"Working radius:", "n/a") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_general_string("barbarians", building_description, "ax",
+ _"The war mill produces all the axes that the barbarians use for warfare.",
+ _"The barbarian war mill is their most advanced production site for weapons. As such it needs to be upgraded from an axfactory.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- rt(h3(_"Incoming:")) ..
- dependencies({"tribes/barbarians/smelting_works/menu.png","tribes/barbarians/iron/menu.png","tribes/barbarians/warmill/menu.png"},p(_"%s from the Smelting Works":format(_"Iron"))) ..
- dependencies({"tribes/barbarians/smelting_works/menu.png","tribes/barbarians/gold/menu.png","tribes/barbarians/warmill/menu.png"},p(_"%s from the Smelting Works":format(_"Gold"))) ..
- dependencies({"tribes/barbarians/coalmine/menu.png;tribes/barbarians/burners_house/menu.png","tribes/barbarians/coal/menu.png","tribes/barbarians/warmill/menu.png"}) ..
- rt(p(_"Coal from the Coal mine or the Charcoal Burner’s House")) ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/warmill/menu.png","tribes/barbarians/ax/menu.png","tribes/barbarians/headquarters/menu.png","tribes/barbarians/soldier/menu.png"},p(_"Soldier")) ..
- dependencies({"tribes/barbarians/warmill/menu.png","tribes/barbarians/sharpax/menu.png;tribes/barbarians/broadax/menu.png;tribes/barbarians/bronzeax/menu.png;tribes/barbarians/battleax/menu.png;tribes/barbarians/warriorsax/menu.png","tribes/barbarians/trainingcamp/menu.png"}) ..
- rt(p(_"Training Camp")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Medium plot","pics/medium.png") ..
- text_line(_"Upgraded from:", _"Axfactory","tribes/barbarians/axfactory/menu.png") ..
- rt(h3(_"Upgrade cost:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 1), 1) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 1), 1) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 1), 1) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 2), 2) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 1), 1) ..
- rt(h3(_"Cost cumulative:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 3), 3) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 3), 3) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 3), 3) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 6), 6) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 3), 3) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "blackwood", ngettext("%i Blackwood", "%i Blackwood", 2), 2) ..
- help_building_line("barbarians", "thatchreed", ngettext("%i Thatch Reed", "%i Thatch Reeds", 2), 2) ..
- help_building_line("barbarians", "grout", ngettext("%i Grout", "%i Grout", 2), 2) ..
- help_building_line("barbarians", "raw_stone", ngettext("%i Raw Stone", "%i Raw Stones", 3), 3) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/master-blacksmith/menu.png", 1, p(_"%s and":format(_"Master Blacksmith"))) ..
- image_line("tribes/barbarians/blacksmith/menu.png", 1, p(_"%s or better":format(_"Blacksmith"))) ..
- text_line(_"Workers use:",_"Hammer","tribes/barbarians/hammer/menu.png") ..
- rt(h3(_"Experience levels:")) ..
- rt("text-align=right", p(_"%s to %s (%s EP)":format(_"Blacksmith",_"Master Blacksmith","24"))) ..
+ building_help_building_section("barbarians", building_description, "axfactory", {"metalworks", "axfactory"}) ..
+
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"If all needed wares are delivered in time, this building can produce %s in about %s on average.":format(_"each item","57s")) ..
- rt(p(_"All weapons require the same time for making, but the consumption of the same raw materials increases from step to step. The last two need gold."))
+ building_help_production_section(_"If all needed wares are delivered in time, this building can produce each ax in about %s on average.":bformat(
+ ngettext("%d second", "%d seconds", 57):bformat(57)
+ ) .. " " ..
+ _"All weapons require the same time for making, but the consumption of the same raw materials increases from step to step. The last two need gold."
+ )
+ end
}
=== modified file 'tribes/barbarians/weaving-mill/conf'
--- tribes/barbarians/weaving-mill/conf 2014-03-17 17:23:26 +0000
+++ tribes/barbarians/weaving-mill/conf 2014-05-27 14:17:43 +0000
@@ -29,13 +29,13 @@
produce=cloth
[idle]
-pics=i_??.png
+pics=weaving-mill_i_??.png
hotspot=36 74
[build]
-pics=b_??.png
+pics=weaving-mill_b_??.png
hotspot=36 74
[working]
-pics=w_??.png
+pics=weaving-mill_w_??.png
hotspot=36 74
=== modified file 'tribes/barbarians/weaving-mill/help.lua'
--- tribes/barbarians/weaving-mill/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/weaving-mill/help.lua 2014-05-27 14:17:43 +0000
@@ -1,9 +1,31 @@
+-- The Barbarian Weaving Mill
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- rt("image=tribes/barbarians/constructionsite/idle_with_worker_00.png",p(_"The help text of this building is under construction."))
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("barbarians", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("barbarians", building_description, "cloth",
+ _"Weaves cloth out of thatch reed.") ..
+
+ --Dependencies
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
+ --Building Section
+ building_help_building_section("barbarians", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
}
=== renamed file 'tribes/barbarians/weaving-mill/b_00.png' => 'tribes/barbarians/weaving-mill/weaving-mill_b_00.png'
=== renamed file 'tribes/barbarians/weaving-mill/i_00.png' => 'tribes/barbarians/weaving-mill/weaving-mill_i_00.png'
=== renamed file 'tribes/barbarians/weaving-mill/w_00.png' => 'tribes/barbarians/weaving-mill/weaving-mill_w_00.png'
=== modified file 'tribes/barbarians/well/help.lua'
--- tribes/barbarians/well/help.lua 2014-03-25 06:18:48 +0000
+++ tribes/barbarians/well/help.lua 2014-05-27 14:17:43 +0000
@@ -1,49 +1,34 @@
+-- The Barbarian Well
+
include "scripting/formatting.lua"
include "scripting/format_help.lua"
set_textdomain("tribe_barbarians")
return {
- text =
- --rt(h1(_"The Barbarian Well")) ..
+ func = function(building_description)
+ return
+
--Lore Section
- rt(h2(_"Lore")) ..
- rt("image=tribes/barbarians/well/well_i_00.png", p(
- _[[‘Oh how sweet is the source of life,<br> that comes down from the sky <br> and lets the earth drink.’]])) ..
- rt("text-align=right",p("font-size=10 font-style=italic", _[[Song written by Sigurd the Bard<br>when the first rain fell after the Great Drought in the 21st year of Chat’Karuth’s reign.]])) ..
- --General Section
- rt(h2(_"General")) ..
- text_line(_"Purpose:", _"Draw Water out of the deep.","tribes/barbarians/water/menu.png") ..
- text_line(_"Working radius:", "1") ..
- text_line(_"Conquer range:", "n/a") ..
- text_line(_"Vision range:", "4") ..
+ building_help_lore_string("barbarians", building_description, _[[‘Oh how sweet is the source of life,<br> that comes down from the sky <br> and lets the earth drink.’]], _[[Song written by Sigurd the Bard<br>when the first rain fell after the Great Drought in the 21st year of Chat’Karuth’s reign.]]) ..
+
+ --General Section
+ --General Section
+ building_help_general_string("barbarians", building_description, "water",
+ _"Draws water out of the deep.") ..
+
--Dependencies
- rt(h2(_"Dependencies")) ..
- text_line(_"Incoming:", "n/a") ..
- rt(h3(_"Outgoing:")) ..
- dependencies({"tribes/barbarians/resi_water1/resi_00.png","tribes/barbarians/well/menu.png","tribes/barbarians/water/menu.png"},p(_"Water")) ..
- dependencies({"tribes/barbarians/water/menu.png","tribes/barbarians/bakery/menu.png"},p(_"Bakery")) ..
- dependencies({"tribes/barbarians/water/menu.png","tribes/barbarians/micro-brewery/menu.png"},p(_"Micro Brewery")) ..
- dependencies({"tribes/barbarians/water/menu.png","tribes/barbarians/brewery/menu.png"},p(_"Brewery")) ..
- dependencies({"tribes/barbarians/water/menu.png","tribes/barbarians/cattlefarm/menu.png"},p(_"Cattle Farm")) ..
- dependencies({"tribes/barbarians/water/menu.png","tribes/barbarians/lime_kiln/menu.png"},p(_"Lime Kiln")) ..
+ building_help_dependencies_production("barbarians", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("barbarians", building_description) ..
+
--Building Section
- rt(h2(_"Building")) ..
- text_line(_"Space required:",_"Small plot","pics/small.png") ..
- text_line(_"Upgraded from:", "n/a") ..
- rt(h3(_"Build cost:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 4), 4) ..
+ building_help_building_section("barbarians", building_description) ..
- rt(h3(_"Dismantle yields:")) ..
- help_building_line("barbarians", "log", ngettext("%i Log", "%i Logs", 2), 2) ..
- text_line(_"Upgradeable to:","n/a") ..
- --Workers Section
- rt(h2(_"Workers")) ..
- rt(h3(_"Crew required:")) ..
- image_line("tribes/barbarians/carrier/menu.png", 1, p(_"Carrier")) ..
- text_line(_"Worker uses:", "n/a") ..
- text_line(_"Experience levels:","n/a") ..
--Production Section
- rt(h2(_"Production")) ..
- text_line(_"Performance:", _"The Carrier needs %s to get one bucket full of water.":format("40s"))
+ building_help_production_section(_"The carrier needs %s to get one bucket full of water.":bformat(
+ ngettext("%d second", "%d seconds", 40):bformat(40)
+ ))
+ end
}
=== added file 'tribes/empire/arena/help.lua'
--- tribes/empire/arena/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/arena/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,39 @@
+-- The Imperial Arena
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ -- need to get this again, so the building description will be of type "trainingsite"
+ local building_description = wl.Game():get_building_description("empire", building_description.name)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Trains soldiers in ‘Evade’." .. " " .. _"‘Evade’ increases the soldier’s chance not to be hit by the enemy and so to remain totally unaffected.",
+ _"Imperial soldiers cannot be trained in ‘Defense’ and will remain at the level with which they came.") ..
+
+ --Dependencies
+ -- We would need to parse the production programs to automate the parameters here; so we do it manually
+ -- TODO create images for this
+ -- dependencies_training("empire", building_description, "untrained+evade", "fulltrained-evade") ..
+
+ rt(h3(_"Evade Training:")) ..
+ dependencies_training_food("empire", { {"fish", "meat"}, {"bread"}}) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/armorsmithy/help.lua'
--- tribes/empire/armorsmithy/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/armorsmithy/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Armor Smithy
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ -- TODO rename pictures building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "helm",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/bakery/help.lua'
--- tribes/empire/bakery/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/bakery/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Bakery
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "bread",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/barracks/help.lua'
--- tribes/empire/barracks/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/barracks/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Imperial Barracks
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("empire", building_description)
+ end
+}
=== added file 'tribes/empire/barrier/help.lua'
--- tribes/empire/barrier/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/barrier/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,26 @@
+-- The Imperial Barrier
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ -- TODO this building can both be upgraded or built directly.
+ -- Display build cost, upgrade cost, and dismantle costs for both versions.
+ -- Dismantle returns for upgraded version: 2 stone, 1 wood, 1 marble
+ -- Dismantle returns for built version: 1 stone, 1 log, 1 wood
+ building_help_building_section("empire", building_description, "outpost", {"outpost"})
+ end
+}
=== added file 'tribes/empire/brewery/help.lua'
--- tribes/empire/brewery/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/brewery/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Brewery
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "beer",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/empire/burners_house/burner_i_00.png' => 'tribes/empire/burners_house/burners_house_i_00.png'
=== modified file 'tribes/empire/burners_house/conf'
--- tribes/empire/burners_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/burners_house/conf 2014-05-27 14:17:43 +0000
@@ -31,9 +31,9 @@
produce=coal
[idle]
-pics=burner_i_??.png # ???
+pics=burners_house_i_??.png # ???
hotspot=51 48
[working]
-pics=burner_i_??.png # ???
+pics=burners_house_i_??.png # ???
hotspot=51 48
=== added file 'tribes/empire/burners_house/help.lua'
--- tribes/empire/burners_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/burners_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Charcoal Burner's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "coal",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/castle/help.lua'
--- tribes/empire/castle/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/castle/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Imperial Castle
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("empire", building_description, "fortress", {"fortress"})
+ end
+}
=== added file 'tribes/empire/coalmine/help.lua'
--- tribes/empire/coalmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/coalmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Coal Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "coal",
+ _"Digs coal out of the ground in mountain terrain.") ..
+-- TODO calculate "This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any coal.":bformat("1/3"))
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/colosseum/help.lua'
--- tribes/empire/colosseum/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/colosseum/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,39 @@
+-- The Imperial Colosseum
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ -- need to get this again, so the building description will be of type "trainingsite"
+ local building_description = wl.Game():get_building_description("empire", building_description.name)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Trains soldiers in ‘Evade’." .. " " .. _"‘Evade’ increases the soldier’s chance not to be hit by the enemy and so to remain totally unaffected.",
+ _"Imperial soldiers cannot be trained in ‘Defense’ and will remain at the level with which they came.") ..
+
+ --Dependencies
+ -- We would need to parse the production programs to automate the parameters here; so we do it manually
+ -- TODO create images for this
+ -- dependencies_training("empire", building_description, "untrained+evade", "fulltrained-evade") ..
+
+ rt(h3(_"Evade Training:")) ..
+ dependencies_training_food("empire", { {"fish", "meat"}, {"bread"}}) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description, "arena", {"arena"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/deep_coalmine/help.lua'
--- tribes/empire/deep_coalmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/deep_coalmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Deep Coal Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]]) ..
+
+ --General Section
+ -- Keeping the parameters here hardcoded for the moment, too hard to get from C++.
+ building_help_general_string("empire", building_description, "coal",
+ _"Digs coal out of the ground in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description, "coalmine", {"coalmine"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/deep_goldmine/help.lua'
--- tribes/empire/deep_goldmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/deep_goldmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Deep Gold Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Text needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "goldore",
+ _"Digs gold ore out of the ground in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description, "goldmine", {"goldmine"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/deep_marblemine/help.lua'
--- tribes/empire/deep_marblemine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/deep_marblemine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Deep Marble Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Text needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "marble",
+ _"Digs marble and stones out of the ground in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description, "marblemine", {"marblemine"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/deep_oremine/help.lua'
--- tribes/empire/deep_oremine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/deep_oremine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Deep Iron Ore Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Text needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "ironore",
+ _"Digs iron ore out of the ground in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description, "oremine", {"oremine"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/donkeyfarm/help.lua'
--- tribes/empire/donkeyfarm/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/donkeyfarm/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Donkey Farm
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "donkey",
+ _"Breeds donkeys for adding them to the transportation system.") ..
+
+ --Dependencies
+ -- TODO: why is "Produces" empty?
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/farm/help.lua'
--- tribes/empire/farm/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/farm/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Farm
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "wheat",
+ _"Sow and harvest wheat.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/empire/fishers_house/conf'
--- tribes/empire/fishers_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/fishers_house/conf 2014-05-27 14:17:43 +0000
@@ -24,5 +24,5 @@
worker=fish
[idle]
-pics=fisher_i_??.png # ???
+pics=fishers_house_i_??.png # ???
hotspot=42 60
=== renamed file 'tribes/empire/fishers_house/fisher_i_00.png' => 'tribes/empire/fishers_house/fishers_house_i_00.png'
=== added file 'tribes/empire/fishers_house/help.lua'
--- tribes/empire/fishers_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/fishers_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Fisher's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "fish",
+ _"Fishes on the coast near the house.",
+ _"The fisher’s house needs water full of fish within the working radius.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/foresters_house/help.lua'
--- tribes/empire/foresters_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/foresters_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Forester's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "log",
+ _"Plants trees in the surrounding area.",
+ _"The foresters’s house needs free space within the working radius to plant the trees.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculaiton needed]])
+ end
+}
=== added file 'tribes/empire/fortress/help.lua'
--- tribes/empire/fortress/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/fortress/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Imperial Fortress
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("empire", building_description)
+ end
+}
=== added file 'tribes/empire/goldmine/help.lua'
--- tribes/empire/goldmine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/goldmine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Gold Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "goldore",
+ _"Digs gold ore out of the ground in mountain terrain.") ..
+-- TODO calculation needed "This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any gold ore.":bformat("1/3"))
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/headquarters/help.lua'
--- tribes/empire/headquarters/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/headquarters/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Imperial Headquarters
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "carrier",
+ _"Accomodation for your people. Also stores your wares and tools.",
+ _"The headquarters is your main building." .. "<br>" .. _[[Text needed]]) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description)
+ end
+}
=== added file 'tribes/empire/headquarters_shipwreck/help.lua'
--- tribes/empire/headquarters_shipwreck/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/headquarters_shipwreck/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Imperial Headquarters Shipwreck
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "carrier",
+ _"Although this ship ran aground, it still serves as accomodation for your people. It also stores your wares and tools.",
+ _"The headquarters shipwreck is your main building." .. "<br>" .. _[[Text needed]]) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description)
+ end
+}
=== modified file 'tribes/empire/hunters_house/conf'
--- tribes/empire/hunters_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/hunters_house/conf 2014-05-27 14:17:43 +0000
@@ -23,5 +23,5 @@
worker=hunt
[idle]
-pics=hunter_i_??.png
+pics=hunters_house_i_??.png
hotspot=54 55
=== added file 'tribes/empire/hunters_house/help.lua'
--- tribes/empire/hunters_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/hunters_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Hunter's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "meat",
+ _"Hunts animals to produce meat.",
+ _"The hunter’s house needs animals to hunt within the working radius.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/empire/hunters_house/hunter_i_00.png' => 'tribes/empire/hunters_house/hunters_house_i_00.png'
=== added file 'tribes/empire/inn/help.lua'
--- tribes/empire/inn/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/inn/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Inn
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "meal",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description, "tavern", {"tavern"}) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/empire/lumberjacks_house/conf'
--- tribes/empire/lumberjacks_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/lumberjacks_house/conf 2014-05-27 14:17:43 +0000
@@ -24,5 +24,5 @@
worker=chop
[idle]
-pics=lumberjack_i_??.png
+pics=lumberjacks_house_i_??.png
hotspot=40 59
=== added file 'tribes/empire/lumberjacks_house/help.lua'
--- tribes/empire/lumberjacks_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/lumberjacks_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Lumberjack's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]],_[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "log",
+ _"Fell trees in the surrounding area and process them into logs.",
+ _"The lumberjack's house needs trees to fell within the working radius.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/empire/lumberjacks_house/lumberjack_i_00.png' => 'tribes/empire/lumberjacks_house/lumberjacks_house_i_00.png'
=== added file 'tribes/empire/marblemine/help.lua'
--- tribes/empire/marblemine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/marblemine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Marble Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "marble",
+ _"Carve marble and stones out of the rock in mountain terrain.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/mill/help.lua'
--- tribes/empire/mill/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/mill/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Mill
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ -- TODO rename images building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "flour",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/oremine/help.lua'
--- tribes/empire/oremine/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/oremine/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Iron Ore Mine
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "ironore",
+ _"Digs iron ore out of the ground in mountain terrain.") ..
+-- TODO calculation needed "This mine exploits only %s of the resource. From there on out, it will only have a 5%% chance of finding any iron ore.":bformat("1/3"))
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/outpost/help.lua'
--- tribes/empire/outpost/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/outpost/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Imperial Outpost
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("empire", building_description)
+ end
+}
=== added file 'tribes/empire/piggery/help.lua'
--- tribes/empire/piggery/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/piggery/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Piggery
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "meat",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/port/help.lua'
--- tribes/empire/port/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/port/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,29 @@
+-- The Imperial Port
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ -- TODO this building acts like a warehouse
+ building_help_general_string("empire", building_description, "ship",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ -- TODO expedition costs here?
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/quarry/help.lua'
--- tribes/empire/quarry/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/quarry/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Quarry
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "stone",
+ _"Carves marble and stone out of rocks in the vicinity.", _"The quarry needs stones to cut within the working radius.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/sawmill/help.lua'
--- tribes/empire/sawmill/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/sawmill/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Sawmill
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "wood",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/scouts_house/help.lua'
--- tribes/empire/scouts_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/scouts_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Scout's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]],_[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "scout",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/sentry/help.lua'
--- tribes/empire/sentry/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/sentry/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,25 @@
+-- The Imperial Sentry
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ -- TODO this building can both be upgraded or built directly.
+ -- Display build cost, upgrade cost, and dismantle costs for both versions.
+ -- Dismantle returns the same for both versions
+ building_help_building_section("empire", building_description, "barracks", {"barracks"})
+ end
+}
=== added file 'tribes/empire/sheepfarm/help.lua'
--- tribes/empire/sheepfarm/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/sheepfarm/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Sheepfarm
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "wool",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/ship/menu.png'
Binary files tribes/empire/ship/menu.png 1970-01-01 00:00:00 +0000 and tribes/empire/ship/menu.png 2014-05-27 14:17:43 +0000 differ
=== added file 'tribes/empire/shipyard/help.lua'
--- tribes/empire/shipyard/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/shipyard/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Ship Yard
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+-- TODO crashes because of missing image
+ --building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "shipwright",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/smelting_works/help.lua'
--- tribes/empire/smelting_works/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/smelting_works/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Smelting Works
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "iron",
+ _"Smelts iron ore into iron and gold ore into gold.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/empire/stonemasons_house/conf'
--- tribes/empire/stonemasons_house/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/stonemasons_house/conf 2014-05-27 14:17:43 +0000
@@ -32,9 +32,9 @@
produce=marblecolumn
[idle]
-pics=stonemason_i_??.png # ???
+pics=stonemasons_house_i_??.png # ???
hotspot=58 61
[working]
-pics=stonemason_i_??.png # ???
+pics=stonemasons_house_i_??.png # ???
hotspot=58 61
=== added file 'tribes/empire/stonemasons_house/help.lua'
--- tribes/empire/stonemasons_house/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/stonemasons_house/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Stonemason's House
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "marblecolumn",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description, true) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/empire/stonemasons_house/stonemason_i_00.png' => 'tribes/empire/stonemasons_house/stonemasons_house_i_00.png'
=== added file 'tribes/empire/tavern/help.lua'
--- tribes/empire/tavern/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/tavern/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Tavern
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "ration",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/empire/toolsmithy/conf'
--- tribes/empire/toolsmithy/conf 2014-03-17 17:23:26 +0000
+++ tribes/empire/toolsmithy/conf 2014-05-27 14:17:43 +0000
@@ -160,9 +160,9 @@
return=skipped
[idle]
-pics=toolsmith_i_??.png
+pics=toolsmithy_i_??.png
hotspot=58 61
[working]
-pics=toolsmith_i_??.png
+pics=toolsmithy_i_??.png
hotspot=58 61
=== added file 'tribes/empire/toolsmithy/help.lua'
--- tribes/empire/toolsmithy/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/toolsmithy/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Toolsmithy
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "hammer",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/empire/toolsmithy/toolsmith_i_00.png' => 'tribes/empire/toolsmithy/toolsmithy_i_00.png'
=== added file 'tribes/empire/tower/help.lua'
--- tribes/empire/tower/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/tower/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,22 @@
+-- The Imperial Tower
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Garrisons soldiers to expand your territory.",
+ _"If you’re low on soldiers to occupy new military sites, use the downward arrow button to decrease the capacity. You can also click on a soldier to send him away.") ..
+
+ --Building Section
+ building_help_building_section("empire", building_description)
+ end
+}
=== added file 'tribes/empire/trainingcamp/help.lua'
--- tribes/empire/trainingcamp/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/trainingcamp/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,46 @@
+-- The Imperial Training Camp
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ -- need to get this again, so the building description will be of type "trainingsite"
+ local building_description = wl.Game():get_building_description("empire", building_description.name)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "soldier",
+ _"Trains soldiers in ‘Attack’ and in ‘Health’."
+ .. " " .."Equips the soldiers with all necessary weapons and armor parts.",
+ _"Imperial soldiers cannot be trained in ‘Defense’ and will remain at the level with which they came.") ..
+
+ --Dependencies
+ -- We would need to parse the production programs to automate the parameters here; so we do it manually
+ -- TODO make pictures dependencies_training("empire", building_description, "fulltrained-evade", "untrained+evade") ..
+
+ rt(h3(_"Attack Training:")) ..
+ dependencies_training_food("empire", { {"fish", "meat"}, {"bread"}}) ..
+ dependencies_training_weapons("empire", building_description, "and",
+ {"lance", "advanced_lance", "heavy_lance", "war_lance"}, "weaponsmithy") ..
+
+ rt(h3(_"Health Training:")) ..
+ dependencies_training_food("empire", { {"fish", "meat"}, {"bread"}}) ..
+ dependencies_training_weapons("empire", building_description, "and",
+ {"helm", "armor", "chain_armor", "plate_armor"}, "armorsmithy") ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/vineyard/help.lua'
--- tribes/empire/vineyard/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/vineyard/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Vineyard
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "grape",
+ _"Sow and harvest wheat.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/warehouse/help.lua'
--- tribes/empire/warehouse/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/warehouse/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,21 @@
+-- The Imperial Warehouse
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+ --General Section
+ building_help_general_string("empire", building_description, "log",
+ _"Warehouses store soldiers, wares and tools.") ..
+
+ --Building Section
+ building_help_building_section("empire", building_description)
+ end
+}
=== added file 'tribes/empire/weaponsmithy/help.lua'
--- tribes/empire/weaponsmithy/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/weaponsmithy/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Weapon Smithy
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ -- TODO rename pictures building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "wood_lance",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/weaving-mill/help.lua'
--- tribes/empire/weaving-mill/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/weaving-mill/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Weaving Mill
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ -- TODO rename pictures building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "cloth",
+ _"Weaves cloth out of wool.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== added file 'tribes/empire/well/help.lua'
--- tribes/empire/well/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/well/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,32 @@
+-- The Imperial Well
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ --General Section
+ building_help_general_string("empire", building_description, "water",
+ _"Draws water out of the deep.") ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== modified file 'tribes/empire/winery/conf'
--- tribes/empire/winery/conf 2013-07-23 19:04:12 +0000
+++ tribes/empire/winery/conf 2014-05-27 14:17:43 +0000
@@ -32,9 +32,9 @@
produce=wine
[idle]
-pics=vintagery_i_??.png # ???
+pics=winery_i_??.png # ???
hotspot=39 62
[working]
-pics=vintagery_i_??.png # ???
+pics=winery_i_??.png # ???
hotspot=39 62
=== added file 'tribes/empire/winery/help.lua'
--- tribes/empire/winery/help.lua 1970-01-01 00:00:00 +0000
+++ tribes/empire/winery/help.lua 2014-05-27 14:17:43 +0000
@@ -0,0 +1,31 @@
+-- The Imperial Winery
+
+include "scripting/formatting.lua"
+include "scripting/format_help.lua"
+
+set_textdomain("tribe_empire")
+
+return {
+ func = function(building_description)
+ return
+
+ --Lore Section
+ building_help_lore_string("empire", building_description, _[[Text needed]], _[[Source needed]]) ..
+
+ --General Section
+ building_help_general_string("empire", building_description, "wine",
+ _[[Text needed]]) ..
+
+ --Dependencies
+ building_help_dependencies_production("empire", building_description) ..
+
+ --Workers Section
+ building_help_crew_string("empire", building_description) ..
+
+ --Building Section
+ building_help_building_section("empire", building_description) ..
+
+ --Production Section
+ building_help_production_section(_[[Calculation needed]])
+ end
+}
=== renamed file 'tribes/empire/winery/vintagery_i_00.png' => 'tribes/empire/winery/winery_i_00.png'
Follow ups
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: SirVer, 2014-07-16
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: SirVer, 2014-07-16
-
[Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: noreply, 2014-07-16
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: SirVer, 2014-07-16
-
[Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: GunChleoc, 2014-07-12
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: GunChleoc, 2014-07-12
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: GunChleoc, 2014-07-11
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: SirVer, 2014-06-26
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: GunChleoc, 2014-06-05
-
Re: [Merge] lp:~widelands-dev/widelands/bug-1074353 into lp:widelands
From: SirVer, 2014-06-02