Compare commits

..

No commits in common. "d5d707ad00b525f70b047392427ca090760e3110" and "ae89979c8031f710686d83da55628f1ee271a900" have entirely different histories.

22 changed files with 39 additions and 252 deletions

View file

@ -1,30 +0,0 @@
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

View file

@ -8,8 +8,6 @@ local CompetenceHolder = require "classes.dataholders.competenceholder"
local ArmesHolder = require "classes.dataholders.armesholder" local ArmesHolder = require "classes.dataholders.armesholder"
local ArmureHolder = require "classes.dataholders.armureholder" local ArmureHolder = require "classes.dataholders.armureholder"
local BoostHolder = require "classes.dataholders.boostholder"
function RawData.fromLine(line) function RawData.fromLine(line)
line = utils.removeComment(line) line = utils.removeComment(line)
if (#line == 0) then if (#line == 0) then
@ -80,8 +78,6 @@ function DataList:new(forceLevel)
for key, struct in pairs(commands.structs) do for key, struct in pairs(commands.structs) do
self.holders[key] = DataList.getHolder(key, struct) self.holders[key] = DataList.getHolder(key, struct)
end end
self.boosts = BoostHolder(self)
end end
function DataList:addLine(line) function DataList:addLine(line)
@ -92,10 +88,6 @@ function DataList:forceName(name)
self.forcedName = name self.forcedName = name
end end
function DataList:addToHolder(key, command, arguments)
self.holders[key]:applyCommand(command, arguments)
end
function DataList:reduce() function DataList:reduce()
local level = 0 local level = 0
local mode = "creature" local mode = "creature"
@ -106,9 +98,6 @@ function DataList:reduce()
if (rawdata.name == "mode") then if (rawdata.name == "mode") then
mode = rawdata.arguments mode = rawdata.arguments
end end
if (rawdata.name == "boost") then
self.boosts:add(rawdata.arguments[1], rawdata.arguments[2])
end
end end
@ -117,14 +106,13 @@ function DataList:reduce()
end end
for _, rawdata in ipairs(self.list) do for _, rawdata in ipairs(self.list) do
if (rawdata:canBeUsed(level) and rawdata.name ~= "boost" and rawdata.name ~= "halfboost") then if (rawdata:canBeUsed(level)) then
self:addToHolder(rawdata:getKey(), rawdata:getCommand(), rawdata.arguments) self.holders[rawdata:getKey()]:applyCommand(rawdata:getCommand(), rawdata.arguments)
end end
end end
self.boosts:apply()
for key, holder in pairs(self.holders) do for key, holder in pairs(self.holders) do
--self.reducedList[key] = holder:reduce(level)
self:addToReducedList(key, holder:reduce(level, mode)) self:addToReducedList(key, holder:reduce(level, mode))
end end

View file

@ -1,26 +0,0 @@
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);

View file

@ -1,5 +1,6 @@
beast;Chien;0;generique/canides beast;Chien;0;generique/canides
beast;Petit Chien;0;generique/canides;bases/tailles/petit beast;Petit Chien;0;generique/canides;bases/tailles/petit
beast;Loup;5;generique/canides beast;Chien-Loup;3;generique/canides
beast;Chef-Loup;6;generique/canides beast;Loup;6;generique/canides
beast;Chef-Loup;7;generique/canides
beast;Loup Géant;9;generique/canides;bases/tailles/grand beast;Loup Géant;9;generique/canides;bases/tailles/grand

View file

@ -1,22 +0,0 @@
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;

View file

@ -1,25 +0,0 @@
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;

View file

@ -1,4 +0,0 @@
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

View file

@ -1,3 +0,0 @@
mixins;generique/ursides
level;8
name;Ours

View file

@ -1,11 +0,0 @@
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

View file

@ -1,27 +0,0 @@
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;

View file

@ -1,24 +0,0 @@
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

View file

@ -1 +0,0 @@
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.;

View file

@ -1 +0,0 @@
skill;Pestilence;Ses attaques physique font l'effet poison;

View file

@ -1 +0,0 @@
skill;Vampirisme (1 tour de cooldown);Une attaque au corps à corps qui soigne à l'attaquant 50% des dégats infligés à l'ennemi.;

View file

@ -1,8 +0,0 @@
// Créature normale
atk.bonus;0
con.bonus;0
hab.bonus;0
per.bonus;0
pv.bonus;0;
armurephy.bonus;0;

View file

