Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e840b70ac9 | |||
| 03b8779862 | |||
| 580a2ccaba | |||
| 699dba5511 | |||
| aac552102a | |||
| 4762dc33ac | |||
| 0a030460e4 | |||
| ed2dc58680 | |||
| 9c20f277ea |
Binary file not shown.
|
After Width: | Height: | Size: 380 KiB |
+201
@@ -0,0 +1,201 @@
|
||||
{
|
||||
"Adresse": "Agility",
|
||||
"Clairvoyance": "Clarity",
|
||||
"MNBL.abilities": "Gifts/Pacts",
|
||||
"MNBL.activatedrunes": "Activated Runes",
|
||||
"MNBL.addpredilection": "Add a specialization",
|
||||
"MNBL.aimingbonus": "Aiming Bonus",
|
||||
"MNBL.alignement": "Alignment",
|
||||
"MNBL.all": "All",
|
||||
"MNBL.allegiance": "Allegiance",
|
||||
"MNBL.applydamage": "Apply damage/bonus/penalty",
|
||||
"MNBL.aspect": "Aspect",
|
||||
"MNBL.Assaut": "Smite",
|
||||
"MNBL.attack": "Attack",
|
||||
"MNBL.attackcapacity": "Offensive Ability",
|
||||
"MNBL.attackmountbonus": "Mounted attacker vs ground defender (+5)",
|
||||
"MNBL.attacks": "Attacks",
|
||||
"MNBL.attribut": "Attribute",
|
||||
"MNBL.attributes": "Attributes",
|
||||
"MNBL.automalus": "Auto Penalty",
|
||||
"MNBL.base": "Base",
|
||||
"MNBL.beastslords": "Beast Lords",
|
||||
"MNBL.bio": "Bio & Notes",
|
||||
"MNBL.bonus": "Bonus",
|
||||
"MNBL.candoublebonusskill": "Bonuses can be doubled (cf. Profession)",
|
||||
"MNBL.chaos": "Chaos",
|
||||
"MNBL.chaotictraits": "Chaotic Traits",
|
||||
"MNBL.charge": "Charge",
|
||||
"MNBL.consumed": "Consumed",
|
||||
"MNBL.contain": "Contain the opponent",
|
||||
"MNBL.creatureresourcecost": "Resource Cost (creatures)",
|
||||
"MNBL.current": "Current",
|
||||
"MNBL.currentmax": "Current Max",
|
||||
"MNBL.damage": "Damage",
|
||||
"MNBL.damagebonus": "Damage Bonus",
|
||||
"MNBL.defense": "Defense",
|
||||
"MNBL.defensebonus": "Defense Bonus",
|
||||
"MNBL.defensecapacity": "Defensive Ability",
|
||||
"MNBL.dice": "Dice",
|
||||
"MNBL.difficulty": "Difficulty",
|
||||
"MNBL.dirtyattack": "Cheap Shot",
|
||||
"MNBL.disadvantagepositions": "Disadvantageous positions (Max bonus +15)",
|
||||
"MNBL.disarm": "Disarm",
|
||||
"MNBL.doubleD20": "Double d20 (1 Shard Point)",
|
||||
"MNBL.dramaticfailure": "Dramatic Failure",
|
||||
"MNBL.duration": "Duration",
|
||||
"MNBL.easy": "Easy (5)",
|
||||
"MNBL.eclat": "Shard",
|
||||
"MNBL.elementslords": "Elemental Lords",
|
||||
"MNBL.equipmentactions": "Equipment/Actions",
|
||||
"MNBL.equipments": "Equipments",
|
||||
"MNBL.equipped": "Equipped",
|
||||
"MNBL.exp": "Experience",
|
||||
"MNBL.eyes": "Eyes",
|
||||
"MNBL.failure": "Failure",
|
||||
"MNBL.feint": "Feint",
|
||||
"MNBL.flee": "Flee",
|
||||
"MNBL.formula": "Formula",
|
||||
"MNBL.genre": "Gender",
|
||||
"MNBL.gifts": "Gifts",
|
||||
"MNBL.goodadventure": "Good Adventure",
|
||||
"MNBL.hair": "Hair",
|
||||
"MNBL.hard": "Hard (15)",
|
||||
"MNBL.hascover": "Cover",
|
||||
"MNBL.hazardous": "Tricky (20)",
|
||||
"MNBL.health": "Health",
|
||||
"MNBL.healthmalus": "Health Penalty",
|
||||
"MNBL.heavycover": "Almost complete (-10)",
|
||||
"MNBL.heroicsuccess": "Heroic Success",
|
||||
"MNBL.highlanguage": "High Melnibonéan",
|
||||
"MNBL.ignorearmor": "Ignore Armor",
|
||||
"MNBL.ignorehealthmalus": "Ignore Health Penalty",
|
||||
"MNBL.ignoresoulmalus": "Ignore Soul Penalty",
|
||||
"MNBL.immobilize": "Immobilize",
|
||||
"MNBL.insane": "Ridiculous (25)",
|
||||
"MNBL.isdefense": "Defensive",
|
||||
"MNBL.knockout": "Knock Out",
|
||||
"MNBL.law": "Law",
|
||||
"MNBL.legacy": "Legacy",
|
||||
"MNBL.lessthanshort": "Less than short (10)",
|
||||
"MNBL.lethal": "Lethal",
|
||||
"MNBL.level": "Level",
|
||||
"MNBL.lightcover": "Buckler or light (-2)",
|
||||
"MNBL.longmore": "Long and more (25)",
|
||||
"MNBL.longrange": "Long Range",
|
||||
"MNBL.malus": "Penalty",
|
||||
"MNBL.margin": "Margin",
|
||||
"MNBL.medium": "Average (10)",
|
||||
"MNBL.mediumcover": "Pavise or half (-5)",
|
||||
"MNBL.mediummore": "Medium and more (20)",
|
||||
"MNBL.mediumrange": "Medium Range",
|
||||
"MNBL.meleethrowweapon": "Melee and Throwing Weapon",
|
||||
"MNBL.meleeweapon": "Melee Weapon",
|
||||
"MNBL.mode": "Mode",
|
||||
"MNBL.modifier": "Modifiers",
|
||||
"MNBL.modifiertype": "Modifier Type",
|
||||
"MNBL.mounted": "Mounted",
|
||||
"MNBL.nextactionmalus": "Penalty for next action",
|
||||
"MNBL.nextattackbonus": "Bonus for next attack",
|
||||
"MNBL.none": "None",
|
||||
"MNBL.noneunknwon": "None/Unknown",
|
||||
"MNBL.nonlethal": "Non-Lethal",
|
||||
"MNBL.nonlethaldamage": "Non-Lethal Damage",
|
||||
"MNBL.notarget": "No designated target",
|
||||
"MNBL.origin": "Origin",
|
||||
"MNBL.pacts": "Pacts",
|
||||
"MNBL.points": "Points",
|
||||
"MNBL.preciseattack": "Precision Attack",
|
||||
"MNBL.predilections": "Specializations",
|
||||
"MNBL.preferredhand": "Preferred Hand",
|
||||
"MNBL.prerequisites": "Prerequisites",
|
||||
"MNBL.price": "Price",
|
||||
"MNBL.profession": "Profession",
|
||||
"MNBL.pronounced": "Spoken",
|
||||
"MNBL.pronouncedrune": "Spoken Rune",
|
||||
"MNBL.pronouncerune": "Speak the rune",
|
||||
"MNBL.protections": "Protections",
|
||||
"MNBL.puremadness": "Insane (30)",
|
||||
"MNBL.quantity": "Quantity",
|
||||
"MNBL.range": "Range",
|
||||
"MNBL.rarity": "Rarity",
|
||||
"MNBL.registeredmodifiers": "Registered Modifiers",
|
||||
"MNBL.reloadduration": "Reload Time",
|
||||
"MNBL.ressources": "Resources",
|
||||
"MNBL.roll": "Roll",
|
||||
"MNBL.runes": "Runes",
|
||||
"MNBL.runningtarget": "Running target (-5/-10 depending on range)",
|
||||
"MNBL.shootmodifier": "Shooting Modifiers",
|
||||
"MNBL.shootweapon": "Shoot Weapon",
|
||||
"MNBL.shortmore": "Short and more (10)",
|
||||
"MNBL.shortrange": "Short Range",
|
||||
"MNBL.size": "Size",
|
||||
"MNBL.skill": "Skill",
|
||||
"MNBL.skills": "Skills",
|
||||
"MNBL.smallroomtarget": "Target in confined space (+5)",
|
||||
"MNBL.soul": "Soul",
|
||||
"MNBL.soulmalus": "Soul Penalty",
|
||||
"MNBL.soulmultiplier": "Soul Multiplier",
|
||||
"MNBL.soulpoints": "Soul Points",
|
||||
"MNBL.specialactions": "Special Actions",
|
||||
"MNBL.specialweapon": "Special (ability/gift)",
|
||||
"MNBL.speciestrait": "Species Trait",
|
||||
"MNBL.speed": "Speed",
|
||||
"MNBL.success": "Success",
|
||||
"MNBL.target": "Target",
|
||||
"MNBL.targetbelow": "Target below (+5)",
|
||||
"MNBL.targetcantmove": "Target immobilized (+5)",
|
||||
"MNBL.targetdefense": "Opponent's Defense",
|
||||
"MNBL.targetground": "Target on the ground (+5)",
|
||||
"MNBL.targetseeshoot": "Target is aware of the shot",
|
||||
"MNBL.tendancies": "Tendencies",
|
||||
"MNBL.throwweapon": "Throwing Weapon",
|
||||
"MNBL.totalprotection": "Total Protection",
|
||||
"MNBL.traced": "Written",
|
||||
"MNBL.tracedrune": "Written Rune",
|
||||
"MNBL.tracerune": "Write the rune",
|
||||
"MNBL.treasuremoney": "Treasures and Money",
|
||||
"MNBL.twohands": "Two-handed",
|
||||
"MNBL.type": "Type",
|
||||
"MNBL.unarmedtarget": "Unarmed target (+5)",
|
||||
"MNBL.unit": "Unit",
|
||||
"MNBL.use": "Use",
|
||||
"MNBL.usedpredilection": "Used Predilection",
|
||||
"MNBL.value": "Value",
|
||||
"MNBL.weapon": "Weapon",
|
||||
"MNBL.weaponbonusattack": "Handling Bonus (offensive)",
|
||||
"MNBL.weaponbonusdefense": "Handling Bonus (defensive)",
|
||||
"MNBL.weapons": "Weapons",
|
||||
"MNBL.weaponscapacities": "Weapons/Abilities",
|
||||
"MNBL.weapontype": "Weapon Type",
|
||||
"MNBL.weight": "Weight",
|
||||
"Présence": "Presence",
|
||||
"Puissance": "Might",
|
||||
"Trempe": "Mettle",
|
||||
"TYPES": {
|
||||
"Actor": {
|
||||
"creature": "Creature",
|
||||
"personnage": "Character"
|
||||
},
|
||||
"Item": {
|
||||
"arme": "Weapon",
|
||||
"bouclier": "Shield",
|
||||
"capacite": "Ability",
|
||||
"competence": "Skill",
|
||||
"don": "Gifts",
|
||||
"equipement": "Equipment",
|
||||
"heritage": "Background",
|
||||
"metier": "Profession",
|
||||
"modifier": "Modifier",
|
||||
"monnaie": "Currency",
|
||||
"origine": "Origin",
|
||||
"pacte": "Pacts",
|
||||
"protection": "Protections",
|
||||
"rune": "Rune",
|
||||
"runeeffect": "Rune Effect",
|
||||
"tendance": "Signs of Chaos",
|
||||
"traitchaotique": "Background",
|
||||
"traitespece": "Species Trait"
|
||||
}
|
||||
}
|
||||
}
|
||||
+189
-3
@@ -2,7 +2,7 @@
|
||||
"TYPES": {
|
||||
"Actor": {
|
||||
"personnage": "Personnage",
|
||||
"PNJ": "PNJ"
|
||||
"creature": "Créature"
|
||||
},
|
||||
"Item": {
|
||||
"arme": "Arme",
|
||||
@@ -21,7 +21,193 @@
|
||||
"metier": "Métier",
|
||||
"runeeffect": "Effet de Rune",
|
||||
"bouclier": "Bouclier",
|
||||
"modifier": "Modificateur"
|
||||
"modifier": "Modificateur",
|
||||
"traitespece": "Trait d'Espèce"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Adresse": "Adresse",
|
||||
"Puissance": "Puissance",
|
||||
"Clairvoyance": "Clairvoyance",
|
||||
"Présence": "Présence",
|
||||
"Trempe": "Trempe",
|
||||
|
||||
"MNBL.assaut": "Assaut",
|
||||
"MNBL.preciseattack": "Attaque Précise",
|
||||
"MNBL.feint": "Feinte",
|
||||
"MNBL.dirtyattack": "Coup Bas",
|
||||
"MNBL.charge": "Charger",
|
||||
"MNBL.contain": "Contenir l'adversaire",
|
||||
"MNBL.disarm": "Désarmer",
|
||||
|
||||
"MNBL.none": "Aucun",
|
||||
"MNBL.lightcover": "Rondache ou léger (-2)",
|
||||
"MNBL.mediumcover": "Pavois ou à moitié (-5)",
|
||||
"MNBL.heavycover": "Quasi complet (-10)",
|
||||
"MNBL.roll": "Jet",
|
||||
"MNBL.defensecapacity": "Capacité défensive",
|
||||
"MNBL.attackcapacity": "Capacité offensive",
|
||||
|
||||
"MNBL.lessthanshort": "Moins que courte (10)",
|
||||
"MNBL.shortmore": "Courte et + (10)",
|
||||
"MNBL.mediummore": "Moyenne et + (20)",
|
||||
"MNBL.longmore": "Longue et + (25)",
|
||||
|
||||
"MNBL.noneunknwon": "Aucune/Inconnue",
|
||||
"MNBL.easy": "Facile (5)",
|
||||
"MNBL.medium": "Moyenne (10)",
|
||||
"MNBL.hard": "Ardue (15)",
|
||||
"MNBL.hazardous": "Hasardeuse (20)",
|
||||
"MNBL.insane": "Insensée (25)",
|
||||
"MNBL.puremadness": "Pure Folie (30)",
|
||||
|
||||
"MNBL.pronouncerune": "Prononcer la rune",
|
||||
"MNBL.tracerune": "Tracer la rune",
|
||||
"MNBL.pronounced": "Prononcée",
|
||||
"MNBL.traced": "Tracée",
|
||||
|
||||
"MNBL.meleeweapon": "Arme de contact",
|
||||
"MNBL.meleethrowweapon": "Arme de contact et de Jet",
|
||||
"MNBL.throwweapon": "Arme de Lancer",
|
||||
"MNBL.shootweapon": "Arme de Tir",
|
||||
"MNBL.specialweapon": "Spécial (capacité/don)",
|
||||
|
||||
"MNBL.all": "Tous",
|
||||
"MNBL.beastslords": "Seigneurs des Bêtes",
|
||||
"MNBL.elementslords": "Seigneurs Elementaires",
|
||||
|
||||
"MNBL.law": "Loi",
|
||||
"MNBL.chaos": "Chaos",
|
||||
"MNBL.level": "Niveau",
|
||||
"MNBL.points": "Points",
|
||||
"MNBL.aspect": "Aspect",
|
||||
"MNBL.margin": "Marge",
|
||||
"MNBL.goodadventure" : "Bonne Aventure",
|
||||
"MNBL.base": "Base",
|
||||
"MNBL.current": "Actuelle",
|
||||
"MNBL.alignement" : "Alignement",
|
||||
"MNBL.eclat": "Eclat",
|
||||
"MNBL.exp": "Expérience",
|
||||
"MNBL.attributes": "Attributs",
|
||||
"MNBL.skills": "Compétences",
|
||||
"MNBL.abilities": "Dons/Pactes",
|
||||
"MNBL.equipmentactions": "Equipements/Actions",
|
||||
"MNBL.bio": "Bio&Notes",
|
||||
"MNBL.health": "Santé",
|
||||
"MNBL.bonus": "Bonus",
|
||||
"MNBL.malus": "Malus",
|
||||
"MNBL.nonlethal": "Non Létaux",
|
||||
"MNBL.lethal": "Létaux",
|
||||
"MNBL.automalus" : "Malus Auto",
|
||||
"MNBL.soul": "Ame",
|
||||
"MNBL.currentmax": "Max Actuel",
|
||||
"MNBL.consumed": "Consommé",
|
||||
"MNBL.damagebonus": "B. Dégats",
|
||||
"MNBL.speed": "Vitesse",
|
||||
"MNBL.defense": "Défense",
|
||||
"MNBL.totalprotection": "Protection Totale",
|
||||
"MNBL.modifier": "Modificateurs",
|
||||
"MNBL.type": "Type",
|
||||
"MNBL.value": "Valeur",
|
||||
"MNBL.gifts": "Dons",
|
||||
"MNBL.allegiance": "Allégeance",
|
||||
"MNBL.pacts": "Pactes",
|
||||
"MNBL.runes": "Runes",
|
||||
"MNBL.highlanguage": "Haut Parler",
|
||||
"MNBL.difficulty": "Difficulté",
|
||||
"MNBL.tendancies": "Tendances",
|
||||
"MNBL.chaotictraits": "Traits Chaotique",
|
||||
"MNBL.activatedrunes": "Runes actives",
|
||||
"MNBL.mode": "Mode",
|
||||
"MNBL.duration": "Durée",
|
||||
"MNBL.treasuremoney": "Richesses et Argent",
|
||||
"MNBL.quantity": "Quantité",
|
||||
"MNBL.unit": "Unité",
|
||||
"MNBL.specialactions": "Actions spéciales",
|
||||
"MNBL.knockout": "Assomer",
|
||||
"MNBL.flee": "Fuir",
|
||||
"MNBL.immobilize": "Immobiliser",
|
||||
"MNBL.mounted": "Monté",
|
||||
"MNBL.weapons": "Armes",
|
||||
"MNBL.attack": "Attaque",
|
||||
"MNBL.damage": "Dégats",
|
||||
"MNBL.protections": "Protections",
|
||||
"MNBL.equipments": "Equipements",
|
||||
"MNBL.origin": "Origine",
|
||||
"MNBL.legacy": "Héritage",
|
||||
"MNBL.profession": "Métier",
|
||||
"MNBL.genre": "Genre",
|
||||
"MNBL.size": "Taille",
|
||||
"MNBL.hair": "Cheveux",
|
||||
"MNBL.eyes": "Yeux",
|
||||
"MNBL.preferredhand": "Main Préférée",
|
||||
"MNBL.weight": "Weight",
|
||||
"MNBL.soulmultiplier": "Multiplicateur d'âme",
|
||||
"MNBL.ignorehealthmalus": "Ignore le malus de santé",
|
||||
"MNBL.ignoresoulmalus": "Ignore le malus d'âme",
|
||||
|
||||
"MNBL.weapon": "Arme",
|
||||
"MNBL.nextattackbonus": "Bonus pour prochaine attaque",
|
||||
"MNBL.nextactionmalus": "Malus au défenseur pour prochaine action",
|
||||
"MNBL.applydamage": "Appliquer les dégats/bonus/malus",
|
||||
"MNBL.attribut": "Attribut",
|
||||
"MNBL.skill": "Compétence",
|
||||
"MNBL.target": "Cible",
|
||||
"MNBL.usedpredilection": "Prédilection utilisée",
|
||||
"MNBL.soulpoints": "Points d'âme",
|
||||
"MNBL.formula": "Formule",
|
||||
"MNBL.dice":"Dé",
|
||||
"MNBL.success": "Succés",
|
||||
"MNBL.failure": "Echec",
|
||||
"MNBL.heroicsuccess": "Succés Héroïque",
|
||||
"MNBL.dramaticfailure": "Echec Dramatique",
|
||||
|
||||
"MNBL.attackmountbonus": "Attaquant monté vs def. au sol (+5)",
|
||||
"MNBL.targetdefense": "Défense adversaire",
|
||||
"MNBL.shootmodifier": "Modificateurs de Tir",
|
||||
"MNBL.aimingbonus": "Bonus de visée",
|
||||
"MNBL.targetseeshoot": "La cible est consciente du tir",
|
||||
"MNBL.notarget": "Pas de cible désignée",
|
||||
"MNBL.runningtarget": "La cible court (-5/-10 selon portée)",
|
||||
"MNBL.hascover": "Couvert",
|
||||
"MNBL.range": "Portée",
|
||||
"MNBL.disadvantagepositions": "Positions désavantageuses (Bonus max +15)",
|
||||
"MNBL.targetground": "Cible au sol (+5)",
|
||||
"MNBL.unarmedtarget": "Cible désarmée (+5)",
|
||||
"MNBL.smallroomtarget": "Cible en espace restreint (+5)",
|
||||
"MNBL.targetcantmove": "Cible immobilisée (+5)",
|
||||
"MNBL.targetbelow": "Cible surplombée (+5)",
|
||||
"MNBL.healthmalus": "Malus de santé",
|
||||
"MNBL.soulmalus": "Malus d'âme",
|
||||
"MNBL.registeredmodifiers": "Modificateurs enregistrés",
|
||||
"MNBL.doubleD20": "Doubler le d20 (1 Point d'Eclat)",
|
||||
|
||||
"MNBL.pronouncedrune": "Rune prononcée",
|
||||
"MNBL.tracedrune": "Rune tracée",
|
||||
"MNBL.equipped": "Equipé",
|
||||
"MNBL.rarity": "Rareté",
|
||||
"MNBL.price": "Prix",
|
||||
"MNBL.modifiertype": "Type de modificateur",
|
||||
"MNBL.prerequisites": "Prérequis",
|
||||
"MNBL.predilections": "Prédilections",
|
||||
"MNBL.candoublebonusskill": "Les bonus de Bonne Aventure et d'Eclat peuvent être doublés (cf. Métier)",
|
||||
"MNBL.addpredilection": "Ajouter une prédilection",
|
||||
"MNBL.defensebonus": "Bonus de défense",
|
||||
"MNBL.nonlethaldamage": "Dégâts non létaux",
|
||||
"MNBL.weapontype": "Type d'arme",
|
||||
"MNBL.weaponbonusattack": "Bonus de maniement (offensif)",
|
||||
"MNBL.weaponbonusdefense": "Bonus de maniement (défensif)",
|
||||
"MNBL.isdefense": "Défensive",
|
||||
"MNBL.twohands": "A deux mains",
|
||||
"MNBL.ignorearmor": "Ignore l'armure",
|
||||
"MNBL.creatureresourcecost": "Cout en Ressources (créatures)",
|
||||
"MNBL.shortrange": "Portée courte",
|
||||
"MNBL.mediumrange":"Portée moyenne",
|
||||
"MNBL.longrange":"Portée longue",
|
||||
"MNBL.reloadduration": "Temps de rechargement",
|
||||
"MNBL.attacks": "Attaques",
|
||||
"MNBL.ressources": "Ressources",
|
||||
"MNBL.weaponscapacities": "Armes/Capacités",
|
||||
"MNBL.use": "Utiliser",
|
||||
"MNBL.speciestrait": "Trait d'espèce"
|
||||
|
||||
}
|
||||
@@ -12,7 +12,7 @@ export class MournbladeActorSheet extends ActorSheet {
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-mournblade", "sheet", "actor"],
|
||||
template: "systems/fvtt-mournblade/templates/actor-sheet.html",
|
||||
width: 640,
|
||||
@@ -25,7 +25,7 @@ export class MournbladeActorSheet extends ActorSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const objectData = duplicate(this.object)
|
||||
const objectData = foundry.utils.duplicate(this.object)
|
||||
let actorData = objectData
|
||||
|
||||
let formData = {
|
||||
@@ -40,26 +40,29 @@ export class MournbladeActorSheet extends ActorSheet {
|
||||
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
||||
limited: this.object.limited,
|
||||
skills: this.actor.getSkills(),
|
||||
armes: duplicate(this.actor.getWeapons()),
|
||||
protections: duplicate(this.actor.getArmors()),
|
||||
dons: duplicate(this.actor.getDons()),
|
||||
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
||||
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
||||
dons: foundry.utils.duplicate(this.actor.getDons()),
|
||||
pactes: foundry.utils.duplicate(this.actor.getPactes()),
|
||||
alignement: this.actor.getAlignement(),
|
||||
aspect: this.actor.getAspect(),
|
||||
marge: this.actor.getMarge(),
|
||||
tendances:duplicate(this.actor.getTendances()),
|
||||
runes:duplicate(this.actor.getRunes()),
|
||||
traitsChaotiques:duplicate(this.actor.getTraitsChaotiques()),
|
||||
origine: duplicate(this.actor.getOrigine() || {}),
|
||||
heritage: duplicate(this.actor.getHeritage() || {}),
|
||||
metier: duplicate(this.actor.getMetier() || {}),
|
||||
tendances:foundry.utils.duplicate(this.actor.getTendances()),
|
||||
runes:foundry.utils.duplicate(this.actor.getRunes()),
|
||||
traitsChaotiques:foundry.utils.duplicate(this.actor.getTraitsChaotiques()),
|
||||
traitsEspeces: foundry.utils.duplicate(this.actor.getTraitsEspeces()),
|
||||
origine: foundry.utils.duplicate(this.actor.getOrigine() || {}),
|
||||
heritage: foundry.utils.duplicate(this.actor.getHeritage() || {}),
|
||||
metier: foundry.utils.duplicate(this.actor.getMetier() || {}),
|
||||
combat: this.actor.getCombatValues(),
|
||||
equipements: duplicate(this.actor.getEquipments()),
|
||||
modifiers: duplicate(this.actor.getModifiers()),
|
||||
monnaies: duplicate(this.actor.getMonnaies()),
|
||||
runeEffects: duplicate(this.actor.getRuneEffects()),
|
||||
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
||||
modifiers: foundry.utils.duplicate(this.actor.getModifiers()),
|
||||
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
||||
runeEffects: foundry.utils.duplicate(this.actor.getRuneEffects()),
|
||||
config: game.system.mournblade.config,
|
||||
protectionTotal: this.actor.getProtectionTotal(),
|
||||
santeMalus: this.actor.getStatusMalus(),
|
||||
ameMalus: this.actor.getAmeMalus(),
|
||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
@@ -133,6 +136,21 @@ export class MournbladeActorSheet extends ActorSheet {
|
||||
let armeId = li.data("item-id")
|
||||
this.actor.rollArmeOffensif(armeId)
|
||||
})
|
||||
html.find('.roll-assomer').click((event) => {
|
||||
this.actor.rollAssomer()
|
||||
})
|
||||
html.find('.roll-fuir').click((event) => {
|
||||
this.actor.rollFuir()
|
||||
})
|
||||
html.find('.roll-immobiliser').click((event) => {
|
||||
this.actor.rollImmobiliser()
|
||||
})
|
||||
html.find('.roll-arme-special').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
let armeId = li.data("item-id")
|
||||
this.actor.rollArmeSpecial(armeId)
|
||||
})
|
||||
|
||||
html.find('.roll-arme-degats').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
let armeId = li.data("item-id")
|
||||
@@ -147,6 +165,15 @@ export class MournbladeActorSheet extends ActorSheet {
|
||||
const itemType = $(event.currentTarget).data("type")
|
||||
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
|
||||
})
|
||||
html.find('.sante-modify').click((event) => {
|
||||
const santeType = $(event.currentTarget).data("type")
|
||||
const value = $(event.currentTarget).data("value")
|
||||
this.actor.incDecSante(santeType, value, false)
|
||||
})
|
||||
html.find('.ame-modify').click((event) => {
|
||||
const value = $(event.currentTarget).data("value")
|
||||
this.actor.incDecAme(value)
|
||||
})
|
||||
|
||||
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
|
||||
+189
-50
@@ -31,7 +31,7 @@ export class MournbladeActor extends Actor {
|
||||
if (data instanceof Array) {
|
||||
return super.create(data, options);
|
||||
}
|
||||
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
|
||||
// If the created actor has items (only applicable to foundry.utils.duplicated actors) bypass the new actor creation logic
|
||||
if (data.items) {
|
||||
let actor = super.create(data, options);
|
||||
return actor;
|
||||
@@ -41,9 +41,14 @@ export class MournbladeActor extends Actor {
|
||||
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
|
||||
data.items = skills.map(i => i.toObject())
|
||||
}
|
||||
if (data.type == 'pnj') {
|
||||
if (data.type == 'creature') {
|
||||
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills-creatures")
|
||||
data.items = skills.map(i => i.toObject())
|
||||
data.items.push({ name: "Arme naturelle 1", type: 'arme', img: "systems/fvtt-mournblade/assets/icons/arme.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0" } })
|
||||
data.items.push({ name: "Arme naturelle 2", type: 'arme', img: "systems/fvtt-mournblade/assets/icons/arme.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0" } })
|
||||
}
|
||||
|
||||
|
||||
return super.create(data, options);
|
||||
}
|
||||
|
||||
@@ -55,23 +60,23 @@ export class MournbladeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
prepareArme(arme) {
|
||||
arme = duplicate(arme)
|
||||
arme = foundry.utils.duplicate(arme)
|
||||
let combat = this.getCombatValues()
|
||||
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
||||
arme.system.isMelee = true
|
||||
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||
arme.system.attrKey = "pui"
|
||||
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
|
||||
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
||||
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + combat.attaqueModifier
|
||||
if (arme.system.isdefense) {
|
||||
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef
|
||||
}
|
||||
}
|
||||
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
|
||||
arme.system.isDistance = true
|
||||
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
|
||||
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
|
||||
arme.system.attrKey = "adr"
|
||||
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
||||
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + combat.attaqueModifier
|
||||
arme.system.totalDegats = arme.system.degats
|
||||
if (arme.system.isdefense) {
|
||||
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef
|
||||
@@ -81,9 +86,9 @@ export class MournbladeActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
prepareBouclier(bouclier) {
|
||||
bouclier = duplicate(bouclier)
|
||||
bouclier = foundry.utils.duplicate(bouclier)
|
||||
let combat = this.getCombatValues()
|
||||
bouclier.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||
bouclier.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||
bouclier.system.attrKey = "pui"
|
||||
bouclier.system.totalDegats = bouclier.system.degats + "+" + combat.bonusDegatsTotal
|
||||
bouclier.system.totalOffensif = this.system.attributs.pui.value + bouclier.system.competence.system.niveau
|
||||
@@ -114,8 +119,8 @@ export class MournbladeActor extends Actor {
|
||||
for (let mod of this.items) {
|
||||
if (mod.type == "modifier" && mod.system.modifiertype == "roll") {
|
||||
let modObj = mod.toObject()
|
||||
modObj .system.apply = true
|
||||
modifiers.push( modObj )
|
||||
modObj.system.apply = true
|
||||
modifiers.push(modObj)
|
||||
}
|
||||
}
|
||||
MournbladeUtility.sortArrayObjectsByName(modifiers)
|
||||
@@ -123,14 +128,17 @@ export class MournbladeActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getItemSorted( types) {
|
||||
let items = this.items.filter(item => types.includes(item.type )) || []
|
||||
getItemSorted(types) {
|
||||
let items = this.items.filter(item => types.includes(item.type)) || []
|
||||
MournbladeUtility.sortArrayObjectsByName(items)
|
||||
return items
|
||||
}
|
||||
getDons() {
|
||||
return this.getItemSorted(["don"])
|
||||
}
|
||||
getPactes() {
|
||||
return this.getItemSorted(["pacte"])
|
||||
}
|
||||
getTendances() {
|
||||
return this.getItemSorted(["tendance"])
|
||||
}
|
||||
@@ -146,6 +154,9 @@ export class MournbladeActor extends Actor {
|
||||
getTraitsChaotiques() {
|
||||
return this.getItemSorted(["traitchaotique"])
|
||||
}
|
||||
getTraitsEspeces() {
|
||||
return this.getItemSorted(["traitespece"])
|
||||
}
|
||||
getMonnaies() {
|
||||
return this.getItemSorted(["monnaie"])
|
||||
}
|
||||
@@ -168,7 +179,7 @@ export class MournbladeActor extends Actor {
|
||||
getSkills() {
|
||||
let comp = []
|
||||
for (let item of this.items) {
|
||||
item = duplicate(item)
|
||||
item = foundry.utils.duplicate(item)
|
||||
if (item.type == "competence") {
|
||||
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0)
|
||||
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
|
||||
@@ -201,10 +212,10 @@ export class MournbladeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getAspect() {
|
||||
return (this.system.balance.loi > this.system.balance.chaos) ? this.system.balance.loi : this.system.balance.chaos
|
||||
return (this.system.balance.loi > this.system.balance.chaos) ? this.system.balance.loi : this.system.balance.chaos
|
||||
}
|
||||
getMarge() {
|
||||
return Math.abs( this.system.balance.loi - this.system.balance.chaos)
|
||||
return Math.abs(this.system.balance.loi - this.system.balance.chaos)
|
||||
}
|
||||
getAlignement() {
|
||||
return (this.system.balance.loi > this.system.balance.chaos) ? "loyal" : "chaotique"
|
||||
@@ -222,7 +233,14 @@ export class MournbladeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCombatValues() {
|
||||
let defenserModifier = 0
|
||||
this.items.filter(item => item.type == "modifier" && item.system.modifiertype == "defense").map(e => defenserModifier += e.system.value)
|
||||
let attaqueModifier = 0
|
||||
this.items.filter(item => item.type == "modifier" && item.system.modifiertype == "attaque").map(e => attaqueModifier += e.system.value)
|
||||
|
||||
let combat = {
|
||||
defenserModifier,
|
||||
attaqueModifier,
|
||||
initBase: this.system.attributs.adr.value,
|
||||
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
|
||||
bonusDegats: this.getBonusDegats(),
|
||||
@@ -230,7 +248,7 @@ export class MournbladeActor extends Actor {
|
||||
vitesseBase: this.getVitesseBase(),
|
||||
vitesseTotal: this.getVitesseBase() + this.system.combat.vitessebonus,
|
||||
defenseBase: this.getDefenseBase(),
|
||||
defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus
|
||||
defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus + defenserModifier
|
||||
}
|
||||
return combat
|
||||
}
|
||||
@@ -271,7 +289,7 @@ export class MournbladeActor extends Actor {
|
||||
getItemById(id) {
|
||||
let item = this.items.find(item => item.id == id);
|
||||
if (item) {
|
||||
item = duplicate(item)
|
||||
item = foundry.utils.duplicate(item)
|
||||
}
|
||||
return item;
|
||||
}
|
||||
@@ -287,22 +305,40 @@ export class MournbladeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getStatusMalus() {
|
||||
if (this.system.biodata.ignoresantemalus) {
|
||||
return 0
|
||||
}
|
||||
|
||||
let malusL = 0
|
||||
let malusNL = 0
|
||||
if (this.system.sante.base-this.system.sante.letaux < 10) {
|
||||
if (this.system.sante.base - this.system.sante.letaux < 10) {
|
||||
malusL = -2
|
||||
}
|
||||
if (this.system.sante.base-this.system.sante.letaux < 5) {
|
||||
if (this.system.sante.base - this.system.sante.letaux < 5) {
|
||||
malusL = -5
|
||||
}
|
||||
if (this.system.sante.base-this.system.sante.nonletaux < 10) {
|
||||
if (this.system.sante.base - this.system.sante.nonletaux < 10) {
|
||||
malusNL = -2
|
||||
}
|
||||
if (this.system.sante.base-this.system.sante.nonletaux < 5) {
|
||||
if (this.system.sante.base - this.system.sante.nonletaux < 5) {
|
||||
malusNL = -5
|
||||
}
|
||||
return Math.min(malusL, malusNL)
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getAmeMalus() {
|
||||
if (this.system.biodata.ignoreamemalus) {
|
||||
return 0
|
||||
}
|
||||
let malusA = 0
|
||||
if (this.system.ame.currentmax - this.system.ame.value < 10) {
|
||||
malusA = -2
|
||||
}
|
||||
if (this.system.ame.currentmax - this.system.ame.value < 5) {
|
||||
malusA = -5
|
||||
}
|
||||
return malusA
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
editItemField(itemId, itemType, itemField, dataType, value) {
|
||||
@@ -320,27 +356,43 @@ export class MournbladeActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
incDecSante(type, value, applyArmure=true) {
|
||||
if (applyArmure) {
|
||||
incDecSante(type, value, applyArmure = true) {
|
||||
value = Number(value)
|
||||
if (value && applyArmure) {
|
||||
let protection = this.getProtectionTotal()
|
||||
value -= protection
|
||||
value = Math.max(0, value)
|
||||
value = Math.max(0, Number(value))
|
||||
}
|
||||
if (value) {
|
||||
let newSante = duplicate(this.system.sante)
|
||||
newSante[type] += value
|
||||
let newSante = foundry.utils.duplicate(this.system.sante)
|
||||
newSante[type] += Number(value)
|
||||
newSante[type] = Math.max(0, newSante[type])
|
||||
if (newSante[type] > this.system.sante.base) {
|
||||
value -= this.system.sante.base - newSante[type]
|
||||
newSante[type] = this.system.sante.base
|
||||
} else {
|
||||
value = 0
|
||||
}
|
||||
newSante[type] = Math.min(newSante[type], newSante.base)
|
||||
if (value && type == "nonletaux") {
|
||||
newSante["letaux"] += value
|
||||
}
|
||||
this.update({ 'system.sante': newSante })
|
||||
ui.notifications.info(this.name + "a subi " + value + " points de santé " + type + ".")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
incDecAme(value) {
|
||||
value = Number(value)
|
||||
if (value) {
|
||||
let newAme = foundry.utils.duplicate(this.system.ame)
|
||||
newAme.value += Number(value)
|
||||
newAme.value = Math.max(0, newAme.value)
|
||||
newAme.value = Math.min(newAme.value, newAme.currentmax)
|
||||
this.update({ 'system.ame': newAme })
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getBonneAventure() {
|
||||
return this.system.bonneaventure.actuelle
|
||||
@@ -371,13 +423,13 @@ export class MournbladeActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
subPointsAme(runeMode, value) {
|
||||
let ame = duplicate(this.system.ame)
|
||||
if(runeMode == "prononcer") {
|
||||
ame.value -= value
|
||||
let ame = foundry.utils.duplicate(this.system.ame)
|
||||
if (runeMode == "prononcer") {
|
||||
ame.value += value
|
||||
} else {
|
||||
ame.currentmax -= value
|
||||
}
|
||||
this.update( {'system.ame': ame})
|
||||
this.update({ 'system.ame': ame })
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -398,6 +450,9 @@ export class MournbladeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getBonusDegats() {
|
||||
if (this.type == "creature") {
|
||||
return 0
|
||||
}
|
||||
return __degatsBonus[this.system.attributs.pui.value]
|
||||
}
|
||||
|
||||
@@ -414,13 +469,13 @@ export class MournbladeActor extends Actor {
|
||||
getSubActors() {
|
||||
let subActors = [];
|
||||
for (let id of this.system.subactors) {
|
||||
subActors.push(duplicate(game.actors.get(id)));
|
||||
subActors.push(foundry.utils.duplicate(game.actors.get(id)));
|
||||
}
|
||||
return subActors;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async addSubActor(subActorId) {
|
||||
let subActors = duplicate(this.system.subactors);
|
||||
let subActors = foundry.utils.duplicate(this.system.subactors);
|
||||
subActors.push(subActorId);
|
||||
await this.update({ 'system.subactors': subActors });
|
||||
}
|
||||
@@ -451,34 +506,55 @@ export class MournbladeActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async setPredilectionUsed(compId, predIdx) {
|
||||
let comp = this.items.get(compId)
|
||||
let pred = duplicate(comp.system.predilections)
|
||||
let pred = foundry.utils.duplicate(comp.system.predilections)
|
||||
pred[predIdx].used = true
|
||||
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getInitiativeScore( ) {
|
||||
getInitiativeScore() {
|
||||
return Number(this.system.attributs.adr.value) + Number(this.system.combat.initbonus)
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getBestDefenseValue() {
|
||||
let defenseList = this.items.filter(item => (item.type =="arme" || item.type == "bouclier") && item.system.equipped)
|
||||
let defenseList = this.items.filter(item => (item.type == "arme" || item.type == "bouclier") && item.system.equipped)
|
||||
let maxDef = 0
|
||||
let bestArme
|
||||
for(let arme of defenseList) {
|
||||
for (let arme of defenseList) {
|
||||
if (arme.type == "arme" && arme.system.isdefense) {
|
||||
arme = this.prepareArme(arme)
|
||||
}
|
||||
if (arme.type == "bouclier" ) {
|
||||
if (arme.type == "bouclier") {
|
||||
arme = this.prepareBouclier(arme)
|
||||
}
|
||||
if ( arme.system.totalDefensif > maxDef) {
|
||||
if (arme.system.totalDefensif > maxDef) {
|
||||
maxDef = arme.system.totalDefensif
|
||||
bestArme = duplicate(arme)
|
||||
bestArme = foundry.utils.duplicate(arme)
|
||||
}
|
||||
}
|
||||
return bestArme
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
depenseRessources(arme) {
|
||||
if (arme.system.nbressources && Number(arme.system.nbressources) > 0) {
|
||||
if (this.type == "creature") {
|
||||
let ressources = foundry.utils.duplicate(this.system.ressources)
|
||||
if (Number(ressources.value) >= Number(arme.system.nbressources)) {
|
||||
ressources.value -= arme.system.nbressources
|
||||
this.update({ 'system.ressources': ressources })
|
||||
ChatMessage.create({
|
||||
content: "L'utilisation de la capacité/arme a dépensé " + arme.system.nbressources + " ressources.",
|
||||
whisper: game.user._id,
|
||||
user: game.user._id
|
||||
});
|
||||
} else {
|
||||
ui.notifications.warn("Points de ressources insuffisants.")
|
||||
}
|
||||
} else {
|
||||
ui.notifications.warn("Les ressources ne sont pas disponibles pour les personnages.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonRollData(attrKey = undefined, compId = undefined, compName = undefined) {
|
||||
@@ -493,21 +569,27 @@ export class MournbladeActor extends Actor {
|
||||
rollData.attributs = MournbladeUtility.getAttributs()
|
||||
rollData.selectDifficulte = true
|
||||
rollData.malusSante = this.getStatusMalus() + this.system.sante.malusmanuel
|
||||
rollData.malusAme = this.getAmeMalus()
|
||||
rollData.modifiers = this.getModifiersForRoll()
|
||||
rollData.desavantages = {}
|
||||
rollData.isMonte = this.system.combat.monte
|
||||
if (rollData.isMonte) {
|
||||
rollData.config.attaques["chargecavalerie"] = "Charge de cavalerie"
|
||||
}
|
||||
|
||||
if (attrKey) {
|
||||
rollData.attrKey = attrKey
|
||||
if (attrKey != "tochoose") {
|
||||
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
|
||||
rollData.attr = duplicate(this.system.attributs[attrKey])
|
||||
rollData.attr = foundry.utils.duplicate(this.system.attributs[attrKey])
|
||||
}
|
||||
}
|
||||
if (compId) {
|
||||
rollData.competence = duplicate(this.items.get(compId) || {})
|
||||
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
|
||||
rollData.actionImg = rollData.competence?.img
|
||||
}
|
||||
if (compName) {
|
||||
rollData.competence = duplicate(this.items.find( item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
||||
rollData.competence = foundry.utils.duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
||||
rollData.actionImg = rollData.competence?.img
|
||||
}
|
||||
return rollData
|
||||
@@ -529,22 +611,22 @@ export class MournbladeActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollRune(runeId) {
|
||||
async rollRune(runeId) {
|
||||
let comp = this.items.find(comp => comp.type == "competence" && comp.name.toLowerCase() == "savoir : runes")
|
||||
if ( !comp) {
|
||||
if (!comp) {
|
||||
ui.notifications.warn("La compétence Savoirs : Runes n'a pas été trouvée, abandon.")
|
||||
return
|
||||
}
|
||||
let rollData = this.getCommonRollData("cla", undefined, "Savoir : Runes")
|
||||
rollData.rune = duplicate(this.items.get(runeId) || {})
|
||||
rollData.rune = foundry.utils.duplicate(this.items.get(runeId) || {})
|
||||
rollData.difficulte = rollData.rune?.system?.seuil || 0
|
||||
rollData.runemode = "prononcer"
|
||||
rollData.runeame = 1
|
||||
rollData.runeame = 1
|
||||
console.log("runeData", rollData)
|
||||
let rollDialog = await MournbladeRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollArmeOffensif(armeId) {
|
||||
let arme = this.items.get(armeId)
|
||||
@@ -558,18 +640,75 @@ export class MournbladeActor extends Actor {
|
||||
rollData.arme = arme
|
||||
rollData.typeAttaque = "assaut"
|
||||
rollData.typeCouvert = "aucun"
|
||||
rollData.hasDesavantageBonus = true
|
||||
rollData.visee = false
|
||||
rollData.ciblecourt = false
|
||||
rollData.cibleconsciente = false
|
||||
// Do not display difficulte if defense weapon or distance
|
||||
if (rollData.armeDefense || rollData.arme.system.isDistance) {
|
||||
rollData.selectDifficulte = false
|
||||
rollData.difficulte = (rollData.arme.system.isDistance) ? 0 : rollData.difficulte
|
||||
}
|
||||
console.log("ARME!", rollData)
|
||||
this.depenseRessources(arme)
|
||||
let rollDialog = await MournbladeRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollAssomer() {
|
||||
let rollData = this.getCommonRollData("adr", undefined, "Filouterie")
|
||||
rollData.typeAttaque = "assomer"
|
||||
rollData.typeCouvert = "aucun"
|
||||
rollData.hasDesavantageBonus = true
|
||||
if (rollData.defender) {
|
||||
rollData.selectDifficulte = false
|
||||
rollData.difficulte = rollData.defender.system.attributs.tre.value * 2
|
||||
}
|
||||
console.log("Assomer!", rollData)
|
||||
let rollDialog = await MournbladeRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async rollFuir() {
|
||||
let rollData = this.getCommonRollData("adr", undefined, "Mouvements")
|
||||
rollData.typeAttaque = "fuir"
|
||||
rollData.typeCouvert = "aucun"
|
||||
rollData.hasDesavantageBonus = true
|
||||
if (rollData.defender) {
|
||||
rollData.selectDifficulte = false
|
||||
let comp = rollData.defender.items.find(it => it.type == "competence" && it.name.toLowerCase() == "mouvements")
|
||||
rollData.difficulte = rollData.defender.system.attributs.adr.value + ((comp) ? comp.system.niveau : rollData.defender.system.attributs.adr.value)
|
||||
}
|
||||
console.log("Fuir!", rollData)
|
||||
let rollDialog = await MournbladeRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async rollImmobiliser() {
|
||||
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
|
||||
rollData.typeAttaque = "immobiliser"
|
||||
rollData.typeCouvert = "aucun"
|
||||
rollData.hasDesavantageBonus = true
|
||||
if (rollData.defender) {
|
||||
rollData.selectDifficulte = false
|
||||
rollData.difficulte = rollData.defenderCombatValues.defenseTotal
|
||||
}
|
||||
console.log("Immobiliser!", rollData)
|
||||
let rollDialog = await MournbladeRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async rollArmeSpecial(armeId) {
|
||||
let arme = this.items.get(armeId)
|
||||
if (arme) {
|
||||
MournbladeUtility.createChatWithRollMode("GM", {
|
||||
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-display-description.html`, arme)
|
||||
}, arme)
|
||||
this.depenseRessources(arme)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollArmeDegats(armeId) {
|
||||
let arme = this.items.get(armeId)
|
||||
|
||||
@@ -1,23 +1,81 @@
|
||||
export const MOURNBLADE_CONFIG = {
|
||||
|
||||
attaques:{
|
||||
assaut: "Assaut",
|
||||
precise: "Attaque Précise",
|
||||
feinte: "Feinte",
|
||||
coupbas: "Coup Bas",
|
||||
charger: "Charger",
|
||||
contenir: "Contenir l'adversaire",
|
||||
desarmer: "Désarmer",
|
||||
},
|
||||
couverts:{
|
||||
aucun: {name: "Aucun", value: 0},
|
||||
rondache: {name: "Rondache ou léger (-2)", value: -2},
|
||||
pavois: { name: "Pavois ou à moitié (-5)", value: -5},
|
||||
complet: {name:"Quasi complet (-10)", value: -10},
|
||||
},
|
||||
modifierTypes: {
|
||||
aucun: {name: "Aucun", value: 0},
|
||||
roll: {name: "Jet", value: 0},
|
||||
degats: {name: "Dégats", value: 0},
|
||||
|
||||
export class MournbladeConfig {
|
||||
|
||||
static getConfig() {
|
||||
let MOURNBLADE_CONFIG = {
|
||||
|
||||
attaques: {
|
||||
assaut: game.i18n.localize("MNBL.assaut"),
|
||||
precise: game.i18n.localize("MNBL.preciseattack"),
|
||||
feinte: game.i18n.localize("MNBL.feint"),
|
||||
coupbas: game.i18n.localize("MNBL.dirtyattack"),
|
||||
charger: game.i18n.localize("MNBL.charge"),
|
||||
contenir: game.i18n.localize("MNBL.contain"),
|
||||
desarmer: game.i18n.localize("MNBL.disarm")
|
||||
},
|
||||
couverts: {
|
||||
aucun: { name: game.i18n.localize("MNBL.none"), value: 0 },
|
||||
rondache: { name: game.i18n.localize("MNBL.lightcover"), value: -2 },
|
||||
pavois: { name: game.i18n.localize("MNBL.mediumcover"), value: -5 },
|
||||
complet: { name: game.i18n.localize("MNBL.heavycover"), value: -10 },
|
||||
},
|
||||
modifierTypes: {
|
||||
aucun: { name: game.i18n.localize("MNBL.none"), value: 0 },
|
||||
roll: { name: game.i18n.localize("MNBL.roll"), value: 0 },
|
||||
degats: { name: game.i18n.localize("MNBL.damage"), value: 0 },
|
||||
defense: { name: game.i18n.localize("MNBL.defensecapacity"), value: 0 },
|
||||
attaque: { name: game.i18n.localize("MNBL.attackcapacity"), value: 0 },
|
||||
},
|
||||
listeNiveau: {
|
||||
},
|
||||
listeNiveauCreature: {
|
||||
},
|
||||
listePortees: {
|
||||
"10": game.i18n.localize("MNBL.lessthanshort"),
|
||||
"15": game.i18n.localize("MNBL.shortmore"),
|
||||
"20": game.i18n.localize("MNBL.mediummore"),
|
||||
"25": game.i18n.localize("MNBL.longmore")
|
||||
},
|
||||
modificateurOptions: {},
|
||||
pointsAmeOptions: {},
|
||||
difficulteOptions: {
|
||||
"0": game.i18n.localize("MNBL.noneunknwon"),
|
||||
"5": game.i18n.localize("MNBL.easy"),
|
||||
"10": game.i18n.localize("MNBL.medium"),
|
||||
"15": game.i18n.localize("MNBL.hard"),
|
||||
"20": game.i18n.localize("MNBL.hazardous"),
|
||||
"25": game.i18n.localize("MNBL.insane"),
|
||||
"30": game.i18n.localize("MNBL.puremadness")
|
||||
},
|
||||
attributs: {
|
||||
adr: game.i18n.localize("Adresse"), pui: game.i18n.localize("Puissance"),
|
||||
cla: game.i18n.localize("Clairvoyance"), pre: game.i18n.localize("Présence"), tre: game.i18n.localize("Trempe")
|
||||
},
|
||||
lancementRuneOptions: {
|
||||
prononcer: game.i18n.localize("MNBL.pronouncerune"),
|
||||
inscrire: game.i18n.localize("MNBL.tracerune")
|
||||
},
|
||||
effetRuneOptions: {
|
||||
prononcee: game.i18n.localize("MNBL.pronounced"),
|
||||
inscrite: game.i18n.localize("MNBL.traced")
|
||||
},
|
||||
typeArmeOptions: {
|
||||
contact: game.i18n.localize("MNBL.meleeweapon"),
|
||||
contactjet: game.i18n.localize("MNBL.meleethrowweapon"),
|
||||
jet: game.i18n.localize("MNBL.throwweapon"),
|
||||
tir: game.i18n.localize("MNBL.shootweapon"),
|
||||
special: game.i18n.localize("MNBL.specialweapon")
|
||||
},
|
||||
allegeanceOptions: {
|
||||
tous: game.i18n.localize("MNBL.all"),
|
||||
chaos: game.i18n.localize("MNBL.chaos"),
|
||||
loi: game.i18n.localize("MNBL.law"),
|
||||
betes: game.i18n.localize("MNBL.beastslords"),
|
||||
elementaires: game.i18n.localize("MNBL.elementslords")
|
||||
}
|
||||
}
|
||||
|
||||
return MOURNBLADE_CONFIG;
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Extend the basic ActorSheet with some very simple modifications
|
||||
* @extends {ActorSheet}
|
||||
*/
|
||||
|
||||
import { MournbladeActorSheet } from "./mournblade-actor-sheet.js";
|
||||
import { MournbladeUtility } from "./mournblade-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class MournbladeCreatureSheet extends MournbladeActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-mournblade", "sheet", "actor"],
|
||||
template: "systems/fvtt-mournblade/templates/creature-sheet.html",
|
||||
width: 640,
|
||||
height: 720,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
editScore: false
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ export class MournbladeItemSheet extends ItemSheet {
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-mournblade", "sheet", "item"],
|
||||
template: "systems/fvtt-mournblade/templates/item-sheet.html",
|
||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||
@@ -48,7 +48,7 @@ export class MournbladeItemSheet extends ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const objectData = duplicate(this.object)
|
||||
const objectData = foundry.utils.duplicate(this.object)
|
||||
let itemData = objectData
|
||||
let formData = {
|
||||
title: this.title,
|
||||
@@ -91,7 +91,7 @@ export class MournbladeItemSheet extends ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
postItem() {
|
||||
let chatData = duplicate(MournbladeUtility.data(this.item));
|
||||
let chatData = foundry.utils.duplicate(MournbladeUtility.data(this.item));
|
||||
if (this.actor) {
|
||||
chatData.actor = { id: this.actor.id };
|
||||
}
|
||||
@@ -134,26 +134,26 @@ export class MournbladeItemSheet extends ItemSheet {
|
||||
html.find('.edit-prediction').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||
let index = li.data("prediction-index")
|
||||
let pred = duplicate(this.object.system.predilections)
|
||||
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||
pred[index].name = ev.currentTarget.value
|
||||
this.object.update( { 'system.predilections': pred })
|
||||
})
|
||||
html.find('.delete-prediction').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||
let index = li.data("prediction-index")
|
||||
let pred = duplicate(this.object.system.predilections)
|
||||
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||
pred.splice(index,1)
|
||||
this.object.update( { 'system.predilections': pred })
|
||||
})
|
||||
html.find('.use-prediction').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||
let index = li.data("prediction-index")
|
||||
let pred = duplicate(this.object.system.predilections)
|
||||
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||
pred[index].used = ev.currentTarget.checked
|
||||
this.object.update( { 'system.predilections': pred })
|
||||
})
|
||||
html.find('#add-predilection').click(ev => {
|
||||
let pred = duplicate(this.object.system.predilections)
|
||||
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||
pred.push( { name: "Nouvelle prédilection", id: randomID(), used: false })
|
||||
this.object.update( { 'system.predilections': pred })
|
||||
})
|
||||
|
||||
@@ -14,6 +14,7 @@ export const defaultItemImg = {
|
||||
runeeffect: "systems/fvtt-mournblade/assets/icons/rune.webp",
|
||||
tendance: "systems/fvtt-mournblade/assets/icons/tendance.webp",
|
||||
traitchaotique: "systems/fvtt-mournblade/assets/icons/traitchaotique.webp",
|
||||
traitespece: "systems/fvtt-mournblade/assets/icons/capacite.webp"
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+31
-28
@@ -11,11 +11,11 @@
|
||||
import { MournbladeActor } from "./mournblade-actor.js";
|
||||
import { MournbladeItemSheet } from "./mournblade-item-sheet.js";
|
||||
import { MournbladeActorSheet } from "./mournblade-actor-sheet.js";
|
||||
//import { MournbladeNPCSheet } from "./mournblade-npc-sheet.js";
|
||||
import { MournbladeCreatureSheet } from "./mournblade-creature-sheet.js";
|
||||
import { MournbladeUtility } from "./mournblade-utility.js";
|
||||
import { MournbladeCombat } from "./mournblade-combat.js";
|
||||
import { MournbladeItem } from "./mournblade-item.js";
|
||||
import { MOURNBLADE_CONFIG } from "./mournblade-config.js";
|
||||
import { MournbladeConfig } from "./mournblade-config.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Foundry VTT Initialization */
|
||||
@@ -47,14 +47,14 @@ Hooks.once("init", async function () {
|
||||
CONFIG.Actor.documentClass = MournbladeActor
|
||||
CONFIG.Item.documentClass = MournbladeItem
|
||||
game.system.mournblade = {
|
||||
config : MOURNBLADE_CONFIG,
|
||||
config : MournbladeConfig.getConfig(),
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register sheet application classes
|
||||
Actors.unregisterSheet("core", ActorSheet);
|
||||
Actors.registerSheet("fvtt-mournblade", MournbladeActorSheet, { types: ["personnage"], makeDefault: true })
|
||||
//Actors.registerSheet("fvtt-mournblade", MournbladeNPCSheet, { types: ["npc"], makeDefault: false });
|
||||
Actors.registerSheet("fvtt-mournblade", MournbladeCreatureSheet, { types: ["creature"], makeDefault: true })
|
||||
|
||||
Items.unregisterSheet("core", ItemSheet);
|
||||
Items.registerSheet("fvtt-mournblade", MournbladeItemSheet, { makeDefault: true })
|
||||
@@ -77,28 +77,13 @@ function welcomeMessage() {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register world usage statistics
|
||||
function registerUsageCount( registerKey ) {
|
||||
if ( game.user.isGM ) {
|
||||
game.settings.register(registerKey, "world-key", {
|
||||
name: "Unique world key",
|
||||
scope: "world",
|
||||
config: false,
|
||||
default: "",
|
||||
type: String
|
||||
});
|
||||
|
||||
let worldKey = game.settings.get(registerKey, "world-key")
|
||||
if ( worldKey == undefined || worldKey == "" ) {
|
||||
worldKey = randomID(32)
|
||||
game.settings.set(registerKey, "world-key", worldKey )
|
||||
}
|
||||
// Simple API counter
|
||||
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
|
||||
//$.ajaxSetup({
|
||||
//headers: { 'Access-Control-Allow-Origin': '*' }
|
||||
//})
|
||||
$.ajax(regURL)
|
||||
async function importDefaultScene() {
|
||||
let exists = game.scenes.find(j => j.name == "Accueil");
|
||||
if (!exists) {
|
||||
const scenes = await MournbladeUtility.loadCompendium("fvtt-mournblade.scenes")
|
||||
let newDocuments = scenes.filter(i => i.name == "Accueil");
|
||||
await game.scenes.documentClass.create(newDocuments);
|
||||
game.scenes.find(i => i.name == "Accueil").activate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,6 +92,10 @@ function registerUsageCount( registerKey ) {
|
||||
/* -------------------------------------------- */
|
||||
Hooks.once("ready", function () {
|
||||
|
||||
game.system.mournblade = {
|
||||
config : MournbladeConfig.getConfig(),
|
||||
}
|
||||
|
||||
MournbladeUtility.ready();
|
||||
// User warning
|
||||
if (!game.user.isGM && game.user.character == undefined) {
|
||||
@@ -116,8 +105,22 @@ Hooks.once("ready", function () {
|
||||
user: game.user._id
|
||||
});
|
||||
}
|
||||
|
||||
registerUsageCount('fvtt-mournblade')
|
||||
if (!game.user.isGM && game.user.character && !game.user.character.prototypeToken.actorLink) {
|
||||
ui.notifications.info("Le token de du joueur n'est pas connecté à l'acteur !");
|
||||
ChatMessage.create({
|
||||
content: "<b>ATTENTION</b> Le token du joueur " + game.user.name + " n'est pas connecté à l'acteur !",
|
||||
user: game.user._id
|
||||
});
|
||||
}
|
||||
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||
console.log("ClassCounter loaded", moduleCounter)
|
||||
moduleCounter.ClassCounter.registerUsageCount()
|
||||
}).catch(err=>
|
||||
console.log("No stats available, giving up.")
|
||||
)
|
||||
|
||||
importDefaultScene();
|
||||
welcomeMessage();
|
||||
});
|
||||
|
||||
|
||||
@@ -80,6 +80,26 @@ export class MournbladeRollDialog extends Dialog {
|
||||
html.find('#runeame').change(async (event) => {
|
||||
this.rollData.runeame = Number(event.currentTarget.value)
|
||||
})
|
||||
html.find('#isMonte').change(async (event) => {
|
||||
this.rollData.desavantages.isMonte = event.currentTarget.checked
|
||||
})
|
||||
|
||||
html.find('#cibleausol').change(async (event) => {
|
||||
this.rollData.desavantages.cibleausol = event.currentTarget.checked
|
||||
})
|
||||
html.find('#cibledesarmee').change(async (event) => {
|
||||
this.rollData.desavantages.cibledesarmee = event.currentTarget.checked
|
||||
})
|
||||
html.find('#ciblerestreint').change(async (event) => {
|
||||
this.rollData.desavantages.ciblerestreint = event.currentTarget.checked
|
||||
})
|
||||
html.find('#cibleimmobilisée').change(async (event) => {
|
||||
this.rollData.desavantages.cibleimmobilisée = event.currentTarget.checked
|
||||
})
|
||||
html.find('#ciblesurplomb').change(async (event) => {
|
||||
this.rollData.desavantages.ciblesurplomb = event.currentTarget.checked
|
||||
})
|
||||
|
||||
html.find('#doubleD20').change(async (event) => {
|
||||
this.rollData.doubleD20 = event.currentTarget.checked
|
||||
})
|
||||
|
||||
@@ -15,9 +15,6 @@ export class MournbladeUtility {
|
||||
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
||||
MournbladeUtility.pushInitiativeOptions(html, options);
|
||||
})
|
||||
Hooks.on("dropCanvasData", (canvas, data) => {
|
||||
MournbladeUtility.dropItemOnToken(canvas, data)
|
||||
});
|
||||
|
||||
this.rollDataStore = {}
|
||||
this.defenderStore = {}
|
||||
@@ -59,15 +56,6 @@ export class MournbladeUtility {
|
||||
return actor
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getModificateurOptions() {
|
||||
let opt = []
|
||||
for (let i = -15; i <= 15; i++) {
|
||||
opt.push(`<option value="${i}">${i}</option>`)
|
||||
}
|
||||
return opt.concat("\n")
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static sortArrayObjectsByName(myArray) {
|
||||
myArray.sort((a, b) => {
|
||||
@@ -75,18 +63,9 @@ export class MournbladeUtility {
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getPointAmeOptions() {
|
||||
let opt = []
|
||||
for (let i = 1; i <= 20; i++) {
|
||||
opt.push(`<option value="${i}">${i}</option>`)
|
||||
}
|
||||
return opt.concat("\n")
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getAttributs() {
|
||||
return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe" }
|
||||
return game.system.mournblade.config.attributs
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static pushInitiativeOptions(html, options) {
|
||||
@@ -101,6 +80,11 @@ export class MournbladeUtility {
|
||||
static async ready() {
|
||||
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
|
||||
this.skills = skills.map(i => i.toObject())
|
||||
|
||||
game.system.mournblade.config.listeNiveauSkill = MournbladeUtility.createDirectOptionList(0, 10)
|
||||
game.system.mournblade.config.listeNiveauCreature = MournbladeUtility.createDirectOptionList(0, 35)
|
||||
game.system.mournblade.config.modificateurOptions = MournbladeUtility.createArrayOptionList(-15, 15)
|
||||
game.system.mournblade.config.pointsAmeOptions = MournbladeUtility.createDirectOptionList(0, 20)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -122,8 +106,8 @@ export class MournbladeUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getPredilection(comp, predIdx) {
|
||||
let pred = duplicate(comp.system.predilections)
|
||||
return duplicate(pred[predIdx] || { name: "Error!" })
|
||||
let pred = foundry.utils.duplicate(comp.system.predilections)
|
||||
return foundry.utils.duplicate(pred[predIdx] || { name: "Error!" })
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -150,7 +134,7 @@ export class MournbladeUtility {
|
||||
let rollData = message.getFlag("world", "mournblade-roll")
|
||||
let actor = MournbladeUtility.getActorFromRollData(rollData)
|
||||
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
|
||||
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
|
||||
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
|
||||
rollData.predilectionUsed = MournbladeUtility.getPredilection(rollData.competence, predIdx)
|
||||
await MournbladeUtility.rollMournblade(rollData)
|
||||
})
|
||||
@@ -180,8 +164,7 @@ export class MournbladeUtility {
|
||||
|
||||
const templatePaths = [
|
||||
'systems/fvtt-mournblade/templates/editor-notes-gm.html',
|
||||
'systems/fvtt-mournblade/templates/partial-item-description.html',
|
||||
'systems/fvtt-mournblade/templates/partial-list-niveau.html'
|
||||
'systems/fvtt-mournblade/templates/partial-item-description.html'
|
||||
]
|
||||
return loadTemplates(templatePaths);
|
||||
}
|
||||
@@ -223,12 +206,10 @@ export class MournbladeUtility {
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static buildListOptions(min, max) {
|
||||
let options = ""
|
||||
static createArrayOptionList(min, max) {
|
||||
let options = [];
|
||||
for (let i = min; i <= max; i++) {
|
||||
options += `<option value="${i}">${i}</option>`
|
||||
options.push({key:`${i}`, label:`${i}`});
|
||||
}
|
||||
return options;
|
||||
}
|
||||
@@ -323,6 +304,7 @@ export class MournbladeUtility {
|
||||
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
|
||||
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
|
||||
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
|
||||
rollData.isPureSuccess = (rollData.isSuccess && !rollData.isHeroique)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -335,7 +317,7 @@ export class MournbladeUtility {
|
||||
}
|
||||
if (!rollData.attr) {
|
||||
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
||||
rollData.attr = duplicate(actor.system.attributs[rollData.attrKey])
|
||||
rollData.attr = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey])
|
||||
}
|
||||
|
||||
rollData.diceFormula = rollData.mainDice
|
||||
@@ -347,13 +329,13 @@ export class MournbladeUtility {
|
||||
}
|
||||
//console.log("BEFORE COMP", rollData)
|
||||
if (rollData.competence) {
|
||||
rollData.predilections = duplicate(rollData.competence.system.predilections)
|
||||
rollData.predilections = foundry.utils.duplicate(rollData.competence.system.predilections)
|
||||
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
|
||||
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
|
||||
} else {
|
||||
rollData.diceFormula += `+${rollData.attr.value}*2+${rollData.modificateur}`
|
||||
}
|
||||
rollData.diceFormula += `+${rollData.malusSante}`
|
||||
rollData.diceFormula += `+${rollData.malusSante}+${rollData.malusAme}`
|
||||
|
||||
if (rollData.arme?.type == "arme") {
|
||||
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
|
||||
@@ -365,6 +347,20 @@ export class MournbladeUtility {
|
||||
rollData.diceFormula += `+${modifier.system.value}`
|
||||
}
|
||||
}
|
||||
// Apply desavantages
|
||||
let desavantagesBonus = 0
|
||||
for (let desavantage in rollData.desavantages) {
|
||||
if (rollData.desavantages[desavantage]) {
|
||||
desavantagesBonus += 5
|
||||
}
|
||||
}
|
||||
desavantagesBonus = Math.min(15, desavantagesBonus)
|
||||
rollData.diceFormula += `+${desavantagesBonus}`
|
||||
|
||||
// Monté ?
|
||||
if (rollData.isMonte) {
|
||||
rollData.diceFormula += "+5"
|
||||
}
|
||||
|
||||
// Specific modifier for distance
|
||||
if (rollData.arme?.system?.isDistance) {
|
||||
@@ -382,7 +378,7 @@ export class MournbladeUtility {
|
||||
}
|
||||
}
|
||||
if (rollData.typeCouvert != "aucun") {
|
||||
rollData.diceFormula += `-${rollData.config.couverts[rollData.typeCouvert].value}`
|
||||
rollData.diceFormula += `+${rollData.config.couverts[rollData.typeCouvert].value}`
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,16 +391,17 @@ export class MournbladeUtility {
|
||||
rollData.runeduree = 1
|
||||
}
|
||||
}
|
||||
|
||||
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
|
||||
|
||||
let myRoll = await new Roll(rollData.diceFormula).evaluate();
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.roll = duplicate(myRoll)
|
||||
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||
rollData.diceResult = myRoll.terms[0].results[0].result
|
||||
console.log(">>>> ", myRoll)
|
||||
|
||||
rollData.finalResult = myRoll.total
|
||||
this.computeResult(rollData)
|
||||
|
||||
// Application immédiate selon type de jet
|
||||
if (rollData.rune) {
|
||||
let subAme = rollData.runeame
|
||||
if (rollData.isEchec && !rollData.isDramatique) {
|
||||
@@ -412,7 +409,19 @@ export class MournbladeUtility {
|
||||
}
|
||||
actor.subPointsAme(rollData.runemode, subAme)
|
||||
}
|
||||
|
||||
if (rollData.typeAttaque == "assomer" && rollData.defenderTokenId && rollData.isPureSuccess) {
|
||||
let defender = game.canvas.tokens.get(rollData?.defenderTokenId)?.actor
|
||||
defender.setModifier("Assomer : Prochaine action", "roll", -5)
|
||||
}
|
||||
if (rollData.typeAttaque == "fuir" && rollData.difficulte > 0 && !rollData.isSuccess) {
|
||||
actor.setModifier("Fuite échouée : -5 en défense ce round et suivant", "defense", -5)
|
||||
}
|
||||
if (rollData.typeAttaque == "immobiliser" && rollData.difficulte > 0 && rollData.isPureSuccess) {
|
||||
actor.setModifier("Immobilisation en cours : -5 pour prochaine action", "roll", -5)
|
||||
}
|
||||
if (rollData.typeAttaque == "chargecavalerie") {
|
||||
actor.setModifier("Charge de Cavalerie : -5 défense pour le tour", "defense", -5)
|
||||
}
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData)
|
||||
}, rollData)
|
||||
@@ -425,16 +434,21 @@ export class MournbladeUtility {
|
||||
let degatsMessage = "Degats normaux"
|
||||
|
||||
if (rollData.arme?.system?.isMelee) {
|
||||
if (rollData.typeAttaque == "assaut") {
|
||||
rollData.degatsFormula = rollData.arme.system.totalDegats
|
||||
if (rollData.isHeroique) { // Deux fois les dés de dégats
|
||||
rollData.degatsFormula += " + " + rollData.arme.system.totalDegats
|
||||
degatsMessage = "Dégats doublés"
|
||||
}
|
||||
rollData.degatsFormula = rollData.arme.system.totalDegats
|
||||
if (rollData.isHeroique) { // Deux fois les dés de dégats
|
||||
degatsMessage = "Dégats doublés"
|
||||
}
|
||||
|
||||
if (rollData.typeAttaque == "assomer") {
|
||||
rollData.degatsFormula = false
|
||||
}
|
||||
|
||||
if (rollData.typeAttaque == "charger") {
|
||||
rollData.degatsFormula += "+2"
|
||||
}
|
||||
if (rollData.typeAttaque == "chargecavalerie") {
|
||||
rollData.degatsFormula += "+5"
|
||||
}
|
||||
|
||||
if (rollData.typeAttaque == "precise") {
|
||||
degatsMessage = "Degats normaux"
|
||||
@@ -456,17 +470,17 @@ export class MournbladeUtility {
|
||||
if (rollData.typeAttaque == "coupbas") {
|
||||
degatsMessage = "Pas de dégats, mais malus pour prochaine action complexe du défenseur"
|
||||
rollData.degatsFormula = false
|
||||
rollData.nextMalus = -5
|
||||
rollData.nextMalus = 5
|
||||
if (rollData.isHeroique) { // Malus pour prochaine action
|
||||
rollData.nextMalus = -15
|
||||
rollData.nextMalus = 15
|
||||
}
|
||||
}
|
||||
if (rollData.typeAttaque == "contenir") {
|
||||
degatsMessage = "Pas de dégats, mais l'adversaire ne peut pas vous attaquer pour le reste du tour"
|
||||
rollData.degatsFormula = false
|
||||
if (rollData.isHeroique) { // Malus pour prochaine action
|
||||
degatsMessage = "Pas de dégats, mais tout les adversaires avec une défense inférieure ou égale à " + rollData.finalResult-10 +
|
||||
" ne peuvent pas vous attaquer pour le reste du tour"
|
||||
degatsMessage = "Pas de dégats, mais tout les adversaires avec une défense inférieure ou égale à " + rollData.finalResult - 10 +
|
||||
" ne peuvent pas vous attaquer pour le reste du tour"
|
||||
}
|
||||
}
|
||||
if (rollData.typeAttaque == "desarmer") {
|
||||
@@ -479,24 +493,26 @@ export class MournbladeUtility {
|
||||
}
|
||||
} else { // Armes à distance
|
||||
rollData.degatsFormula = rollData.arme.system.totalDegats
|
||||
if (rollData.isHeroique) { // Deux fois les dés de dégats
|
||||
rollData.degatsFormula += " + " + rollData.arme.system.totalDegats
|
||||
}
|
||||
}
|
||||
|
||||
for(let mod of rollData.modifiers) {
|
||||
if (mod.system.modifiertype == "degats") {
|
||||
rollData.degatsFormula += `+${mod.system.value}`
|
||||
}
|
||||
}
|
||||
|
||||
// Perform the roll, show the dice
|
||||
rollData.finalResult = 0
|
||||
rollData.degatsMessage = degatsMessage
|
||||
if (rollData.degatsFormula) {
|
||||
let degatsRoll = new Roll(rollData.degatsFormula).roll({ async: false, maximize: maximize })
|
||||
console.log("Degats formula", rollData.degatsFormula)
|
||||
// Twice!maximize
|
||||
if (rollData.isHeroique && !maximize) {
|
||||
rollData.degatsFormula += "+" + rollData.degatsFormula
|
||||
}
|
||||
// Latest modifiers
|
||||
for (let mod of rollData.modifiers) {
|
||||
if (mod.system.modifiertype == "degats") {
|
||||
rollData.degatsFormula += `+${mod.system.value}`
|
||||
}
|
||||
}
|
||||
let degatsRoll = await new Roll(rollData.degatsFormula).evaluate({ maximize: maximize })
|
||||
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.degatsRoll = duplicate(degatsRoll)
|
||||
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
|
||||
rollData.finalResult = degatsRoll.total
|
||||
}
|
||||
|
||||
@@ -527,10 +543,16 @@ export class MournbladeUtility {
|
||||
defender.setModifier("Prochaine action complexe", "roll", -rollData.nextMalus)
|
||||
}
|
||||
if (rollData.defenderDesarme) {
|
||||
ui.notifications.info("L'arme de " + defender.name + " est arrachée de ses mains (à gérer manuellement)" )
|
||||
ui.notifications.info("L'arme de " + defender.name + " est arrachée de ses mains (à gérer manuellement)")
|
||||
}
|
||||
let degats = rollData.finalResult
|
||||
defender.incDecSante((rollData.arme.system.nonletaux) ? "nonletaux" : "letaux", +degats, rollData.ignoreDefenseArmor)
|
||||
|
||||
let type = (rollData.arme.system.nonletaux) ? "nonletaux" : "letaux"
|
||||
if (rollData.arme.system.ignorearmure) {
|
||||
rollData.ignoreDefenseArmor = true
|
||||
}
|
||||
defender.incDecSante(type, +degats, rollData.ignoreDefenseArmor)
|
||||
ui.notifications.info(defender.name + "a subi " + degats + " points de santé " + type + ".")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -538,9 +560,9 @@ export class MournbladeUtility {
|
||||
static async bonusRollMournblade(rollData) {
|
||||
rollData.bonusFormula = rollData.addedBonus
|
||||
|
||||
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
|
||||
let bonusRoll = await new Roll(rollData.bonusFormula).evaluate()
|
||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
||||
rollData.bonusRoll = duplicate(bonusRoll)
|
||||
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
||||
|
||||
rollData.finalResult += rollData.bonusRoll.total
|
||||
|
||||
@@ -574,7 +596,7 @@ export class MournbladeUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static blindMessageToGM(chatOptions) {
|
||||
let chatGM = duplicate(chatOptions);
|
||||
let chatGM = foundry.utils.duplicate(chatOptions);
|
||||
chatGM.whisper = this.getUsers(user => user.isGM);
|
||||
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
||||
console.log("blindMessageToGM", chatGM);
|
||||
@@ -637,13 +659,11 @@ export class MournbladeUtility {
|
||||
/* -------------------------------------------- */
|
||||
static getBasicRollData() {
|
||||
let rollData = {
|
||||
rollId: randomID(16),
|
||||
rollId: foundry.utils.randomID(16),
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
modificateursOptions: this.getModificateurOptions(),
|
||||
pointAmeOptions: this.getPointAmeOptions(),
|
||||
difficulte: 0,
|
||||
modificateur: 0,
|
||||
config: game.system.mournblade.config,
|
||||
config: foundry.utils.duplicate(game.system.mournblade.config),
|
||||
}
|
||||
MournbladeUtility.updateWithTarget(rollData)
|
||||
return rollData
|
||||
@@ -655,7 +675,9 @@ export class MournbladeUtility {
|
||||
if (target) {
|
||||
rollData.defenderTokenId = target.id
|
||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
||||
rollData.defenderCombatValues = defender.getCombatValues()
|
||||
rollData.defender = defender.toObject() // Simpler
|
||||
rollData.defenderDefense = defender.getBestDefenseValue()
|
||||
rollData.armeDefense = defender.getBestDefenseValue()
|
||||
if (rollData.armeDefense) {
|
||||
rollData.difficulte = rollData.armeDefense.system.totalDefensif
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000217
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.246595 7f83a17fa6c0 Recovering log #68
|
||||
2023/12/24-12:34:00.257620 7f83a17fa6c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.257707 7f83a17fa6c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.706460 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.706493 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.712455 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.726437 7f83937fe6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.726469 7f83937fe6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:44.885743 7f7ed4e006c0 Recovering log #215
|
||||
2024/09/10-07:14:44.956966 7f7ed4e006c0 Delete type=3 #213
|
||||
2024/09/10-07:14:44.957144 7f7ed4e006c0 Delete type=0 #215
|
||||
2024/09/10-07:20:33.463210 7f7ecd6006c0 Level-0 table #220: started
|
||||
2024/09/10-07:20:33.463253 7f7ecd6006c0 Level-0 table #220: 0 bytes OK
|
||||
2024/09/10-07:20:33.501220 7f7ecd6006c0 Delete type=0 #218
|
||||
2024/09/10-07:20:33.538862 7f7ecd6006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.538937 7f7ecd6006c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.267441 7f83a17fa6c0 Recovering log #64
|
||||
2023/12/24-10:16:21.277442 7f83a17fa6c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.277525 7f83a17fa6c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.746298 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.746346 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.754266 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.761595 7f83937fe6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.768615 7f83937fe6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.138004 7f7ecf4006c0 Recovering log #210
|
||||
2024/09/09-21:51:17.149501 7f7ecf4006c0 Delete type=3 #208
|
||||
2024/09/09-21:51:17.149609 7f7ecf4006c0 Delete type=0 #210
|
||||
2024/09/09-21:52:48.597265 7f7ecd6006c0 Level-0 table #216: started
|
||||
2024/09/09-21:52:48.597313 7f7ecd6006c0 Level-0 table #216: 0 bytes OK
|
||||
2024/09/09-21:52:48.604438 7f7ecd6006c0 Delete type=0 #214
|
||||
2024/09/09-21:52:48.611351 7f7ecd6006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.611418 7f7ecd6006c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000216
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.290195 7f83a0ff96c0 Recovering log #68
|
||||
2023/12/24-12:34:00.300801 7f83a0ff96c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.300889 7f83a0ff96c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.720129 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.720181 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.726326 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.726457 7f83937fe6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.726475 7f83937fe6c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:45.086238 7f7ecf4006c0 Recovering log #214
|
||||
2024/09/10-07:14:45.144857 7f7ecf4006c0 Delete type=3 #212
|
||||
2024/09/10-07:14:45.145056 7f7ecf4006c0 Delete type=0 #214
|
||||
2024/09/10-07:20:33.607105 7f7ecd6006c0 Level-0 table #219: started
|
||||
2024/09/10-07:20:33.607143 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||
2024/09/10-07:20:33.638955 7f7ecd6006c0 Delete type=0 #217
|
||||
2024/09/10-07:20:33.678483 7f7ecd6006c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.678561 7f7ecd6006c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.308457 7f83a0ff96c0 Recovering log #64
|
||||
2023/12/24-10:16:21.320693 7f83a0ff96c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.320808 7f83a0ff96c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.768640 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.768688 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.776307 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.783712 7f83937fe6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.791457 7f83937fe6c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.180244 7f7ecea006c0 Recovering log #209
|
||||
2024/09/09-21:51:17.191008 7f7ecea006c0 Delete type=3 #207
|
||||
2024/09/09-21:51:17.191115 7f7ecea006c0 Delete type=0 #209
|
||||
2024/09/09-21:52:48.625325 7f7ecd6006c0 Level-0 table #215: started
|
||||
2024/09/09-21:52:48.625386 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||
2024/09/09-21:52:48.631864 7f7ecd6006c0 Delete type=0 #213
|
||||
2024/09/09-21:52:48.638978 7f7ecd6006c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.639033 7f7ecd6006c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000216
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.275379 7f8393fff6c0 Recovering log #68
|
||||
2023/12/24-12:34:00.286070 7f8393fff6c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.286179 7f8393fff6c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.712724 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.712753 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.719948 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.726447 7f83937fe6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.726492 7f83937fe6c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:45.020069 7f7ecfe006c0 Recovering log #214
|
||||
2024/09/10-07:14:45.082360 7f7ecfe006c0 Delete type=3 #212
|
||||
2024/09/10-07:14:45.082521 7f7ecfe006c0 Delete type=0 #214
|
||||
2024/09/10-07:20:33.576805 7f7ecd6006c0 Level-0 table #219: started
|
||||
2024/09/10-07:20:33.576855 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||
2024/09/10-07:20:33.606927 7f7ecd6006c0 Delete type=0 #217
|
||||
2024/09/10-07:20:33.678460 7f7ecd6006c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.678542 7f7ecd6006c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.294166 7f83a1ffb6c0 Recovering log #64
|
||||
2023/12/24-10:16:21.304260 7f83a1ffb6c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.304374 7f83a1ffb6c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.761629 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.761667 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.768357 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.776812 7f83937fe6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.783744 7f83937fe6c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.166142 7f7ecfe006c0 Recovering log #209
|
||||
2024/09/09-21:51:17.176865 7f7ecfe006c0 Delete type=3 #207
|
||||
2024/09/09-21:51:17.176960 7f7ecfe006c0 Delete type=0 #209
|
||||
2024/09/09-21:52:48.618041 7f7ecd6006c0 Level-0 table #215: started
|
||||
2024/09/09-21:52:48.618105 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||
2024/09/09-21:52:48.625105 7f7ecd6006c0 Delete type=0 #213
|
||||
2024/09/09-21:52:48.638957 7f7ecd6006c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.639048 7f7ecd6006c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000216
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.318719 7f83a1ffb6c0 Recovering log #68
|
||||
2023/12/24-12:34:00.328670 7f83a1ffb6c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.328802 7f83a1ffb6c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.733261 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.733307 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.739952 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.753835 7f83937fe6c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.753900 7f83937fe6c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:45.210943 7f7ecea006c0 Recovering log #214
|
||||
2024/09/10-07:14:45.265940 7f7ecea006c0 Delete type=3 #212
|
||||
2024/09/10-07:14:45.266060 7f7ecea006c0 Delete type=0 #214
|
||||
2024/09/10-07:20:33.678752 7f7ecd6006c0 Level-0 table #219: started
|
||||
2024/09/10-07:20:33.678827 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||
2024/09/10-07:20:33.713480 7f7ecd6006c0 Delete type=0 #217
|
||||
2024/09/10-07:20:33.816847 7f7ecd6006c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.816952 7f7ecd6006c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.337236 7f8393fff6c0 Recovering log #64
|
||||
2023/12/24-10:16:21.348102 7f8393fff6c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.348205 7f8393fff6c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.783758 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.783798 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.791210 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.798452 7f83937fe6c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.805941 7f83937fe6c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.208104 7f7ed4e006c0 Recovering log #209
|
||||
2024/09/09-21:51:17.219088 7f7ed4e006c0 Delete type=3 #207
|
||||
2024/09/09-21:51:17.219197 7f7ed4e006c0 Delete type=0 #209
|
||||
2024/09/09-21:52:48.639145 7f7ecd6006c0 Level-0 table #215: started
|
||||
2024/09/09-21:52:48.639185 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||
2024/09/09-21:52:48.646533 7f7ecd6006c0 Delete type=0 #213
|
||||
2024/09/09-21:52:48.668071 7f7ecd6006c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.668151 7f7ecd6006c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000216
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.331651 7f8393fff6c0 Recovering log #68
|
||||
2023/12/24-12:34:00.342356 7f8393fff6c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.342523 7f8393fff6c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.746294 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.746356 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.753448 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.753873 7f83937fe6c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.753932 7f83937fe6c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:45.269926 7f7ecfe006c0 Recovering log #214
|
||||
2024/09/10-07:14:45.328808 7f7ecfe006c0 Delete type=3 #212
|
||||
2024/09/10-07:14:45.328977 7f7ecfe006c0 Delete type=0 #214
|
||||
2024/09/10-07:20:33.783195 7f7ecd6006c0 Level-0 table #219: started
|
||||
2024/09/10-07:20:33.783241 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||
2024/09/10-07:20:33.816523 7f7ecd6006c0 Delete type=0 #217
|
||||
2024/09/10-07:20:33.816931 7f7ecd6006c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.817030 7f7ecd6006c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.352520 7f83a1ffb6c0 Recovering log #64
|
||||
2023/12/24-10:16:21.363460 7f83a1ffb6c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.363586 7f83a1ffb6c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.791492 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.791588 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.798213 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.805913 7f83937fe6c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.813013 7f83937fe6c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.222186 7f7ecfe006c0 Recovering log #209
|
||||
2024/09/09-21:51:17.233209 7f7ecfe006c0 Delete type=3 #207
|
||||
2024/09/09-21:51:17.233359 7f7ecfe006c0 Delete type=0 #209
|
||||
2024/09/09-21:52:48.646768 7f7ecd6006c0 Level-0 table #215: started
|
||||
2024/09/09-21:52:48.646827 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||
2024/09/09-21:52:48.653236 7f7ecd6006c0 Delete type=0 #213
|
||||
2024/09/09-21:52:48.668098 7f7ecd6006c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.668166 7f7ecd6006c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000216
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.304162 7f83a17fa6c0 Recovering log #68
|
||||
2023/12/24-12:34:00.315560 7f83a17fa6c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.315745 7f83a17fa6c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.726546 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.726570 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.733055 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.753606 7f83937fe6c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.753886 7f83937fe6c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:45.148885 7f7ed4e006c0 Recovering log #214
|
||||
2024/09/10-07:14:45.204991 7f7ed4e006c0 Delete type=3 #212
|
||||
2024/09/10-07:14:45.205146 7f7ed4e006c0 Delete type=0 #214
|
||||
2024/09/10-07:20:33.639140 7f7ecd6006c0 Level-0 table #219: started
|
||||
2024/09/10-07:20:33.639178 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||
2024/09/10-07:20:33.677964 7f7ecd6006c0 Delete type=0 #217
|
||||
2024/09/10-07:20:33.678505 7f7ecd6006c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.678580 7f7ecd6006c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.323806 7f83a17fa6c0 Recovering log #64
|
||||
2023/12/24-10:16:21.333877 7f83a17fa6c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.333966 7f83a17fa6c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.776871 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.776925 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.783560 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.791429 7f83937fe6c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.798479 7f83937fe6c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.194403 7f7ecf4006c0 Recovering log #209
|
||||
2024/09/09-21:51:17.204990 7f7ecf4006c0 Delete type=3 #207
|
||||
2024/09/09-21:51:17.205104 7f7ecf4006c0 Delete type=0 #209
|
||||
2024/09/09-21:52:48.632133 7f7ecd6006c0 Level-0 table #215: started
|
||||
2024/09/09-21:52:48.632191 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||
2024/09/09-21:52:48.638748 7f7ecd6006c0 Delete type=0 #213
|
||||
2024/09/09-21:52:48.638992 7f7ecd6006c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.639018 7f7ecd6006c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
MANIFEST-000112
|
||||
@@ -0,0 +1,8 @@
|
||||
2024/09/10-07:14:44.657561 7f7ecf4006c0 Recovering log #110
|
||||
2024/09/10-07:14:44.756808 7f7ecf4006c0 Delete type=3 #108
|
||||
2024/09/10-07:14:44.756963 7f7ecf4006c0 Delete type=0 #110
|
||||
2024/09/10-07:20:33.399722 7f7ecd6006c0 Level-0 table #115: started
|
||||
2024/09/10-07:20:33.399823 7f7ecd6006c0 Level-0 table #115: 0 bytes OK
|
||||
2024/09/10-07:20:33.426020 7f7ecd6006c0 Delete type=0 #113
|
||||
2024/09/10-07:20:33.538803 7f7ecd6006c0 Manual compaction at level-0 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.538898 7f7ecd6006c0 Manual compaction at level-1 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||
@@ -0,0 +1,8 @@
|
||||
2024/09/09-21:51:17.088284 7f7ecea006c0 Recovering log #105
|
||||
2024/09/09-21:51:17.099095 7f7ecea006c0 Delete type=3 #103
|
||||
2024/09/09-21:51:17.099204 7f7ecea006c0 Delete type=0 #105
|
||||
2024/09/09-21:52:48.582588 7f7ecd6006c0 Level-0 table #111: started
|
||||
2024/09/09-21:52:48.582673 7f7ecd6006c0 Level-0 table #111: 0 bytes OK
|
||||
2024/09/09-21:52:48.589717 7f7ecd6006c0 Delete type=0 #109
|
||||
2024/09/09-21:52:48.611309 7f7ecd6006c0 Manual compaction at level-0 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.611384 7f7ecd6006c0 Manual compaction at level-1 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000216
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.260773 7f83a1ffb6c0 Recovering log #68
|
||||
2023/12/24-12:34:00.272894 7f83a1ffb6c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.273030 7f83a1ffb6c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.699002 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.699041 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.706302 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.726427 7f83937fe6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.726463 7f83937fe6c0 Manual compaction at level-1 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:44.961549 7f7ecea006c0 Recovering log #214
|
||||
2024/09/10-07:14:45.016222 7f7ecea006c0 Delete type=3 #212
|
||||
2024/09/10-07:14:45.016606 7f7ecea006c0 Delete type=0 #214
|
||||
2024/09/10-07:20:33.539100 7f7ecd6006c0 Level-0 table #219: started
|
||||
2024/09/10-07:20:33.539159 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||
2024/09/10-07:20:33.576585 7f7ecd6006c0 Delete type=0 #217
|
||||
2024/09/10-07:20:33.678420 7f7ecd6006c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.678524 7f7ecd6006c0 Manual compaction at level-1 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.280418 7f8393fff6c0 Recovering log #64
|
||||
2023/12/24-10:16:21.291443 7f8393fff6c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.291522 7f8393fff6c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.754630 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.754699 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.761432 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.768575 7f83937fe6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.776849 7f83937fe6c0 Manual compaction at level-1 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.152829 7f7ed4e006c0 Recovering log #209
|
||||
2024/09/09-21:51:17.163037 7f7ed4e006c0 Delete type=3 #207
|
||||
2024/09/09-21:51:17.163143 7f7ed4e006c0 Delete type=0 #209
|
||||
2024/09/09-21:52:48.611545 7f7ecd6006c0 Level-0 table #215: started
|
||||
2024/09/09-21:52:48.611586 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||
2024/09/09-21:52:48.617883 7f7ecd6006c0 Delete type=0 #213
|
||||
2024/09/09-21:52:48.638938 7f7ecd6006c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.639004 7f7ecd6006c0 Manual compaction at level-1 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
MANIFEST-000070
|
||||
MANIFEST-000216
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-12:34:00.373049 7f83a1ffb6c0 Recovering log #68
|
||||
2023/12/24-12:34:00.383735 7f83a1ffb6c0 Delete type=3 #66
|
||||
2023/12/24-12:34:00.383841 7f83a1ffb6c0 Delete type=0 #68
|
||||
2023/12/24-12:37:21.760456 7f83937fe6c0 Level-0 table #73: started
|
||||
2023/12/24-12:37:21.760489 7f83937fe6c0 Level-0 table #73: 0 bytes OK
|
||||
2023/12/24-12:37:21.766845 7f83937fe6c0 Delete type=0 #71
|
||||
2023/12/24-12:37:21.773984 7f83937fe6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:37:21.774012 7f83937fe6c0 Manual compaction at level-1 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:14:45.464393 7f7ecea006c0 Recovering log #214
|
||||
2024/09/10-07:14:45.568041 7f7ecea006c0 Delete type=3 #212
|
||||
2024/09/10-07:14:45.568192 7f7ecea006c0 Delete type=0 #214
|
||||
2024/09/10-07:20:33.817119 7f7ecd6006c0 Level-0 table #219: started
|
||||
2024/09/10-07:20:33.817259 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||
2024/09/10-07:20:33.853842 7f7ecd6006c0 Delete type=0 #217
|
||||
2024/09/10-07:20:33.990487 7f7ecd6006c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.990597 7f7ecd6006c0 Manual compaction at level-1 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
2023/12/24-10:16:21.395156 7f8393fff6c0 Recovering log #64
|
||||
2023/12/24-10:16:21.406418 7f8393fff6c0 Delete type=3 #62
|
||||
2023/12/24-10:16:21.406910 7f8393fff6c0 Delete type=0 #64
|
||||
2023/12/24-12:20:18.813028 7f83937fe6c0 Level-0 table #69: started
|
||||
2023/12/24-12:20:18.813071 7f83937fe6c0 Level-0 table #69: 0 bytes OK
|
||||
2023/12/24-12:20:18.819811 7f83937fe6c0 Delete type=0 #67
|
||||
2023/12/24-12:20:18.827987 7f83937fe6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
2023/12/24-12:20:18.828164 7f83937fe6c0 Manual compaction at level-1 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:51:17.266111 7f7ed4e006c0 Recovering log #209
|
||||
2024/09/09-21:51:17.276764 7f7ed4e006c0 Delete type=3 #207
|
||||
2024/09/09-21:51:17.276860 7f7ed4e006c0 Delete type=0 #209
|
||||
2024/09/09-21:52:48.668305 7f7ecd6006c0 Level-0 table #215: started
|
||||
2024/09/09-21:52:48.668347 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||
2024/09/09-21:52:48.674748 7f7ecd6006c0 Delete type=0 #213
|
||||
2024/09/09-21:52:48.696639 7f7ecd6006c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.696713 7f7ecd6006c0 Manual compaction at level-1 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
MANIFEST-000132
|
||||
@@ -0,0 +1,8 @@
|
||||
2024/09/10-07:14:45.696006 7f7ecf4006c0 Recovering log #130
|
||||
2024/09/10-07:14:45.752701 7f7ecf4006c0 Delete type=3 #128
|
||||
2024/09/10-07:14:45.752833 7f7ecf4006c0 Delete type=0 #130
|
||||
2024/09/10-07:20:33.897005 7f7ecd6006c0 Level-0 table #135: started
|
||||
2024/09/10-07:20:33.897068 7f7ecd6006c0 Level-0 table #135: 0 bytes OK
|
||||
2024/09/10-07:20:33.928636 7f7ecd6006c0 Delete type=0 #133
|
||||
2024/09/10-07:20:33.990553 7f7ecd6006c0 Manual compaction at level-0 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.990640 7f7ecd6006c0 Manual compaction at level-1 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||
@@ -0,0 +1,8 @@
|
||||
2024/09/09-21:51:17.296296 7f7ecea006c0 Recovering log #125
|
||||
2024/09/09-21:51:17.307966 7f7ecea006c0 Delete type=3 #123
|
||||
2024/09/09-21:51:17.308176 7f7ecea006c0 Delete type=0 #125
|
||||
2024/09/09-21:52:48.682640 7f7ecd6006c0 Level-0 table #131: started
|
||||
2024/09/09-21:52:48.682688 7f7ecd6006c0 Level-0 table #131: 0 bytes OK
|
||||
2024/09/09-21:52:48.689372 7f7ecd6006c0 Delete type=0 #129
|
||||
2024/09/09-21:52:48.696686 7f7ecd6006c0 Manual compaction at level-0 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.696741 7f7ecd6006c0 Manual compaction at level-1 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
MANIFEST-000124
|
||||
@@ -0,0 +1,8 @@
|
||||
2024/09/10-07:14:44.824622 7f7ecf4006c0 Recovering log #122
|
||||
2024/09/10-07:14:44.881625 7f7ecf4006c0 Delete type=3 #120
|
||||
2024/09/10-07:14:44.881742 7f7ecf4006c0 Delete type=0 #122
|
||||
2024/09/10-07:20:33.426241 7f7ecd6006c0 Level-0 table #127: started
|
||||
2024/09/10-07:20:33.426287 7f7ecd6006c0 Level-0 table #127: 0 bytes OK
|
||||
2024/09/10-07:20:33.462927 7f7ecd6006c0 Delete type=0 #125
|
||||
2024/09/10-07:20:33.538838 7f7ecd6006c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||
2024/09/10-07:20:33.538919 7f7ecd6006c0 Manual compaction at level-1 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||
@@ -0,0 +1,8 @@
|
||||
2024/09/09-21:51:17.124273 7f7ecea006c0 Recovering log #117
|
||||
2024/09/09-21:51:17.134938 7f7ecea006c0 Delete type=3 #115
|
||||
2024/09/09-21:51:17.135076 7f7ecea006c0 Delete type=0 #117
|
||||
2024/09/09-21:52:48.604710 7f7ecd6006c0 Level-0 table #123: started
|
||||
2024/09/09-21:52:48.604782 7f7ecd6006c0 Level-0 table #123: 0 bytes OK
|
||||
2024/09/09-21:52:48.611122 7f7ecd6006c0 Delete type=0 #121
|
||||
2024/09/09-21:52:48.611368 7f7ecd6006c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||
2024/09/09-21:52:48.611434 7f7ecd6006c0 Manual compaction at level-1 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user