Compare commits
4 commits
ae89979c80
...
d5d707ad00
Author | SHA1 | Date | |
---|---|---|---|
|
d5d707ad00 | ||
|
ba0968968d | ||
|
a72bdf1315 | ||
|
478e6fb95b |
22 changed files with 252 additions and 39 deletions
30
classes/dataholders/boostholder.lua
Normal file
30
classes/dataholders/boostholder.lua
Normal file
|
@ -0,0 +1,30 @@
|
|||
local BoostHolder = Object:extend()
|
||||
|
||||
function BoostHolder:new(list)
|
||||
self.parent = list
|
||||
self.table = {}
|
||||
end
|
||||
|
||||
function BoostHolder:add(name, val)
|
||||
if (self.table[name] == nil) then
|
||||
self.table[name] = val
|
||||
else
|
||||
self.table[name] = self.table[name] + val
|
||||
end
|
||||
end
|
||||
|
||||
function BoostHolder:getValue(name, val)
|
||||
if (name == "pv" or name == "pe") then
|
||||
return val * 3
|
||||
else
|
||||
return val * 5
|
||||
end
|
||||
end
|
||||
|
||||
function BoostHolder:apply()
|
||||
for key, value in pairs(self.table) do
|
||||
self.parent:addToHolder(key, "lvl", self:getValue(key, value))
|
||||
end
|
||||
end
|
||||
|
||||
return BoostHolder
|
|
@ -8,6 +8,8 @@ local CompetenceHolder = require "classes.dataholders.competenceholder"
|
|||
local ArmesHolder = require "classes.dataholders.armesholder"
|
||||
local ArmureHolder = require "classes.dataholders.armureholder"
|
||||
|
||||
local BoostHolder = require "classes.dataholders.boostholder"
|
||||
|
||||
function RawData.fromLine(line)
|
||||
line = utils.removeComment(line)
|
||||
if (#line == 0) then
|
||||
|
@ -78,6 +80,8 @@ function DataList:new(forceLevel)
|
|||
for key, struct in pairs(commands.structs) do
|
||||
self.holders[key] = DataList.getHolder(key, struct)
|
||||
end
|
||||
|
||||
self.boosts = BoostHolder(self)
|
||||
end
|
||||
|
||||
function DataList:addLine(line)
|
||||
|
@ -88,6 +92,10 @@ function DataList:forceName(name)
|
|||
self.forcedName = name
|
||||
end
|
||||
|
||||
function DataList:addToHolder(key, command, arguments)
|
||||
self.holders[key]:applyCommand(command, arguments)
|
||||
end
|
||||
|
||||
function DataList:reduce()
|
||||
local level = 0
|
||||
local mode = "creature"
|
||||
|
@ -98,6 +106,9 @@ function DataList:reduce()
|
|||
if (rawdata.name == "mode") then
|
||||
mode = rawdata.arguments
|
||||
end
|
||||
if (rawdata.name == "boost") then
|
||||
self.boosts:add(rawdata.arguments[1], rawdata.arguments[2])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
@ -106,13 +117,14 @@ function DataList:reduce()
|
|||
end
|
||||
|
||||
for _, rawdata in ipairs(self.list) do
|
||||
if (rawdata:canBeUsed(level)) then
|
||||
self.holders[rawdata:getKey()]:applyCommand(rawdata:getCommand(), rawdata.arguments)
|
||||
if (rawdata:canBeUsed(level) and rawdata.name ~= "boost" and rawdata.name ~= "halfboost") then
|
||||
self:addToHolder(rawdata:getKey(), rawdata:getCommand(), rawdata.arguments)
|
||||
end
|
||||
end
|
||||
|
||||
self.boosts:apply()
|
||||
|
||||
for key, holder in pairs(self.holders) do
|
||||
--self.reducedList[key] = holder:reduce(level)
|
||||
self:addToReducedList(key, holder:reduce(level, mode))
|
||||
end
|
||||
|
||||
|
|
26
data/animaux/belier.beast
Normal file
26
data/animaux/belier.beast
Normal file
|
@ -0,0 +1,26 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
level;1
|
||||
name;Belier
|
||||
|
||||
// 4 boosts de stats
|
||||
boost;hab;.5
|
||||
boost;rel;1
|
||||
boost;con;.5
|
||||
boost;per;1
|
||||
boost;pv;1
|
||||
|
||||
armurephy.base;3
|
||||
armurepsy.base;0
|
||||
armurespe.base;3
|
||||
|
||||
competence;Charge;10;
|
||||
competence.lvl;Charge;3;
|
||||
competence;Evasion;10;
|
||||
competence.lvl;Evasion;3;
|
||||
|
||||
armes;Corne;3;
|
||||
|
||||
skill;Charge (1 tours de cooldown);Peut charger et envoyer deux dés d'attaque au lieu d'un;
|
||||
skill;Broute; Peut faire une attaque qui fait des dégats mentaux aux végétaux;
|
||||
skill;Laine;+2 armures spéciale de base (scale avec le niveau, déjà présent dans les armures);
|
|
@ -1,6 +1,5 @@
|
|||
beast;Chien;0;generique/canides
|
||||
beast;Petit Chien;0;generique/canides;bases/tailles/petit
|
||||
beast;Chien-Loup;3;generique/canides
|
||||
beast;Loup;6;generique/canides
|
||||
beast;Chef-Loup;7;generique/canides
|
||||
beast;Loup;5;generique/canides
|
||||
beast;Chef-Loup;6;generique/canides
|
||||
beast;Loup Géant;9;generique/canides;bases/tailles/grand
|
22
data/animaux/cheval.beast
Normal file
22
data/animaux/cheval.beast
Normal file
|
@ -0,0 +1,22 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
mixins;bases/tailles/grand
|
||||
level;3
|
||||
name;Cheval
|
||||
|
||||
// 4 boosts de stats
|
||||
boost;hab;.5
|
||||
boost;rel;.5
|
||||
boost;con;1
|
||||
boost;pv;2
|
||||
|
||||
armurephy.base;3
|
||||
armurepsy.base;0
|
||||
armurespe.base;1
|
||||
|
||||
competence;Charge;10;
|
||||
competence.lvl;Charge;3;
|
||||
|
||||
skill;Galop;Peut faire sa vitesse pur sur sa FOR;
|
||||
skill;Monture;Peut servir de monture, jouera au même tour;
|
||||
skill;Ruade (2 tours de cooldown);Une attaque qui projette l'ennemi et à 1/4 chance de stun;
|
25
data/animaux/chevre.beast
Normal file
25
data/animaux/chevre.beast
Normal file
|
@ -0,0 +1,25 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
level;1
|
||||
name;Chèvre
|
||||
|
||||
// 4 boosts de stats
|
||||
boost;hab;.5
|
||||
boost;rel;.5
|
||||
boost;int;1
|
||||
boost;per;1
|
||||
boost;pv;1
|
||||
|
||||
armurephy.base;3
|
||||
armurepsy.base;0
|
||||
armurespe.base;1
|
||||
|
||||
competence;Charge;10;
|
||||
competence.lvl;Charge;3;
|
||||
competence;Evasion;10;
|
||||
competence.lvl;Evasion;3;
|
||||
|
||||
armes;Corne;3;
|
||||
|
||||
skill;Charge (1 tours de cooldown);Peut charger et envoyer deux dés d'attaque au lieu d'un;
|
||||
skill;Broute; Peut faire une attaque qui fait des dégats mentaux aux végétaux;
|
4
data/animaux/felides.group
Normal file
4
data/animaux/felides.group
Normal file
|
@ -0,0 +1,4 @@
|
|||
beast;Chat;0;generique/felides;bases/tailles/petit
|
||||
beast;Lynx;3;generique/felides
|
||||
beast;Fauve;7;generique/felides
|
||||
beast;Lion géant;10;generique/felides;bases/tailles/grand
|
3
data/animaux/ours.beast
Normal file
3
data/animaux/ours.beast
Normal file
|
@ -0,0 +1,3 @@
|
|||
mixins;generique/ursides
|
||||
level;8
|
||||
name;Ours
|
11
data/animaux/rats.group
Normal file
11
data/animaux/rats.group
Normal file
|
@ -0,0 +1,11 @@
|
|||
beast;Rat;0;generique/rat
|
||||
beast;Chauve souris;1;generique/rat;types/aerien
|
||||
beast;Gros rat;2;generique/rat;bases/tailles/petit
|
||||
beast;Nuée de rats;3;generique/rat;bases/special/nuee
|
||||
beast;Nuée de chauve souris;4;generique/rat;types/aerien
|
||||
beast;Rat pestiféré;4;generique/rat;bases/special/pestilent
|
||||
beast;Rat géant;4;generique/rat
|
||||
beast;Chauve souris vampire;4;generique/rat;types/aerien;bases/special/vampirisme
|
||||
beast;Rat géant pestiféré;5;generique/rat;generique/rat;bases/special/pestilent
|
||||
beast;Nuée de rats pestiféré;7;generique/rat;bases/special/nuee;bases/special/pestilent
|
||||
beast;Nuée de chauve souris vampire;7;generique/rat;types/aerien;bases/special/nuee;bases/special/vampirisme
|
27
data/animaux/renard.beast
Normal file
27
data/animaux/renard.beast
Normal file
|
@ -0,0 +1,27 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
level;2
|
||||
name;Renard
|
||||
|
||||
// 4 boosts de stats
|
||||
boost;int;1
|
||||
boost;hab;1
|
||||
boost;rel;.5
|
||||
boost;atk;.5
|
||||
boost;pv;.5
|
||||
boost;int;.5
|
||||
|
||||
armurephy.base;2
|
||||
armurepsy.base;0
|
||||
armurespe.base;1
|
||||
|
||||
competence;Chasse;10;
|
||||
competence.lvl;Chasse;3;
|
||||
competence;Pistage;10;
|
||||
competence.lvl;Pistage;3;
|
||||
|
||||
armes;Griffe;3;
|
||||
armes;Croc;4;
|
||||
|
||||
skill;Morsure;Une attaque qui utilise les crocs et fait 1 blessure;
|
||||
skill;Griffure;Fait deux attaques à -30% de chance de toucher;
|
24
data/animaux/vache.beast
Normal file
24
data/animaux/vache.beast
Normal file
|
@ -0,0 +1,24 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
mixins;bases/tailles/grand
|
||||
level;3
|
||||
name;Vache
|
||||
|
||||
// 4 boosts de stats
|
||||
boost;atk;.5
|
||||
boost;rel;.5
|
||||
boost;con;1
|
||||
boost;pv;2
|
||||
|
||||
armurephy.base;4
|
||||
armurepsy.base;0
|
||||
armurespe.base;2
|
||||
|
||||
competence;Charge;10;
|
||||
competence.lvl;Charge;3;
|
||||
|
||||
armes;Corne;3;
|
||||
|
||||
skill;Charge (1 tours de cooldown);Peut charger et envoyer deux dés d'attaque au lieu d'un;
|
||||
skill;Monture;Peut servir de monture, jouera au même tour;
|
||||
skill;Empalement (2 tours de cooldown);Attaque qui provoque 1D4 blessure, mais n'a qu'une chance sur 2 de réussir; | 6
|
1
data/bases/special/nuee.beast
Normal file
1
data/bases/special/nuee.beast
Normal file
|
@ -0,0 +1 @@
|
|||
skill;Nuée;PV × 1D8, correspond au nombre de créature. Au max 3 attaque par tour tant qu'il y a assez de créature. Les attaque non de zone font max le nombre de PV de base de la créature. Les soins ne peuvent ramener des membres de la nuée. La nuée perd 10% en hab pour esquiver tant qu'il y a des membres.;
|
1
data/bases/special/pestilent.beast
Normal file
1
data/bases/special/pestilent.beast
Normal file
|
@ -0,0 +1 @@
|
|||
skill;Pestilence;Ses attaques physique font l'effet poison;
|
1
data/bases/special/vampirisme.beast
Normal file
1
data/bases/special/vampirisme.beast
Normal file
|
@ -0,0 +1 @@
|
|||
skill;Vampirisme (1 tour de cooldown);Une attaque au corps à corps qui soigne à l'attaquant 50% des dégats infligés à l'ennemi.;
|
8
data/bases/tailles/normal.beast
Normal file
8
data/bases/tailles/normal.beast
Normal file
|
@ -0,0 +1,8 @@
|
|||
// Créature normale
|
||||
atk.bonus;0
|
||||
con.bonus;0
|
||||
hab.bonus;0
|
||||
per.bonus;0
|
||||
|
||||
pv.bonus;0;
|
||||
armurephy.bonus;0;
|
|
@ -1,8 +1,6 @@
|
|||
beast;Chien des enfers;1;generique/canides
|
||||
beast;Chihuahua infernal;1;generique/canides;bases/tailles/petit;bases/special/demons-betes
|
||||
beast;Chien-Loup des enfers;4;generique/canides;bases/special/demons-betes
|
||||
beast;Loup des enfers;7;generique/canides;bases/special/demons-betes
|
||||
beast;Chef-Loup des enfers;8;generique/canides;bases/special/demons-betes
|
||||
beast;Loup du pandémonium;10;generique/canides;bases/special/demons-betes
|
||||
beast;Loup Géant des enfers;12;generique/canides;bases/tailles/grand;bases/special/demons-betes
|
||||
beast;Loup du pandémonium;11;generique/canides;bases/tailles/grand
|
||||
beast;Loup Géant du pandémonium;15;generique/canides;bases/tailles/grand;bases/special/demons-betes
|
|
@ -1,15 +1,13 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
|
||||
// 10~11 points de stats à distribuer par niveaux
|
||||
atk.lvl;3
|
||||
hab.lvl;2
|
||||
dis.lvl;1
|
||||
con.lvl;3
|
||||
int.lvl;1
|
||||
// 4 boosts à rajouter
|
||||
|
||||
pv.lvl;4
|
||||
pe.lvl;2
|
||||
boost;atk;1.5
|
||||
boost;pv;1
|
||||
boost;pe;.5
|
||||
boost;hab;.5
|
||||
boost;con;.5
|
||||
|
||||
armurephy.base;2
|
||||
armurepsy.base;0
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
|
||||
// 10~11 points de stats à distribuer par niveaux
|
||||
atk.lvl;2
|
||||
hab.lvl;3
|
||||
dis.lvl;3
|
||||
con.lvl;1
|
||||
int.lvl;2
|
||||
// 4 boosts à rajouter
|
||||
|
||||
pv.lvl;4
|
||||
pe.lvl;2
|
||||
boost;atk;1
|
||||
boost;hab;1
|
||||
boost;pv;1
|
||||
boost;int;.5
|
||||
boost;dis;.5
|
||||
|
||||
armurephy.base;1
|
||||
armurepsy.base;0
|
||||
armurespe.base;1
|
||||
|
||||
competence;Chasse;10;
|
||||
competence.lvl;Chasse;3;
|
||||
competence.lvl;Chasse;2;
|
||||
competence;Pistage;10;
|
||||
competence.lvl;Pistage;3;
|
||||
competence.lvl;Pistage;2;
|
||||
competence;Grimpette;10;
|
||||
competence.lvl;Pistage;2;
|
||||
|
||||
armes;Griffe;3;
|
||||
armes;Croc;4;
|
||||
|
|
25
data/generique/rat.beast
Normal file
25
data/generique/rat.beast
Normal file
|
@ -0,0 +1,25 @@
|
|||
type;bete
|
||||
mixins;bases/corps/quadripede
|
||||
mixins;bases/tailles/trespetit
|
||||
level;0
|
||||
name;Rat
|
||||
|
||||
// 4 boosts de stats
|
||||
boost;int;1
|
||||
boost;hab;2
|
||||
boost;dis;1
|
||||
|
||||
armurephy.base;0
|
||||
armurepsy.base;0
|
||||
armurespe.base;0
|
||||
|
||||
competence;Cachette;10;
|
||||
competence.lvl;Cachette;3;
|
||||
competence;Fouille;10;
|
||||
competence.lvl;Fouille;3;
|
||||
|
||||
armes;Griffe;1;
|
||||
armes;Croc;2;
|
||||
|
||||
skill;Morsure;Une attaque qui utilise les crocs et fait 1 blessure;
|
||||
skill;Attaque accrochée;S'accroche et fait 1 dégats / tour;
|
|
@ -2,13 +2,10 @@ type;bete
|
|||
mixins;bases/corps/quadripede
|
||||
mixins;bases/tailles/grand
|
||||
|
||||
// 10~11 points de stats à distribuer par niveaux
|
||||
atk.lvl;4
|
||||
cha.lvl;2
|
||||
con.lvl;4
|
||||
|
||||
pv.lvl;6
|
||||
pe.lvl;1
|
||||
// 4 boost à passer par niveau
|
||||
boost;atk;1
|
||||
boost;con;1
|
||||
boost;pv;2
|
||||
|
||||
armurephy.base;4
|
||||
armurepsy.base;0
|
||||
|
@ -22,5 +19,5 @@ competence.lvl;Pistage;3;
|
|||
armes;Griffe;4;
|
||||
armes;Croc;5;
|
||||
|
||||
skill;Morsure;Une attaque qui utilise les crocs et fait 1 blessure;
|
||||
skill;Morsure;Une attaque qui utilise les crocs et fait 2 blessure;
|
||||
skill;Griffure;Fait deux attaques à -30% de chance de toucher;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
nomType;aerien
|
||||
categorie;biologique
|
||||
faiblesse;air
|
||||
resistance;terre
|
||||
skill;Vol;Peut voler
|
||||
resistence;terre
|
||||
skill;Vol;Peut voler, +30% pour esquiver les attaques terrestres
|
|
@ -8,6 +8,7 @@ return {
|
|||
immunite={contentType = "list", args=1},
|
||||
level={contentType = "number", default = 0, preParse = true},
|
||||
pression={contentType = "number", default = 5},
|
||||
boost={dataType = "boost", args=2},
|
||||
atk= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.for"},
|
||||
con= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.con"},
|
||||
hab= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.hab"},
|
||||
|
@ -18,8 +19,8 @@ return {
|
|||
dis= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.dis"},
|
||||
rel= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.rel"},
|
||||
per= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.per"},
|
||||
pv= {dataType= "stat", modulo= 1, default= 12, max=9999999, min=1, to="vita.pv", lvl=3},
|
||||
pe= {dataType= "stat", modulo= 1, default= 12, max=9999999, min=1, to="vita.pe", lvl=3},
|
||||
pv= {dataType= "stat", modulo= 1, default= 12, max=9999999, min=1, to="vita.pv", lvl=1},
|
||||
pe= {dataType= "stat", modulo= 1, default= 12, max=9999999, min=1, to="vita.pe", lvl=1},
|
||||
eclat= {dataType= "stat", modulo= 1, default= 10, max=200, min=1, to="vita.eclat"},
|
||||
armurephy= {dataType= "armure", modulo= 1, default= 0, max=9999999, min=0, to="armure.phy"},
|
||||
armurepsy= {dataType= "armure", modulo= 1, default= 0, max=9999999, min=0, to="armure.psy"},
|
||||
|
|
Loading…
Reference in a new issue