basis of wound system
This commit is contained in:
+78
-56
@@ -1,4 +1,5 @@
|
||||
import { VERMINE } from './config.mjs'
|
||||
|
||||
/**
|
||||
* renvoie le score d'une compétence d'un actor existant
|
||||
* @param {VermineActor}
|
||||
@@ -14,33 +15,7 @@ export function getActorSkillScore(actor, skillLabel, property = "value") {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (returnedValue == null){
|
||||
for(let i in actor.system.cskills.data){
|
||||
if (actor.system.cskills.data[i].label == skillLabel){
|
||||
returnedValue = actor.system.cskills.data[i][property];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnedValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* renvoie le type d'une compétence
|
||||
* @param {VermineActor}
|
||||
* @return {string||null} Data for rendering or null
|
||||
*/
|
||||
export function getSkillTypeFromLabel(skillLabel) {
|
||||
let returnedValue = null;
|
||||
|
||||
for(let i in VERMINE.skills){
|
||||
for(let j in VERMINE.skills[i].data){
|
||||
if (VERMINE.skills[i].data[j].label == skillLabel){
|
||||
returnedValue = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return returnedValue;
|
||||
}
|
||||
|
||||
@@ -64,46 +39,93 @@ export function updateActorSkillScore(selectedActor, skillLabel, property = "val
|
||||
}
|
||||
}
|
||||
|
||||
if (updated == false){
|
||||
for (let s in selectedActor.system.cskills.data){
|
||||
if (selectedActor.system.cskills.data[s].label == skillLabel){
|
||||
selectedActor.system.cskills.data[s][property] = updatedValue; // printing the new value
|
||||
const systemSkillKey = `system.cskills.data.${s}.${property}`;
|
||||
selectedActor.update({[systemSkillKey]:updatedValue }); // updating actor's data
|
||||
updated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return updated;
|
||||
} catch(e){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* renvoie le score de Sang froid (carac mental + social)
|
||||
* @param {VermineActor}
|
||||
* @return {number||null} Data for rendering or null
|
||||
*/
|
||||
export function setCharacterSelfControl(actor) {
|
||||
let returnedValue = null;
|
||||
|
||||
for(let i in actor.system.abilities){
|
||||
if (actor.system.abilities[i].category == 'mental' || actor.system.abilities[i].category == 'social'){
|
||||
returnedValue += actor.system.abilities[i].value;
|
||||
}
|
||||
}
|
||||
/// gestion de l'age
|
||||
if (actor.system.identity.ageType == 1){
|
||||
returnedValue--;
|
||||
}
|
||||
|
||||
actor.update({ "system.attributes.self_control.max": returnedValue });
|
||||
return returnedValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* réinitialise toutes les dépenses d'usure
|
||||
* renvoie le score d'Effort (carac physical + manual)
|
||||
* @param {VermineActor}
|
||||
* @return {boolean} bool
|
||||
* @return {number||null} Data for rendering or null
|
||||
*/
|
||||
export function resetActorSkillUsure(selectedActor) {
|
||||
try {
|
||||
// on recherche les usures des compétences
|
||||
for (let st in selectedActor.system.skills){
|
||||
for (let s in selectedActor.system.skills[st].data){
|
||||
const systemSkillKey = `system.skills.${st}.data.${s}.spent`;
|
||||
selectedActor.update({[systemSkillKey]:0 }); // updating actor's data
|
||||
}
|
||||
}
|
||||
export function setCharacterEffort(actor) {
|
||||
let returnedValue = null;
|
||||
|
||||
// on recherche les usures des compétences céphaliques
|
||||
for (let s in selectedActor.system.cskills.data){
|
||||
const systemSkillKey = `system.cskills.data.${s}.spent`;
|
||||
selectedActor.update({[systemSkillKey]:0 }); // updating actor's data
|
||||
for(let i in actor.system.abilities){
|
||||
if (actor.system.abilities[i].category == 'physical' || actor.system.abilities[i].category == 'manual'){
|
||||
returnedValue += actor.system.abilities[i].value;
|
||||
}
|
||||
return true;
|
||||
} catch(e){
|
||||
return false;
|
||||
}
|
||||
|
||||
/// gestion de l'age
|
||||
if (actor.system.identity.ageType == 1){
|
||||
returnedValue--;
|
||||
} else if (actor.system.identity.ageType == 3){
|
||||
returnedValue -= 2;
|
||||
}
|
||||
|
||||
actor.update({ "system.attributes.effort.max": returnedValue });
|
||||
|
||||
return returnedValue;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* définis les scores de seuil
|
||||
* @param {VermineActor}
|
||||
* @return {number||null} Data for rendering or null
|
||||
*/
|
||||
export function setCharacterThresholds(actor) {
|
||||
|
||||
const health = actor.system.abilities.health.value;
|
||||
|
||||
let returnedValue = null;
|
||||
|
||||
actor.update({ "system.minorWound.threshold": health });
|
||||
actor.update({ "system.majorWound.threshold": health + 3});
|
||||
actor.update({ "system.deadlyWound.threshold": (health + 7 < 11) ? health + 7 : 10 });
|
||||
|
||||
let lightWounds = 4;
|
||||
let heavyWounds = 3;
|
||||
let deadlyWounds = 2;
|
||||
|
||||
if (actor.system.identity.ageType == 3){
|
||||
lightWounds--;
|
||||
heavyWounds--;
|
||||
deadlyWounds--;
|
||||
} else if (actor.system.identity.ageType == 1){
|
||||
deadlyWounds--;
|
||||
}
|
||||
|
||||
actor.update({ "system.minorWound.max": lightWounds });
|
||||
actor.update({ "system.majorWound.max": heavyWounds });
|
||||
actor.update({ "system.deadlyWound.max": deadlyWounds });
|
||||
|
||||
// console.log('wounds', actor.system.minorWound, actor.system.majorWound, actor.system.deadlyWound);
|
||||
|
||||
return returnedValue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user