← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~weedfreak/widelands/recycling_centre into lp:widelands

 

R M has proposed merging lp:~weedfreak/widelands/recycling_centre into lp:widelands.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #1493221 in widelands: "Recycling of old items in the training areas"
  https://bugs.launchpad.net/widelands/+bug/1493221

For more details, see:
https://code.launchpad.net/~weedfreak/widelands/recycling_centre/+merge/335794

Test branch following discussion in https://wl.widelands.org/forum/topic/1597/.

Currently recycling is only about 25%$ efficient if you have enough coal, AI is limited to a small number of buildings.

If the principle of recycling is approved then more work is required on balance and AI.
-- 
Your team Widelands Developers is requested to review the proposed merge of lp:~weedfreak/widelands/recycling_centre into lp:widelands.
=== modified file 'data/tribes/atlanteans.lua'
--- data/tribes/atlanteans.lua	2017-11-23 09:13:06 +0000
+++ data/tribes/atlanteans.lua	2018-01-06 10:56:35 +0000
@@ -44,6 +44,8 @@
 --
 --    **ship**: The internal name of the tribe's ship.
 --
+--    **headquarters**: The internal name of the tribe's headquarters building. This unit needs to be defined in the ``buildings`` table too.
+--
 --    **port**: The internal name of the tribe's port building. This unit needs to be defined in the ``buildings`` table too.
 tribes:new_tribe {
    name = "atlanteans",
@@ -106,7 +108,10 @@
          "iron_ore",
          "iron",
          "gold_ore",
-         "gold"
+         "gold",
+          "scrap_metal_iron",
+          "scrap_metal_mixed",
+          "tabard_old",
       },
       {
          -- Tools
@@ -233,6 +238,7 @@
       "atlanteans_fishbreeders_house",
       "atlanteans_hunters_house",
       "atlanteans_well",
+      "atlanteans_armour_recycler",
       "atlanteans_gold_spinning_mill",
       "atlanteans_scouts_house",
 
@@ -242,6 +248,7 @@
       "atlanteans_mill",
       "atlanteans_bakery",
       "atlanteans_charcoal_kiln",
+      "atlanteans_recycling_centre",
       "atlanteans_smelting_works",
       "atlanteans_toolsmithy",
       "atlanteans_weaponsmithy",
@@ -347,6 +354,7 @@
    geologist = "atlanteans_geologist",
    soldier = "atlanteans_soldier",
    ship = "atlanteans_ship",
+   headquarters = "atlanteans_headquarters",
    port = "atlanteans_port",
    barracks = "atlanteans_barracks",
    ironore = "iron_ore",

=== modified file 'data/tribes/barbarians.lua'
--- data/tribes/barbarians.lua	2017-11-23 09:13:06 +0000
+++ data/tribes/barbarians.lua	2018-01-06 10:56:35 +0000
@@ -58,7 +58,9 @@
           "iron_ore",
           "iron",
           "gold_ore",
-          "gold"
+          "gold",
+          "scrap_metal_iron",
+          "scrap_metal_mixed",
       },
       {
          -- Tools
@@ -201,6 +203,7 @@
       "barbarians_big_inn",
       "barbarians_charcoal_kiln",
       "barbarians_smelting_works",
+      "barbarians_recycling_centre",
       "barbarians_metal_workshop",
       "barbarians_warmill",
       "barbarians_ax_workshop",

=== added directory 'data/tribes/buildings/productionsites/atlanteans/armour_recycler'
=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_00.png'
Binary files data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_00_pc.png'
Binary files data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_00_pc.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_00_pc.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_01.png'
Binary files data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_01.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_01.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_01_pc.png'
Binary files data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_01_pc.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/armour_recycler/build_01_pc.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/helptexts.lua'
--- data/tribes/buildings/productionsites/atlanteans/armour_recycler/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/atlanteans/armour_recycler/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,27 @@
+-- This include can be removed when all help texts have been defined.
+include "tribes/scripting/help/global_helptexts.lua"
+
+function building_helptext_lore()
+   -- TRANSLATORS#: Lore helptext for a building
+   return no_lore_text_yet()
+end
+
+function building_helptext_lore_author()
+   -- TRANSLATORS#: Lore author helptext for a building
+   return no_lore_author_text_yet()
+end
+
+function building_helptext_purpose()
+   -- TRANSLATORS: Purpose helptext for a building
+   return pgettext("building", "Recycles armour.")
+end
+
+function building_helptext_note()
+   -- TRANSLATORS#: Note helptext for a building
+   return ""
+end
+
+function building_helptext_performance()
+   -- TRANSLATORS#: Performance helptext for a building
+   return no_performance_text_yet()
+end

=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/idle_00.png'
Binary files data/tribes/buildings/productionsites/atlanteans/armour_recycler/idle_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/armour_recycler/idle_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/idle_00_pc.png'
Binary files data/tribes/buildings/productionsites/atlanteans/armour_recycler/idle_00_pc.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/armour_recycler/idle_00_pc.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/init.lua'
--- data/tribes/buildings/productionsites/atlanteans/armour_recycler/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/atlanteans/armour_recycler/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,74 @@
+dirname = path.dirname(__file__)
+
+tribes:new_productionsite_type {
+   msgctxt = "atlanteans_building",
+   name = "atlanteans_armour_recycler",
+   -- TRANSLATORS: This is a building name used in lists of buildings
+   descname = pgettext("atlanteans_building", "Armour Recycler"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   size = "small",
+
+   buildcost = {
+      log = 3,
+      granite = 1
+   },
+   return_on_dismantle = {
+      log = 2
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle_??.png"),
+         hotspot = { 41, 44 },
+      },
+      working = {
+         pictures = path.list_files(dirname .. "idle_??.png"), --TODO no animation yet
+         hotspot = { 57, 72 },
+      },
+      build = {
+         pictures = path.list_files(dirname .. "build_??.png"),
+         hotspot = { 41, 44 },
+      }
+   },
+
+   aihints = {
+      prohibited_till = 1500,
+      very_weak_ai_limit = 3,
+      weak_ai_limit = 2,
+      normal_ai_limit = 1
+   },
+
+   working_positions = {
+      atlanteans_weaver = 1
+   },
+
+   inputs = {
+      { name = "tabard_old", amount = 3 }
+   },
+   outputs = {
+      "spider_silk"
+   },
+
+   programs = {
+      work = {
+         -- TRANSLATORS: Completed/Skipped/Did not start working because ...
+         descname = pgettext("atlantians_building", "working"),
+         actions = {
+            "call=recycle_spidersilk",
+            "return=skipped"
+         }
+	},
+      recycle_spidersilk = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling spidersilk because ...
+         descname = pgettext("atlanteans_building", "recycling spidersilk"),
+        actions = {
+	    "return=skipped unless site has tabard_old",
+            "sleep=40000",
+            "consume=tabard_old:2",
+            "animate=working 15000",
+            "produce=spider_silk"
+         }
+      },
+   },
+}

