local CharUtils = {} local datasutils = require "game.utils.datas" local CONST = {} CONST.EXP_MULTIPLICATOR = 4 CONST.EXP_RATIO = 5 CONST.BASE_STAT = 5 CONST.BASE_HP = 15 CONST.BASE_MP = 8 CONST.MULT_STAT = 2 CONST.MULT_HP = 7.5 CONST.SALT_HP = 35 CONST.MULT_MP = 1.5 local DIR = "characters" function CharUtils.getBaseDirectory(lua) return datasutils.concatDataFolder(DIR, lua) end function CharUtils.getCharacterDirectory(name, lua) local baseDirectory = CharUtils.getBaseDirectory(lua) return datasutils.concatFolder(baseDirectory, name, lua) end function CharUtils.getExpValue(level) return math.floor( ( CONST.EXP_MULTIPLICATOR * ( level ^ 3 ) ) / CONST.EXP_RATIO ) end function CharUtils.getRelativeExpValue(exp, level) return exp - CharUtils.getExpValue(level) end function CharUtils.getLevelExpRange(level) return CharUtils.getExpValue(level + 1) - CharUtils.getExpValue(level) end function CharUtils.getRemainingExp(exp, level) return CharUtils.getExpValue(level + 1) - exp end function CharUtils.getStatValue(level, base) return math.floor( (((base * CONST.MULT_STAT) * level)/100) ) + CONST.BASE_STAT end function CharUtils.getHPValue(level, base) return math.floor( (((CONST.SALT_HP + base * CONST.MULT_HP) * level)/100) ) + CONST.BASE_HP + level end function CharUtils.getPPValue(level, base) return math.floor( (((base * CONST.MULT_MP) * level)/100) ) + CONST.BASE_MP end function CharUtils.charDataExists(name) local dir = CharUtils.getCharacterDirectory(name, false) .. "/init.lua" local fileinfo = love.filesystem.getInfo(dir) return (fileinfo ~= nil) end function CharUtils.getCharacterData(charname) -- va eprmettre de récupérer les données d'un personnage local charfolder = CharUtils.getCharacterDirectory(charname, true) local character = datasutils.copy(charfolder) character.stats = datasutils.copyDataset(charfolder, "stats") character.inventory = datasutils.copyDataset(charfolder, "inventory") character.skills = datasutils.copyDataset(charfolder, "skills") return character end return CharUtils