Compare commits

..

No commits in common. "bd5a68c2a7c40ad4c1cafb9569d775e19601c5ca" and "d7e721f49ac8943f0e9706a8646eca3e65b78651" have entirely different histories.

20 changed files with 35 additions and 196 deletions

View file

@ -3,10 +3,10 @@ local DataList = require "classes.datalist"
local parseFile = require "libs.filereader"
function BeastFile:new(folder, name, forceLevel)
function BeastFile:new(folder, name)
self.filepath = folder .. "/" .. name
print("Loading " .. self.filepath)
self.datas = DataList(forceLevel)
self.datas = DataList()
self:readLines()
end
@ -44,10 +44,4 @@ function BeastFile:prepareJson(simplercreatures, creatures, parent)
self.datas:prepareJson(simplercreatures, creatures, parent)
end
function BeastFile:getRawData()
local content = {}
self.datas:prepareJson({}, content, "Nothing")
return content[1]
end
return BeastFile

View file

@ -11,10 +11,7 @@ function StatHolder:applyCommand(command, args)
end
function StatHolder:reduce(level)
local stat = self.commands.base + ((self.commands.lvl or 0) * level) + (self.commands.add or 0) + (self.commands.bonus or 0)
local modulo = commands.structs[self.key].modulo or 1
stat = math.floor(stat / modulo) * modulo
return stat
return self.commands.base + ((self.commands.lvl or 0) * level) + (self.commands.add or 0) + (self.commands.bonus or 0)
end
return StatHolder

View file