=== added file 'data/tribes/buildings/productionsites/atlanteans/armour_recycler/menu.png'
Binary files data/tribes/buildings/productionsites/atlanteans/armour_recycler/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/armour_recycler/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/buildings/productionsites/atlanteans/recycling_centre'
=== added file 'data/tribes/buildings/productionsites/atlanteans/recycling_centre/helptexts.lua'
--- data/tribes/buildings/productionsites/atlanteans/recycling_centre/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/atlanteans/recycling_centre/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,27 @@
+-- This include can be removed when all help texts have been defined.
+include "tribes/scripting/help/global_helptexts.lua"
+
+function building_helptext_lore()
+   -- #TRANSLATORS: Lore helptext for a building
+   return no_lore_text_yet()
+end
+
+function building_helptext_lore_author()
+   -- #TRANSLATORS: Lore author helptext for a building
+   return no_lore_author_text_yet()
+end
+
+function building_helptext_purpose()
+   -- #TRANSLATORS: Purpose helptext for a building
+   return pgettext("atlantians_building", "Recycles old armour and weapon parts from training sites into iron, gold and spider silk.")
+end
+
+function building_helptext_note()
+   -- #TRANSLATORS: Note helptext for a building
+   return ""
+end
+
+function building_helptext_performance()
+   -- #TRANSLATORS: Performance helptext for a building
+   return no_performance_text_yet()
+end

=== added file 'data/tribes/buildings/productionsites/atlanteans/recycling_centre/idle_00.png'
Binary files data/tribes/buildings/productionsites/atlanteans/recycling_centre/idle_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/recycling_centre/idle_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/recycling_centre/idle_00_pc.png'
Binary files data/tribes/buildings/productionsites/atlanteans/recycling_centre/idle_00_pc.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/recycling_centre/idle_00_pc.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/atlanteans/recycling_centre/init.lua'
--- data/tribes/buildings/productionsites/atlanteans/recycling_centre/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/atlanteans/recycling_centre/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,88 @@
+dirname = path.dirname(__file__)
+
+tribes:new_productionsite_type {
+   msgctxt = "atlanteans_building",
+   name = "atlanteans_recycling_centre",
+   -- TRANSLATORS: This is a building name used in lists of buildings
+   descname = pgettext("atlanteans_building", "Recycling Centre"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   size = "medium",
+
+   buildcost = {
+      granite = 4,
+      log = 1,
+      planks = 1,
+      spidercloth = 1
+   },
+   return_on_dismantle = {
+      granite = 3,
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle_??.png"),
+         hotspot = { 57, 72 },
+      },
+      working = {
+         pictures = path.list_files(dirname .. "idle_??.png"), --TODO no animation yet
+         hotspot = { 57, 72 },
+      }
+   },
+
+   aihints = {
+      prohibited_till = 1200,
+      very_weak_ai_limit = 4,
+      weak_ai_limit = 3,
+      normal_ai_limit = 2
+   },
+
+   working_positions = {
+      atlanteans_smelter = 1
+   },
+
+   inputs = {
+      { name = "coal", amount = 8 },
+      { name = "scrap_metal_iron", amount = 6 },
+      { name = "scrap_metal_mixed", amount = 6 },
+   },
+   outputs = {
+      "iron",
+      "gold",
+   },
+
+   programs = {
+      work = {
+         -- TRANSLATORS: Completed/Skipped/Did not start working because ...
+         descname = pgettext("atlantians_building", "working"),
+         actions = {
+            "call=smelt_iron",
+            "call=smelt_mixed",
+            "call=smelt_iron",
+            "return=skipped"
+         }
+      },
+      smelt_iron = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling iron because ...
+         descname = pgettext("atlanteans_building", "recycling iron"),
+         actions = {
+            "return=skipped unless economy needs iron",
+            "sleep=40000",
+            "consume=scrap_metal_iron:2 coal",
+            "animate=working 40000",
+            "produce=iron"
+         }
+      },
+      smelt_mixed = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling iron and gold because ...
+         descname = pgettext("atlanteans_building", "recycling iron and gold"),
+         actions = {
+            "return=skipped unless economy needs iron or economy needs gold",
+            "sleep=40000",
+            "consume=scrap_metal_mixed:2 coal",
+            "animate=working 40000",
+            "produce=iron gold"
+         }
+      },
+   }
+}

