summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-08-27 17:07:45 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-08-27 17:07:45 +0200
commite30f2f4b5911bece4da090af4dc749cfce37e100 (patch)
treec73e7ae99141b43ae9a18716a592bdd9861c76c7
parentba6c56951f5843eddc11a7ee43993d1a4b357391 (diff)
Any item can impact pretty much any value.
This branch should allow any item (armor, glyph, weapon, tile) to affect the following: - Attributes. - Statistics. - Attack values. - Defense.
-rw-r--r--armor/basic.m4d35
-rw-r--r--armor/global.m4.conf18
-rw-r--r--modifiers.m4.conf33
-rw-r--r--names.m4.conf18
4 files changed, 92 insertions, 12 deletions
diff --git a/armor/basic.m4d b/armor/basic.m4d
index 2d4e3a8..f99c0b1 100644
--- a/armor/basic.m4d
+++ b/armor/basic.m4d
@@ -1,5 +1,30 @@
-__ARMOR(0,None,leather,0.0)m4_dnl
-__ARMOR(1,Last Meal's Pelts,leather,0.5)m4_dnl
-__ARMOR(2,Bits of Wall,plate,0.5)m4_dnl
-__ARMOR(3,Garden Fence,chain,0.5)m4_dnl
-__ARMOR(4,Morrigan's Pity,kinetic,0.5)m4_dnl
+__ARMOR(0,
+ None,
+ __MOD_LIST(),
+ __MOD_LIST(),
+ __MOD_LIST(),
+ __MOD_LIST())m4_dnl
+__ARMOR(1,
+ Meal Pelts,
+ __MOD_LIST(__MOD_CONSTITUTION(-5)__MOD_DEXTERITY(-5)),
+ __MOD_LIST(),
+ __MOD_LIST(),
+ __MOD_LIST(__MOD_SLASH(10)__MOD_BLUNT(10)__MOD_PIERCE(10)))m4_dnl
+__ARMOR(2,
+ Wall Bits,
+ __MOD_LIST(__MOD_CONSTITUTION(-5)__MOD_DEXTERITY(-5)__MOD_SPEED(-10)__MOD_STRENGTH(-10)),
+ __MOD_LIST(),
+ __MOD_LIST(),
+ __MOD_LIST(__MOD_SLASH(15)__MOD_BLUNT(10)__MOD_PIERCE(15)))m4_dnl
+__ARMOR(3,
+ Garden Fence,
+ __MOD_LIST(__MOD_CONSTITUTION(-5)__MOD_DEXTERITY(-5)__MOD_SPEED(-10)),
+ __MOD_LIST(),
+ __MOD_LIST(),
+ __MOD_LIST(__MOD_SLASH(15)__MOD_BLUNT(10)__MOD_PIERCE(10)))m4_dnl
+__ARMOR(4,
+ Morrigan's Pity,
+ __MOD_LIST(__MOD_MIND(-10)),
+ __MOD_LIST(),
+ __MOD_LIST(),
+ __MOD_LIST(__MOD_BLUNT(15)__MOD_PIERCE(10)))m4_dnl
diff --git a/armor/global.m4.conf b/armor/global.m4.conf
index 871fcb3..4813060 100644
--- a/armor/global.m4.conf
+++ b/armor/global.m4.conf
@@ -1,21 +1,25 @@
+m4_include(__MAKEFILE_DATA_DIR`/modifiers.m4.conf')m4_dnl
m4_define(`__ARMOR_CHOOSE_STYLE', `m4_define(`__ARMOR',m4_defn(`$1'))m4_undefine(`$1')')m4_dnl
m4_define(`__ARMOR_ERLANG_STYLE',`from_id (`$1') ->
#armor
{
id = $1,
name = <<"$2">>,
- category = $3,
- coef = $4
+ attr_mod = $3,
+ stat_mod = $4,
+ atk_mod = $5,
+ def_mod = $6
};
')m4_dnl
-m4_define(`__ARMOR_CATEGORY_TO_CHAR',`m4_ifelse($1,kinetic,j,$1,leather,l,$1,chain,c,$1,plate,p)')m4_dnl
m4_define(`__ARMOR_JSON_STYLE',` {
"msg": "add_armor",
"id": $1,
"nam": "$2",
- "ct": "__ARMOR_CATEGORY_TO_CHAR($3)",
- "cf": $4
+ "attm": $3,
+ "stam": $4,
+ "atkm": $5,
+ "defm": $6
},
')m4_dnl
-m4_define(`__ARMOR_USE_ERLANG_STYLE',`__ARMOR_CHOOSE_STYLE(`__ARMOR_ERLANG_STYLE')')m4_dnl
-m4_define(`__ARMOR_USE_JSON_STYLE',`__ARMOR_CHOOSE_STYLE(`__ARMOR_JSON_STYLE')')m4_dnl
+m4_define(`__ARMOR_USE_ERLANG_STYLE',`__ARMOR_CHOOSE_STYLE(`__ARMOR_ERLANG_STYLE')__MOD_USE_ERLANG_STYLE()')m4_dnl
+m4_define(`__ARMOR_USE_JSON_STYLE',`__ARMOR_CHOOSE_STYLE(`__ARMOR_JSON_STYLE')__MOD_USE_JSON_STYLE()')m4_dnl
diff --git a/modifiers.m4.conf b/modifiers.m4.conf
new file mode 100644
index 0000000..13b8e86
--- /dev/null
+++ b/modifiers.m4.conf
@@ -0,0 +1,33 @@
+m4_include(__MAKEFILE_DATA_DIR`/names.m4.conf')m4_dnl
+m4_define(`__MOD_LIST_CHOOSE_STYLE', `m4_define(`__MOD_LIST',m4_defn(`$1'))m4_undefine(`$1')')m4_dnl
+m4_define(`__MOD_CHOOSE_STYLE', `m4_define(`__MOD',m4_defn(`$1'))m4_undefine(`$1')')m4_dnl
+m4_dnl
+m4_define(`__MOD_LIST_ERLANG_STYLE',``[''$1`` {none, 0} ]'')m4_dnl
+m4_define(`__MOD_ERLANG_STYLE',``{''$1``, ''$2``}, '')m4_dnl
+m4_dnl
+m4_define(`__MOD_LIST_JSON_STYLE',``[''$1`` {"t": "none", "v": 0} ]'')m4_dnl
+m4_define(`__MOD_JSON_STYLE',``{"t": "''$1``", "v":'' $2``}, '')m4_dnl
+m4_dnl
+m4_define(`__MOD_CONSTITUTION', ``__MOD(__SN_CONSTITUTION(), $1)'')m4_dnl
+m4_define(`__MOD_DEXTERITY', ``__MOD(__SN_DEXTERITY(), $1)'')m4_dnl
+m4_define(`__MOD_INTELLIGENCE', ``__MOD(__SN_INTELLIGENCE(), $1)'')m4_dnl
+m4_define(`__MOD_MIND', ``__MOD(__SN_MIND(), $1)'')m4_dnl
+m4_define(`__MOD_SPEED', ``__MOD(__SN_SPEED(), $1)'')m4_dnl
+m4_define(`__MOD_STRENGTH', ``__MOD(__SN_STRENGTH(), $1)'')m4_dnl
+m4_dnl
+m4_define(`__MOD_SLASH', ``__MOD(__SN_SLASH(), $1)'')m4_dnl
+m4_define(`__MOD_PIERCE', ``__MOD(__SN_PIERCE(), $1)'')m4_dnl
+m4_define(`__MOD_BLUNT', ``__MOD(__SN_BLUNT(), $1)'')m4_dnl
+m4_dnl
+m4_define(`__MOD_MAX_HEALTH', ``__MOD(__SN_MAX_HEALTH(), $1)'')m4_dnl
+m4_define(`__MOD_MOVEMENT_POINTS', ``__MOD(__SN_MOVEMENT_POINTS(), $1)'')m4_dnl
+m4_define(`__MOD_DODGE', ``__MOD(__SN_DODGE(), $1)'')m4_dnl
+m4_define(`__MOD_PARRY', ``__MOD(__SN_PARRY(), $1)'')m4_dnl
+m4_define(`__MOD_ACCURACY', ``__MOD(__SN_ACCURACY(), $1)'')m4_dnl
+m4_define(`__MOD_DOUBLE_HITS', ``__MOD(__SN_DOUBLE_HITS(), $1)'')m4_dnl
+m4_define(`__MOD_CRITICAL', ``__MOD(__SN_CRITICAL_HIT(), $1)'')m4_dnl
+m4_dnl
+m4_define(`__MOD_USE_ERLANG_STYLE',
+ `__MOD_LIST_CHOOSE_STYLE(`__MOD_LIST_ERLANG_STYLE')__MOD_CHOOSE_STYLE(`__MOD_ERLANG_STYLE')')m4_dnl
+m4_define(`__MOD_USE_JSON_STYLE',
+ `__MOD_LIST_CHOOSE_STYLE(`__MOD_LIST_JSON_STYLE')__MOD_CHOOSE_STYLE(`__MOD_JSON_STYLE')')m4_dnl
diff --git a/names.m4.conf b/names.m4.conf
new file mode 100644
index 0000000..33ab02b
--- /dev/null
+++ b/names.m4.conf
@@ -0,0 +1,18 @@
+m4_define(`__SN_CONSTITUTION', con)m4_dnl
+m4_define(`__SN_DEXTERITY', dex)m4_dnl
+m4_define(`__SN_INTELLIGENCE', int)m4_dnl
+m4_define(`__SN_MIND', min)m4_dnl
+m4_define(`__SN_SPEED', spe)m4_dnl
+m4_define(`__SN_STRENGTH', str)m4_dnl
+m4_dnl
+m4_define(`__SN_SLASH', slh)m4_dnl
+m4_define(`__SN_PIERCE', pie)m4_dnl
+m4_define(`__SN_BLUNT', blu)m4_dnl
+m4_dnl
+m4_define(`__SN_MAX_HEALTH', mheal)m4_dnl
+m4_define(`__SN_MOVEMENT_POINTS', mpts)m4_dnl
+m4_define(`__SN_DODGE', dodg)m4_dnl
+m4_define(`__SN_PARRY', pary)m4_dnl
+m4_define(`__SN_ACCURACY', accu)m4_dnl
+m4_define(`__SN_DOUBLE_HITS', dhit)m4_dnl
+m4_define(`__SN_CRICITAL_HIT', crit)m4_dnl