@ -1,6 +1,8 @@
beast;Chien des enfers;1;generique/canides beast;Chien des enfers;1;generique/canides
beast;Chihuahua infernal;1;generique/canides;bases/tailles/petit;bases/special/demons-betes 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;Loup des enfers;7;generique/canides;bases/special/demons-betes
beast;Chef-Loup des enfers;8;generique/canides;bases/special/demons-betes beast;Chef-Loup des enfers;8;generique/canides;bases/special/demons-betes
beast;Loup du pandémonium;11;generique/canides;bases/tailles/grand 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 Géant du pandémonium;15;generique/canides;bases/tailles/grand;bases/special/demons-betes beast;Loup Géant du pandémonium;15;generique/canides;bases/tailles/grand;bases/special/demons-betes

View file

@ -1,13 +1,15 @@
type;bete type;bete
mixins;bases/corps/quadripede mixins;bases/corps/quadripede
// 4 boosts à rajouter // 10~11 points de stats à distribuer par niveaux
atk.lvl;3
hab.lvl;2
dis.lvl;1
con.lvl;3
int.lvl;1
boost;atk;1.5 pv.lvl;4
boost;pv;1 pe.lvl;2
boost;pe;.5
boost;hab;.5
boost;con;.5
armurephy.base;2 armurephy.base;2
armurepsy.base;0 armurepsy.base;0

View file

@ -1,24 +1,24 @@
type;bete type;bete
mixins;bases/corps/quadripede mixins;bases/corps/quadripede
// 4 boosts à rajouter // 10~11 points de stats à distribuer par niveaux
atk.lvl;2
hab.lvl;3
dis.lvl;3
con.lvl;1
int.lvl;2
boost;atk;1 pv.lvl;4
boost;hab;1 pe.lvl;2
boost;pv;1
boost;int;.5
boost;dis;.5
armurephy.base;1 armurephy.base;1
armurepsy.base;0 armurepsy.base;0
armurespe.base;1 armurespe.base;1
competence;Chasse;10; competence;Chasse;10;
competence.lvl;Chasse;2; competence.lvl;Chasse;3;
competence;Pistage;10; competence;Pistage;10;
competence.lvl;Pistage;2; competence.lvl;Pistage;3;
competence;Grimpette;10;
competence.lvl;Pistage;2;
armes;Griffe;3; armes;Griffe;3;
armes;Croc;4; armes;Croc;4;

View file

@ -1,25 +0,0 @@
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;

View file

@ -2,10 +2,13 @@ type;bete
mixins;bases/corps/quadripede mixins;bases/corps/quadripede
mixins;bases/tailles/grand mixins;bases/tailles/grand
// 4 boost à passer par niveau // 10~11 points de stats à distribuer par niveaux
boost;atk;1 atk.lvl;4
boost;con;1 cha.lvl;2
boost;pv;2 con.lvl;4
pv.lvl;6
pe.lvl;1
armurephy.base;4 armurephy.base;4
armurepsy.base;0 armurepsy.base;0
@ -19,5 +22,5 @@ competence.lvl;Pistage;3;
armes;Griffe;4; armes;Griffe;4;
armes;Croc;5; armes;Croc;5;
skill;Morsure;Une attaque qui utilise les crocs et fait 2 blessure; skill;Morsure;Une attaque qui utilise les crocs et fait 1 blessure;
skill;Griffure;Fait deux attaques à -30% de chance de toucher; skill;Griffure;Fait deux attaques à -30% de chance de toucher;

View file

@ -1,5 +1,5 @@
nomType;aerien nomType;aerien
categorie;biologique categorie;biologique
faiblesse;air faiblesse;air
resistence;terre resistance;terre
skill;Vol;Peut voler, +30% pour esquiver les attaques terrestres skill;Vol;Peut voler

View file

@ -8,7 +8,6 @@ return {
immunite={contentType = "list", args=1}, immunite={contentType = "list", args=1},
level={contentType = "number", default = 0, preParse = true}, level={contentType = "number", default = 0, preParse = true},
pression={contentType = "number", default = 5}, pression={contentType = "number", default = 5},
boost={dataType = "boost", args=2},
atk= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.for"}, 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"}, 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"}, hab= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.hab"},
@ -19,8 +18,8 @@ return {
dis= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.dis"}, 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"}, 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"}, 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=1}, 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=1}, pe= {dataType= "stat", modulo= 1, default= 12, max=9999999, min=1, to="vita.pe", lvl=3},
eclat= {dataType= "stat", modulo= 1, default= 10, max=200, min=1, to="vita.eclat"}, 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"}, 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"}, armurepsy= {dataType= "armure", modulo= 1, default= 0, max=9999999, min=0, to="armure.psy"},