=== added file 'data/tribes/buildings/productionsites/atlanteans/recycling_centre/menu.png'
Binary files data/tribes/buildings/productionsites/atlanteans/recycling_centre/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/atlanteans/recycling_centre/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/buildings/productionsites/barbarians/recycling_centre'
=== added file 'data/tribes/buildings/productionsites/barbarians/recycling_centre/helptexts.lua'
--- data/tribes/buildings/productionsites/barbarians/recycling_centre/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/barbarians/recycling_centre/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,27 @@
+-- This include can be removed when all help texts have been defined.
+include "tribes/scripting/help/global_helptexts.lua"
+
+function building_helptext_lore()
+   -- TRANSLATORS#: Lore helptext for a building
+   return no_lore_text_yet()
+end
+
+function building_helptext_lore_author()
+   -- TRANSLATORS#: Lore author helptext for a building
+   return no_lore_author_text_yet()
+end
+
+function building_helptext_purpose()
+   -- TRANSLATORS: Purpose helptext for a building
+   return pgettext("building", "Smelts iron ore into iron and gold ore into gold.")
+end
+
+function building_helptext_note()
+   -- TRANSLATORS#: Note helptext for a building
+   return ""
+end
+
+function building_helptext_performance()
+   -- TRANSLATORS#: Performance helptext for a building
+   return no_performance_text_yet()
+end

=== added file 'data/tribes/buildings/productionsites/barbarians/recycling_centre/idle_00.png'
Binary files data/tribes/buildings/productionsites/barbarians/recycling_centre/idle_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/barbarians/recycling_centre/idle_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/barbarians/recycling_centre/init.lua'
--- data/tribes/buildings/productionsites/barbarians/recycling_centre/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/barbarians/recycling_centre/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,91 @@
+dirname = path.dirname(__file__)
+
+tribes:new_productionsite_type {
+   msgctxt = "barbarians_building",
+   name = "barbarians_recycling_centre",
+   -- TRANSLATORS: This is a building name used in lists of buildings
+   descname = pgettext("barbarians_building", "Recycling Centre"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   size = "medium",
+
+   buildcost = {
+      log = 3,
+      blackwood = 1,
+      granite = 1,
+      grout = 1,
+      thatch_reed = 2
+   },
+   return_on_dismantle = {
+      log = 1,
+      blackwood = 1,
+      granite = 1
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle_??.png"),
+         hotspot = { 44, 58 },
+      },
+      working = {
+         pictures = path.list_files(dirname .. "idle_??.png"), -- TODO(GunChleoc): No animation yet.
+         hotspot = { 44, 58 },
+      },
+   },
+
+   aihints = {
+      prohibited_till = 1500,
+      very_weak_ai_limit = 4,
+      weak_ai_limit = 3,
+      normal_ai_limit = 2
+   },
+
+   working_positions = {
+      barbarians_smelter = 1
+   },
+
+   inputs = {
+      { name = "coal", amount = 8 },
+      { name = "scrap_metal_iron", amount = 6 },
+      { name = "scrap_metal_mixed", amount = 6 },
+   },
+   outputs = {
+      "iron",
+      "gold"
+   },
+
+   programs = {
+      work = {
+         -- TRANSLATORS: Completed/Skipped/Did not start working because ...
+         descname = _"working",
+         actions = {
+            "call=smelt_iron",
+            "call=smelt_mixed",
+            "call=smelt_iron",
+            "return=skipped"
+         }
+      },
+      smelt_iron = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling iron because ...
+         descname = _"recycling iron",
+         actions = {
+            "return=skipped unless economy needs iron",
+            "sleep=14000",  
+            "consume=coal scrap_metal_iron:2",
+            "animate=working 18000",
+            "produce=iron"
+         }
+      },
+      smelt_mixed = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling iron and gold because ...
+         descname = _"recycling gold",
+         actions = {
+            "return=skipped unless economy needs gold",
+            "sleep=14000", 
+            "consume=coal scrap_metal_mixed:2",
+            "animate=working 24000",
+            "produce=gold iron"
+         }
+      },
+   },
+}

=== added file 'data/tribes/buildings/productionsites/barbarians/recycling_centre/menu.png'
Binary files data/tribes/buildings/productionsites/barbarians/recycling_centre/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/barbarians/recycling_centre/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/buildings/productionsites/empire/armour_recycler'
=== added file 'data/tribes/buildings/productionsites/empire/armour_recycler/helptexts.lua'
--- data/tribes/buildings/productionsites/empire/armour_recycler/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/empire/armour_recycler/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,27 @@
+-- This include can be removed when all help texts have been defined.
+include "tribes/scripting/help/global_helptexts.lua"
+
+function building_helptext_lore()
+   -- TRANSLATORS#: Lore helptext for a building
+   return no_lore_text_yet()
+end
+
+function building_helptext_lore_author()
+   -- TRANSLATORS#: Lore author helptext for a building
+   return no_lore_author_text_yet()
+end
+
+function building_helptext_purpose()
+   -- TRANSLATORS: Purpose helptext for a building
+   return pgettext("building", "Recycles used armour from training sites.")
+end
+
+function building_helptext_note()
+   -- TRANSLATORS: Note helptext for a building
+   return pgettext("building", "Recyling armour discarded by soldiers in training can increase the efficiency of making new armour and weapons.")
+end
+
+function building_helptext_performance()
+   -- TRANSLATORS#: Performance helptext for a building
+   return ""
+end