@ -60,8 +60,7 @@ function DataList.getHolder(key, value)
return SimpleHolder(key, value)
end
function DataList:new(forceLevel)
self.forceLevel = forceLevel
function DataList:new()
self.list = {}
self.holders = {}
self.reducedList = {}
@ -85,10 +84,6 @@ function DataList:reduce()
end
end
if (self.forceLevel ~= nil) then
level = self.forceLevel
end
for _, rawdata in ipairs(self.list) do
if (rawdata:canBeUsed(level)) then
self.holders[rawdata:getKey()]:applyCommand(rawdata:getCommand(), rawdata.arguments)
@ -96,33 +91,10 @@ function DataList:reduce()
end
for key, holder in pairs(self.holders) do
--self.reducedList[key] = holder:reduce(level)
self:addToReducedList(key, holder:reduce(level))
self.reducedList[key] = holder:reduce(level)
end
if (self.forceLevel ~= nil) then
self.reducedList["level"] = self.forceLevel
end
end
function DataList:addToReducedList(key, data)
local to = commands.structs[key].to or key
local toSplited = utils.split(to, ".", true)
if (#toSplited == 1) then
self.reducedList[to] = data
else
local list = self.reducedList
for i, toPart in ipairs(toSplited) do
if (i == #toSplited) then
list[toPart] = data
else
if (list[toPart] == nil) then
list[toPart] = {}
end
list = list[toPart]
end
end
end
--TODO
end
function DataList:prepareJson(simplercreatures, creatures, parent)

View file

@ -1,43 +1,5 @@
name;Loup
level;4
type;bete
atk.base;50
hab.base;70
int.base;35
sag.base;40
vol.base;60
cha.base;60
dis.base;60
per.base;70
atk.lvl;4
hab.lvl;5
dis.lvl;3
con.lvl;3
pv.lvl;5
pe.lvl;1
armurephy.base;3 | 5
armurepsy.base;0 | 5
armurespe.base;1 | 5
armurephy.base;6 | 10
armurepsy.base;1 | 10
armurespe.base;2 | 10
armurephy.base;9 | 15
armurepsy.base;2 | 15
armurespe.base;3 | 15
competence;Chasse;10;
competence.lvl;Chasse;5;
competence;Pistage;10;
competence.lvl;Pistage;5;
armes;Griffe;2;
armes;Croc;3;
skill;Morsure;Une attaque qui utilise les crocs et fait 1 blessure;
skill;Griffure;Fait deux attaques à -30% de chance d'échouer;
atk.base;60
competence;morsure
competence;griffure
competence;dechirement | 10

View file

@ -1,5 +0,0 @@
nomType;aerien
categorie;biologique
faiblesse;air
resistance;terre
skill;Vol;Peut voler

View file

@ -1,5 +0,0 @@
nomType;aquatique
categorie;biologique
faiblesse;foudre
resistance;eau
skill;Aquatique;N'a pas de malus dans l'eau

View file

@ -1,3 +0,0 @@
nomType;bête
categorie;biologique
faiblesse;metal

View file

@ -1,5 +0,0 @@
nomType;feufolet
categorie;non-biologique
faiblesse;eau
faiblesse;terre
resistance;glace

View file

@ -1,6 +0,0 @@
nomType;gelatineux
categorie;non-biologique
faiblesse;metal
faiblesse;son
resistance;force
resistance;eau

View file

@ -1,4 +0,0 @@
nomType;créature de glace
categorie;non-biologique
faiblesse;feu
resistance;glace

View file

@ -1,2 +0,0 @@
nomType;humanoïde
categorie;biologique

View file

@ -1,3 +0,0 @@
nomType;insecte
categorie;biologique
faiblesse;feu

View file

@ -1,5 +0,0 @@
nomType;machine
categorie;non-biologique
immunite;poison
faiblesse;foudre
faiblesse;eau

View file

@ -1,4 +0,0 @@
nomType;mineraloïde
categorie;non-biologique
resistance;poison
resistance;feu

View file

@ -1,3 +0,0 @@
nomType;reptile
categorie;biologique
faiblesse;glace

View file

@ -1,4 +0,0 @@
nomType;vegetal
categorie;biologique
faiblesse;feu
resistance;vegetal

View file

@ -1,5 +0,0 @@
nomType;volute
categorie;non-biologique
faiblesse;air
resistance;terre
resistance;metal

View file

@ -15,7 +15,7 @@ end
local function addStatCommands(name, value)
addCommands(name .. ".base", name, value.default)
addCommands(name .. ".lvl", name, value.lvl or 0)
addCommands(name .. ".lvl", name, 0)
addCommands(name .. ".add", name, 0)
addCommands(name .. ".bonus", name, 0)
end

View file

@ -1,29 +1,29 @@
return {
name={contentType = "string", preParse = true, to="name"},
nomType={contentType = "string", to="type"},
categorie={contentType = "string", to="categorie"},
faiblesse={contentType = "list", args=1},
resistence={contentType = "list", args=1},
immunite={contentType = "list", args=1},
name={contentType = "string", preParse = true},
nomType={contentType = "string"},
categorie={contentType = "string"},
faiblesses={contentType = "string"},
resistences={contentType = "string"},
immunites={contentType = "string"},
level={contentType = "number", default = 0, preParse = true},
pression={contentType = "number", default = 5},
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"},
int= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.int"},
sag= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.sag"},
vol= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.vol"},
cha= {dataType= "stat", modulo= 5, default= 50, max=255, min=10, to="stats.cha"},
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},
eclat= {dataType= "stat", modulo= 1, default= 10, max=200, min=1, to="vita.eclat"},
armurephy= {dataType= "stat", modulo= 1, default= 0, max=9999999, min=0, to="armure.phy"},
armurepsy= {dataType= "stat", modulo= 1, default= 0, max=9999999, min=0, to="armure.psy"},
armurespe= {dataType= "stat", modulo= 1, default= 0, max=9999999, min=0, to="armure.spe"},
atk= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
con= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
hab= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
int= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
sag= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
vol= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
cha= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
dis= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
rel= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
per= {dataType= "stat", modulo= 5, default= 50, max=255, min=10},
pv= {dataType= "stat", modulo= 1, default= 12, max=9999999, min=1},
pe= {dataType= "stat", modulo= 1, default= 12, max=9999999, min=1},
eclat= {dataType= "stat", modulo= 1, default= 10, max=200, min=1},
armurephy= {dataType= "stat", modulo= 1, default= 0, max=9999999, min=0},
armurepsy= {dataType= "stat", modulo= 1, default= 0, max=9999999, min=0},
armurespe= {dataType= "stat", modulo= 1, default= 0, max=9999999, min=0},
armes= {dataType= "list", args=2},
competence= {dataType= "comp", args=3}, -- on va le gérer différemment comme du code lol sinon c'est trop relou
skill= {dataType= "list", args=2},
skill= {dataType= "list", args=2}, -- on va le gérer différemment comme du code lol sinon c'est trop relou
armes= {dataType= "list", args=1},
}

View file

@ -1,32 +0,0 @@
require "libs"
local config = require "config"
local BeastFile = require "classes.beastfile"
local beast = BeastFile("data", arg[1] .. ".beast", tonumber(arg[2]))
local creature = beast:getRawData()
print(creature.name, "Lvl:" .. creature.level, "Pression:" .. creature.pression, creature["type"], creature.categorie)
print(" ", "------")
print("FOR:" .. creature.stats["for"], "INT:" .. creature.stats.int, "CHA:" .. creature.stats.cha)
print("CON:" .. creature.stats.con, "SAG:" .. creature.stats.sag, "DIS:" .. creature.stats.dis)
print("HAB:" .. creature.stats.hab, "VOL:" .. creature.stats.vol, "REL:" .. creature.stats.rel)
print(" ", "PER:" .. creature.stats.per)
print(" ", "------")
print("PV:" .. creature.vita.pv, "PE:" .. creature.vita.pe, "Eclat:" .. creature.vita.eclat)
print("Armure", "Phy:" .. creature.armure.phy, "Psy:" .. creature.armure.psy, "Spe:" .. creature.armure.spe)
print(" ", "------")
print("Armes:")
for key, value in ipairs(creature.armes) do
print(value[1], value[2])
end
print(" ", "------")
print("Competences:")
for key, value in ipairs(creature.competence) do
print(value.name, value.value)
end
print(" ", "------")
print("Skills:")
for key, value in ipairs(creature.skill) do
print(value[1], value[2])
end