85 lines
2.5 KiB
JavaScript
85 lines
2.5 KiB
JavaScript
let data = {
|
|
"files": [
|
|
{"title":"Animaux", "file":"animals.json"}
|
|
],
|
|
"archetypes": {
|
|
"tiny":{
|
|
"pv":10, "pe":20,
|
|
"FOR":30, "INT":50, "CHA":40,
|
|
"CON":20, "SAG":80, "DIS":80,
|
|
"HAB":90, "VOL":40, "REL":50,
|
|
"PER":50,
|
|
"PHY":0, "SPE":0, "MEN":0,
|
|
"VIG":-2, "JET":1, "PSY":1
|
|
},
|
|
"small":{
|
|
"pv":15, "pe":20,
|
|
"FOR":40, "INT":50, "CHA":35,
|
|
"CON":30, "SAG":50, "DIS":70,
|
|
"HAB":80, "VOL":45, "REL":50,
|
|
"PER":50,
|
|
"VIG":0, "JET":0, "PSY":0
|
|
},
|
|
"medium":{
|
|
"pv":35, "pe":20,
|
|
"FOR":50, "INT":40, "CHA":50,
|
|
"CON":40, "SAG":40, "DIS":50,
|
|
"HAB":60, "VOL":50, "REL":50,
|
|
"PER":50,
|
|
"VIG":1, "JET":0, "PSY":0
|
|
},
|
|
},
|
|
"traits": {
|
|
"predateur":{"boost1":"PHY", "boost2":"INS", "malus":"FIN", "pv":0, "pe":0},
|
|
"craintif":{"boost1":"DIS", "boost2":"FIN", "malus":"", "pv":10, "pe":-10},
|
|
"domestique":{"boost1":"REL", "boost2":"AUR", "malus":"INS", "pv":-10, "pe":0}
|
|
},
|
|
|
|
"levels": [
|
|
{"base":0, "min":10, "max":70, "boost1":15, "boost2":5, "malus":-15, "dice":2, "pv":1},
|
|
{"base":10, "min":10, "max":70, "boost1":20, "boost2":10, "malus":-15, "dice":2, "pv":1.25},
|
|
{"base":10, "min":10, "max":70, "boost1":20, "boost2":10, "malus":-15, "dice":3, "pv":1.5},
|
|
{"base":20, "min":10, "max":70, "boost1":20, "boost2":10, "malus":-15, "dice":3, "pv":2},
|
|
{"base":20, "min":10, "max":70, "boost1":20, "boost2":10, "malus":-15, "dice":3, "pv":3}
|
|
],
|
|
|
|
"dices": ["1D2", "1D4", "1D6", "1D8", "1D12", "1D20"]
|
|
}
|
|
|
|
function getPV(level, size, trait) {
|
|
var levelData = getLevelData(level);
|
|
var sizeData = getSizeData(size);
|
|
var traitData = getTraitData(trait);
|
|
return Math.floor((sizeData.pv + traitData.pv) * levelData.pv);
|
|
}
|
|
|
|
function getPE(level, size, trait) {
|
|
var levelData = getLevelData(level);
|
|
var sizeData = getSizeData(size);
|
|
var traitData = getTraitData(trait);
|
|
return Math.floor((sizeData.pe + traitData.pe) * levelData.pv);
|
|
}
|
|
|
|
function getLevelData(level) {
|
|
var levelValue = Math.min(Math.max(0, level - 1), 4)
|
|
var allLevelsData = data["levels"]
|
|
return allLevelsData[levelValue]
|
|
}
|
|
|
|
function getSizeData(size) {
|
|
var allSizeData = data["stats"]
|
|
return allSizeData[size]
|
|
}
|
|
|
|
function getTraitData(trait) {
|
|
var allTraitsData = data["traits"]
|
|
return allTraitsData[trait]
|
|
}
|
|
|
|
|
|
function getStat(type, level, size, trait) {
|
|
var levelData = getLevelData(level);
|
|
var sizeData = getSizeData(size);
|
|
var traitData = getTraitData(trait);
|
|
return sizeData[type] + levelData.base;
|
|
}
|