=== added file 'data/tribes/buildings/productionsites/empire/armour_recycler/idle_00.png'
Binary files data/tribes/buildings/productionsites/empire/armour_recycler/idle_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/armour_recycler/idle_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/armour_recycler/init.lua'
--- data/tribes/buildings/productionsites/empire/armour_recycler/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/empire/armour_recycler/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,84 @@
+dirname = path.dirname(__file__)
+
+tribes:new_productionsite_type {
+   msgctxt = "empire_building",
+   name = "empire_armour_recycler",
+   -- TRANSLATORS: This is a building name used in lists of buildings
+   descname = pgettext("empire_building", "Armour Recycler"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   size = "small",
+
+   buildcost = {
+      log = 2,
+      planks = 2
+   },
+   return_on_dismantle = {
+      planks = 1,
+      log = 1
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle_??.png"),
+         hotspot = { 37, 58 }
+      },
+      working = {
+         pictures = path.list_files(dirname .. "idle_??.png"),--No animation yet
+         hotspot = { 37, 58 }
+      },
+   },
+
+   aihints = {
+      prohibited_till = 1500,
+      very_weak_ai_limit = 3,
+      weak_ai_limit = 2,
+      normal_ai_limit = 1
+   },
+
+   working_positions = {
+      empire_weaver = 1
+   },
+
+   inputs = {
+      { name = "old_armour", amount = 2 },
+      { name = "old_chain_armour", amount = 2 },
+   },
+   outputs = {
+      "wool",
+      "scrap_metal_iron"
+   },
+   programs = {
+      work = {
+         -- TRANSLATORS: Completed/Skipped/Did not start working because ...
+         descname = _"working",
+         actions = {
+            "call=recycle_armour",
+            "call=recycle_chain_armour",
+            "return=skipped"
+         }
+      },
+      recycle_armour = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling armour because ...
+         descname = _"recycling armour",
+         actions = {
+            "return=skipped unless economy needs wool",
+            "sleep=14000",
+            "consume=old_armour:2",
+            "animate=working 18000",
+            "produce=wool"
+         }
+      },
+      recycle_chain_armour = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling chain armour because ...
+         descname = _"recycling chain armour",
+         actions = {
+            "return=skipped unless economy needs iron",
+            "sleep=14000",
+            "consume=old_chain_armour:2",
+            "animate=working 18000",
+            "produce=wool scrap_metal_iron"
+         }
+      },
+   },
+}

=== added file 'data/tribes/buildings/productionsites/empire/armour_recycler/menu.png'
Binary files data/tribes/buildings/productionsites/empire/armour_recycler/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/armour_recycler/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/buildings/productionsites/empire/recycling_centre'
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/build_00.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/build_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/build_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/build_01.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/build_01.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/build_01.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/build_02.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/build_02.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/build_02.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/build_03.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/build_03.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/build_03.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/helptexts.lua'
--- data/tribes/buildings/productionsites/empire/recycling_centre/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/empire/recycling_centre/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,27 @@
+-- This include can be removed when all help texts have been defined.
+include "tribes/scripting/help/global_helptexts.lua"
+
+function building_helptext_lore()
+   -- TRANSLATORS#: Lore helptext for a building
+   return no_lore_text_yet()
+end
+
+function building_helptext_lore_author()
+   -- TRANSLATORS#: Lore author helptext for a building
+   return no_lore_author_text_yet()
+end
+
+function building_helptext_purpose()
+   -- TRANSLATORS: Purpose helptext for a building
+   return pgettext("building", "Smelts iron ore into iron and gold ore into gold.")
+end
+
+function building_helptext_note()
+   -- TRANSLATORS#: Note helptext for a building
+   return ""
+end
+
+function building_helptext_performance()
+   -- TRANSLATORS#: Performance helptext for a building
+   return no_performance_text_yet()
+end

=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/idle_00.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/idle_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/idle_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/init.lua'
--- data/tribes/buildings/productionsites/empire/recycling_centre/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/buildings/productionsites/empire/recycling_centre/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,93 @@
+dirname = path.dirname(__file__)
+
+tribes:new_productionsite_type {
+   msgctxt = "empire_building",
+   name = "empire_recycling_centre",
+   -- TRANSLATORS: This is a building name used in lists of buildings
+   descname = pgettext("empire_building", "Recycling Centre"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   size = "medium",
+
+   buildcost = {
+      log = 1,
+      granite = 4,
+      marble = 2
+   },
+   return_on_dismantle = {
+      granite = 3,
+      marble = 1
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle_??.png"),
+         hotspot = { 39, 53 },
+      },
+      build = {
+         pictures = path.list_files(dirname .. "build_??.png"),
+         hotspot = { 39, 53 },
+      },
+      working = {
+         pictures = path.list_files(dirname .. "working_??.png"),
+         hotspot = { 39, 53 },
+         fps = 5
+      },
+   },
+
+   aihints = {
+      prohibited_till = 1200,
+      very_weak_ai_limit = 4,
+      weak_ai_limit = 3,
+      normal_ai_limit = 2
+   },
+
+   working_positions = {
+      empire_smelter = 1
+   },
+
+   inputs = {
+      { name = "coal", amount = 6 },
+      { name = "scrap_metal_iron", amount = 4 },
+      { name = "scrap_metal_mixed", amount = 4 }
+   },
+   outputs = {
+      "iron",
+      "gold",
+   },
+
+   programs = {
+      work = {
+         -- TRANSLATORS: Completed/Skipped/Did not start working because ...
+         descname = _"working",
+         actions = {
+            "call=smelt_iron",
+            "call=smelt_mixed",
+            "call=smelt_iron",
+            "return=skipped"
+         }
+      },
+      smelt_iron = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling iron because ...
+         descname = _"recycling iron",
+         actions = {
+            "return=skipped unless economy needs iron",
+            "sleep=14000",
+            "consume=scrap_metal_iron:2 coal",
+            "animate=working 18000",
+            "produce=iron"
+         }
+      },
+      smelt_mixed = {
+         -- TRANSLATORS: Completed/Skipped/Did not start recycling iron and gold because ...
+         descname = _"recycling gold",
+         actions = {
+            "return=skipped unless economy needs gold",
+            "sleep=14000",
+            "consume=coal scrap_metal_mixed:2",
+            "animate=working 24000",
+            "produce=gold iron"
+         }
+      },
+   },
+}

