Compare commits

..

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

14 changed files with 21 additions and 111 deletions

View file

@ -38,10 +38,6 @@ function BeastFile:loadMixin(mixin)
end end
end end
function BeastFile:forceName(name)
self.datas:forceName(name)
end
function BeastFile:prepareJson(simplercreatures, creatures, parent) function BeastFile:prepareJson(simplercreatures, creatures, parent)
assert(simplercreatures ~= nil) assert(simplercreatures ~= nil)
assert(creatures ~= nil) assert(creatures ~= nil)

View file

@ -67,8 +67,7 @@ function DataList.getHolder(key, value)
end end
function DataList:new(forceLevel) function DataList:new(forceLevel)
self.forcedLevel = forceLevel self.forceLevel = forceLevel
self.forcedName = nil
self.list = {} self.list = {}
self.holders = {} self.holders = {}
self.reducedList = {} self.reducedList = {}
@ -84,10 +83,6 @@ function DataList:addLine(line)
table.insert(self.list, RawData.fromLine(line)) table.insert(self.list, RawData.fromLine(line))
end end
function DataList:forceName(name)
self.forcedName = name
end
function DataList:reduce() function DataList:reduce()
local level = 0 local level = 0
local mode = "creature" local mode = "creature"
@ -101,8 +96,8 @@ function DataList:reduce()
end end
if (self.forcedLevel ~= nil) then if (self.forceLevel ~= nil) then
level = self.forcedLevel level = self.forceLevel
end end
for _, rawdata in ipairs(self.list) do for _, rawdata in ipairs(self.list) do
@ -116,12 +111,8 @@ function DataList:reduce()
self:addToReducedList(key, holder:reduce(level, mode)) self:addToReducedList(key, holder:reduce(level, mode))
end end
if (self.forcedLevel ~= nil) then if (self.forceLevel ~= nil) then
self.reducedList["level"] = self.forcedLevel self.reducedList["level"] = self.forceLevel
end
if (self.forcedName ~= nil) then
self.reducedList["name"] = self.forcedName
end end
end end

View file

@ -1,6 +1,5 @@
local FolderLoader = Object:extend() local FolderLoader = Object:extend()
local BeastFile = require "classes.beastfile" local BeastFile = require "classes.beastfile"
local GroupFile = require "classes.groupfile"
function FolderLoader.getAllDatas(value, bestiaires, creatures) function FolderLoader.getAllDatas(value, bestiaires, creatures)
local folderLoader = FolderLoader(value) local folderLoader = FolderLoader(value)
@ -22,8 +21,6 @@ function FolderLoader:new(value)
local file = utils.split(filename, ".", true) local file = utils.split(filename, ".", true)
if (file[2] == "beast") then if (file[2] == "beast") then
table.insert(self.files, BeastFile(self.folder, filename)) table.insert(self.files, BeastFile(self.folder, filename))
elseif (file[2] == "group") then
table.insert(self.files, GroupFile(self.folder, filename))
else else
print("[WARNING] Unknown extension " .. file[2] .. " for " .. filename) print("[WARNING] Unknown extension " .. file[2] .. " for " .. filename)
end end

View file

@ -1,64 +0,0 @@
local GroupFile = Object:extend()
local BeastFile = require "classes.beastfile"
local parseFile = require "libs.filereader"
function GroupFile:new(folder, name, forceLevel)
self.filepath = folder .. "/" .. name
print("Loading " .. self.filepath)
self.datas = {}
self:readLines()
end
function GroupFile:readLines()
self:readAllLines(self.filepath)
end
function GroupFile:readAllLines(path)
parseFile(path, function (line) self:addLine(line) end)
end
function GroupFile:addLine(line)
if (utils.startswith(line, "beast;") or utils.startswith(line, "beasts;")) then
local datas = utils.split(line, ";", true)
self:addBeast(datas[2], datas[3], datas[4], self:getMixins(datas))
end
end
function GroupFile:getMixins(datas)
if (#datas < 4) then
return {}
else
local list = {}
for index, value in ipairs(datas) do
if (index > 4) then
table.insert(list, value)
end
end
return list
end
end
function GroupFile:addBeast(name, level, baseFile, mixins)
local beast = BeastFile("data", baseFile .. ".beast", tonumber(level))
if (#mixins > 0) then
for index, mixin in ipairs(mixins) do
beast:loadMixin(mixin)
end
end
beast:forceName(name)
table.insert(self.datas, beast)
end
function GroupFile:prepareJson(simplercreatures, creatures, parent)
assert(simplercreatures ~= nil)
assert(creatures ~= nil)
--self.datas:prepareJson(simplercreatures, creatures, parent)
for _, beast in ipairs(self.datas) do
beast:prepareJson(simplercreatures, creatures, parent)
end
end
return GroupFile

View file

@ -1,5 +1,3 @@
return { return {
{nom = "Animaux", folder = "animaux", description = "Des animaux génériques et communs (ou moins communs)", descriptionPage = "Cette page comporte les animaux génériques et communs qu'on peut voir tout les jours, plus quelques animaux plus grand que d'habitude. Ces créatures vont être généralement de niveaux plus faible que d'autres que vous pourrez rencontrer plus tard dans le jeu (apres une vache ça reste dangereux hein)"}, {nom = "Animaux", folder = "animaux", description = "Des animaux génériques et communs (ou moins communs)"}
{nom = "Démons et enfer", folder = "demons", description = "Créatures des enfers et satanistes", descriptionPage = "Cette page comporte les créatures et base de PNJ lié aux enfers. Cela peut contenir des démons, des satanistes, ou d'autres créatures lié aux enfers. Ces êtres sont souvent lié à l'élément *chaos*."},
} }

View file

@ -1,6 +0,0 @@
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 Géant;9;generique/canides;bases/tailles/grand

3
data/animaux/chien.beast Normal file
View file

@ -0,0 +1,3 @@
mixins;generique/canides
name;Chien // nom de la créature

View file

@ -0,0 +1,3 @@
mixins;generique/canides
name;Chien-Loup // nom de la créature
level;2

3
data/animaux/loup.beast Normal file
View file

@ -0,0 +1,3 @@
mixins;generique/canides
name;Loup
level;5

View file

@ -0,0 +1,5 @@
mixins;animaux/loup
name;Loup en Chef // nom de la créature
level;6
skill;Chef de meute;Peut ajouter +1 dégat brut à une attaque par loup présent, mais perdra 50% pour esquiver et encaisser au tour suivant. Cinq tours de cooldown;

View file

@ -1,2 +0,0 @@
mixins;bases/special/demons
skill;Blessure infernale;besoin de deux soin pour soigner une blessure, les blessures restante après le combat provoque un malus physique sur le long terme;

View file

@ -1,5 +0,0 @@
faiblesse;ordre
resistence;chaos
skill;Force chaotique;Regagne 1D6 PV - 3 par tour en terrain chaotique;
skill;Attaque démoniaque;Attaque avec effet de chaos (L'attaque fait moitié dégats sur le corps et l'esprit.)

View file

@ -1,8 +0,0 @@
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 Géant du pandémonium;15;generique/canides;bases/tailles/grand;bases/special/demons-betes

View file

@ -25,5 +25,4 @@ armes;Croc;4;
skill;Morsure;Une attaque qui utilise les crocs et fait 1 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;
skill;Bêtes de meute;+5% pour toucher des zones difficiles par créature de meute présente; skill;Bêtes de meute;+5% pour toucher des zones difficiles par créature de meute présente;
skill;Férocité (trois tour de cooldown);Peut doubler les dégats d'une attaque, mais se prendra 50% des dégats en retour | 6