Compare commits

..

5 Commits

Author SHA1 Message Date
uberwald e840b70ac9 Add UK/US translation 2024-09-10 13:17:45 +02:00
uberwald 03b8779862 Add UK/US translation 2024-09-10 07:20:55 +02:00
uberwald 580a2ccaba Corrections suite a migration Foundry v12 2024-05-01 09:46:37 +02:00
uberwald 699dba5511 Compatibilité v11/v12 2024-04-26 11:45:58 +02:00
uberwald aac552102a Add new automations 2024-04-05 22:33:36 +02:00
153 changed files with 1383 additions and 798 deletions
+201
View File
@@ -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"
}
}
}
+186 -1
View File
@@ -24,5 +24,190 @@
"modifier": "Modificateur", "modifier": "Modificateur",
"traitespece": "Trait d'Espèce" "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"
} }
+26 -16
View File
@@ -12,7 +12,7 @@ export class MournbladeActorSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-mournblade", "sheet", "actor"], classes: ["fvtt-mournblade", "sheet", "actor"],
template: "systems/fvtt-mournblade/templates/actor-sheet.html", template: "systems/fvtt-mournblade/templates/actor-sheet.html",
width: 640, width: 640,
@@ -25,7 +25,7 @@ export class MournbladeActorSheet extends ActorSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const objectData = duplicate(this.object) const objectData = foundry.utils.duplicate(this.object)
let actorData = objectData let actorData = objectData
let formData = { let formData = {
@@ -40,24 +40,25 @@ export class MournbladeActorSheet extends ActorSheet {
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)), effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited, limited: this.object.limited,
skills: this.actor.getSkills(), skills: this.actor.getSkills(),
armes: duplicate(this.actor.getWeapons()), armes: foundry.utils.duplicate(this.actor.getWeapons()),
protections: duplicate(this.actor.getArmors()), protections: foundry.utils.duplicate(this.actor.getArmors()),
dons: duplicate(this.actor.getDons()), dons: foundry.utils.duplicate(this.actor.getDons()),
pactes: foundry.utils.duplicate(this.actor.getPactes()),
alignement: this.actor.getAlignement(), alignement: this.actor.getAlignement(),
aspect: this.actor.getAspect(), aspect: this.actor.getAspect(),
marge: this.actor.getMarge(), marge: this.actor.getMarge(),
tendances:duplicate(this.actor.getTendances()), tendances:foundry.utils.duplicate(this.actor.getTendances()),
runes:duplicate(this.actor.getRunes()), runes:foundry.utils.duplicate(this.actor.getRunes()),
traitsChaotiques:duplicate(this.actor.getTraitsChaotiques()), traitsChaotiques:foundry.utils.duplicate(this.actor.getTraitsChaotiques()),
traitsEspeces: duplicate(this.actor.getTraitsEspeces()), traitsEspeces: foundry.utils.duplicate(this.actor.getTraitsEspeces()),
origine: duplicate(this.actor.getOrigine() || {}), origine: foundry.utils.duplicate(this.actor.getOrigine() || {}),
heritage: duplicate(this.actor.getHeritage() || {}), heritage: foundry.utils.duplicate(this.actor.getHeritage() || {}),
metier: duplicate(this.actor.getMetier() || {}), metier: foundry.utils.duplicate(this.actor.getMetier() || {}),
combat: this.actor.getCombatValues(), combat: this.actor.getCombatValues(),
equipements: duplicate(this.actor.getEquipments()), equipements: foundry.utils.duplicate(this.actor.getEquipments()),
modifiers: duplicate(this.actor.getModifiers()), modifiers: foundry.utils.duplicate(this.actor.getModifiers()),
monnaies: duplicate(this.actor.getMonnaies()), monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
runeEffects: duplicate(this.actor.getRuneEffects()), runeEffects: foundry.utils.duplicate(this.actor.getRuneEffects()),
config: game.system.mournblade.config, config: game.system.mournblade.config,
protectionTotal: this.actor.getProtectionTotal(), protectionTotal: this.actor.getProtectionTotal(),
santeMalus: this.actor.getStatusMalus(), santeMalus: this.actor.getStatusMalus(),
@@ -135,6 +136,15 @@ export class MournbladeActorSheet extends ActorSheet {
let armeId = li.data("item-id") let armeId = li.data("item-id")
this.actor.rollArmeOffensif(armeId) 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) => { html.find('.roll-arme-special').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id") let armeId = li.data("item-id")
+84 -24
View File
@@ -31,7 +31,7 @@ export class MournbladeActor extends Actor {
if (data instanceof Array) { if (data instanceof Array) {
return super.create(data, options); 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) { if (data.items) {
let actor = super.create(data, options); let actor = super.create(data, options);
return actor; return actor;
@@ -60,23 +60,23 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareArme(arme) { prepareArme(arme) {
arme = duplicate(arme) arme = foundry.utils.duplicate(arme)
let combat = this.getCombatValues() let combat = this.getCombatValues()
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") { if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
arme.system.isMelee = true 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.attrKey = "pui"
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal 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) { if (arme.system.isdefense) {
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef
} }
} }
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") { if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
arme.system.isDistance = true 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.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 arme.system.totalDegats = arme.system.degats
if (arme.system.isdefense) { if (arme.system.isdefense) {
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef
@@ -86,9 +86,9 @@ export class MournbladeActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareBouclier(bouclier) { prepareBouclier(bouclier) {
bouclier = duplicate(bouclier) bouclier = foundry.utils.duplicate(bouclier)
let combat = this.getCombatValues() 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.attrKey = "pui"
bouclier.system.totalDegats = bouclier.system.degats + "+" + combat.bonusDegatsTotal bouclier.system.totalDegats = bouclier.system.degats + "+" + combat.bonusDegatsTotal
bouclier.system.totalOffensif = this.system.attributs.pui.value + bouclier.system.competence.system.niveau bouclier.system.totalOffensif = this.system.attributs.pui.value + bouclier.system.competence.system.niveau
@@ -136,6 +136,9 @@ export class MournbladeActor extends Actor {
getDons() { getDons() {
return this.getItemSorted(["don"]) return this.getItemSorted(["don"])
} }
getPactes() {
return this.getItemSorted(["pacte"])
}
getTendances() { getTendances() {
return this.getItemSorted(["tendance"]) return this.getItemSorted(["tendance"])
} }
@@ -176,7 +179,7 @@ export class MournbladeActor extends Actor {
getSkills() { getSkills() {
let comp = [] let comp = []
for (let item of this.items) { for (let item of this.items) {
item = duplicate(item) item = foundry.utils.duplicate(item)
if (item.type == "competence") { if (item.type == "competence") {
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0) 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) item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
@@ -230,7 +233,14 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getCombatValues() { 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 = { let combat = {
defenserModifier,
attaqueModifier,
initBase: this.system.attributs.adr.value, initBase: this.system.attributs.adr.value,
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus, initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
bonusDegats: this.getBonusDegats(), bonusDegats: this.getBonusDegats(),
@@ -238,7 +248,7 @@ export class MournbladeActor extends Actor {
vitesseBase: this.getVitesseBase(), vitesseBase: this.getVitesseBase(),
vitesseTotal: this.getVitesseBase() + this.system.combat.vitessebonus, vitesseTotal: this.getVitesseBase() + this.system.combat.vitessebonus,
defenseBase: this.getDefenseBase(), defenseBase: this.getDefenseBase(),
defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus + defenserModifier
} }
return combat return combat
} }
@@ -279,7 +289,7 @@ export class MournbladeActor extends Actor {
getItemById(id) { getItemById(id) {
let item = this.items.find(item => item.id == id); let item = this.items.find(item => item.id == id);
if (item) { if (item) {
item = duplicate(item) item = foundry.utils.duplicate(item)
} }
return item; return item;
} }
@@ -354,7 +364,7 @@ export class MournbladeActor extends Actor {
value = Math.max(0, Number(value)) value = Math.max(0, Number(value))
} }
if (value) { if (value) {
let newSante = duplicate(this.system.sante) let newSante = foundry.utils.duplicate(this.system.sante)
newSante[type] += Number(value) newSante[type] += Number(value)
newSante[type] = Math.max(0, newSante[type]) newSante[type] = Math.max(0, newSante[type])
if (newSante[type] > this.system.sante.base) { if (newSante[type] > this.system.sante.base) {
@@ -375,7 +385,7 @@ export class MournbladeActor extends Actor {
incDecAme(value) { incDecAme(value) {
value = Number(value) value = Number(value)
if (value) { if (value) {
let newAme = duplicate(this.system.ame) let newAme = foundry.utils.duplicate(this.system.ame)
newAme.value += Number(value) newAme.value += Number(value)
newAme.value = Math.max(0, newAme.value) newAme.value = Math.max(0, newAme.value)
newAme.value = Math.min(newAme.value, newAme.currentmax) newAme.value = Math.min(newAme.value, newAme.currentmax)
@@ -413,7 +423,7 @@ export class MournbladeActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
subPointsAme(runeMode, value) { subPointsAme(runeMode, value) {
let ame = duplicate(this.system.ame) let ame = foundry.utils.duplicate(this.system.ame)
if (runeMode == "prononcer") { if (runeMode == "prononcer") {
ame.value += value ame.value += value
} else { } else {
@@ -459,13 +469,13 @@ export class MournbladeActor extends Actor {
getSubActors() { getSubActors() {
let subActors = []; let subActors = [];
for (let id of this.system.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; return subActors;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async addSubActor(subActorId) { async addSubActor(subActorId) {
let subActors = duplicate(this.system.subactors); let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId); subActors.push(subActorId);
await this.update({ 'system.subactors': subActors }); await this.update({ 'system.subactors': subActors });
} }
@@ -496,7 +506,7 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async setPredilectionUsed(compId, predIdx) { async setPredilectionUsed(compId, predIdx) {
let comp = this.items.get(compId) let comp = this.items.get(compId)
let pred = duplicate(comp.system.predilections) let pred = foundry.utils.duplicate(comp.system.predilections)
pred[predIdx].used = true pred[predIdx].used = true
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }]) await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
} }
@@ -519,7 +529,7 @@ export class MournbladeActor extends Actor {
} }
if (arme.system.totalDefensif > maxDef) { if (arme.system.totalDefensif > maxDef) {
maxDef = arme.system.totalDefensif maxDef = arme.system.totalDefensif
bestArme = duplicate(arme) bestArme = foundry.utils.duplicate(arme)
} }
} }
return bestArme return bestArme
@@ -528,8 +538,8 @@ export class MournbladeActor extends Actor {
depenseRessources(arme) { depenseRessources(arme) {
if (arme.system.nbressources && Number(arme.system.nbressources) > 0) { if (arme.system.nbressources && Number(arme.system.nbressources) > 0) {
if (this.type == "creature") { if (this.type == "creature") {
let ressources = duplicate(this.system.ressources) let ressources = foundry.utils.duplicate(this.system.ressources)
if ( Number(ressources.value) >= Number(arme.system.nbressources)) { if (Number(ressources.value) >= Number(arme.system.nbressources)) {
ressources.value -= arme.system.nbressources ressources.value -= arme.system.nbressources
this.update({ 'system.ressources': ressources }) this.update({ 'system.ressources': ressources })
ChatMessage.create({ ChatMessage.create({
@@ -561,20 +571,25 @@ export class MournbladeActor extends Actor {
rollData.malusSante = this.getStatusMalus() + this.system.sante.malusmanuel rollData.malusSante = this.getStatusMalus() + this.system.sante.malusmanuel
rollData.malusAme = this.getAmeMalus() rollData.malusAme = this.getAmeMalus()
rollData.modifiers = this.getModifiersForRoll() rollData.modifiers = this.getModifiersForRoll()
rollData.desavantages = {}
rollData.isMonte = this.system.combat.monte
if (rollData.isMonte) {
rollData.config.attaques["chargecavalerie"] = "Charge de cavalerie"
}
if (attrKey) { if (attrKey) {
rollData.attrKey = attrKey rollData.attrKey = attrKey
if (attrKey != "tochoose") { if (attrKey != "tochoose") {
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp" 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) { if (compId) {
rollData.competence = duplicate(this.items.get(compId) || {}) rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
rollData.actionImg = rollData.competence?.img rollData.actionImg = rollData.competence?.img
} }
if (compName) { 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 rollData.actionImg = rollData.competence?.img
} }
return rollData return rollData
@@ -603,7 +618,7 @@ export class MournbladeActor extends Actor {
return return
} }
let rollData = this.getCommonRollData("cla", undefined, "Savoir : Runes") 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.difficulte = rollData.rune?.system?.seuil || 0
rollData.runemode = "prononcer" rollData.runemode = "prononcer"
rollData.runeame = 1 rollData.runeame = 1
@@ -625,12 +640,14 @@ export class MournbladeActor extends Actor {
rollData.arme = arme rollData.arme = arme
rollData.typeAttaque = "assaut" rollData.typeAttaque = "assaut"
rollData.typeCouvert = "aucun" rollData.typeCouvert = "aucun"
rollData.hasDesavantageBonus = true
rollData.visee = false rollData.visee = false
rollData.ciblecourt = false rollData.ciblecourt = false
rollData.cibleconsciente = false rollData.cibleconsciente = false
// Do not display difficulte if defense weapon or distance // Do not display difficulte if defense weapon or distance
if (rollData.armeDefense || rollData.arme.system.isDistance) { if (rollData.armeDefense || rollData.arme.system.isDistance) {
rollData.selectDifficulte = false rollData.selectDifficulte = false
rollData.difficulte = (rollData.arme.system.isDistance) ? 0 : rollData.difficulte
} }
console.log("ARME!", rollData) console.log("ARME!", rollData)
this.depenseRessources(arme) this.depenseRessources(arme)
@@ -638,6 +655,49 @@ export class MournbladeActor extends Actor {
rollDialog.render(true) 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) { async rollArmeSpecial(armeId) {
let arme = this.items.get(armeId) let arme = this.items.get(armeId)
+78 -20
View File
@@ -1,23 +1,81 @@
export const MOURNBLADE_CONFIG = {
attaques:{ export class MournbladeConfig {
assaut: "Assaut",
precise: "Attaque Précise", static getConfig() {
feinte: "Feinte", let MOURNBLADE_CONFIG = {
coupbas: "Coup Bas",
charger: "Charger", attaques: {
contenir: "Contenir l'adversaire", assaut: game.i18n.localize("MNBL.assaut"),
desarmer: "Désarmer", precise: game.i18n.localize("MNBL.preciseattack"),
}, feinte: game.i18n.localize("MNBL.feint"),
couverts:{ coupbas: game.i18n.localize("MNBL.dirtyattack"),
aucun: {name: "Aucun", value: 0}, charger: game.i18n.localize("MNBL.charge"),
rondache: {name: "Rondache ou léger (-2)", value: -2}, contenir: game.i18n.localize("MNBL.contain"),
pavois: { name: "Pavois ou à moitié (-5)", value: -5}, desarmer: game.i18n.localize("MNBL.disarm")
complet: {name:"Quasi complet (-10)", value: -10}, },
}, couverts: {
modifierTypes: { aucun: { name: game.i18n.localize("MNBL.none"), value: 0 },
aucun: {name: "Aucun", value: 0}, rondache: { name: game.i18n.localize("MNBL.lightcover"), value: -2 },
roll: {name: "Jet", value: 0}, pavois: { name: game.i18n.localize("MNBL.mediumcover"), value: -5 },
degats: {name: "Dégats", value: 0}, 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;
} }
}; };
+1 -1
View File
@@ -12,7 +12,7 @@ export class MournbladeCreatureSheet extends MournbladeActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-mournblade", "sheet", "actor"], classes: ["fvtt-mournblade", "sheet", "actor"],
template: "systems/fvtt-mournblade/templates/creature-sheet.html", template: "systems/fvtt-mournblade/templates/creature-sheet.html",
width: 640, width: 640,
+7 -7
View File
@@ -9,7 +9,7 @@ export class MournbladeItemSheet extends ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-mournblade", "sheet", "item"], classes: ["fvtt-mournblade", "sheet", "item"],
template: "systems/fvtt-mournblade/templates/item-sheet.html", template: "systems/fvtt-mournblade/templates/item-sheet.html",
dragDrop: [{ dragSelector: null, dropSelector: null }], dragDrop: [{ dragSelector: null, dropSelector: null }],
@@ -48,7 +48,7 @@ export class MournbladeItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const objectData = duplicate(this.object) const objectData = foundry.utils.duplicate(this.object)
let itemData = objectData let itemData = objectData
let formData = { let formData = {
title: this.title, title: this.title,
@@ -91,7 +91,7 @@ export class MournbladeItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
postItem() { postItem() {
let chatData = duplicate(MournbladeUtility.data(this.item)); let chatData = foundry.utils.duplicate(MournbladeUtility.data(this.item));
if (this.actor) { if (this.actor) {
chatData.actor = { id: this.actor.id }; chatData.actor = { id: this.actor.id };
} }
@@ -134,26 +134,26 @@ export class MournbladeItemSheet extends ItemSheet {
html.find('.edit-prediction').change(ev => { html.find('.edit-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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 pred[index].name = ev.currentTarget.value
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('.delete-prediction').click(ev => { html.find('.delete-prediction').click(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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) pred.splice(index,1)
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('.use-prediction').change(ev => { html.find('.use-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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 pred[index].used = ev.currentTarget.checked
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('#add-predilection').click(ev => { 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 }) pred.push( { name: "Nouvelle prédilection", id: randomID(), used: false })
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
+6 -2
View File
@@ -15,7 +15,7 @@ import { MournbladeCreatureSheet } from "./mournblade-creature-sheet.js";
import { MournbladeUtility } from "./mournblade-utility.js"; import { MournbladeUtility } from "./mournblade-utility.js";
import { MournbladeCombat } from "./mournblade-combat.js"; import { MournbladeCombat } from "./mournblade-combat.js";
import { MournbladeItem } from "./mournblade-item.js"; import { MournbladeItem } from "./mournblade-item.js";
import { MOURNBLADE_CONFIG } from "./mournblade-config.js"; import { MournbladeConfig } from "./mournblade-config.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
@@ -47,7 +47,7 @@ Hooks.once("init", async function () {
CONFIG.Actor.documentClass = MournbladeActor CONFIG.Actor.documentClass = MournbladeActor
CONFIG.Item.documentClass = MournbladeItem CONFIG.Item.documentClass = MournbladeItem
game.system.mournblade = { game.system.mournblade = {
config : MOURNBLADE_CONFIG, config : MournbladeConfig.getConfig(),
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -92,6 +92,10 @@ async function importDefaultScene() {
/* -------------------------------------------- */ /* -------------------------------------------- */
Hooks.once("ready", function () { Hooks.once("ready", function () {
game.system.mournblade = {
config : MournbladeConfig.getConfig(),
}
MournbladeUtility.ready(); MournbladeUtility.ready();
// User warning // User warning
if (!game.user.isGM && game.user.character == undefined) { if (!game.user.isGM && game.user.character == undefined) {
+20
View File
@@ -80,6 +80,26 @@ export class MournbladeRollDialog extends Dialog {
html.find('#runeame').change(async (event) => { html.find('#runeame').change(async (event) => {
this.rollData.runeame = Number(event.currentTarget.value) 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) => { html.find('#doubleD20').change(async (event) => {
this.rollData.doubleD20 = event.currentTarget.checked this.rollData.doubleD20 = event.currentTarget.checked
}) })
+83 -68
View File
@@ -15,9 +15,6 @@ export class MournbladeUtility {
Hooks.on("getCombatTrackerEntryContext", (html, options) => { Hooks.on("getCombatTrackerEntryContext", (html, options) => {
MournbladeUtility.pushInitiativeOptions(html, options); MournbladeUtility.pushInitiativeOptions(html, options);
}) })
Hooks.on("dropCanvasData", (canvas, data) => {
MournbladeUtility.dropItemOnToken(canvas, data)
});
this.rollDataStore = {} this.rollDataStore = {}
this.defenderStore = {} this.defenderStore = {}
@@ -59,15 +56,6 @@ export class MournbladeUtility {
return actor 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) { static sortArrayObjectsByName(myArray) {
myArray.sort((a, b) => { 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() { static getAttributs() {
return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe" } return game.system.mournblade.config.attributs
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static pushInitiativeOptions(html, options) { static pushInitiativeOptions(html, options) {
@@ -101,6 +80,11 @@ export class MournbladeUtility {
static async ready() { static async ready() {
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills") const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
this.skills = skills.map(i => i.toObject()) 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) { static getPredilection(comp, predIdx) {
let pred = duplicate(comp.system.predilections) let pred = foundry.utils.duplicate(comp.system.predilections)
return duplicate(pred[predIdx] || { name: "Error!" }) return foundry.utils.duplicate(pred[predIdx] || { name: "Error!" })
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -150,7 +134,7 @@ export class MournbladeUtility {
let rollData = message.getFlag("world", "mournblade-roll") let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData) let actor = MournbladeUtility.getActorFromRollData(rollData)
await actor.setPredilectionUsed(rollData.competence._id, predIdx) 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) rollData.predilectionUsed = MournbladeUtility.getPredilection(rollData.competence, predIdx)
await MournbladeUtility.rollMournblade(rollData) await MournbladeUtility.rollMournblade(rollData)
}) })
@@ -180,9 +164,7 @@ export class MournbladeUtility {
const templatePaths = [ const templatePaths = [
'systems/fvtt-mournblade/templates/editor-notes-gm.html', 'systems/fvtt-mournblade/templates/editor-notes-gm.html',
'systems/fvtt-mournblade/templates/partial-item-description.html', 'systems/fvtt-mournblade/templates/partial-item-description.html'
'systems/fvtt-mournblade/templates/partial-list-niveau.html',
'systems/fvtt-mournblade/templates/partial-list-niveau-creature.html'
] ]
return loadTemplates(templatePaths); return loadTemplates(templatePaths);
} }
@@ -224,12 +206,10 @@ export class MournbladeUtility {
} }
return options; return options;
} }
static createArrayOptionList(min, max) {
/* -------------------------------------------- */ let options = [];
static buildListOptions(min, max) {
let options = ""
for (let i = min; i <= max; i++) { for (let i = min; i <= max; i++) {
options += `<option value="${i}">${i}</option>` options.push({key:`${i}`, label:`${i}`});
} }
return options; return options;
} }
@@ -324,6 +304,7 @@ export class MournbladeUtility {
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte) rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10) rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10) rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
rollData.isPureSuccess = (rollData.isSuccess && !rollData.isHeroique)
} }
} }
@@ -336,7 +317,7 @@ export class MournbladeUtility {
} }
if (!rollData.attr) { if (!rollData.attr) {
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp" 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 rollData.diceFormula = rollData.mainDice
@@ -348,7 +329,7 @@ export class MournbladeUtility {
} }
//console.log("BEFORE COMP", rollData) //console.log("BEFORE COMP", rollData)
if (rollData.competence) { 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 let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}` rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
} else { } else {
@@ -366,6 +347,20 @@ export class MournbladeUtility {
rollData.diceFormula += `+${modifier.system.value}` 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 // Specific modifier for distance
if (rollData.arme?.system?.isDistance) { if (rollData.arme?.system?.isDistance) {
@@ -383,7 +378,7 @@ export class MournbladeUtility {
} }
} }
if (rollData.typeCouvert != "aucun") { if (rollData.typeCouvert != "aucun") {
rollData.diceFormula += `-${rollData.config.couverts[rollData.typeCouvert].value}` rollData.diceFormula += `+${rollData.config.couverts[rollData.typeCouvert].value}`
} }
} }
@@ -397,15 +392,16 @@ export class MournbladeUtility {
} }
} }
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")) 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 rollData.diceResult = myRoll.terms[0].results[0].result
console.log(">>>> ", myRoll) console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total rollData.finalResult = myRoll.total
this.computeResult(rollData) this.computeResult(rollData)
// Application immédiate selon type de jet
if (rollData.rune) { if (rollData.rune) {
let subAme = rollData.runeame let subAme = rollData.runeame
if (rollData.isEchec && !rollData.isDramatique) { if (rollData.isEchec && !rollData.isDramatique) {
@@ -413,7 +409,19 @@ export class MournbladeUtility {
} }
actor.subPointsAme(rollData.runemode, subAme) 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, { this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData) content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData)
}, rollData) }, rollData)
@@ -426,16 +434,21 @@ export class MournbladeUtility {
let degatsMessage = "Degats normaux" let degatsMessage = "Degats normaux"
if (rollData.arme?.system?.isMelee) { if (rollData.arme?.system?.isMelee) {
if (rollData.typeAttaque == "assaut") { rollData.degatsFormula = rollData.arme.system.totalDegats
rollData.degatsFormula = rollData.arme.system.totalDegats if (rollData.isHeroique) { // Deux fois les dés de dégats
if (rollData.isHeroique) { // Deux fois les dés de dégats degatsMessage = "Dégats doublés"
rollData.degatsFormula += " + " + rollData.arme.system.totalDegats
degatsMessage = "Dégats doublés"
}
} }
if (rollData.typeAttaque == "assomer") {
rollData.degatsFormula = false
}
if (rollData.typeAttaque == "charger") { if (rollData.typeAttaque == "charger") {
rollData.degatsFormula += "+2" rollData.degatsFormula += "+2"
} }
if (rollData.typeAttaque == "chargecavalerie") {
rollData.degatsFormula += "+5"
}
if (rollData.typeAttaque == "precise") { if (rollData.typeAttaque == "precise") {
degatsMessage = "Degats normaux" degatsMessage = "Degats normaux"
@@ -457,17 +470,17 @@ export class MournbladeUtility {
if (rollData.typeAttaque == "coupbas") { if (rollData.typeAttaque == "coupbas") {
degatsMessage = "Pas de dégats, mais malus pour prochaine action complexe du défenseur" degatsMessage = "Pas de dégats, mais malus pour prochaine action complexe du défenseur"
rollData.degatsFormula = false rollData.degatsFormula = false
rollData.nextMalus = -5 rollData.nextMalus = 5
if (rollData.isHeroique) { // Malus pour prochaine action if (rollData.isHeroique) { // Malus pour prochaine action
rollData.nextMalus = -15 rollData.nextMalus = 15
} }
} }
if (rollData.typeAttaque == "contenir") { if (rollData.typeAttaque == "contenir") {
degatsMessage = "Pas de dégats, mais l'adversaire ne peut pas vous attaquer pour le reste du tour" degatsMessage = "Pas de dégats, mais l'adversaire ne peut pas vous attaquer pour le reste du tour"
rollData.degatsFormula = false rollData.degatsFormula = false
if (rollData.isHeroique) { // Malus pour prochaine action 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 + 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" " ne peuvent pas vous attaquer pour le reste du tour"
} }
} }
if (rollData.typeAttaque == "desarmer") { if (rollData.typeAttaque == "desarmer") {
@@ -480,24 +493,26 @@ export class MournbladeUtility {
} }
} else { // Armes à distance } else { // Armes à distance
rollData.degatsFormula = rollData.arme.system.totalDegats 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 // Perform the roll, show the dice
rollData.finalResult = 0 rollData.finalResult = 0
rollData.degatsMessage = degatsMessage rollData.degatsMessage = degatsMessage
if (rollData.degatsFormula) { 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")) await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
rollData.degatsRoll = duplicate(degatsRoll) rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
rollData.finalResult = degatsRoll.total rollData.finalResult = degatsRoll.total
} }
@@ -528,7 +543,7 @@ export class MournbladeUtility {
defender.setModifier("Prochaine action complexe", "roll", -rollData.nextMalus) defender.setModifier("Prochaine action complexe", "roll", -rollData.nextMalus)
} }
if (rollData.defenderDesarme) { 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 let degats = rollData.finalResult
@@ -545,9 +560,9 @@ export class MournbladeUtility {
static async bonusRollMournblade(rollData) { static async bonusRollMournblade(rollData) {
rollData.bonusFormula = rollData.addedBonus 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")); await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = duplicate(bonusRoll) rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
rollData.finalResult += rollData.bonusRoll.total rollData.finalResult += rollData.bonusRoll.total
@@ -581,7 +596,7 @@ export class MournbladeUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static blindMessageToGM(chatOptions) { static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions); let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM); chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content; chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM); console.log("blindMessageToGM", chatGM);
@@ -644,13 +659,11 @@ export class MournbladeUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static getBasicRollData() { static getBasicRollData() {
let rollData = { let rollData = {
rollId: randomID(16), rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"), rollMode: game.settings.get("core", "rollMode"),
modificateursOptions: this.getModificateurOptions(),
pointAmeOptions: this.getPointAmeOptions(),
difficulte: 0, difficulte: 0,
modificateur: 0, modificateur: 0,
config: game.system.mournblade.config, config: foundry.utils.duplicate(game.system.mournblade.config),
} }
MournbladeUtility.updateWithTarget(rollData) MournbladeUtility.updateWithTarget(rollData)
return rollData return rollData
@@ -662,7 +675,9 @@ export class MournbladeUtility {
if (target) { if (target) {
rollData.defenderTokenId = target.id rollData.defenderTokenId = target.id
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
rollData.defenderCombatValues = defender.getCombatValues()
rollData.defender = defender.toObject() // Simpler rollData.defender = defender.toObject() // Simpler
rollData.defenderDefense = defender.getBestDefenseValue()
rollData.armeDefense = defender.getBestDefenseValue() rollData.armeDefense = defender.getBestDefenseValue()
if (rollData.armeDefense) { if (rollData.armeDefense) {
rollData.difficulte = rollData.armeDefense.system.totalDefensif rollData.difficulte = rollData.armeDefense.system.totalDefensif
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000149 MANIFEST-000217
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.526498 7f74df4006c0 Recovering log #147 2024/09/10-07:14:44.885743 7f7ed4e006c0 Recovering log #215
2024/03/02-23:57:42.536661 7f74df4006c0 Delete type=3 #145 2024/09/10-07:14:44.956966 7f7ed4e006c0 Delete type=3 #213
2024/03/02-23:57:42.536714 7f74df4006c0 Delete type=0 #147 2024/09/10-07:14:44.957144 7f7ed4e006c0 Delete type=0 #215
2024/03/02-23:57:56.281201 7f74dda006c0 Level-0 table #152: started 2024/09/10-07:20:33.463210 7f7ecd6006c0 Level-0 table #220: started
2024/03/02-23:57:56.281223 7f74dda006c0 Level-0 table #152: 0 bytes OK 2024/09/10-07:20:33.463253 7f7ecd6006c0 Level-0 table #220: 0 bytes OK
2024/03/02-23:57:56.287599 7f74dda006c0 Delete type=0 #150 2024/09/10-07:20:33.501220 7f7ecd6006c0 Delete type=0 #218
2024/03/02-23:57:56.287862 7f74dda006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.287903 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.186271 7f74dfe006c0 Recovering log #143 2024/09/09-21:51:17.138004 7f7ecf4006c0 Recovering log #210
2024/03/02-23:56:59.241028 7f74dfe006c0 Delete type=3 #141 2024/09/09-21:51:17.149501 7f7ecf4006c0 Delete type=3 #208
2024/03/02-23:56:59.241158 7f74dfe006c0 Delete type=0 #143 2024/09/09-21:51:17.149609 7f7ecf4006c0 Delete type=0 #210
2024/03/02-23:57:31.484234 7f74dda006c0 Level-0 table #148: started 2024/09/09-21:52:48.597265 7f7ecd6006c0 Level-0 table #216: started
2024/03/02-23:57:31.484262 7f74dda006c0 Level-0 table #148: 0 bytes OK 2024/09/09-21:52:48.597313 7f7ecd6006c0 Level-0 table #216: 0 bytes OK
2024/03/02-23:57:31.491281 7f74dda006c0 Delete type=0 #146 2024/09/09-21:52:48.604438 7f7ecd6006c0 Delete type=0 #214
2024/03/02-23:57:31.497473 7f74dda006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.497513 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1 +1 @@
MANIFEST-000148 MANIFEST-000216
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.563649 7f74e4c006c0 Recovering log #146 2024/09/10-07:14:45.086238 7f7ecf4006c0 Recovering log #214
2024/03/02-23:57:42.574178 7f74e4c006c0 Delete type=3 #144 2024/09/10-07:14:45.144857 7f7ecf4006c0 Delete type=3 #212
2024/03/02-23:57:42.574278 7f74e4c006c0 Delete type=0 #146 2024/09/10-07:14:45.145056 7f7ecf4006c0 Delete type=0 #214
2024/03/02-23:57:56.288017 7f74dda006c0 Level-0 table #151: started 2024/09/10-07:20:33.607105 7f7ecd6006c0 Level-0 table #219: started
2024/03/02-23:57:56.288073 7f74dda006c0 Level-0 table #151: 0 bytes OK 2024/09/10-07:20:33.607143 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
2024/03/02-23:57:56.294465 7f74dda006c0 Delete type=0 #149 2024/09/10-07:20:33.638955 7f7ecd6006c0 Delete type=0 #217
2024/03/02-23:57:56.314039 7f74dda006c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.314072 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.375192 7f74dea006c0 Recovering log #142 2024/09/09-21:51:17.180244 7f7ecea006c0 Recovering log #209
2024/03/02-23:56:59.429489 7f74dea006c0 Delete type=3 #140 2024/09/09-21:51:17.191008 7f7ecea006c0 Delete type=3 #207
2024/03/02-23:56:59.429674 7f74dea006c0 Delete type=0 #142 2024/09/09-21:51:17.191115 7f7ecea006c0 Delete type=0 #209
2024/03/02-23:57:31.510659 7f74dda006c0 Level-0 table #147: started 2024/09/09-21:52:48.625325 7f7ecd6006c0 Level-0 table #215: started
2024/03/02-23:57:31.510687 7f74dda006c0 Level-0 table #147: 0 bytes OK 2024/09/09-21:52:48.625386 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
2024/03/02-23:57:31.516967 7f74dda006c0 Delete type=0 #145 2024/09/09-21:52:48.631864 7f7ecd6006c0 Delete type=0 #213
2024/03/02-23:57:31.531943 7f74dda006c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.532000 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1 +1 @@
MANIFEST-000148 MANIFEST-000216
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.550684 7f74df4006c0 Recovering log #146 2024/09/10-07:14:45.020069 7f7ecfe006c0 Recovering log #214
2024/03/02-23:57:42.561298 7f74df4006c0 Delete type=3 #144 2024/09/10-07:14:45.082360 7f7ecfe006c0 Delete type=3 #212
2024/03/02-23:57:42.561347 7f74df4006c0 Delete type=0 #146 2024/09/10-07:14:45.082521 7f7ecfe006c0 Delete type=0 #214
2024/03/02-23:57:56.307780 7f74dda006c0 Level-0 table #151: started 2024/09/10-07:20:33.576805 7f7ecd6006c0 Level-0 table #219: started
2024/03/02-23:57:56.307800 7f74dda006c0 Level-0 table #151: 0 bytes OK 2024/09/10-07:20:33.576855 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
2024/03/02-23:57:56.313952 7f74dda006c0 Delete type=0 #149 2024/09/10-07:20:33.606927 7f7ecd6006c0 Delete type=0 #217
2024/03/02-23:57:56.314079 7f74dda006c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.314098 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.299928 7f74dfe006c0 Recovering log #142 2024/09/09-21:51:17.166142 7f7ecfe006c0 Recovering log #209
2024/03/02-23:56:59.370332 7f74dfe006c0 Delete type=3 #140 2024/09/09-21:51:17.176865 7f7ecfe006c0 Delete type=3 #207
2024/03/02-23:56:59.370514 7f74dfe006c0 Delete type=0 #142 2024/09/09-21:51:17.176960 7f7ecfe006c0 Delete type=0 #209
2024/03/02-23:57:31.503940 7f74dda006c0 Level-0 table #147: started 2024/09/09-21:52:48.618041 7f7ecd6006c0 Level-0 table #215: started
2024/03/02-23:57:31.503969 7f74dda006c0 Level-0 table #147: 0 bytes OK 2024/09/09-21:52:48.618105 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
2024/03/02-23:57:31.510531 7f74dda006c0 Delete type=0 #145 2024/09/09-21:52:48.625105 7f7ecd6006c0 Delete type=0 #213
2024/03/02-23:57:31.531927 7f74dda006c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.531985 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1 +1 @@
MANIFEST-000148 MANIFEST-000216
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.588257 7f74e4c006c0 Recovering log #146 2024/09/10-07:14:45.210943 7f7ecea006c0 Recovering log #214
2024/03/02-23:57:42.598189 7f74e4c006c0 Delete type=3 #144 2024/09/10-07:14:45.265940 7f7ecea006c0 Delete type=3 #212
2024/03/02-23:57:42.598290 7f74e4c006c0 Delete type=0 #146 2024/09/10-07:14:45.266060 7f7ecea006c0 Delete type=0 #214
2024/03/02-23:57:56.300746 7f74dda006c0 Level-0 table #151: started 2024/09/10-07:20:33.678752 7f7ecd6006c0 Level-0 table #219: started
2024/03/02-23:57:56.300764 7f74dda006c0 Level-0 table #151: 0 bytes OK 2024/09/10-07:20:33.678827 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
2024/03/02-23:57:56.307700 7f74dda006c0 Delete type=0 #149 2024/09/10-07:20:33.713480 7f7ecd6006c0 Delete type=0 #217
2024/03/02-23:57:56.314059 7f74dda006c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.314086 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.493389 7f74dea006c0 Recovering log #142 2024/09/09-21:51:17.208104 7f7ed4e006c0 Recovering log #209
2024/03/02-23:56:59.549265 7f74dea006c0 Delete type=3 #140 2024/09/09-21:51:17.219088 7f7ed4e006c0 Delete type=3 #207
2024/03/02-23:56:59.549449 7f74dea006c0 Delete type=0 #142 2024/09/09-21:51:17.219197 7f7ed4e006c0 Delete type=0 #209
2024/03/02-23:57:31.497605 7f74dda006c0 Level-0 table #147: started 2024/09/09-21:52:48.639145 7f7ecd6006c0 Level-0 table #215: started
2024/03/02-23:57:31.497627 7f74dda006c0 Level-0 table #147: 0 bytes OK 2024/09/09-21:52:48.639185 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
2024/03/02-23:57:31.503858 7f74dda006c0 Delete type=0 #145 2024/09/09-21:52:48.646533 7f7ecd6006c0 Delete type=0 #213
2024/03/02-23:57:31.531901 7f74dda006c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.531971 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1 +1 @@
MANIFEST-000148 MANIFEST-000216
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.600925 7f74df4006c0 Recovering log #146 2024/09/10-07:14:45.269926 7f7ecfe006c0 Recovering log #214
2024/03/02-23:57:42.611147 7f74df4006c0 Delete type=3 #144 2024/09/10-07:14:45.328808 7f7ecfe006c0 Delete type=3 #212
2024/03/02-23:57:42.611214 7f74df4006c0 Delete type=0 #146 2024/09/10-07:14:45.328977 7f7ecfe006c0 Delete type=0 #214
2024/03/02-23:57:56.321002 7f74dda006c0 Level-0 table #151: started 2024/09/10-07:20:33.783195 7f7ecd6006c0 Level-0 table #219: started
2024/03/02-23:57:56.321024 7f74dda006c0 Level-0 table #151: 0 bytes OK 2024/09/10-07:20:33.783241 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
2024/03/02-23:57:56.326916 7f74dda006c0 Delete type=0 #149 2024/09/10-07:20:33.816523 7f7ecd6006c0 Delete type=0 #217
2024/03/02-23:57:56.340032 7f74dda006c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.340080 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.552436 7f74dfe006c0 Recovering log #142 2024/09/09-21:51:17.222186 7f7ecfe006c0 Recovering log #209
2024/03/02-23:56:59.607721 7f74dfe006c0 Delete type=3 #140 2024/09/09-21:51:17.233209 7f7ecfe006c0 Delete type=3 #207
2024/03/02-23:56:59.607793 7f74dfe006c0 Delete type=0 #142 2024/09/09-21:51:17.233359 7f7ecfe006c0 Delete type=0 #209
2024/03/02-23:57:31.532068 7f74dda006c0 Level-0 table #147: started 2024/09/09-21:52:48.646768 7f7ecd6006c0 Level-0 table #215: started
2024/03/02-23:57:31.532126 7f74dda006c0 Level-0 table #147: 0 bytes OK 2024/09/09-21:52:48.646827 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
2024/03/02-23:57:31.538874 7f74dda006c0 Delete type=0 #145 2024/09/09-21:52:48.653236 7f7ecd6006c0 Delete type=0 #213
2024/03/02-23:57:31.559737 7f74dda006c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.559788 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1 +1 @@
MANIFEST-000148 MANIFEST-000216
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.576393 7f74df4006c0 Recovering log #146 2024/09/10-07:14:45.148885 7f7ed4e006c0 Recovering log #214
2024/03/02-23:57:42.586202 7f74df4006c0 Delete type=3 #144 2024/09/10-07:14:45.204991 7f7ed4e006c0 Delete type=3 #212
2024/03/02-23:57:42.586336 7f74df4006c0 Delete type=0 #146 2024/09/10-07:14:45.205146 7f7ed4e006c0 Delete type=0 #214
2024/03/02-23:57:56.294585 7f74dda006c0 Level-0 table #151: started 2024/09/10-07:20:33.639140 7f7ecd6006c0 Level-0 table #219: started
2024/03/02-23:57:56.294608 7f74dda006c0 Level-0 table #151: 0 bytes OK 2024/09/10-07:20:33.639178 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
2024/03/02-23:57:56.300668 7f74dda006c0 Delete type=0 #149 2024/09/10-07:20:33.677964 7f7ecd6006c0 Delete type=0 #217
2024/03/02-23:57:56.314050 7f74dda006c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.314092 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.433039 7f74dfe006c0 Recovering log #142 2024/09/09-21:51:17.194403 7f7ecf4006c0 Recovering log #209
2024/03/02-23:56:59.490727 7f74dfe006c0 Delete type=3 #140 2024/09/09-21:51:17.204990 7f7ecf4006c0 Delete type=3 #207
2024/03/02-23:56:59.490884 7f74dfe006c0 Delete type=0 #142 2024/09/09-21:51:17.205104 7f7ecf4006c0 Delete type=0 #209
2024/03/02-23:57:31.517118 7f74dda006c0 Level-0 table #147: started 2024/09/09-21:52:48.632133 7f7ecd6006c0 Level-0 table #215: started
2024/03/02-23:57:31.517148 7f74dda006c0 Level-0 table #147: 0 bytes OK 2024/09/09-21:52:48.632191 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
2024/03/02-23:57:31.531688 7f74dda006c0 Delete type=0 #145 2024/09/09-21:52:48.638748 7f7ecd6006c0 Delete type=0 #213
2024/03/02-23:57:31.531958 7f74dda006c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.532013 7f74dda006c0 Manual compaction at level-1 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.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000044 MANIFEST-000112
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.486280 7f74df4006c0 Recovering log #42 2024/09/10-07:14:44.657561 7f7ecf4006c0 Recovering log #110
2024/03/02-23:57:42.497211 7f74df4006c0 Delete type=3 #40 2024/09/10-07:14:44.756808 7f7ecf4006c0 Delete type=3 #108
2024/03/02-23:57:42.497261 7f74df4006c0 Delete type=0 #42 2024/09/10-07:14:44.756963 7f7ecf4006c0 Delete type=0 #110
2024/03/02-23:57:56.231538 7f74dda006c0 Level-0 table #47: started 2024/09/10-07:20:33.399722 7f7ecd6006c0 Level-0 table #115: started
2024/03/02-23:57:56.231579 7f74dda006c0 Level-0 table #47: 0 bytes OK 2024/09/10-07:20:33.399823 7f7ecd6006c0 Level-0 table #115: 0 bytes OK
2024/03/02-23:57:56.238619 7f74dda006c0 Delete type=0 #45 2024/09/10-07:20:33.426020 7f7ecd6006c0 Delete type=0 #113
2024/03/02-23:57:56.238988 7f74dda006c0 Manual compaction at level-0 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.249569 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.011753 7f74dfe006c0 Recovering log #38 2024/09/09-21:51:17.088284 7f7ecea006c0 Recovering log #105
2024/03/02-23:56:59.065822 7f74dfe006c0 Delete type=3 #36 2024/09/09-21:51:17.099095 7f7ecea006c0 Delete type=3 #103
2024/03/02-23:56:59.066003 7f74dfe006c0 Delete type=0 #38 2024/09/09-21:51:17.099204 7f7ecea006c0 Delete type=0 #105
2024/03/02-23:57:31.454052 7f74dda006c0 Level-0 table #43: started 2024/09/09-21:52:48.582588 7f7ecd6006c0 Level-0 table #111: started
2024/03/02-23:57:31.454085 7f74dda006c0 Level-0 table #43: 0 bytes OK 2024/09/09-21:52:48.582673 7f7ecd6006c0 Level-0 table #111: 0 bytes OK
2024/03/02-23:57:31.460874 7f74dda006c0 Delete type=0 #41 2024/09/09-21:52:48.589717 7f7ecd6006c0 Delete type=0 #109
2024/03/02-23:57:31.461130 7f74dda006c0 Manual compaction at level-0 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.470795 7f74dda006c0 Manual compaction at level-1 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.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000148 MANIFEST-000216
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.538644 7f74e4c006c0 Recovering log #146 2024/09/10-07:14:44.961549 7f7ecea006c0 Recovering log #214
2024/03/02-23:57:42.548194 7f74e4c006c0 Delete type=3 #144 2024/09/10-07:14:45.016222 7f7ecea006c0 Delete type=3 #212
2024/03/02-23:57:42.548242 7f74e4c006c0 Delete type=0 #146 2024/09/10-07:14:45.016606 7f7ecea006c0 Delete type=0 #214
2024/03/02-23:57:56.274321 7f74dda006c0 Level-0 table #151: started 2024/09/10-07:20:33.539100 7f7ecd6006c0 Level-0 table #219: started
2024/03/02-23:57:56.274358 7f74dda006c0 Level-0 table #151: 0 bytes OK 2024/09/10-07:20:33.539159 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
2024/03/02-23:57:56.280896 7f74dda006c0 Delete type=0 #149 2024/09/10-07:20:33.576585 7f7ecd6006c0 Delete type=0 #217
2024/03/02-23:57:56.287798 7f74dda006c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.287848 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.243458 7f74dea006c0 Recovering log #142 2024/09/09-21:51:17.152829 7f7ed4e006c0 Recovering log #209
2024/03/02-23:56:59.296280 7f74dea006c0 Delete type=3 #140 2024/09/09-21:51:17.163037 7f7ed4e006c0 Delete type=3 #207
2024/03/02-23:56:59.296363 7f74dea006c0 Delete type=0 #142 2024/09/09-21:51:17.163143 7f7ed4e006c0 Delete type=0 #209
2024/03/02-23:57:31.470886 7f74dda006c0 Level-0 table #147: started 2024/09/09-21:52:48.611545 7f7ecd6006c0 Level-0 table #215: started
2024/03/02-23:57:31.470906 7f74dda006c0 Level-0 table #147: 0 bytes OK 2024/09/09-21:52:48.611586 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
2024/03/02-23:57:31.477853 7f74dda006c0 Delete type=0 #145 2024/09/09-21:52:48.617883 7f7ecd6006c0 Delete type=0 #213
2024/03/02-23:57:31.497453 7f74dda006c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.497519 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1 +1 @@
MANIFEST-000148 MANIFEST-000216
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.638884 7f74e4c006c0 Recovering log #146 2024/09/10-07:14:45.464393 7f7ecea006c0 Recovering log #214
2024/03/02-23:57:42.649262 7f74e4c006c0 Delete type=3 #144 2024/09/10-07:14:45.568041 7f7ecea006c0 Delete type=3 #212
2024/03/02-23:57:42.649331 7f74e4c006c0 Delete type=0 #146 2024/09/10-07:14:45.568192 7f7ecea006c0 Delete type=0 #214
2024/03/02-23:57:56.327001 7f74dda006c0 Level-0 table #151: started 2024/09/10-07:20:33.817119 7f7ecd6006c0 Level-0 table #219: started
2024/03/02-23:57:56.327021 7f74dda006c0 Level-0 table #151: 0 bytes OK 2024/09/10-07:20:33.817259 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
2024/03/02-23:57:56.333677 7f74dda006c0 Delete type=0 #149 2024/09/10-07:20:33.853842 7f7ecd6006c0 Delete type=0 #217
2024/03/02-23:57:56.340040 7f74dda006c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.340074 7f74dda006c0 Manual compaction at level-1 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
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.749769 7f74dea006c0 Recovering log #142 2024/09/09-21:51:17.266111 7f7ed4e006c0 Recovering log #209
2024/03/02-23:56:59.807963 7f74dea006c0 Delete type=3 #140 2024/09/09-21:51:17.276764 7f7ed4e006c0 Delete type=3 #207
2024/03/02-23:56:59.808061 7f74dea006c0 Delete type=0 #142 2024/09/09-21:51:17.276860 7f7ed4e006c0 Delete type=0 #209
2024/03/02-23:57:31.553065 7f74dda006c0 Level-0 table #147: started 2024/09/09-21:52:48.668305 7f7ecd6006c0 Level-0 table #215: started
2024/03/02-23:57:31.553088 7f74dda006c0 Level-0 table #147: 0 bytes OK 2024/09/09-21:52:48.668347 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
2024/03/02-23:57:31.559631 7f74dda006c0 Delete type=0 #145 2024/09/09-21:52:48.674748 7f7ecd6006c0 Delete type=0 #213
2024/03/02-23:57:31.559771 7f74dda006c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.559808 7f74dda006c0 Manual compaction at level-1 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.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000064 MANIFEST-000132
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.664169 7f74e4c006c0 Recovering log #62 2024/09/10-07:14:45.696006 7f7ecf4006c0 Recovering log #130
2024/03/02-23:57:42.675153 7f74e4c006c0 Delete type=3 #60 2024/09/10-07:14:45.752701 7f7ecf4006c0 Delete type=3 #128
2024/03/02-23:57:42.675214 7f74e4c006c0 Delete type=0 #62 2024/09/10-07:14:45.752833 7f7ecf4006c0 Delete type=0 #130
2024/03/02-23:57:56.346704 7f74dda006c0 Level-0 table #67: started 2024/09/10-07:20:33.897005 7f7ecd6006c0 Level-0 table #135: started
2024/03/02-23:57:56.346728 7f74dda006c0 Level-0 table #67: 0 bytes OK 2024/09/10-07:20:33.897068 7f7ecd6006c0 Level-0 table #135: 0 bytes OK
2024/03/02-23:57:56.353179 7f74dda006c0 Delete type=0 #65 2024/09/10-07:20:33.928636 7f7ecd6006c0 Delete type=0 #133
2024/03/02-23:57:56.353339 7f74dda006c0 Manual compaction at level-0 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.353404 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.869123 7f74dea006c0 Recovering log #58 2024/09/09-21:51:17.296296 7f7ecea006c0 Recovering log #125
2024/03/02-23:56:59.920442 7f74dea006c0 Delete type=3 #56 2024/09/09-21:51:17.307966 7f7ecea006c0 Delete type=3 #123
2024/03/02-23:56:59.920535 7f74dea006c0 Delete type=0 #58 2024/09/09-21:51:17.308176 7f7ecea006c0 Delete type=0 #125
2024/03/02-23:57:31.566774 7f74dda006c0 Level-0 table #63: started 2024/09/09-21:52:48.682640 7f7ecd6006c0 Level-0 table #131: started
2024/03/02-23:57:31.566798 7f74dda006c0 Level-0 table #63: 0 bytes OK 2024/09/09-21:52:48.682688 7f7ecd6006c0 Level-0 table #131: 0 bytes OK
2024/03/02-23:57:31.572841 7f74dda006c0 Delete type=0 #61 2024/09/09-21:52:48.689372 7f7ecd6006c0 Delete type=0 #129
2024/03/02-23:57:31.572972 7f74dda006c0 Manual compaction at level-0 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.572995 7f74dda006c0 Manual compaction at level-1 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.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000056 MANIFEST-000124
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:57:42.514100 7f74e4c006c0 Recovering log #54 2024/09/10-07:14:44.824622 7f7ecf4006c0 Recovering log #122
2024/03/02-23:57:42.524422 7f74e4c006c0 Delete type=3 #52 2024/09/10-07:14:44.881625 7f7ecf4006c0 Delete type=3 #120
2024/03/02-23:57:42.524478 7f74e4c006c0 Delete type=0 #54 2024/09/10-07:14:44.881742 7f7ecf4006c0 Delete type=0 #122
2024/03/02-23:57:56.266204 7f74dda006c0 Level-0 table #59: started 2024/09/10-07:20:33.426241 7f7ecd6006c0 Level-0 table #127: started
2024/03/02-23:57:56.266260 7f74dda006c0 Level-0 table #59: 0 bytes OK 2024/09/10-07:20:33.426287 7f7ecd6006c0 Level-0 table #127: 0 bytes OK
2024/03/02-23:57:56.274130 7f74dda006c0 Delete type=0 #57 2024/09/10-07:20:33.462927 7f7ecd6006c0 Delete type=0 #125
2024/03/02-23:57:56.281153 7f74dda006c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end) 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/03/02-23:57:56.287833 7f74dda006c0 Manual compaction at level-1 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/03/02-23:56:59.123787 7f74dea006c0 Recovering log #50 2024/09/09-21:51:17.124273 7f7ecea006c0 Recovering log #117
2024/03/02-23:56:59.183838 7f74dea006c0 Delete type=3 #48 2024/09/09-21:51:17.134938 7f7ecea006c0 Delete type=3 #115
2024/03/02-23:56:59.183904 7f74dea006c0 Delete type=0 #50 2024/09/09-21:51:17.135076 7f7ecea006c0 Delete type=0 #117
2024/03/02-23:57:31.491411 7f74dda006c0 Level-0 table #55: started 2024/09/09-21:52:48.604710 7f7ecd6006c0 Level-0 table #123: started
2024/03/02-23:57:31.491439 7f74dda006c0 Level-0 table #55: 0 bytes OK 2024/09/09-21:52:48.604782 7f7ecd6006c0 Level-0 table #123: 0 bytes OK
2024/03/02-23:57:31.497367 7f74dda006c0 Delete type=0 #53 2024/09/09-21:52:48.611122 7f7ecd6006c0 Delete type=0 #121
2024/03/02-23:57:31.497482 7f74dda006c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end) 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/03/02-23:57:31.497506 7f74dda006c0 Manual compaction at level-1 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.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More