=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/menu.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/menu.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_00.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_00.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_00.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_01.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_01.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_01.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_02.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_02.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_02.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_03.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_03.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_03.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_04.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_04.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_04.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_05.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_05.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_05.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_06.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_06.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_06.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_07.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_07.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_07.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_08.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_08.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_08.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_09.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_09.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_09.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_10.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_10.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_10.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_11.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_11.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_11.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_12.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_12.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_12.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_13.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_13.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_13.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_14.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_14.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_14.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_15.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_15.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_15.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_16.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_16.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_16.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_17.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_17.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_17.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_18.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_18.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_18.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/buildings/productionsites/empire/recycling_centre/working_19.png'
Binary files data/tribes/buildings/productionsites/empire/recycling_centre/working_19.png	1970-01-01 00:00:00 +0000 and data/tribes/buildings/productionsites/empire/recycling_centre/working_19.png	2018-01-06 10:56:35 +0000 differ
=== modified file 'data/tribes/buildings/trainingsites/atlanteans/dungeon/init.lua'
--- data/tribes/buildings/trainingsites/atlanteans/dungeon/init.lua	2017-04-06 20:06:06 +0000
+++ data/tribes/buildings/trainingsites/atlanteans/dungeon/init.lua	2018-01-06 10:56:35 +0000
@@ -132,6 +132,8 @@
    },
    outputs = {
       "atlanteans_soldier",
+      "scrap_metal_mixed",
+      "scrap_metal_iron",
    },
 
    ["soldier attack"] = {
@@ -166,7 +168,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 0",
             "consume=atlanteans_bread smoked_fish,smoked_meat trident_long",
-            "train=soldier attack 0 1"
+            "train=soldier attack 0 1",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_1 = {
@@ -177,7 +180,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 1",
             "consume=atlanteans_bread smoked_fish,smoked_meat trident_steel",
-            "train=soldier attack 1 2"
+            "train=soldier attack 1 2",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_2 = {
@@ -188,7 +192,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 2",
             "consume=atlanteans_bread smoked_fish,smoked_meat trident_double",
-            "train=soldier attack 2 3"
+            "train=soldier attack 2 3",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_3 = {
@@ -199,7 +204,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 3",
             "consume=atlanteans_bread smoked_fish,smoked_meat trident_heavy_double",
-            "train=soldier attack 3 4"
+            "train=soldier attack 3 4",
+            "produce=scrap_metal_mixed"
          }
       },
    },

=== modified file 'data/tribes/buildings/trainingsites/atlanteans/labyrinth/init.lua'
--- data/tribes/buildings/trainingsites/atlanteans/labyrinth/init.lua	2017-09-03 07:59:51 +0000
+++ data/tribes/buildings/trainingsites/atlanteans/labyrinth/init.lua	2018-01-06 10:56:35 +0000
@@ -53,6 +53,8 @@
    },
    outputs = {
       "atlanteans_soldier",
+      "scrap_metal_iron",
+      "tabard_old",
    },
 
    ["soldier defense"] = {
@@ -114,7 +116,8 @@
             "sleep=30000",
             "check_soldier=soldier defense 1", -- Because the soldier can be expelled by the player
             "consume=atlanteans_bread smoked_fish,smoked_meat shield_advanced",
-            "train=soldier defense 1 2"
+            "train=soldier defense 1 2",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_health_0 = {
@@ -125,7 +128,8 @@
             "sleep=30000",
             "check_soldier=soldier health 0", -- Because the soldier can be expelled by the player
             "consume=smoked_fish,smoked_meat:2 tabard_golden",
-            "train=soldier health 0 1"
+            "train=soldier health 0 1",
+            "produce=tabard_old"
          }
       },
       upgrade_soldier_evade_0 = {

=== modified file 'data/tribes/buildings/trainingsites/barbarians/trainingcamp/init.lua'
--- data/tribes/buildings/trainingsites/barbarians/trainingcamp/init.lua	2017-04-06 20:06:06 +0000
+++ data/tribes/buildings/trainingsites/barbarians/trainingcamp/init.lua	2018-01-06 10:56:35 +0000
@@ -64,6 +64,8 @@
    },
    outputs = {
       "barbarians_soldier",
+      "scrap_metal_iron",
+      "scrap_metal_mixed",
    },
 
    ["soldier attack"] = {
@@ -112,7 +114,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 0", -- Because the soldier can be expelled by the player
             "consume=ax_sharp fish,meat barbarians_bread",
-            "train=soldier attack 0 1"
+            "train=soldier attack 0 1",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_1 = {
@@ -123,7 +126,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 1",
             "consume=ax_broad fish,meat barbarians_bread",
-            "train=soldier attack 1 2"
+            "train=soldier attack 1 2",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_2 = {
@@ -134,7 +138,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 2",
             "consume=ax_bronze fish,meat barbarians_bread",
-            "train=soldier attack 2 3"
+            "train=soldier attack 2 3",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_3 = {
@@ -145,7 +150,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 3",
             "consume=ax_battle fish,meat:2 barbarians_bread",
-            "train=soldier attack 3 4"
+            "train=soldier attack 3 4",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_4 = {
@@ -156,7 +162,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 4",
             "consume=ax_warriors fish,meat barbarians_bread:2",
-            "train=soldier attack 4 5"
+            "train=soldier attack 4 5",
+            "produce=scrap_metal_mixed"
          }
       },
       upgrade_soldier_health_0 = {
@@ -178,7 +185,8 @@
             "sleep=30000",
             "check_soldier=soldier health 1",
             "consume=helmet_mask fish,meat barbarians_bread",
-            "train=soldier health 1 2"
+            "train=soldier health 1 2",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_health_2 = {
@@ -189,7 +197,8 @@
             "sleep=30000",
             "check_soldier=soldier health 2",
             "consume=helmet_warhelm fish,meat:2 barbarians_bread",
-            "train=soldier health 2 3"
+            "train=soldier health 2 3",
+            "produce=scrap_metal_iron"
          }
       },
    },

=== modified file 'data/tribes/buildings/trainingsites/empire/trainingcamp/init.lua'
--- data/tribes/buildings/trainingsites/empire/trainingcamp/init.lua	2017-04-06 20:06:06 +0000
+++ data/tribes/buildings/trainingsites/empire/trainingcamp/init.lua	2018-01-06 10:56:35 +0000
@@ -58,6 +58,10 @@
    },
    outputs = {
       "empire_soldier",
+      "scrap_metal_iron",
+      "scrap_metal_mixed",
+      "old_chain_armour",
+      "old_armour"
    },
 
    ["soldier attack"] = {
@@ -117,7 +121,9 @@
             "sleep=30000",
             "check_soldier=soldier attack 1",
             "consume=spear_advanced empire_bread fish,meat",
-            "train=soldier attack 1 2"
+            "train=soldier attack 1 2",
+            "produce=scrap_metal_iron"
+
          }
       },
       upgrade_soldier_attack_2 = {
@@ -128,7 +134,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 2",
             "consume=spear_heavy empire_bread fish,meat:2",
-            "train=soldier attack 2 3"
+            "train=soldier attack 2 3",
+            "produce=scrap_metal_iron"
          }
       },
       upgrade_soldier_attack_3 = {
@@ -139,7 +146,8 @@
             "sleep=30000",
             "check_soldier=soldier attack 3",
             "consume=spear_war empire_bread:2 fish,meat",
-            "train=soldier attack 3 4"
+            "train=soldier attack 3 4",
+            "produce=scrap_metal_mixed"
          }
       },
       upgrade_soldier_health_0 = {
@@ -172,7 +180,8 @@
             "sleep=30000",
             "check_soldier=soldier health 2",
             "consume=armor_chain empire_bread:2 fish,meat:2",
-            "train=soldier health 2 3"
+            "train=soldier health 2 3",
+            "produce=old_armour"
          }
       },
       upgrade_soldier_health_3 = {
@@ -183,7 +192,8 @@
             "sleep=30000",
             "check_soldier=soldier health 3",
             "consume=armor_gilded empire_bread:2 fish,meat:2",
-            "train=soldier health 3 4"
+            "train=soldier health 3 4",
+            "produce=old_chain_armour"
          }
       },
    },

