From e46cfa5e77dedeae3f70edc6c0c0c4e263ce99a5 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 14 May 2018 22:01:32 +0200 Subject: [PATCH] remove even more equipment xml to Lua only familiars still TBD, I think. --- conf/e2/config.json | 1 - conf/e2/rules.xml | 27 --------------- res/eressea/equipment.xml | 49 -------------------------- scripts/eressea/e2/init.lua | 61 +++++++++++++++++++++++++++++++++ scripts/eressea/equipment.lua | 2 +- scripts/eressea/xmlconf.lua | 2 -- scripts/tests/e2/e2features.lua | 29 ++++++++++++++++ 7 files changed, 91 insertions(+), 80 deletions(-) delete mode 100644 conf/e2/rules.xml delete mode 100644 res/eressea/equipment.xml diff --git a/conf/e2/config.json b/conf/e2/config.json index ddf6b9dd3..ba974c414 100644 --- a/conf/e2/config.json +++ b/conf/e2/config.json @@ -13,7 +13,6 @@ "config://res/eressea/races.xml", "config://res/eressea/artrewards.xml", "config://res/eressea/familiars.xml", - "config://res/eressea/equipment.xml", "config://res/eressea/spells.xml", "config://res/eressea/spellbooks/gray.xml", "config://res/eressea/spellbooks/gwyrrd.xml", diff --git a/conf/e2/rules.xml b/conf/e2/rules.xml deleted file mode 100644 index 002c34960..000000000 --- a/conf/e2/rules.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/eressea/equipment.xml b/res/eressea/equipment.xml deleted file mode 100644 index f9951a42e..000000000 --- a/res/eressea/equipment.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/scripts/eressea/e2/init.lua b/scripts/eressea/e2/init.lua index 93dbfeea9..24f679e17 100644 --- a/scripts/eressea/e2/init.lua +++ b/scripts/eressea/e2/init.lua @@ -1,8 +1,15 @@ require 'eressea.spells' eressea.log.debug('rules for game E2') +math.randomseed(rng.random()) + local equipment = require('eressea.equipment') local sets = { + ['seed_faction'] = { + ['items'] = { + ['adamantium'] = 1 + } + }, ['new_orc'] = { ['skills'] = { ['polearm'] = 1, @@ -37,8 +44,62 @@ local sets = { ['dragonblood'] = 10, ['dragonhead'] = 1 } + }, + ['seed_dragon'] = { + ['skills'] = { + ['magic'] = 4, + ['stealth'] = 1, + ['stamina'] = 1, + }, + ['callback'] = function(u) + u:add_item('money', u.number * (math.random(500)+99)) + u:set_skill('perception', math.random(3)) + end + }, + ['seed_braineater'] = { + ['skills'] = { + ['stealth'] = 1, + ['perception'] = 1, + } + }, + ['seed_seaserpent'] = { + ['skills'] = { + ['magic'] = 4, + ['stealth'] = 2, + ['stamina'] = 1, + ['perception'] = 3, + } + }, + ['rising_undead'] = { + ['items'] = { + ['rustysword'] = 1 + }, + ['callback'] = function(u) + if (math.random(2)==1) then + u:add_item('rustychainmail', u.number) + end + if (math.random(3)==1) then + u:add_item('rustyshield', u.number) + end + end + }, + ['new_dracoid'] = { + ['callback'] = function(u) + local pick = math.random(3) + if pick==1 then + u:set_skill('melee', math.random(4)+2) + u:add_item('sword', u.number) + elseif pick==2 then + u:set_skill('polearm', math.random(4)+2) + u:add_item('spear', u.number) + else + u:set_skill('bow', math.random(3)+1) + u:add_item('bow', u.number) + end + end } } + equipment.add_multiple(sets) return { diff --git a/scripts/eressea/equipment.lua b/scripts/eressea/equipment.lua index b85fd587b..a2999284d 100644 --- a/scripts/eressea/equipment.lua +++ b/scripts/eressea/equipment.lua @@ -115,7 +115,7 @@ function equip_unit(u, name, flags) local items = set['items'] if items then for k,v in pairs(items) do - u:add_item(k, v) + u:add_item(k, v * u.number) end end local skills = set['skills'] diff --git a/scripts/eressea/xmlconf.lua b/scripts/eressea/xmlconf.lua index 756d3c18a..335845177 100644 --- a/scripts/eressea/xmlconf.lua +++ b/scripts/eressea/xmlconf.lua @@ -3,8 +3,6 @@ local rules = 'conf' if config.rules then rules = rules .. '/' .. config.rules assert(0 == eressea.config.read(rules .. '/config.json', config.install), "could not read JSON data") --- assert(0 == read_xml(confdir .. rules .. 'rules.xml', confdir .. rules .. 'catalog.xml'), "could not load XML data, did you compile with LIBXML2 ?") --- assert(0 == read_xml(confdir .. rules .. 'locales.xml', confdir .. rules .. 'catalog.xml'), "could not load XML data, did you compile with LIBXML2 ?") end eressea.game.reset() diff --git a/scripts/tests/e2/e2features.lua b/scripts/tests/e2/e2features.lua index 573e3e0df..776537671 100644 --- a/scripts/tests/e2/e2features.lua +++ b/scripts/tests/e2/e2features.lua @@ -457,3 +457,32 @@ function test_new_orc_has_skills() assert_equal(1, u:get_skill('polearm')) assert_equal(1, u:get_skill('melee')) end + +function test_new_dracoid() + local f = faction.create('human') + local r = region.create(0, 0, 'plain') + local u = unit.create(f, r, 'dracoid') + u.number = 2 + u:equip("new_dracoid") + assert_equal(2, u.number) + item = nil + if u:get_skill('bow') > 1 then + item = 'bow' + elseif u:get_skill('polearm') > 1 then + item = 'spear' + elseif u:get_skill('melee') > 1 then + item = 'sword' + end + assert_not_nil(item) + assert_equal(u.number, u:get_item(item)) +end + +function test_rising_undead() + local f = faction.create('human') + local r = region.create(0, 0, 'plain') + local u = unit.create(f, r, 'undead') + u.number = 2 + u:equip("rising_undead") + assert_equal(2, u.number) + assert_equal(u.number, u:get_item('rustysword')) +end