=== modified file 'data/tribes/empire.lua'
--- data/tribes/empire.lua	2017-11-25 23:32:30 +0000
+++ data/tribes/empire.lua	2018-01-06 10:56:35 +0000
@@ -63,7 +63,11 @@
          "iron_ore",
          "iron",
          "gold_ore",
-         "gold"
+         "gold",
+          "scrap_metal_iron",
+          "scrap_metal_mixed",
+          "old_armour",
+          "old_chain_armour",
       },
       {
          -- Tools
@@ -191,6 +195,7 @@
       "empire_fishers_house",
       "empire_hunters_house",
       "empire_well",
+      "empire_armour_recycler",
       "empire_scouts_house",
 
       -- Medium
@@ -204,6 +209,7 @@
       "empire_tavern",
       "empire_inn",
       "empire_charcoal_kiln",
+      "empire_recycling_centre",
       "empire_smelting_works",
       "empire_toolsmithy",
       "empire_armorsmithy",

=== modified file 'data/tribes/init.lua'
--- data/tribes/init.lua	2017-12-13 07:47:36 +0000
+++ data/tribes/init.lua	2018-01-06 10:56:35 +0000
@@ -35,6 +35,9 @@
    -- ===================================
 
    print_loading_message("┃    Wares", function()
+      
+      include "tribes/wares/scrap_metal_iron/init.lua"
+      include "tribes/wares/scrap_metal_mixed/init.lua"
       include "tribes/wares/armor/init.lua"
       include "tribes/wares/armor_chain/init.lua"
       include "tribes/wares/armor_gilded/init.lua"
@@ -89,6 +92,8 @@
       include "tribes/wares/meal/init.lua"
       include "tribes/wares/meat/init.lua"
       include "tribes/wares/milking_tongs/init.lua"
+      include "tribes/wares/old_armour/init.lua"
+      include "tribes/wares/old_chain_armour/init.lua"
       include "tribes/wares/pick/init.lua"
       include "tribes/wares/planks/init.lua"
       include "tribes/wares/quartz/init.lua"
@@ -109,6 +114,7 @@
       include "tribes/wares/spidercloth/init.lua"
       include "tribes/wares/spider_silk/init.lua"
       include "tribes/wares/tabard/init.lua"
+      include "tribes/wares/tabard_old/init.lua"
       include "tribes/wares/tabard_golden/init.lua"
       include "tribes/wares/thatch_reed/init.lua"
       include "tribes/wares/trident_double/init.lua"
@@ -120,6 +126,7 @@
       include "tribes/wares/wheat/init.lua"
       include "tribes/wares/wine/init.lua"
       include "tribes/wares/wool/init.lua"
+      
    end)
 
    -- ===================================
@@ -269,6 +276,7 @@
       include "tribes/workers/empire/vintner/init.lua"
       include "tribes/workers/empire/weaponsmith/init.lua"
       include "tribes/workers/empire/weaver/init.lua"
+      
    end)
 
    -- ===================================
@@ -308,6 +316,7 @@
       include "tribes/buildings/productionsites/atlanteans/fishers_house/init.lua"
       include "tribes/buildings/productionsites/atlanteans/fishbreeders_house/init.lua"
       include "tribes/buildings/productionsites/atlanteans/hunters_house/init.lua"
+      include "tribes/buildings/productionsites/atlanteans/armour_recycler/init.lua"
       include "tribes/buildings/productionsites/atlanteans/well/init.lua"
       include "tribes/buildings/productionsites/atlanteans/gold_spinning_mill/init.lua"
       include "tribes/buildings/productionsites/atlanteans/scouts_house/init.lua"
@@ -318,6 +327,7 @@
       include "tribes/buildings/productionsites/atlanteans/bakery/init.lua"
       include "tribes/buildings/productionsites/atlanteans/charcoal_kiln/init.lua"
       include "tribes/buildings/productionsites/atlanteans/smelting_works/init.lua"
+      include "tribes/buildings/productionsites/atlanteans/recycling_centre/init.lua"
       include "tribes/buildings/productionsites/atlanteans/shipyard/init.lua"
       include "tribes/buildings/productionsites/atlanteans/toolsmithy/init.lua"
       include "tribes/buildings/productionsites/atlanteans/weaponsmithy/init.lua"
@@ -357,6 +367,7 @@
       include "tribes/buildings/productionsites/barbarians/tavern/init.lua"
       include "tribes/buildings/productionsites/barbarians/charcoal_kiln/init.lua"
       include "tribes/buildings/productionsites/barbarians/smelting_works/init.lua"
+      include "tribes/buildings/productionsites/barbarians/recycling_centre/init.lua"
       include "tribes/buildings/productionsites/barbarians/shipyard/init.lua"
       include "tribes/buildings/productionsites/barbarians/warmill/init.lua"
       include "tribes/buildings/productionsites/barbarians/ax_workshop/init.lua"
@@ -385,6 +396,7 @@
       include "tribes/buildings/productionsites/empire/foresters_house/init.lua"
       include "tribes/buildings/productionsites/empire/fishers_house/init.lua"
       include "tribes/buildings/productionsites/empire/hunters_house/init.lua"
+      include "tribes/buildings/productionsites/empire/armour_recycler/init.lua"
       include "tribes/buildings/productionsites/empire/well/init.lua"
       include "tribes/buildings/productionsites/empire/scouts_house/init.lua"
       -- Empire medium
@@ -399,6 +411,7 @@
       include "tribes/buildings/productionsites/empire/tavern/init.lua"
       include "tribes/buildings/productionsites/empire/charcoal_kiln/init.lua"
       include "tribes/buildings/productionsites/empire/smelting_works/init.lua"
+      include "tribes/buildings/productionsites/empire/recycling_centre/init.lua"
       include "tribes/buildings/productionsites/empire/shipyard/init.lua"
       include "tribes/buildings/productionsites/empire/toolsmithy/init.lua"
       include "tribes/buildings/productionsites/empire/armorsmithy/init.lua"
@@ -420,6 +433,7 @@
       include "tribes/buildings/productionsites/empire/marblemine/init.lua"
       include "tribes/buildings/productionsites/empire/goldmine_deep/init.lua"
       include "tribes/buildings/productionsites/empire/goldmine/init.lua"
+      
    end)
 
    -- ===================================
@@ -434,6 +448,7 @@
       include "tribes/buildings/trainingsites/empire/colosseum/init.lua"
       include "tribes/buildings/trainingsites/empire/arena/init.lua"
       include "tribes/buildings/trainingsites/empire/trainingcamp/init.lua"
+      
    end)
 
    -- ===================================
@@ -461,6 +476,7 @@
       include "tribes/buildings/militarysites/empire/tower/init.lua"
       include "tribes/buildings/militarysites/empire/castle/init.lua"
       include "tribes/buildings/militarysites/empire/fortress/init.lua"
+      
    end)
 
    -- ===================================
@@ -471,7 +487,7 @@
       include "tribes/buildings/partially_finished/constructionsite/init.lua"
       include "tribes/buildings/partially_finished/dismantlesite/init.lua"
    end)
-
+    
    -- ===================================
    --    Tribes
    -- ===================================

=== added directory 'data/tribes/wares/old_armour'
=== added file 'data/tribes/wares/old_armour/helptexts.lua'
--- data/tribes/wares/old_armour/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/old_armour/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,14 @@
+function ware_helptext(tribe)
+   local helptext = {
+      -- TRANSLATORS: Helptext for a ware: Old Armour
+      empire = pgettext("empire_ware", "Basic armour of Empire soldiers. It was produced in the armour smithy and upgraded in the training camp while training soldiers from health level 2 to level 3..")
+   }
+   local result = ""
+   if tribe then
+      result = helptext[tribe]
+   else
+      result = helptext["default"]
+   end
+   if (result == nil) then result = "" end
+   return result
+end

=== added file 'data/tribes/wares/old_armour/idle.png'
Binary files data/tribes/wares/old_armour/idle.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/old_armour/idle.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/wares/old_armour/init.lua'
--- data/tribes/wares/old_armour/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/old_armour/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,21 @@
+dirname = path.dirname(__file__)
+
+tribes:new_ware_type {
+   msgctxt = "ware",
+   name = "old_armour",
+   -- TRANSLATORS: This is a ware name used in lists of wares
+   descname = pgettext("ware", "Old Armour"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   default_target_quantity = {},
+   preciousness = {
+      empire = 0
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle.png"),
+         hotspot = { 5, 10 },
+      },
+   }
+}

=== added file 'data/tribes/wares/old_armour/menu.png'
Binary files data/tribes/wares/old_armour/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/old_armour/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/wares/old_chain_armour'
=== added file 'data/tribes/wares/old_chain_armour/helptexts.lua'
--- data/tribes/wares/old_chain_armour/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/old_chain_armour/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,14 @@
+function ware_helptext(tribe)
+   local helptext = {
+      -- TRANSLATORS: Helptext for a ware: Old Chain Armour
+      empire = pgettext("empire_ware", "Chain armour is the medium armour for Empire soldiers. Old Chain Armour is produced in a training camp when training soldiers from health level 3 to level 4.")
+   }
+   local result = ""
+   if tribe then
+      result = helptext[tribe]
+   else
+      result = helptext["default"]
+   end
+   if (result == nil) then result = "" end
+   return result
+end

=== added file 'data/tribes/wares/old_chain_armour/idle.png'
Binary files data/tribes/wares/old_chain_armour/idle.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/old_chain_armour/idle.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/wares/old_chain_armour/init.lua'
--- data/tribes/wares/old_chain_armour/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/old_chain_armour/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,21 @@
+dirname = path.dirname(__file__)
+
+tribes:new_ware_type {
+   msgctxt = "ware",
+   name = "old_chain_armour",
+   -- TRANSLATORS: This is a ware name used in lists of wares
+   descname = pgettext("ware", "Old Chain Armour"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   default_target_quantity = {},
+   preciousness = {
+      empire = 0
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle.png"),
+         hotspot = { 5, 10 },
+      },
+   }
+}

=== added file 'data/tribes/wares/old_chain_armour/menu.png'
Binary files data/tribes/wares/old_chain_armour/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/old_chain_armour/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/wares/scrap_metal_iron'
=== added file 'data/tribes/wares/scrap_metal_iron/helptexts.lua'
--- data/tribes/wares/scrap_metal_iron/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/scrap_metal_iron/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,14 @@
+function ware_helptext(tribe)
+   local helptext = {
+      -- TRANSLATORS: Helptext for a ware: Scrap metal (iron)
+      frisians = pgettext("frisians_ware", "Discarded weapon and armour can be recycled in a recycling centre to produce new tools, weapon and armour.")
+   }
+   local result = ""
+   if tribe then
+      result = helptext[tribe]
+   else
+      result = helptext["default"]
+   end
+   if (result == nil) then result = "" end
+   return result
+end

=== added file 'data/tribes/wares/scrap_metal_iron/idle.png'
Binary files data/tribes/wares/scrap_metal_iron/idle.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/scrap_metal_iron/idle.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/wares/scrap_metal_iron/init.lua'
--- data/tribes/wares/scrap_metal_iron/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/scrap_metal_iron/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,21 @@
+dirname = path.dirname(__file__)
+
+tribes:new_ware_type {
+   msgctxt = "ware",
+   name = "scrap_metal_iron",
+   -- TRANSLATORS: This is a ware name used in lists of wares
+   descname = pgettext("ware", "Scrap Metal (Iron)"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   default_target_quantity = {},
+   preciousness = {
+      frisians = 0
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle.png"),
+         hotspot = { 7, 9 },
+      },
+   }
+}

=== added file 'data/tribes/wares/scrap_metal_iron/menu.png'
Binary files data/tribes/wares/scrap_metal_iron/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/scrap_metal_iron/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/wares/scrap_metal_mixed'
=== added file 'data/tribes/wares/scrap_metal_mixed/helptexts.lua'
--- data/tribes/wares/scrap_metal_mixed/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/scrap_metal_mixed/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,14 @@
+function ware_helptext(tribe)
+   local helptext = {
+      -- TRANSLATORS: Helptext for a ware: Scrap metal (mixed)
+      frisians = pgettext("frisians_ware", "Discarded weapon and armour can be recycled in a recycling centre to produce new tools, weapon and armour.")
+   }
+   local result = ""
+   if tribe then
+      result = helptext[tribe]
+   else
+      result = helptext["default"]
+   end
+   if (result == nil) then result = "" end
+   return result
+end

=== added file 'data/tribes/wares/scrap_metal_mixed/idle.png'
Binary files data/tribes/wares/scrap_metal_mixed/idle.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/scrap_metal_mixed/idle.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/wares/scrap_metal_mixed/init.lua'
--- data/tribes/wares/scrap_metal_mixed/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/scrap_metal_mixed/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,21 @@
+dirname = path.dirname(__file__)
+
+tribes:new_ware_type {
+   msgctxt = "ware",
+   name = "scrap_metal_mixed",
+   -- TRANSLATORS: This is a ware name used in lists of wares
+   descname = pgettext("ware", "Scrap Metal (Mixed)"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   default_target_quantity = {},
+   preciousness = {
+      frisians = 1
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle.png"),
+         hotspot = { 7, 9 },
+      },
+   }
+}

=== added file 'data/tribes/wares/scrap_metal_mixed/menu.png'
Binary files data/tribes/wares/scrap_metal_mixed/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/scrap_metal_mixed/menu.png	2018-01-06 10:56:35 +0000 differ
=== added directory 'data/tribes/wares/tabard_old'
=== added file 'data/tribes/wares/tabard_old/helptexts.lua'
--- data/tribes/wares/tabard_old/helptexts.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/tabard_old/helptexts.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,14 @@
+function ware_helptext(tribe)
+   local helptext = {
+      -- TRANSLATORS: Helptext for a ware: Tabard
+      atlanteans = pgettext("atlanteans_ware", "A tabard and a light trident are the basic equipment for young soldiers. Tabards are produced in the weaving mill.")
+   }
+   local result = ""
+   if tribe then
+      result = helptext[tribe]
+   else
+      result = helptext["default"]
+   end
+   if (result == nil) then result = "" end
+   return result
+end

=== added file 'data/tribes/wares/tabard_old/idle.png'
Binary files data/tribes/wares/tabard_old/idle.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/tabard_old/idle.png	2018-01-06 10:56:35 +0000 differ
=== added file 'data/tribes/wares/tabard_old/init.lua'
--- data/tribes/wares/tabard_old/init.lua	1970-01-01 00:00:00 +0000
+++ data/tribes/wares/tabard_old/init.lua	2018-01-06 10:56:35 +0000
@@ -0,0 +1,21 @@
+dirname = path.dirname(__file__)
+
+tribes:new_ware_type {
+   msgctxt = "ware",
+   name = "tabard_old",
+   -- TRANSLATORS: This is a ware name used in lists of wares
+   descname = pgettext("ware", "Tabard used"),
+   helptext_script = dirname .. "helptexts.lua",
+   icon = dirname .. "menu.png",
+   default_target_quantity = {},
+   preciousness = {
+      atlanteans = 0
+   },
+
+   animations = {
+      idle = {
+         pictures = path.list_files(dirname .. "idle.png"),
+         hotspot = { 5, 10 },
+      },
+   }
+}

=== added file 'data/tribes/wares/tabard_old/menu.png'
Binary files data/tribes/wares/tabard_old/menu.png	1970-01-01 00:00:00 +0000 and data/tribes/wares/tabard_old/menu.png	2018-01-06 10:56:35 +0000 differ

Follow ups